joomla组件不会获得新的数据库项目

时间:2015-11-16 07:39:34

标签: php mysql joomla joomla-component joomla3.4

我在https://www.component-creator.com的帮助下在joomla中创建了一个下载中心组件,直到现在一切正常。该组件似乎不想再显示来自db的21项,这很奇怪,因为我在数据库中有24个项目。

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

因为有很多代码我把它放在github上: https://github.com/strookers/com_dlcenter

这是模型层的代码:

SELECT
    tenant
    ,(SUM(CASE WHEN YEAR(DATE) = @Year1 THEN sales END)) AS 'Year1'
    ,(SUM(CASE WHEN YEAR(DATE) = @Year2 THEN sales END)) AS 'Year2'
    ,(SUM(CASE WHEN YEAR(DATE) = @Year3 THEN sales END)) AS 'Year3'
    ,(SUM(CASE WHEN YEAR(DATE) = @Year4 THEN sales END)) AS 'Year4'
    ,(SUM(CASE WHEN YEAR(DATE) = @Year5 THEN sales END)) AS 'Year5'
FROM
    TenantSales

这是来自视图层:

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;
}

这是db的一些图像:

Table for Subject

Table for Downloads

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

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

1 个答案:

答案 0 :(得分:0)

在顶部看起来您的分页或组件过滤存在问题。我猜你一旦超过约20件物品就没有看到分页。 (您的数据库显示一个项目处于已删除状态,您的全局设置可能设置为20个项目,因为这是您所看到的全部内容)

这可能是您的组件出现问题,或者是您的Joomla全局设置存在问题。

如果不是您的Joomla全局设置,请与组件创建人员核实他们通常对其产品中的问题做出相应的响应。