2015-11-16 3 views
0

Я создал компонент центра загрузки в joomla с помощью https://www.component-creator.com, и все прошло отлично. Компонент, похоже, не хочет отображать больше элементов, чем 21 из db, что странно, так как у меня есть 24 элемента в базе данных.joomla component wont get new db items

Компонент использует две таблицы. Один для предметов и один для загрузок, которые затем имеют идентификатор для объекта, к которому он подключен.

, так как есть много кода я поставил его на GitHub: https://github.com/strookers/com_dlcenter

это код из модельного слоя:

public function getEmner() 
{ 
    $emner = parent::getItems(); 

    $db = JFactory::getDbo(); 
    $query = $db->getQuery(true); 
    $query 
     ->select($db->quoteName(array('id', 'ordering', 'state', 'checked_out', 'checked_out_time', 'created_by', 'title'))) 
     ->from('`#__dlcenter_emne`') 
     ->order('ordering ASC'); 
    $db->setQuery($query); 
    $emner = $db->loadObjectList(); 

    return $emner; 
} 

public function getDownloads() 
{ 
    $downloads = parent::getItems(); 
    foreach($downloads as $item){ 


     if (isset($item->emneid) && $item->emneid != '') { 
      if(is_object($item->emneid)){ 
       $item->emneid = JArrayHelper::fromObject($item->emneid); 
      } 
      $values = (is_array($item->emneid)) ? $item->emneid : explode(',',$item->emneid); 

      $textValue = array(); 
      foreach ($values as $value){ 
       $db = JFactory::getDbo(); 
       $query = $db->getQuery(true); 
       $query 
         ->select($db->quoteName('title')) 
         ->from('`#__dlcenter_emne`') 
         ->where($db->quoteName('id') . ' = ' . $db->quote($db->escape($value))); 
       $db->setQuery($query); 
       $results = $db->loadObject(); 
       if ($results) { 
        $textValue[] = $results->title; 
       } 
      } 

     $item->emneid = !empty($textValue) ? implode(', ', $textValue) : $item->emneid; 

     } 
    } 

    return $downloads; 
} 

И это с точки зрения слоя:

<div class="neaccordion nevertical"> 
    <?php foreach ($this->emner as $i => $emne) : ?> 
    <section id="<?php echo $emne->title; ?>"> 
     <h3><a href="#<?php echo $emne->title; ?>"><?php echo $emne->title; ?></a></h3> 
     <table class="table table-striped" id = "downloadList" ><tbody> 
     <?php foreach ($this->downloads as $i => $download) : ?> 
      <?php 
      if($download->emneid == $emne->title) :?> 

      <tr> 
       <td style="text-align: left; padding: 0px 0px 0px 10px; vertical-align: middle;"> 
        <h4><?php echo $download->titel; ?></h4> 
       </td> 
       <td style="text-align: right; padding: 0px 10px 0px 0px; vertical-align: middle;"> 
         <?php 
         if (!empty($download->download)): 
          $uploadPath = 'administrator' . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_dlcenter' . DIRECTORY_SEPARATOR . 'images/nordelektro/dlcenter' .DIRECTORY_SEPARATOR . $download->download; 
          echo '<a href="' . JRoute::_(JUri::base() . $uploadPath, false) . '" class="readmore" target="_blank" title="Hent fil" style="color: #fff;">Download</a>'; 
         else: 
          echo $download->download; 
         endif; ?> 
       </td> 
      </tr> 

      <?php endif; ?> 
     <?php endforeach;?> 
      </tbody></table> 
    </section> 
    <?php endforeach;?> 
</div> 

вот некоторые образы БД:

Table for Subject

Table for Downloads

Я понятия не имею, где проблема, так как она отлично работает до тех пор, пункт 22. она, кажется, выходной каждый элемент в базе данных, за исключением тех, которые после пункта 21.

если больше нужна информация, просто спросите.

+0

Может быть, он получает только опубликованные элементы (состояние == 1)? –

+0

Возможно, вы уже это сделали, но попробовали отладку функции getDownloads. – itoctopus

ответ

0

Сверху похоже, что у вас есть проблема с разбиением на страницы или фильтрацией компонентов. Я предполагаю, что вы не видите разбивку на страницы, когда вы превысили около 20 предметов. (ваша база данных показывает, что один элемент находится в состоянии trashed, ваши глобальные настройки, вероятно, будут установлены в 20 элементов, так как это все ваше видение)

Это может быть проблема с вашим компонентом или проблема с вашими глобальными настройками Joomla.

Если это не ваши глобальные настройки Joomla, обратитесь к людям-разработчикам компонентов, они обычно довольно отзывчивы к проблемам в своем продукте.