将搜索 DIV 添加到 Joomla 3.0 组件视图时 CSS 丢失

Posted

技术标签:

【中文标题】将搜索 DIV 添加到 Joomla 3.0 组件视图时 CSS 丢失【英文标题】:CSS is Lost when adding Search DIV to Joomla 3.0 Component View 【发布时间】:2013-12-18 17:26:41 【问题描述】:

我发现当此代码 sn-p 添加到我正在创建的自定义组件的视图中时,我会丢失管理面板中的默认样式。

        <div class="btn-group pull-right hidden-phone">
            <label for="limit" class="element-invisible"><?php echo JText::_('JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC');?></label>
            <?php echo $this->pagination->getLimitBox(); ?>
        </div>

关于为什么会发生这种情况的任何想法?


我还发现这段代码在同一个视图上也放弃了样式:

&lt;?php echo $this-&gt;pagination-&gt;getListFooter(); ?&gt;

这让我觉得它与$this-&gt;pagination 有关,这通常是为视图定义的?


好的,再更新一次……

我现在已经清除了这些样式问题,并发现根本问题与 $this 变量有关。我有另一个 PHP 调用,视图应该从数据库中提取数据,如下所示:

<?php foreach ($this->items as $i => $item) :
            $ordering   = ($listOrder == 'a.ordering');
            $canCreate  = $user->authorise('core.create',       'com_bbmaps');
            $canEdit    = $user->authorise('core.edit',         'com_bbmaps');
            $canCheckin = $user->authorise('core.manage',       'com_bbmaps');
            $canChange  = $user->authorise('core.edit.state',   'com_bbmaps');
            ?>

但我又看到了错误-->

Warning: Invalid argument supplied for foreach()

最后我的问题是我在哪里定义$this 相关的数据库?


我看到$this 定义的唯一位置是在controller.php 文件中:

public function display($cachable = false, $urlparams = false)

    require_once JPATH_COMPONENT.'/helpers/componenthelper.php';

    $view       = JFactory::getApplication()->input->getCmd('view', 'userdatas');
    JFactory::getApplication()->input->set('view', $view);

    parent::display($cachable, $urlparams);

    return $this;

如您所见,它引用了userdatas 视图。我从userdatas 视图创建了一个名为photos 的新视图。如何告诉photos 视图从新数据库中提取$this

【问题讨论】:

【参考方案1】:

请检查您是否关闭了所有打开的标签。 当我忘记关闭一些以前打开的标签或其他标签时,我遇到了同样的问题。 有时,某些编辑器的自动完成功能会错误地将关闭替换为 a。

-- 编辑--

如果您没有启用 php.ini display_errors 指令,还请检查您的服务器的错误日志。您的组件中可能存在您在页面上看不到的错误。当出现“致命”PHP 错误时,执行将停止,进一步的渲染也会停止。

-- 第二次编辑--

您可以尝试替换以下内容:

<?php foreach ($this->items as $i => $item) :

与:

<?php if (!empty($this->items) :
          foreach ($this->items as $i => $item) :

然后在“endforeach”之后关闭“if”:

    endforeach;
endif;

这应该可以解决“无效参数”错误。

P.S.:在这种情况下,$this 很可能对应于模板对象,该对象具有分配给它使用的所有属性。

【讨论】:

感谢您的建议。我已经从工作正常的预先存在的管理视图中复制了这个视图,所以它不应该有标签的语法错误。我已经用更多细节更新了问题,这可能有助于更好地理解问题。 感谢您提供更多信息。我检查了 apache 错误日志,没有任何内容。我宁愿处理$this 变量的根本问题,而不是删除每个关闭的项目。我在controller.php 中找到了更多相关代码,并使用该信息更新了问题。

以上是关于将搜索 DIV 添加到 Joomla 3.0 组件视图时 CSS 丢失的主要内容,如果未能解决你的问题,请参考以下文章

Joomla 将组件添加到数据库

joomla:将上传器添加到组件后端

将文件上传器添加到 Joomla 管理组件

joomla 3.0 站点组件访问控制

如何将文件上传器字段添加到 Joomla 管理组件?

Joomla 3.0 缺少菜单参数