0

在https://www.component-creator.com的帮助下,我在 joomla 中制作了一个下载中心组件,到目前为止一切正常。该组件似乎不想显示数据库中超过 21 个的项目,这很奇怪,因为我在数据库中有 24 个项目。

该组件使用两个表。一个用于主题,一个用于下载,然后具有它所连接的主题的 id。

因为有很多代码我把它放在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>

这是数据库的一些图像:

主题表

下载表

我不知道问题出在哪里,因为它在第 22 项之前工作正常。它似乎输出了数据库中的每个项目,除了第 21 项之后的项目。

如果需要更多信息,请询问。

4

1 回答 1

0

从顶部看,您的分页或组件过滤似乎有问题。我假设一旦您超过大约 20 个项目,您就不会看到分页。(您的数据库显示一个项目处于垃圾状态,您的全局设置可能设置为 20 个项目,因为这就是您所看到的)

这可能是您的组件有问题,也可能是您的 Joomla 全局设置有问题。

如果不是您的 Joomla 全局设置,请咨询组件创建者,他们通常对产品中的问题相当敏感。

于 2015-11-30T02:28:43.197 回答