+ Antworten
Ergebnis 1 bis 10 von 10

Thema: Pagination hinzufügen in Modul - nicht so einfach wie gedacht

  1. #1
    War schon öfter hier
    Registriert seit
    13.02.2008
    Beiträge
    233
    Bedankte sich
    58
    Erhielt 26 Danksagungen
    in 23 Beiträgen

    Rotes Gesicht Pagination hinzufügen in Modul - nicht so einfach wie gedacht

    hallo

    Ich versuch seit Stunden eine Seitengenerierung in einem Modul hinzukriegen. Dieses englische Dokument von Joomla bringt mich noch zum Wahnsinn.

    http://docs.joomla.org/Using_JPagina...your_component

    kann mir jemand kurz Hilfestellung geben was nun wirklich notwendig ist in einem simplen Modul. Muss ich wirklich einen so komplexen Datenbank-Call machen wie ff. und vor allem was ist davon nun eine Konstante und was sind die zu ersetzenden Variablen. Scheint wohl nur für Profis geschrieben zu sein

    Grüsse

    Code:
    $db =& JFactory::getDBO();
    $lim   = $mainframe->getUserStateFromRequest("$option.limit", 'limit', 14, 'int'); //I guess getUserStateFromRequest is for session or different reasons
    $lim0  = JRequest::getVar('limitstart', 0, '', 'int');
    $db->setQuery('SELECT SQL_CALC_FOUND_ROWS x, y, z FROM jos_content WHERE x',$lim0, $lim);
    $rL=&$db->loadAssocList();
    if (empty($rL)) {$jAp->enqueueMessage($db->getErrorMsg(),'error'); return;}  
    else {
    ////Here the beauty starts
    $db->setQuery('SELECT FOUND_ROWS();');  //no reloading the query! Just asking for total without limit
    jimport('joomla.html.pagination');
    $pageNav = new JPagination( $db->loadResult(), $lim0, $lim );
    foreach($rL as $r) {
    //your display code here
    }
    echo $pageNav->getListFooter(  ); //Displays a nice footer
    -> Ich ruf den Inhalt einer Komponente, Mtree, ab.
    "Höre niemals auf, anzufangen. Aber fange niemals an, aufzuhören."

    „Wer glaubt etwas zu sein, hat aufgehört etwas zu werden!“
    Sokrates

  2. #2
    a.h.
    Gast

    Standard

    Steht doch da, dass das für eine Komponente gedacht ist, nicht für ein Modul.

  3. #3
    Moderator Avatar von time4mambo
    Registriert seit
    11.12.2006
    Ort
    76646 Bruchsal
    Alter
    54
    Beiträge
    14.367
    Bedankte sich
    456
    Erhielt 2.978 Danksagungen
    in 2.796 Beiträgen

    Standard

    in your component
    Komponenten und Module sind zwei völlig verschiedene Sachen. Kein Wunder, das du mit der Anleitung nicht sehr glücklich geworden bist
    Was genau möchtest du denn machen?


    Axel
    Schulungen, Webentwicklung: time4mambo
    (Video-)Tutorials: time4joomla

  4. Erhielt Danksagungen von:


  5. #4
    War schon öfter hier
    Registriert seit
    13.02.2008
    Beiträge
    233
    Bedankte sich
    58
    Erhielt 26 Danksagungen
    in 23 Beiträgen

    Standard

    hallo

    Ich möchte einen Parameter Anzahl Einträge pro Seite einbauen so dass eine Nummerierung und Seitengenerierung möglich wird.

    Wenn wir von einem einfachen Modul in Joomla ausgehen würden, z.B. dem Modul mod_sections (Bereiche).

    dies beinhaltet die default.php
    PHP-Code:
    <?php // no direct access
    defined('_JEXEC') or die('Restricted access'); ?>
    <ul class="sections<?php echo $params->get('moduleclass_sfx'); ?>"><?php
    foreach ($list as $item) :
    ?>
    <li>
    <a href="<?php echo JRoute::_(ContentHelperRoute::getSectionRoute($item->id)); ?>">
    <?php echo $item->title;?></a>
    </li>
    <?php endforeach; ?>
    </ul>
    die mod_sections.php
    PHP-Code:
    /// no direct access
    defined('_JEXEC') or die('Restricted access');
    // Include the syndicate functions only once
    require_once (dirname(__FILE__).DS.'helper.php');
    $list modSectionsHelper::getList($params);
    if (!
    count($list)) {
        return;

    require(
    JModuleHelper::getLayoutPath('mod_sections')); 
    und die helper.php
    PHP-Code:
    /// no direct access
    defined('_JEXEC') or die('Restricted access');

    require_once (
    JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php');
    class 
    modSectionsHelper
    {
        function 
    getList(&$params)
        {
            global 
    $mainframe;
            
    $db        =& JFactory::getDBO();
            
    $user    =& JFactory::getUser();
            
    $count    intval($params->get('count'20));
            
    $contentConfig     = &JComponentHelper::getParams'com_content' );
            
    $access    = !$contentConfig->get('show_noauth');
            
    $gid         $user->get('aid'0);
            
    $now        date('Y-m-d H:i:s'time() + $mainframe->getCfg('offset') * 60 60);
            
    $nullDate    $db->getNullDate();
            
    $query 'SELECT a.id AS id, a.title AS title, COUNT(b.id) as cnt' .
                
    ' FROM #__sections as a' .
                
    ' LEFT JOIN #__content as b ON a.id = b.sectionid' .
                (
    $access ' AND b.access <= '.(int) $gid '') .
                
    ' AND ( b.publish_up = '.$db->Quote($nullDate).' OR b.publish_up <= '.$db->Quote($now).' )' .
                
    ' AND ( b.publish_down = '.$db->Quote($nullDate).' OR b.publish_down >= '.$db->Quote($now).' )' .
                
    ' WHERE a.scope = "content"' .
                
    ' AND a.published = 1' .
                (
    $access ' AND a.access <= '.(int) $gid '') .
                
    ' GROUP BY a.id '.
                
    ' HAVING COUNT( b.id ) > 0' .
                
    ' ORDER BY a.ordering';
            
    $db->setQuery($query0$count);
            
    $rows $db->loadObjectList();
            return 
    $rows;
        }

    Wie oder wo müsste man denn da ansetzen um die automatische Seitengenerierung zu implementieren wenn wir in der xml den Parameter $anzahl_bereiche_proS für den User zur Definition hätten?
    "Höre niemals auf, anzufangen. Aber fange niemals an, aufzuhören."

    „Wer glaubt etwas zu sein, hat aufgehört etwas zu werden!“
    Sokrates

  6. #5
    War schon öfter hier
    Registriert seit
    13.02.2008
    Beiträge
    233
    Bedankte sich
    58
    Erhielt 26 Danksagungen
    in 23 Beiträgen

    Standard

    hi

    Dann nehm ich mal an dass Joomla keine interne Library zur Verfügung stellt und ich die Seitengenerierung mit php selbst erstellen muss.

    Habt jemand ev. einen Tip wie dies am einfachsten zu realisieren ist?
    Diverse Pagination-Scripts zu integrieren versucht aber ohne Erfolg.

    Thanks anyway
    "Höre niemals auf, anzufangen. Aber fange niemals an, aufzuhören."

    „Wer glaubt etwas zu sein, hat aufgehört etwas zu werden!“
    Sokrates

  7. #6
    Andreas H.
    Gast

    Standard

    Hallo,
    @kilik: Ist Deine Anfrage noch aktuell?
    Selbstverständlich ist es möglich, in einem Modul eine Pagination unterzubringen.
    Besonders mit dem Code, den Du aus dem Tutorial gepostet hast. Dieser ist DB-seitig sehr effizient, weil im Vergleich zu den anderen Pagination-Ansätzen nur ein effektives query abgesetzt wird. Das zweite ist eine schlichte Abfrage aus dem im ersten query ermittelten Ergebnis, aber ohne 'limit' Vorgaben.

    Gruß
    Andreas

  8. #7
    Neu an Board
    Registriert seit
    29.08.2011
    Beiträge
    1
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo zusammen,

    ich muss diesen Beitrag mal nach oben holen, da er genau das Problem darstellt, vor dem ich stehe. Wie ist es möglich in einem Modul die pagination einzubinden. Bislang ist dies nicht von Erfolg bei mir gekrönt gewesen.
    Ich spare mir jetzt den gesamten Code hier rein zuposten, letztendlich unterscheidet er sich von dem Code oben lediglich durch die db Abfrage...

    Wäre wirklich klasse, wenn mir hierzu jemand helfen könnte.

    Gruß, Thomas

  9. #8
    War schon öfter hier Avatar von curacker
    Registriert seit
    19.04.2007
    Ort
    Berlin
    Beiträge
    131
    Bedankte sich
    8
    Erhielt 18 Danksagungen
    in 17 Beiträgen

    Standard

    Zitat Zitat von Andreas H. Beitrag anzeigen
    Hallo,
    @kilik: Ist Deine Anfrage noch aktuell?
    Selbstverständlich ist es möglich, in einem Modul eine Pagination unterzubringen.
    Besonders mit dem Code, den Du aus dem Tutorial gepostet hast. Dieser ist DB-seitig sehr effizient, weil im Vergleich zu den anderen Pagination-Ansätzen nur ein effektives query abgesetzt wird. Das zweite ist eine schlichte Abfrage aus dem im ersten query ermittelten Ergebnis, aber ohne 'limit' Vorgaben.

    Gruß
    Andreas
    Hast du noch noch was genaueres? Stehe grad auch vor der Aufgabe, die Pagination in einem Modul unterzubringen.

    Hat jemand das inzwischen abgecheckt?

  10. #9
    Rumburack
    Gast

    Standard

    *einfach mal gelöscht*
    Geändert von Rumburack (16.02.2012 um 12:48 Uhr)

  11. #10
    War schon öfter hier
    Registriert seit
    23.09.2009
    Beiträge
    235
    Bedankte sich
    0
    Erhielt 62 Danksagungen
    in 59 Beiträgen

    Standard

    Zitat Zitat von Rumburack Beitrag anzeigen
    Wenn dann machs mit 1.7 bzw bald mit 2.5.
    Und wie da?
    Tell 'em what they want to hear. That will keep them coming back for more. I 've got some for everyone.

+ Antworten

Lesezeichen

Berechtigungen

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