WebsiteBaker Logo
  • *
  • Templates
  • Help
  • Add-ons
  • Download
  • Home
*
Welcome, Guest. Please login or register.

Login with username, password and session length
 

News


WebsiteBaker 2.13.6 is now available!


Will it continue with WB? It goes on! | Geht es mit WB weiter? Es geht weiter!
https://forum.websitebaker.org/index.php/topic,32340.msg226702.html#msg226702


The forum email address board@websitebaker.org is working again
https://forum.websitebaker.org/index.php/topic,32358.0.html


R.I.P Dietmar (luisehahne) and thank you for all your valuable work for WB
https://forum.websitebaker.org/index.php/topic,32355.0.html


* Support WebsiteBaker

Your donations will help to:

  • Pay for our dedicated server
  • Pay for domain registration
  • and much more!

You can donate by clicking on the button below.

Donate with PayPal buttonSpenden mit dem PayPal-Button

  • Home
  • Help
  • Search
  • Login
  • Register

  • WebsiteBaker Community Forum »
  • WebsiteBaker Support (2.12.x) »
  • Modules »
  • Blog_menu mit aktivem Link (class)?
  • Print
Pages: [1]   Go Down

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

Offline Concilla

  • Posts: 198
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.
Logged

Offline dbs

  • Betatester
  • **
  • Posts: 8914
  • 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 »
Logged
https://onkel-franky.de

Offline Concilla

  • Posts: 198
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==0 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==0 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.
Logged

Offline dbs

  • Betatester
  • **
  • Posts: 8914
  • 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==0 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==0 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...
Logged
https://onkel-franky.de

Offline Concilla

  • Posts: 198
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.
Logged

Offline dbs

  • Betatester
  • **
  • Posts: 8914
  • 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 »
Logged
https://onkel-franky.de

Offline Concilla

  • Posts: 198
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."
Logged

Offline jacobi22

  • Betatester
  • **
  • 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
Logged

Offline Concilla

  • Posts: 198
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  :-(
Logged

Offline dbs

  • Betatester
  • **
  • Posts: 8914
  • 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.
Logged
https://onkel-franky.de

Offline yeha2

  • Posts: 26
Re: Blog_menu mit aktivem Link (class)?
« Reply #10 on: June 23, 2020, 03:15:58 PM »
Hallo zusammen!
In der Version
WB-Version
2.10.0
gibt es ein kleines Problem mit dem
BLOG_MENU
... ich habe die includes.php hier aus dem Forum aus diesem  Thema mal probiert, doch auch diese behebt das Problem nicht.
Vielleicht was ja jemand durch Zufall, woran das liegen könnte.
Auf meiner Seite kommt immer:

There was an uncatched exception
Call to a member function numRows() on null
in line (84) of (/modules/blog_menu/include.php)

und noch dazu verschwindet mein Menü oben mit den Seien der Homepage :(

Wer spitze wenn einer was weiß!


Logged

Offline dbs

  • Betatester
  • **
  • Posts: 8914
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Blog_menu mit aktivem Link (class)?
« Reply #11 on: June 23, 2020, 04:12:33 PM »
Hallo, die Meldung besagt, dass die Tabellenabfrage kein Ergebnis liefert.
Falls du kannst schau mal in der Datenbank ob es die Tabelle mod_blog_posts gibt und ob da Einträge drin sind.

Außerdem hängst du mit WB etwas sehr hinterher. Wir sind bei 2.12.2 und kurz vor 2.13.
Denk über ein Update nach.
Logged
https://onkel-franky.de

Offline yeha2

  • Posts: 26
Re: Blog_menu mit aktivem Link (class)?
« Reply #12 on: June 24, 2020, 10:30:06 AM »
Danke (Y)! Aber, wenn Du sagst erst mal Update, dann fange ich damit mal lieber an, werde mich mal in die Anleitung einlesen, wie das funzt!
Bevor ich am alten System jetzt  rum werkel!
Logged

  • Print
Pages: [1]   Go Up
  • WebsiteBaker Community Forum »
  • WebsiteBaker Support (2.12.x) »
  • Modules »
  • Blog_menu mit aktivem Link (class)?
 

  • SMF 2.0.19 | SMF © 2017, Simple Machines
  • XHTML
  • RSS
  • WAP2