Author Topic: Blog_menu mit aktivem Link (class)?  (Read 1944 times)

Offline Concilla

  • Posts: 57
Blog_menu mit aktivem Link (class)?
« on: May 31, 2019, 12:39:11 PM »
Liebe WebsiteBaker,

ich habe ein blog_menu für eine Newsseite, das die jeweiligen Newsgruppen anzeigt. Leider kann der aktive Link per CSS nicht farbig gestaltet werden, da er keine zusätzliche Klasse enthält. Wenn der  jeweilig angeklickte Link z.B. class=“active“ erhalten würde,  bedürfte es sicherlich Änderungen im Modul (include.php)? Könntet Ihr mir hier bitte helfen? Oder ist das zu kompliziert?

Vielen Dank im Voraus.

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Blog_menu mit aktivem Link (class)?
« Reply #1 on: May 31, 2019, 02:49:46 PM »
Hallo, sprichst du vom Modul "blog_menu" und vom Modul "News"?
Die wissen ja eigentlich nichts voneinander, holen sich nur bestimmte Daten aus der Datenbank.

Für die Module blog_menu und blog funktioniert es, wenn man in der include.php von blog_menu die while-Schleife in Zeile 96 so anpasst
Code: [Select]
<?php
// diese zeilen nicht, ist nur für bunten code. 
// das li hat eine class="active" erhalten

                  
while($history $result->fetchRow()){
                    
// $output .= "<li><a href=\"" .WB_URL.PAGES_DIREC TORY .$page_link .PAGE_EXTENSION ."?y=".$history['y']."&amp;m=".$history['m']."&amp;method=".$date_option."\">" .$history['mo']." ".$history['y']."</a> (".$history['total'].")</li>\n";
                    
                    // mark current blog menu link as active ------------
                    
$curr_link WB_URL.PAGES_DIRECTORY .$page_link .PAGE_EXTENSION ."?y=".$history['y']."&m=".$history['m']."&method=".$date_option;
                    
$curr_addr WB_URL.$_SERVER['REQUEST_URI'];
                    
$active    = ($curr_addr == $curr_link) ? ' class="active"' ''

                    
$output .= "<li ".$active."><a href=\"" .WB_URL.PAGES_DIRECTORY .$page_link .PAGE_EXTENSION ."?y=".$history['y']."&amp;m=".$history['m']."&amp;method=".$date_option."\">" .$history['mo']." ".$history['y']."</a> (".$history['total'].")</li>\n";
                    
// --------------------------------------------------
                
}
« Last Edit: May 31, 2019, 03:48:57 PM by dbs »

Offline Concilla

  • Posts: 57
Re: Blog_menu mit aktivem Link (class)?
« Reply #2 on: May 31, 2019, 05:31:29 PM »
Danke für Deine Anwort. Ich habe jetzt eine ganze Weile herum probiert, aber ich bekomme immer ein:

There was an uncatched exception
syntax error, unexpected end of file
in line (107) of (/modules/blog_menu/include.php)

oder in einer anderen Zeile. Bei mir im Modul blog_menu sieht es in der include.php so aus, kompletter Code:

Code: [Select]
<?php
// function to display a Blog Menu on every page via (invoke function from template or code page)

if (!function_exists('display_blog_menu')) {
function display_blog_menu($page_id,$date_option 0,$group_header '<h1>Categories</h1>' ,$history_header '<h1>History</h1>',$display_option 0) {

// register outside object
global $database;

//get link to the page
$query "SELECT link FROM " .TABLE_PREFIX ."pages WHERE page_id=$page_id;";
$result $database->query($query);
if($result->numRows() > 0){
$link $result->fetchRow();
            
$page_link $link['link'];
}

// convert all numeric inputs to integer variables
$page_id = (int) $page_id;

if($display_option==or $display_option==2){ //show categories

// query to obtain categories for the selected page
   $query "SELECT * FROM " .TABLE_PREFIX ."mod_news_groups WHERE page_id=$page_id AND active=true;";

// make database query and obtain active groups and amount of posts per group
$result $database->query($query);
if($result->numRows() > 0){
if ($group_header != "") {
echo $group_header;
}
$output "";
while($group $result->fetchRow()){
                $id $group['group_id'];
$query_detail "SELECT * FROM " .TABLE_PREFIX ."mod_news_posts WHERE page_id=$page_id AND active=true AND group_id=$id;";
$detail_result $database->query($query_detail);
$num $detail_result->numRows();
$output .= "<li><a href=\"" .WB_URL.PAGES_DIRECTORY .$page_link .PAGE_EXTENSION ."?g=".$group['group_id']."\">" .$group['title'] ."</a></li>\n";
       }
}
$output "<ul>".$output."</ul>";
        echo $output;
}
if($display_option==or $display_option==1){ //show history

        //determine sorting method
        switch($date_option){
            case 0:
                $date "posted_when";
                break;
            case 1:
                $date "published_when";
                break;
        }

        $output ="";
        //query to obtain history per month for the selected page
        $query "SELECT MONTHNAME(FROM_UNIXTIME(".$date.")) as mo,MONTH(FROM_UNIXTIME(".$date.")) as m,FROM_UNIXTIME(".$date.",'%Y') as y,COUNT(*) as total FROM " .TABLE_PREFIX ."mod_news_posts WHERE page_id=$page_id AND active=true GROUP BY y,m ORDER BY y DESC,m DESC;";
        $result $database->query($query);
if($result->numRows() > 0){
if ($history_header != "") {
echo $history_header;
}
while($history $result->fetchRow()){
                $output .= "<li><a href=\"" .WB_URL.PAGES_DIRECTORY .$page_link .PAGE_EXTENSION ."?y=".$history['y']."&m=".$history['m']."&method=".$date_option."\">" .$history['mo']." ".$history['y']."</a> (".$history['total'].")</li>\n";
             }
         }
$output "<ul>".$output."</ul>";
        echo $output;
}

}
}

Die Zeile 96 ist bei mir eigentlich nur ein "}" und die while-Schleife beginnt in der Zeile 88.

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Blog_menu mit aktivem Link (class)?
« Reply #3 on: May 31, 2019, 06:17:06 PM »
Wahrscheinlich weil die Klammern schlecht gesetzt sind im Original.
Deine Datei müsste so aussehen:
Code: [Select]
<?php
// function to display a Blog Menu on every page via (invoke function from template or code page)

if (!function_exists('display_blog_menu')) {
    function 
display_blog_menu($page_id,$date_option 0,$group_header '<h1>Categories</h1>' ,$history_header '<h1>History</h1>',$display_option 0) {
        
        
// register outside object
        
global $database;

        
//get link to the page
        
$query "SELECT link FROM " .TABLE_PREFIX ."pages WHERE page_id=$page_id;";
        
$result $database->query($query);
        if(
$result->numRows() > 0){
            
$link $result->fetchRow();
            
$page_link $link['link'];
        }
        
        
// convert all numeric inputs to integer variables
        
$page_id = (int) $page_id;

        if(
$display_option==or $display_option==2){ //show categories

            // query to obtain categories for the selected page
              
$query "SELECT * FROM " .TABLE_PREFIX ."mod_news_groups WHERE page_id=$page_id AND active=true;";

            
// make database query and obtain active groups and amount of posts per group
            
$result $database->query($query);
            if(
$result->numRows() > 0){
                if (
$group_header != "") {
                    echo 
$group_header;
                }
                
$output "";
                while(
$group $result->fetchRow()){
                    
$id $group['group_id'];
                    
$query_detail "SELECT * FROM " .TABLE_PREFIX ."mod_news_posts WHERE page_id=$page_id AND active=true AND group_id=$id;";
                    
$detail_result $database->query($query_detail);
                    
$num $detail_result->numRows();
                    
$output .=    "<li><a href=\"" .WB_URL.PAGES_DIREC TORY .$page_link .PAGE_EXTENSION ."?g=".$group['group_id']."\">" .$group['title'] ."</a></li>\n";
                  }
            }
            
$output "<ul>".$output."</ul>";
            echo 
$output;
        }
        if(
$display_option==or $display_option==1){ //show history

            //determine sorting method
            
switch($date_option){
                case 
0:
                    
$date "posted_when";
                    break;
                case 
1:
                    
$date "published_when";
                    break;
            }

            
$output ="";
            
//query to obtain history per month for the selected page
            
$query "SELECT MONTHNAME(FROM_UNIXTIME(".$date.")) as mo,MONTH(FROM_UNIXTIME(".$date.")) as m,FROM_UNIXTIME(".$date.",'%Y') as y,COUNT(*) as total FROM " .TABLE_PREFIX ."mod_news_posts WHERE page_id=$page_id AND active=true GROUP BY y,m ORDER BY y DESC,m DESC;";
            
$result $database->query($query);
            if(
$result->numRows() > 0){
                if (
$history_header != "") {
                    echo 
$history_header;
                }
                while(
$history $result->fetchRow()){
                    
// $output .= "<li><a href=\"" .WB_URL.PAGES_DIREC TORY .$page_link .PAGE_EXTENSION ."?y=".$history['y']."&amp;m=".$history['m']."&amp;method=".$date_option."\">" .$history['mo']." ".$history['y']."</a> (".$history['total'].")</li>\n";
                    
                    // mark current blog menu link as active ------------
                    
$curr_link WB_URL.PAGES_DIRECT ORY .$page_link .PAGE_EXTENSION ."?y=".$history['y']."&m=".$history['m']."&method=".$date_option;
                    
$curr_addr WB_URL.$_SERVER['REQUEST_URI'];
                    
$active    = ($curr_addr == $curr_link) ? ' class="active"' ''

                    
$output .= "<li ".$active."><a href=\"" .WB_URL.PAGES_DIREC TORY .$page_link .PAGE_EXTENSION ."?y=".$history['y']."&amp;m=".$history['m']."&amp;method=".$date_option."\">" .$history['mo']." ".$history['y']."</a> (".$history['total'].")</li>\n";
                    
// --------------------------------------------------
                
}
            }
            
$output "<ul>".$output."</ul>";
            echo 
$output;
        }

    }
}

edit: fehlende letzte Klammer hinzugefügt...

Offline Concilla

  • Posts: 57
Re: Blog_menu mit aktivem Link (class)?
« Reply #4 on: May 31, 2019, 06:37:00 PM »
Nein, tut mir leid. Bei mir wird leider keine Klasse "active" hinzugefügt  :-( Ich habe den Code, so wie von Dir geschickt, komplett ausgetauscht. Es ist alles so, wie es vorher auch war (li ohne aktiver Klasse bei Klick auf eine Gruppe), nachdem ich aus DIREC TORY noch DIRECTORY gemacht habe, da dies Fehler angezeigt hat.

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Blog_menu mit aktivem Link (class)?
« Reply #5 on: June 01, 2019, 09:20:00 AM »
Nach PN's  :)
Meine Änderung war für die Darstellung der Monate, Concilla benötigte es für die Gruppen.
Beides nun in der angehängten Datei (umbenennen zu include.php).
« Last Edit: June 01, 2019, 10:12:45 AM by dbs »

Offline Concilla

  • Posts: 57
Re: Blog_menu mit aktivem Link (class)?
« Reply #6 on: June 01, 2019, 09:33:37 AM »
Wenn man die ZIP entpacken möchte, kommt leider die Information: "Das Archiv hat entweder ein unbekanntes Format oder ist beschädigt."

Offline Gast

  • Posts: 5920
Re: Blog_menu mit aktivem Link (class)?
« Reply #7 on: June 01, 2019, 10:03:54 AM »
Bitte lesen, was geschrieben wurde

Quote
Beides nun in der angehängten Datei (umbenennen zu include.php).

es ist keine ZIP-Datei

Offline Concilla

  • Posts: 57
Re: Blog_menu mit aktivem Link (class)?
« Reply #8 on: June 01, 2019, 10:08:37 AM »
Ah sorry, mal wieder zu schnell gewesen und nicht alles gelesen  :-(

Offline dbs

  • Betatester
  • **
  • Posts: 8144
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Blog_menu mit aktivem Link (class)?
« Reply #9 on: June 01, 2019, 10:11:14 AM »
Finde es ganz normal, dass man versucht .zip zu entpacken.
Deshalb ist ab jetzt auch .txt als Anhang erlaubt. Werde es im Post ändern.