+ Antworten
Ergebnis 1 bis 4 von 4

Thema: keine Pagination in eigener Komponente

  1. #1
    Neu an Board Avatar von axl-g
    Registriert seit
    19.11.2006
    Ort
    Neustadt an der Weinstraße
    Beiträge
    91
    Bedankte sich
    18
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard keine Pagination in eigener Komponente

    Joomla!-Version: Joomla! 3.8.11 Stable
    Joomla!-Plattform-Version: Joomla Platform 13.1.0 Stable
    PHP-Version: 7.1.20
    Site: mobile.graf-nutzfahrzeuge.com
    diesen Links folgen: GDV / Transporter

    Ich verwende eine Komponente, die ich ursprünglich mal für 1.5 geschrieben und dann für 2.5 neu aufgesetzt habe. Nach diversen Anpassungen läuft sie nun auch auf 3.8, aber die Pagination macht mir Probleme.
    Der Footer wird mir zwar angezeigt und liefert beim Anklicken auch die richtigen Werte, aber die Liste wird einfach nicht umgebrochen.
    Ich habe die alte Pagination rausgeschmissen und neu eingesetzt, wobei ich mich nach dieser Anleitung gerichtet habe: codingace.com/joomla-extdev/implementing-pagination-on-the-list-view.
    Ohne Erfolg - was mache ich falsch?

    fahrzeuge.php:
    PHP-Code:
    <?php

    jimport
    ('joomla.application.component.modellist');

    class 
    GDV3ModelFahrzeuge extends JModelList {
        public function 
    __construct($config = array()) {
            
    $config['filter_fields'] = array(
                
    'Interne_Nummer',
                
    '...'
            
    );
            
    parent::__construct($config);
        }
        
        protected function 
    populateState($ordering null$direction null) {
            
    //für Sortierung:
            
    parent::populateState('marke_modell''ASC');
            
            
    //für pagination:        
            
    $app JFactory::getApplication();
            
    $limit $app->getUserStateFromRequest('global.list.limit''limit'$app->get('list_limit'));
            
    $this->setState('list.limit'$limit);
            
    $limitstart $app->getUserStateFromRequest('limitstart''limitstart'0);
            
    $this->setState('list.start'$limitstart);        
        }
        
        public function 
    getFahrzeugliste() {
            
    $this->items $this->get('Liste');
            
    $fahrzeugliste $this->items;
            return 
    $fahrzeugliste;
        }

        public function 
    getItems() {
            
    $db $this->getDbo();
            
    $query $db->getQuery(true);
            
    $query->from('#__autos');
            
    $query->select('id');
            
    $query->select('Interne_Nummer');
            
    //...
            
    $sort $this->getState('list.ordering');
            
    $order $this->getState('list.direction');
            foreach (
    $this->filter_fields as $filter_field) {
                        
    $query->order($filter_field ' asc');
            }
            
    $db->setQuery($query);
            
    $result $db->loadObjectlist();
            
    $items $result;
            return 
    $items;
        }
    }
    view.html:
    PHP-Code:
    <?php

    class GDV3ViewFahrzeuge extends JViewLegacy {

      protected 
    $items;
      protected 
    $state;
      protected 
    $liste;
      
      function 
    display($tpl null) {   
        
    $this->items        $this->get('Items');
        
    $state        $this->get('State');
        
    $this->sortDirection $state->get('list.direction');
        
    $this->sortColumn $state->get('list.ordering');
        
    $this->pagination    $this->get('Pagination');    
            
    $model $this->getModel();       
            
    $this->requested_fahrzeugart=$model->getfahrzeugart();
            
    $this->fahrzeugliste $this->get('fahrzeugliste'); 
        
    parent::display($tpl);        
      }
    }
    default:
    PHP-Code:
    <?php
    $base 
    JURI::base();
    JFactory::getDocument()->addScript($base 'components/com_gdv3/scripts/jsscript.js');
    JFactory::getDocument()->addStylesheet($base 'components/com_gdv3/styles/styles.css');
    JFactory::getDocument()->addStylesheet($base 'components/com_gdv3/styles/print.css''text/css''print');
    JHtml::_('behavior.tooltip');
    $nullDate JFactory::getDbo()->getNullDate();
    $requested_fahrzeugart $this->requested_fahrzeugart;
    if (
    $this->items) {
    ?>
    <form id="adminForm" method="post" name="adminForm">
        <table>
            <tr>
            ...
            </tr>
            <?php
            
    foreach ($this->items as $i => $item) :
            
    //...
            
    $link JURI::current() . '?view=fahrzeug&Nr=' $item->Interne_Nummer;
            
    //...
            
    ?>
            <tr>
            <td>
            <?php
            
    echo '<a href="' $link '">' $item->Interne_Nummer '</a>';
            
    ?>
            </td>
            ...
            </tr>
    <?php endforeach; ?>
            <tfoot>
                <tr>
                    <td colspan="<?php echo isset($this->items[0]) ? count(get_object_vars($this->items[0])) : 10?>">
    <?php echo $this->pagination->getListFooter(); ?>
                    </td>
                </tr>
            </tfoot>
        </table>
        <input type="hidden" name="filter_order" value="<?php echo $this->sortColumn?>" />
        <input type="hidden" name="filter_order_Dir" value="<?php echo $this->sortDirection?>" />
    </form>
    <?php
    } else {      
        
    $link JRoute::_("index.php?option=com_gdv3&view=gdv3") . '&fehler=leerefahrzeugart&fahrzeugart=' $requested_fahrzeugart;     
        
    header("Location:" $link);
    }
    Geändert von axl-g (09.08.2018 um 16:49 Uhr)

  2. #2
    Gehört zum Inventar
    Registriert seit
    06.03.2013
    Ort
    /dev/random
    Beiträge
    6.190
    Bedankte sich
    134
    Erhielt 2.316 Danksagungen
    in 2.182 Beiträgen

    Standard

    view.html:
    PHP-Code:
      $state$this->get('State'); 
    ändern in
    PHP-Code:
      $this->state$this->get('State'); 
    Gruß FINWICK
    ↶ Danke Button nutzen, wenn es geholfen hat - Kein Suport via PN

  3. #3
    Neu an Board Avatar von axl-g
    Registriert seit
    19.11.2006
    Ort
    Neustadt an der Weinstraße
    Beiträge
    91
    Bedankte sich
    18
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    Ergebnis:

    0 - Call to a member function get() on null

    Ich hab dann mal versucht:
    PHP-Code:
    $this->state        $this->get('State');
    $state $this->state
    Dann ging es wieder, aber immer noch keine Pagination.

  4. #4
    Neu an Board Avatar von axl-g
    Registriert seit
    19.11.2006
    Ort
    Neustadt an der Weinstraße
    Beiträge
    91
    Bedankte sich
    18
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    Ist erledigt, ich hatte noch eine alte "function getListQuery()". Hab die Funktionalität jetzt von der getItems ind die getListQuery genommen und jetzt funktioniert Alles. Komisch dass, das mit 2.5 funktioniert hat und mit 3.8 nicht mehr.

+ Antworten

Stichworte

Berechtigungen

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