Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasa Widoku Nospor'a problem z funkcjami
Forum PHP.pl > Forum > PHP
designez
Witam, utworzyłem mały projekt na podstawie Klasy Widoku Nospor'a być może coś robię źle ale nie wiem dlaczego wywołując funkcję np. MenuTree wewnątrz przykładowej klasy News wyświetla się na górze tej podstrony mimo że jest wewnątrz div'a w połowie strony z pozycją absolute.

Wyświetlałem bez css'a i js sam Bootstrap Grid więc jestem pewien że problem leży w tym że być może źle korzystał z tego skryptu.

Mam też system wiadomości który wyświetla mi wiadomości np po wykasowaniu rekordu i również wyświetlają się na górze strony mimo że jest wewnątrz dobrze skonstruowanego div'a w połowie strony.
Zastanawia mnie to że ładuję selecta z funkcji i tu jest ok.

  1. $msg = new \Plasticbrain\FlashMessages\FlashMessages();
  2. $msg->display();
nospor
Po przedstawionym kodzie i opisie jedyne co ci moge napisac to: A mi dziala tongue.gif

Blad moze byc wszedzie, bez kodu nic ci nie powiemy madrego.
designez
Plik index.phtml folder actions mam switch case do ładowania podstron
  1. case "podstrony":
  2. $this->Plugin('Main_Kategorie', array('module' => $modul, 'module_url'=>$_baseModuleURL)); /* bez parametrów*/
  3. break;


Następnie plik wewnątrz plugins/main Kategorie.php - plik jest częścią Panelu Administracyjnego odpowiadającego za dodawanie/i modyfikowanie kategorii.

  1. <?php
  2. class PluginMain_Kategorie extends Nospor\View\Plugin\Base {
  3. public function Run($params = array()){
  4.  
  5.  
  6. $msg = new \Plasticbrain\FlashMessages\FlashMessages();
  7. $msg->display();
  8.  
  9. $_kategorie ='';
  10. $_kategorie .='<section class="content">';
  11. $_kategorie .=' <div class="box">';
  12. $_kategorie .=' <div class="box-header with-border">';
  13. $_kategorie .=' <h3 class="box-title">Title</h3>';
  14.  
  15. $_kategorie .=' <div class="box-tools pull-right">';
  16. $_kategorie .=' <button type="button" class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse">';
  17. $_kategorie .=' <i class="fa fa-minus"></i></button>';
  18. $_kategorie .=' <button type="button" class="btn btn-box-tool" data-widget="remove" data-toggle="tooltip" title="Remove">';
  19. $_kategorie .=' <i class="fa fa-times"></i></button>';
  20. $_kategorie .=' </div>';
  21. $_kategorie .=' </div>';
  22. $_kategorie .=' <div class="box-body">';
  23. $_kategorie .= showCategoryTree($params['module']);
  24. $_kategorie .= '</div>';
  25.  
  26. $_kategorie .=' <div class="box-footer">';
  27. $_kategorie .=' Footer';
  28. $_kategorie .=' </div>';
  29.  
  30. $_kategorie .=' </div>';
  31. $_kategorie .='</section>';
  32.  
  33.  
  34.  
  35.  
  36. $_kategorie .='<div class="col-lg-6">';
  37. $_kategorie .='<div class="box box-info">
  38. <div class="box-header with-border">
  39. <h3 class="box-title">Dodawanie Kategorii</h3>
  40. </div>
  41. <form class="form-horizontal">
  42. <div class="box-body">';
  43.  
  44. $_kategorie .='<div class="form-group">
  45. <label for="inputEmail3" class="col-sm-3 control-label">Tytuł Kategorii</label>
  46. <div class="col-sm-9">
  47. <div class="input-group">
  48. <span class="input-group-addon"><i class="fa fa-text-width" aria-hidden="true"></i></span>
  49. <input class="form-control" maxlength="90" placeholder="Proszę wpisać tytuł. Max 90 znaków" type="text" id="first-name" name="cat_tytul" >
  50. </div>
  51. </div>
  52. </div>';
  53. $_kategorie .='<div class="form-group">
  54. <label for="inputEmail3" class="col-sm-3 control-label">Kategoria główna</label>
  55. <div class="col-sm-9">
  56. <div class="input-group">
  57. <span class="input-group-addon"><i class="fa fa-bars" aria-hidden="true"></i></span>
  58. <select class="form-control select2" style="width: 100%;">
  59. <option>Wybierz kategorię</option>';
  60. $_kategorie .= getCatListAsSelect();
  61. $_kategorie .= '</select>
  62. </div>
  63. </div>
  64. </div>';
  65.  
  66. $_kategorie .='<div class="form-group">
  67. <label for="inputEmail3" class="col-sm-3 control-label">Opcje SEO</label>
  68. <div class="col-sm-9">
  69. <div class="input-group">
  70. <a data-toggle="collapse" data-target="#opcje-seo">
  71. <i class="fa-3x fa fa-toggle-down"></i>
  72. </a>
  73. </div>
  74. </div>
  75. </div>';
  76.  




Plik functions.php który jest includowany do index.phtml
  1.  
  2. function showCategoryTree($module) {
  3. $category_tree = '';
  4. $category_tree .= '<div class="clearfix"></div><div id="menutree" class="row">';
  5. $root_level='';
  6. $second_level='';
  7. $third_level='';
  8. $stmt = DBi::$conn->query('SELECT * from kategorie WHERE id_cat_parent= 0 ORDER BY id_cat DESC');
  9. foreach($stmt as $row) {
  10. $root_level++;
  11. $category_tree .='<div class="col-md-12 col-sm-12 col-xs-12">';
  12. $category_tree .= '<div class="cat_head menu_label">';
  13. $category_tree .= $row['nazwa'];
  14. $category_tree .= '</div>';
  15. $category_tree .= '<div class="cat_head_2 menu_label">';
  16. $category_tree .= '<a href="index.php?modul='.$module.'&kasuj=TRUE&id='.$row['id_cat'].'&action_get=remove_category">';
  17. $category_tree .= '<i class="fa fa-remove"></i> KASUJ</a>';
  18. $category_tree .= '</div>';
  19. $category_tree .= '<a data-toggle="collapse" data-target="#tree-menu-'.$root_level.'">';
  20. $category_tree .= '<i class="fa-3x fa fa-toggle-down"></i></a>';
  21. $category_tree .= '</div>';
  22. $category_tree .= '<div id="tree-menu-'.$root_level.'" class="col-md-12 col-sm-12 col-xs-12 collapse">';
  23. $stmtB = DBi::$conn->query('SELECT * from kategorie WHERE id_cat_parent= '.$row['id_cat'].' ORDER BY id_cat DESC');
  24. foreach($stmtB as $rowB) {
  25. $second_level++;
  26. $category_tree .= '<div class="tree-level-2 col-md-12 col-sm-12 col-xs-12">';
  27. $category_tree .= '<div class="col-md-3 col-sm-3 col-xs-3">';
  28. $category_tree .= '<i class="fa-2x fa fa-rotate-90 fa-level-up" aria-hidden="true"></i>&nbsp;';
  29. $category_tree .= '<div class="cat_head menu_label">'.$rowB['nazwa'];
  30. if (IlePodkategorii($rowB['id_cat']) > '0') {
  31. $category_tree .='&nbsp; <i class="fa fa-level-down" aria-hidden="true"></i>';
  32. }
  33. $category_tree .= '</div>';
  34. $category_tree .= '</div>';
  35. $category_tree .= '<div class="col-md-2 col-sm-2 col-xs-2">';
  36. if (IlePodkategorii($rowB['id_cat']) > '0') {
  37. $category_tree .= '<a data-toggle="collapse" data-target="#tree-menu-second'.$second_level.'">';
  38. $category_tree .= '<i class="fa-3x fa fa-toggle-down"></i>';
  39. $category_tree .= '</a>';
  40. }
  41. $category_tree .= '</div>';
  42. $category_tree .= '<div class="col-md-7 col-sm-7 col-xs-7">';
  43. $category_tree .= '<div class="cat_head_2 menu_label">';
  44. $category_tree .= '<a href="index.php?modul='.$module.'&kasuj=TRUE&id='.$rowB['id_cat'].'&action_get=remove_category">';
  45. $category_tree .= '<i class="fa fa-remove"></i> KASUJ</a>';
  46. $category_tree .= '</div>';
  47. $category_tree .= '<div class="cat_head_2 menu_label">';
  48. $category_tree .= '<a href="index.php?modul='.$module.'&edytuj=TRUE&id='.$rowB['id_cat'].'">';
  49. $category_tree .= '<i class="fa fa-pencil"></i> EDYTUJ</a>';
  50. $category_tree .= '</div>';
  51. $category_tree .= '</div>';
  52. $category_tree .= '</div>';
  53.  
  54.  
  55. $category_tree .= '<div id="tree-menu-second'.$second_level.'" class="col-md-12 col-sm-12 col-xs-12 collapse">';
  56. $stmtC = DBi::$conn->query('SELECT * from kategorie WHERE id_cat_parent= '.$rowB['id_cat'].' ORDER BY id_cat DESC');
  57. foreach($stmtC as $rowC) {
  58. $third_level++;
  59. $category_tree .= '<div class="tree-level-3 col-md-12 col-sm-12 col-xs-12">';
  60. $category_tree .= '<div class="col-md-4 col-sm-4 col-xs-4">';
  61. $category_tree .= '<i class="fa-2x fa fa-rotate-90 fa-level-up" aria-hidden="true"></i>&nbsp;';
  62. $category_tree .= '<div class="cat_head menu_label">'.$rowC['nazwa'];
  63. $category_tree .= '</div>';
  64. $category_tree .= '</div>';
  65. $category_tree .= '<div class="col-md-2 col-sm-2 col-xs-2">';
  66. $category_tree .= '</div>';
  67. $category_tree .= '<div class="col-md-7 col-sm-7 col-xs-7">';
  68. $category_tree .= '<div class="cat_head_2 menu_label">';
  69. $category_tree .= '<a href="index.php?modul='.$module.'&kasuj=TRUE&id='.$rowC['id_cat'].'&action=remove_category">';
  70. $category_tree .= '<i class="fa fa-remove"></i> KASUJ</a>';
  71. $category_tree .= '</div>';
  72. $category_tree .= '<div class="cat_head_2 menu_label">';
  73. $category_tree .= '<a href="index.php?modul='.$module.'&edytuj=TRUE&id='.$rowC['id_cat'].'">';
  74. $category_tree .= '<i class="fa fa-pencil"></i> EDYTUJ</a>';
  75. $category_tree .= '</div>';
  76. $category_tree .= '</div>';
  77. $category_tree .= '</div>';
  78. }
  79. $category_tree .= '</div>';
  80.  
  81. }
  82. $category_tree .= '</div>';
  83. }
  84.  
  85. $category_tree .= '</div><div class="clearfix"></div>';
  86.  
  87. echo $category_tree;
  88.  
  89. }
  90.  



  1. //FUNKCJA POBIERAJĄCA KATEGORIE I DODAJĄCA JE DO SELECT-A
  2. function getCatListAsSelect() {
  3. $_to_this = '';
  4. $query = DBi::$conn->query("SELECT id_cat,nazwa,id_cat_parent from kategorie WHERE id_cat_parent=0");
  5. while ($row = $query->fetch_assoc()) {
  6. $_to_this .= '<option class="select-1-level" value="'.$row['id_cat'].'">'.$row['nazwa'].'</option>';
  7. $queryB = DBi::$conn->query("SELECT id_cat,nazwa,id_cat_parent from kategorie WHERE id_cat_parent='".$row['id_cat']."'");
  8. while ($rowB = $queryB->fetch_assoc()) {
  9. $_to_this .= '<option class="select-2-level" value="'.$rowB['id_cat'].'">&nbsp;↪&nbsp; '.$rowB['nazwa'].'</option>';
  10. $queryC = DBi::$conn->query("SELECT id_cat,nazwa,id_cat_parent from kategorie WHERE id_cat_parent='".$rowB['id_cat']."'");
  11. while ($rowC = $queryC->fetch_assoc()) {
  12. $_to_this .= '<option class="select-3-level" value="'.$rowC['id_cat'].'">&nbsp;&nbsp;↪&nbsp;'.$rowC['nazwa'].'</option>';
  13. }
  14. }
  15. }
  16. //$_to_this .= '<option value="'.$row['id_cat'].'">'.$row['nazwa'].'</option>';
  17. return $_to_this;
  18. }


Być może nie rozumiem logiki tego skryptu. Być może nie powinienem ładować funkcji wewnątrz klasy. Ale odwołanie do innej klasy jak ta poniżej daje taki sam efekt. Tak wiem że jest na górze strony ale przeniosłem ten kod tam ponieważ nie działa nawet kiedy chcę wymusić go manipulując CSS
  1. $msg = new \Plasticbrain\FlashMessages\FlashMessages();
  2. $msg->display();
nospor
showCategoryTree() ma zwracac tekst (return $cos) a nie go wyswietlac (echo $cos). Gdy go wyswietlasz to logiczne ze wyskakuje z diva w ktorego niby go wkladasz
designez
Ooooooooooo nie wiem jak to przeoczyłem smile.gif Już myślałem że coś sknociłem smile.gif

Wielkie dzięki za pomoc.
nospor
Na przyszlosc przegladaj zrodlo strony a bedziesz widzial co jest zle
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.