+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Menü - Nur Titel aber keine Links werden angezeigt

  1. #1
    Neu an Board
    Registriert seit
    18.08.2010
    Beiträge
    14
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Unglücklich Menü - Nur Titel aber keine Links werden angezeigt

    Hallo zusammen!

    Ich bin neu hier, und erst seit ein paar Tagen Joomla-Nutzer. Heute habe ich versucht ein eigenes Menümodul zu erstellen, um Joomla besser verstehen zu können. Das Ganze soll erstmal ganz einfach stattfinden:
    - Neues Modul anlegen
    - Über die Parameter das gewünschte Menü auswählen
    - Modul wird auf der linken Seite angezeigt

    Soweit klar. Ich habe nun begonnen das Modul entsprechend zu programmieren. Allerdings wird der Titel angezeigt + plus + eine unerwünschte Fehlermeldung. Doch leider kann ich den Fehler nicht finden. Nun hoffe ich aber dass ihr mir bei meinem Problem weiterhelfen könnt.

    mod_hauptmenue.php
    PHP-Code:
    <?php
    defined
    '_JEXEC' ) or die( 'Restricted access' );

    JLoader::import('mod_hauptmenue.helper'JPATH_SITE.DS.'modules');

    $params->def('mymenue','mainmenu');
    $entrys modLastEntrysHelper::getEntrys($params);

    require(
    JModuleHelper::getLayoutPath('mod_hauptmenue'));
    ?>
    tmpl/default.php
    PHP-Code:
    <?php
    defined
    ('_JEXEC') or die('Restricted access');
    ?> 
    <ul>
    <?php
    foreach ($entrys as $entry) {
      echo 
    '<li>'.$entry->get('name').'</li>';
    }
    ?> 
    </ul>
    mod_hauptmenue.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <install type="module" version="1.5.0">
        <name></name>
        <author></author>
        <creationDate>August 2010</creationDate>
        <copyright></copyright>
        <license></license>
        <authorEmail></authorEmail>
        <authorUrl></authorUrl>
        <version>1.0.0</version>
        <description>Hauptmenü</description>
        <files>
            <filename module="mod_hauptmenue">mod_hauptmenue.php</filename>
            <filename>helper.php</filename>
            <filename>index.html</filename>
            <folder>tmpl</folder>
        </files>
        <params>
            <param name="mymenue" type="menu" default="mainmenu" label="Wählen Sie ein Menü" description="Wählen Sie ein Menü" />
        </params>
    </install>
    helper.php
    PHP-Code:
    <?php
    defined
    ('_JEXEC') or die('Restricted access');

    class 
    modLastEntrysHelper {
      public function 
    getEntrys($params) {
        
        
    $db JFactory::getDBO();
        
    $query '
                SELECT
                    *
                FROM
                    #__menu
                WHERE 
                    `menutype` LIKE '
    .( $params->get('mymenue') ).
                ORDER BY
                    `ordering` DESC'
    ;
        
    $db->setQuery($query);
        
    $entrys $db->loadResultArray();
        
        
    $temp = array();
        
        foreach (
    $entrys as $entry) {
          
    $temp[] = $entry;
        }
        
        return 
    $temp;
      }
    }
    ?>
    Wie gesagt, der Menütitel wird zwar angezeigt. Dazu kommt aber auch folgende Fehlermeldung:
    Code:
    Warning: Invalid argument supplied for foreach() in C:\*****\modules\mod_hauptmenue\helper.php on line 22

  2. #2
    Wohnt hier Avatar von chr-hl
    Registriert seit
    28.07.2009
    Ort
    Lübeck
    Beiträge
    3.044
    Bedankte sich
    57
    Erhielt 964 Danksagungen
    in 950 Beiträgen

    Standard

    Hallo,

    willkommen im Forum.

    Modul entsprechend zu programmieren
    Wieso, weshalb, warum?


    => http://openbook.galileocomputing.de/...b9cbaf3143877e


    Christian
    Konnte ich Dir helfen - dann freut ein Klick auf "Danke" bzw. "Thanks"

    Joomla - FAQs / Dein Joomla-Level / Problem gelöst? Bitte so markieren

  3. #3
    Neu an Board
    Registriert seit
    18.08.2010
    Beiträge
    14
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Wie gesagt, in erster Linie geht es mir dabei darum - joomla besser verstehen zu lernen damit ich auch mal ausgereifte Module und Komponenten programmieren kann. Natürlich will ich deshalb erstmal klein anfangen Und da ich ein "spezielles" Menü benötige, wäre dass natürlich ein guter Anfang.

    Ich hatte bereits vorher mal das übliche "Hallo Welt"-Modul erstellt. Nun aber mit Datenbankanbindung und eben speziell auf dieses Thema bezogen.

  4. #4
    Wohnt hier Avatar von chr-hl
    Registriert seit
    28.07.2009
    Ort
    Lübeck
    Beiträge
    3.044
    Bedankte sich
    57
    Erhielt 964 Danksagungen
    in 950 Beiträgen

    Standard

    Dann viel Erfolg, da hast Du Dir ein großes Ziel gesetzt.

    Christian
    Konnte ich Dir helfen - dann freut ein Klick auf "Danke" bzw. "Thanks"

    Joomla - FAQs / Dein Joomla-Level / Problem gelöst? Bitte so markieren

  5. #5
    Neu an Board
    Registriert seit
    18.08.2010
    Beiträge
    14
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Vielen Dank. Dennoch glaube ich, dass es in meinem Fall ja erstmal nur ein "kleiner Fehler" ist. Wäre super wenn ihr mir dennoch weiterhelfen könnt. Übrigens - Mit PHP, (X)HTML und CSS bin ich eigentlich soweit vertraut. Warum ich diesen Fehler nicht finde - keine Ahnung. Manchmal sieht man halt den Wald vor lauter Bäumen nicht...

  6. #6
    Neu an Board
    Registriert seit
    18.08.2010
    Beiträge
    14
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Ich habe die Datei: helper.php nun entsprechend angepasst:
    PHP-Code:
    <?php
    defined
    ('_JEXEC') or die('Restricted access');

    class 
    modLastEntrysHelper {
        public function 
    getEntrys($params) {
        
            
    $db2 JFactory::getDBO();
            
    $query2 "
                SELECT
                    menutype
                FROM
                    #__menu_types
                            WHERE 
                                    'id' LIKE "
    .( (int)$params->get('mymenue') );
            
    $db2->setQuery($query);
            
    $menutype $db2->loadRow();
            
            
            
            
    $db JFactory::getDBO();
            
    $query "
                SELECT
                    *
                FROM
                    #__menu
                            WHERE 
                                    'menutype' LIKE '"
    .$menutype."' 
                ORDER BY
                    'ordering' DESC"
    ;
            
    $db->setQuery($query);
            
    $entrys $db->loadResultArray();
            
            
    $temp = array();
            
            foreach (
    $entrys as $entry) {
                
    $temp[] = $entry;
            }
            
            return 
    $temp;
        }
    }
    ?>
    Nun wird zwar keine Fehlermeldung mehr angezeigt, allerdings bleiben die Einträge trotzdem leer - obwohl mind. 1 Menüeintrag angezeigt werden müsste.

  7. #7
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen

    Standard

    • Debug Modus anschalten
    • Error Reporting auf maximum
    • MySQL Query in der Debugausgabe anschauen
    • MySQL Query mal in PHPMyAdmin eingeben
    • etc.

  8. #8
    Neu an Board
    Registriert seit
    18.08.2010
    Beiträge
    14
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Vielen Dank. Ich habe den Debug-Modus kontrolliert -> ist an
    Dann habe ich die Datenbankabfrage in PHPMyAdmin versucht - kam ein Fehler. Folgedessen habe ich diese nochmal kontrolliert und angepasst.
    Danach habe ich die Fehlermeldung auf <?php error_reporting(E_ALL); ?> gesetzt. Nun erscheint folgende Fehlermeldung:

    PHP-Code:
    Fatal errorCall to a member function get() on a non-object in *****modulesmod_hauptmenuetmpldefault.php on line 7 

  9. #9
    Neu an Board
    Registriert seit
    18.08.2010
    Beiträge
    14
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Ok, wenn ich die Zeile folgendermaßen abändere:
    PHP-Code:
    echo "<li>".$entry['name']."</li>"
    dann erhalte ich schonmal den Anfangsbuchstaben des Namens ("S")tartseite. Wenn ich dann das Ganze noch versuche um einen "Link" zu erweitern
    PHP-Code:
    echo "<li><a href='".$entry['link']."'>".$entry['name']."</a></li>"
    dann wird als Link ebenfalls das "S" angezeigt....

    Die Datei "helper.php" habe ich folgendermaßen angepasst:
    PHP-Code:
    <?php 
    defined
    ('_JEXEC') or die('Restricted access'); 

    class 
    modLastEntrysHelper 
        public function 
    getEntrys($params) { 

             
            
    $db JFactory::getDBO(); 
            
    $query "SELECT name 
                                        FROM `#__menu` 
                                        WHERE `menutype` LIKE 'mainmenu'
                                        ORDER BY `ordering` ASC"

            
    $db->setQuery($query); 
            
    $entrys $db->loadResultArray(); 
             
            
    $temp = array(); 
             
            foreach (
    $entrys as $entry) { 
                
    $temp[] = $entry
            } 
             
            return 
    $temp
        } 

    ?>
    kann mir jemand noch bei dem letzten fehler auf die Sprünge helfen?
    Geändert von sadness (18.08.2010 um 15:21 Uhr)

  10. #10
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen

    Standard

    print_r auf das $entries array sollte dir weiterhelfen. loadResultArray() ist nicht ganz die Methode die du brauchst...schau einfach mal in die MySQL Klasse von Joomla, was es noch so für alternativen gibt und wähle eine bessere Methode aus.

  11. Erhielt Danksagungen von:


+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein