【问题标题】:Joomla getting frontend template parameter from backendJoomla 从后端获取前端模板参数
【发布时间】:2014-07-06 11:21:55
【问题描述】:

我正在尝试在我正在使用的模板中创建一个选项,以通过文件夹列表字段选择先前指定的文件夹中的图像,并选择要在图像列表中禁用或不禁用哪些图像。为此,我在 joomla 提供的主 imagelist.php 的基础上制作了一个自定义表单字段,目录参数由 folderlist 字段设置。

我遇到的问题是我无法从管理员面板的模板设置菜单中访问前端模板参数。

我试过这段代码,但它不起作用:

    $app = JFactory::getApplication('site');
    $templ = $app->getTemplate(true);
    $param = $templ->params->get('myparam');
    $this->directory = $param;

它只返回管理模板。

经过一番谷歌搜索,我发现 getApplication 并不是真正从后端显示站点应用程序,从前端显示管理员的应用程序,而是一个选项,说明应该运行一次什么应用程序,并且无法更改在第一次实例之后。

有没有办法对 joomla 提供的参数执行请求,或者我应该检查当前为所需(使用)模板设置参数的数据库?

(我使用的joomla版本是3.3.0)

【问题讨论】:

  • 没关系,我已经使用数据库查询完成了。
  • 嗨,你能在这里回答你自己的问题,然后可能标记为已解决,以将其从系统中删除吗?

标签: joomla parameters get frontend backend


【解决方案1】:

我不确定这是我提供的最佳解决方案,但找不到合适的 joomla!提供了解决方案。对于我剥离数据以获取参数的方式,我相信也有更好的方法来实现它。

以下代码对数据库进行查询,并检索所需的前端模板参数以供以后使用:


   //querying database for parameter

   $db =& JFactory::getDbo();
   $query = $db->getQuery(true);
   $query->select($db->quoteName('params'));
   $query->from($db->quoteName('#__template_styles'));
   $query->where($db->quoteName('template'). ' = ' . $db->quote('myTemplate'). ' AND ' . $db->quoteName('params').' LIKE '.$db->quote('%myParameter%'));
   $db->setQuery($query);

    $param = $db->loadRow();


    //extracting parameter from the result

    $paramTemp = explode(",",$param[0]);

    foreach($paramTemp as $k=>$p):

        $parm[$k] = explode(":",str_replace(array('"'," "),"",$p));
        if($parm[$k][0] == "folderlistParameter") $parameter = $paramTemp[$k][1];

    endforeach;

    //Passing option to filelist 

    $this->directory = "slideshow/".$parameter;         

上面的代码,放在前面:

$this->filter = '\.png$|\.gif$|\.jpg$|\.bmp$|\.ico$|\.jpeg$|\.psd$|\.eps$';

imagelist.php 文件中添加自定义参数的行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多