+ Antworten
Ergebnis 1 bis 2 von 2

Thema: Modul um Datensätze auszulesen

  1. #1
    Verbringt hier viel Zeit Avatar von Grazioli
    Registriert seit
    16.08.2006
    Ort
    Lachen SZ/ Schweiz
    Alter
    34
    Beiträge
    658
    Bedankte sich
    35
    Erhielt 139 Danksagungen
    in 128 Beiträgen

    Standard Modul um Datensätze auszulesen

    Hallo,

    ich habe ein Modul für die Auslesung der Datensätze von einer Komponente erstellt.

    Nun habe ich das Problem, das ich alles in einer Reihe angezeigt bekomme, und nicht untereinander! Wie kann ich jetzt wie in der mod_test.php die $display alle untereinander im Frontend (default.php) angezeigt erhalten?

    Muss ich die Datensätze zuerst in eine Variable packen und danch als echo ausgeben, oder wie muss ich die default.php abändern?
    Das Problem von mir ist es, da ja nicht alle $display auch angezigt werden sollten, wie ich die einzelnen Zeilen (<tr>) im Backand nicht aktiviere, diese auch nicht angezeigt werden!

    Das Modul ist von mod_reports abgeleitet.

    So sieht die mod_Test.php aus:
    Code:
    <?php // no direct access
    defined('_JEXEC') or die('Restricted access');
    
    require_once(dirname(__FILE__).DS.'helper.php');
    
    $moduleclass_sfx = $params->get('moduleclass_sfx', '');
    
    $menuStyle = $params->get('menu_style', 'list');
    $menuCount = $params->get('menu_count', '5');
    $menuNone = $params->get('menu_none', keinen Eintrag gefunden');
    
    $display['name'] = $params->get('name', '1');
    $display['location'] = $params->get('location', '1');
    $display['date'] = $params->get('date', '1');
    $display['recurrencedate'] = $params->get('recurrencedate', '0');
    $display['description'] = $params->get('description', '0');
    $display['staff'] = $params->get('staff', '0');
    $display['number] = $params->get('number', '0');
    
    
    $title['Name'] = 'Name';
    ......
    
    $fronttest = modTestHelper::getTest($menuCount);
    
    require(JModuleHelper::getLayoutPath($module->module));
    
    ?>
    Die helper.php bringt die Datensätze:
    Code:
    <?php // no direct access
    defined('_JEXEC') or die('Restricted access');
    
    class modTestHelper
    {
        function getTest($menu_count = 5)
        {
            $db =& JFactory::getDBO();
            $query = 'SELECT * FROM `#__test` ORDER BY date, name, id DESC LIMIT '.$menu_count;
    
            $db->setQUery($query);
            $fpTest = $db->loadObjectList();
            return $fpTest;
        }
    }
    ?>
    Und in der default.php werden die Daten angezeigt:
    Code:
    <?php // no direct access
    defined('_JEXEC') or die('Restricted access');
    
    JHTML::_('stylesheet', 'latest.css', 'modules/'.$module->module.'/assets/');
    
    foreach ($display as $key => $val)
    {
        if ($val == 1)
        {
            $outputs[] = $key;
        }
    
    }
    
    if (count($frontTest))
    {
        if ($menuStyle == 'list')
        {
            foreach ($frontTest as $frontTest)
            {
                foreach ($outputs as $output)
                {
                    if ($output == 'date' )
                    {
                        
                        //$outData .= date('d. F Y', strtotime($frontTest->$output)).' &nbsp; ';
                        echo JHTML::date($frontTest->$output, '%d. %B %Y ').' &nbsp; ';
                    }
                    else
                    {
                        echo $frontTest->$output.' &nbsp; ';
                    }
                }
                echo '<a href="'.JRoute::_('index.php?option=com_Test&mid='.$frontTest->id).'">mehr ...</a> <br />';
            }
        }
        else
        {
            echo '<table id="modTest" border=0 cellpadding=0 cellspacing=0>';
            echo'<tr>';
            foreach ($outputs as $output)
            {
                echo '<th>'.$title[$output].'</th>';
            }
            echo '<th>&nbsp;</th>';
            echo '</tr>';
            foreach ($frontTest as $frontTest)
            {
                echo '<tr>';
                foreach ($outputs as $output)
                {
                    if ($output == 'alarmdate' || $output == 'recurrencedate')
                    {
                        echo '<td>'.date('d. F Y', strtotime($frontTest->$output)).'</td></tr>';
                    }
                    else
                    {
                        echo '<td>'.$frontTest->$output.'</td>';
                    }
                }
                echo '<td> <a href="'.JRoute::_('index.php?option=com_Test&mid='.$frontTest->id).'">mehr ...</a> </td>';
                echo '</tr>';
            }
            echo '</table>';
        }
    }
    else
    {
        echo $menuNone;
    }
    ?>
    Grues Grazioli
    ------------------------

    www.int-firefighters.com / www.grazioli-web.ch / www.feuerwehr-lachen.ch

  2. #2
    Verbringt hier viel Zeit Avatar von Grazioli
    Registriert seit
    16.08.2006
    Ort
    Lachen SZ/ Schweiz
    Alter
    34
    Beiträge
    658
    Bedankte sich
    35
    Erhielt 139 Danksagungen
    in 128 Beiträgen

    Standard

    Hallo,

    habe schon diverses Versucht, aber immer Ohne Erfolg!

    Mein Problem liegt hauptsächlich an der Strucktur der default.php! Wenn ich in der Komponente, ein Feld leer lasse, und dies in meinem Modul trotzdem aktiviere, dass es im Frontend angezeigt werden soll, erhalte ich eine leere Zeile!

    Wie kann ich die default.php abändern, damit ich auch die leeren Zeile rausbekomme?!

    Anbei zwei Screeshots des Problems!


    Ich bedanke mich für Eure Hilfe!
    Grues Grazioli
    ------------------------

    www.int-firefighters.com / www.grazioli-web.ch / www.feuerwehr-lachen.ch

+ Antworten

Lesezeichen

Berechtigungen

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