Plik index.phtml folder actions mam switch case do ładowania podstron
case "podstrony":
$this->Plugin('Main_Kategorie', array('module' => $modul, 'module_url'=>$_baseModuleURL)); /* bez parametrów*/ break;
Następnie plik wewnątrz plugins/main Kategorie.php - plik jest częścią Panelu Administracyjnego odpowiadającego za dodawanie/i modyfikowanie kategorii.
<?php
class PluginMain_Kategorie extends Nospor\View\Plugin\Base {
public function Run
($params = array()){
$msg = new \Plasticbrain\FlashMessages\FlashMessages();
$msg->display();
$_kategorie ='';
$_kategorie .='<section class="content">';
$_kategorie .=' <div class="box">';
$_kategorie .=' <div class="box-header with-border">';
$_kategorie .=' <h3 class="box-title">Title</h3>';
$_kategorie .=' <div class="box-tools pull-right">';
$_kategorie .=' <button type="button" class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse">';
$_kategorie .=' <i class="fa fa-minus"></i></button>';
$_kategorie .=' <button type="button" class="btn btn-box-tool" data-widget="remove" data-toggle="tooltip" title="Remove">';
$_kategorie .=' <i class="fa fa-times"></i></button>';
$_kategorie .=' </div>';
$_kategorie .=' </div>';
$_kategorie .=' <div class="box-body">';
$_kategorie .= showCategoryTree($params['module']);
$_kategorie .= '</div>';
$_kategorie .=' <div class="box-footer">';
$_kategorie .=' Footer';
$_kategorie .=' </div>';
$_kategorie .=' </div>';
$_kategorie .='</section>';
$_kategorie .='<div class="col-lg-6">';
$_kategorie .='<div class="box box-info">
<div class="box-header with-border">
<h3 class="box-title">Dodawanie Kategorii</h3>
</div>
<form class="form-horizontal">
<div class="box-body">';
$_kategorie .='<div class="form-group">
<label for="inputEmail3" class="col-sm-3 control-label">Tytuł Kategorii</label>
<div class="col-sm-9">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-text-width" aria-hidden="true"></i></span>
<input class="form-control" maxlength="90" placeholder="Proszę wpisać tytuł. Max 90 znaków" type="text" id="first-name" name="cat_tytul" >
</div>
</div>
</div>';
$_kategorie .='<div class="form-group">
<label for="inputEmail3" class="col-sm-3 control-label">Kategoria główna</label>
<div class="col-sm-9">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-bars" aria-hidden="true"></i></span>
<select class="form-control select2" style="width: 100%;">
<option>Wybierz kategorię</option>';
$_kategorie .= getCatListAsSelect();
$_kategorie .= '</select>
</div>
</div>
</div>';
$_kategorie .='<div class="form-group">
<label for="inputEmail3" class="col-sm-3 control-label">Opcje SEO</label>
<div class="col-sm-9">
<div class="input-group">
<a data-toggle="collapse" data-target="#opcje-seo">
<i class="fa-3x fa fa-toggle-down"></i>
</a>
</div>
</div>
</div>';
Plik functions.php który jest includowany do index.phtml
function showCategoryTree($module) {
$category_tree = '';
$category_tree .= '<div class="clearfix"></div><div id="menutree" class="row">';
$root_level='';
$second_level='';
$third_level='';
$stmt = DBi::$conn->query('SELECT * from kategorie WHERE id_cat_parent= 0 ORDER BY id_cat DESC');
foreach($stmt as $row) {
$root_level++;
$category_tree .='<div class="col-md-12 col-sm-12 col-xs-12">';
$category_tree .= '<div class="cat_head menu_label">';
$category_tree .= $row['nazwa'];
$category_tree .= '</div>';
$category_tree .= '<div class="cat_head_2 menu_label">';
$category_tree .= '<a href="index.php?modul='.$module.'&kasuj=TRUE&id='.$row['id_cat'].'&action_get=remove_category">';
$category_tree .= '<i class="fa fa-remove"></i> KASUJ</a>';
$category_tree .= '</div>';
$category_tree .= '<a data-toggle="collapse" data-target="#tree-menu-'.$root_level.'">';
$category_tree .= '<i class="fa-3x fa fa-toggle-down"></i></a>';
$category_tree .= '</div>';
$category_tree .= '<div id="tree-menu-'.$root_level.'" class="col-md-12 col-sm-12 col-xs-12 collapse">';
$stmtB = DBi::$conn->query('SELECT * from kategorie WHERE id_cat_parent= '.$row['id_cat'].' ORDER BY id_cat DESC');
foreach($stmtB as $rowB) {
$second_level++;
$category_tree .= '<div class="tree-level-2 col-md-12 col-sm-12 col-xs-12">';
$category_tree .= '<div class="col-md-3 col-sm-3 col-xs-3">';
$category_tree .= '<i class="fa-2x fa fa-rotate-90 fa-level-up" aria-hidden="true"></i> ';
$category_tree .= '<div class="cat_head menu_label">'.$rowB['nazwa'];
if (IlePodkategorii($rowB['id_cat']) > '0') {
$category_tree .=' <i class="fa fa-level-down" aria-hidden="true"></i>';
}
$category_tree .= '</div>';
$category_tree .= '</div>';
$category_tree .= '<div class="col-md-2 col-sm-2 col-xs-2">';
if (IlePodkategorii($rowB['id_cat']) > '0') {
$category_tree .= '<a data-toggle="collapse" data-target="#tree-menu-second'.$second_level.'">';
$category_tree .= '<i class="fa-3x fa fa-toggle-down"></i>';
$category_tree .= '</a>';
}
$category_tree .= '</div>';
$category_tree .= '<div class="col-md-7 col-sm-7 col-xs-7">';
$category_tree .= '<div class="cat_head_2 menu_label">';
$category_tree .= '<a href="index.php?modul='.$module.'&kasuj=TRUE&id='.$rowB['id_cat'].'&action_get=remove_category">';
$category_tree .= '<i class="fa fa-remove"></i> KASUJ</a>';
$category_tree .= '</div>';
$category_tree .= '<div class="cat_head_2 menu_label">';
$category_tree .= '<a href="index.php?modul='.$module.'&edytuj=TRUE&id='.$rowB['id_cat'].'">';
$category_tree .= '<i class="fa fa-pencil"></i> EDYTUJ</a>';
$category_tree .= '</div>';
$category_tree .= '</div>';
$category_tree .= '</div>';
$category_tree .= '<div id="tree-menu-second'.$second_level.'" class="col-md-12 col-sm-12 col-xs-12 collapse">';
$stmtC = DBi::$conn->query('SELECT * from kategorie WHERE id_cat_parent= '.$rowB['id_cat'].' ORDER BY id_cat DESC');
foreach($stmtC as $rowC) {
$third_level++;
$category_tree .= '<div class="tree-level-3 col-md-12 col-sm-12 col-xs-12">';
$category_tree .= '<div class="col-md-4 col-sm-4 col-xs-4">';
$category_tree .= '<i class="fa-2x fa fa-rotate-90 fa-level-up" aria-hidden="true"></i> ';
$category_tree .= '<div class="cat_head menu_label">'.$rowC['nazwa'];
$category_tree .= '</div>';
$category_tree .= '</div>';
$category_tree .= '<div class="col-md-2 col-sm-2 col-xs-2">';
$category_tree .= '</div>';
$category_tree .= '<div class="col-md-7 col-sm-7 col-xs-7">';
$category_tree .= '<div class="cat_head_2 menu_label">';
$category_tree .= '<a href="index.php?modul='.$module.'&kasuj=TRUE&id='.$rowC['id_cat'].'&action=remove_category">';
$category_tree .= '<i class="fa fa-remove"></i> KASUJ</a>';
$category_tree .= '</div>';
$category_tree .= '<div class="cat_head_2 menu_label">';
$category_tree .= '<a href="index.php?modul='.$module.'&edytuj=TRUE&id='.$rowC['id_cat'].'">';
$category_tree .= '<i class="fa fa-pencil"></i> EDYTUJ</a>';
$category_tree .= '</div>';
$category_tree .= '</div>';
$category_tree .= '</div>';
}
$category_tree .= '</div>';
}
$category_tree .= '</div>';
}
$category_tree .= '</div><div class="clearfix"></div>';
}
//FUNKCJA POBIERAJĄCA KATEGORIE I DODAJĄCA JE DO SELECT-A
function getCatListAsSelect() {
$_to_this = '';
$query = DBi::$conn->query("SELECT id_cat,nazwa,id_cat_parent from kategorie WHERE id_cat_parent=0");
while ($row = $query->fetch_assoc()) {
$_to_this .= '<option class="select-1-level" value="'.$row['id_cat'].'">'.$row['nazwa'].'</option>';
$queryB = DBi::$conn->query("SELECT id_cat,nazwa,id_cat_parent from kategorie WHERE id_cat_parent='".$row['id_cat']."'");
while ($rowB = $queryB->fetch_assoc()) {
$_to_this .= '<option class="select-2-level" value="'.$rowB['id_cat'].'"> ↪ '.$rowB['nazwa'].'</option>';
$queryC = DBi::$conn->query("SELECT id_cat,nazwa,id_cat_parent from kategorie WHERE id_cat_parent='".$rowB['id_cat']."'");
while ($rowC = $queryC->fetch_assoc()) {
$_to_this .= '<option class="select-3-level" value="'.$rowC['id_cat'].'"> ↪ '.$rowC['nazwa'].'</option>';
}
}
}
//$_to_this .= '<option value="'.$row['id_cat'].'">'.$row['nazwa'].'</option>';
return $_to_this;
}
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
$msg = new \Plasticbrain\FlashMessages\FlashMessages();
$msg->display();