【问题标题】:Adding Variables to JavaScript in Joomla在 Joomla 中向 JavaScript 添加变量
【发布时间】:2011-06-07 01:48:23
【问题描述】:

这是我用来在我的 Joomla 网站中显示手风琴的脚本:

<?php
defined('JPATH_BASE') or die();
gantry_import('core.gantryfeature');
class GantryFeatureAccordion extends GantryFeature {
    var $_feature_name = 'accordion';
    function init() {
        global $gantry;
        if ($this->get('enabled')) {
            $gantry->addScript('accordion.js');
            $gantry->addInlineScript($this->_accordion());
        }
    }
    function render($position="") {
    ob_start();
    ?>
        <div id="accordion">
            <dl>
            <?php foreach (glob("templates/rt_gantry_j15/features/accordion/*.php") as $filename) {include($filename);} ?>
            </dl>
        </div>
    <?php
    return ob_get_clean();
    }
    function _accordion() {
        global $gantry;
        $js = "
            jQuery.noConflict();
                (function($){   
                $(document).ready(function () {
                    $('#accordion').easyAccordion({ 
                        slideNum: true,                 
                        autoStart: true, 
                        slideInterval: 4000
                    });
                });
            })(jQuery);
        ";
        return $js;
    }
}

我想在 templateDetails.XML 文件中调用这三个值作为用户输入。

                    slideNum: true,                 
                    autoStart: true, 
                    slideInterval: 4000

在 templateDetails.xml 文件中像这样:

<param name="accordion" type="chain" label="ACCORDION" description="ACCORDION_DESC">
    <param name="slideNum" type="text" default="true" label="SlideNumber" class="text-short" />
    <param name="autoStart" type="text" default="true" label="AutoStart" class="text-short" />
    <param name="slideinterval" type="text" default="4000" label="SlideInterval" class="text-short" />
</param>

我该怎么做?相同的确切语法是什么。

我对 JavaScript 非常陌生。

请帮忙。

【问题讨论】:

    标签: php jquery xml variables joomla


    【解决方案1】:

    试试这个:

        $cfgParams = &JComponentHelper::getParams( 'com_mycomponent' );
        $js = "
            jQuery.noConflict();
                (function($){   
                $(document).ready(function () {
                    $('#accordion').easyAccordion({ 
                        slideNum: ".$cfgParams->get('slideNum', 'true').",                 
                        autoStart: ".$cfgParams->get('autoStart', 'true').", 
                        slideInterval: ".$cfgParams->get('slideInterval', '4000')."
                    });
                });
            })(jQuery);
        ";
    

    【讨论】:

    • 你很酷。谢谢回复。开箱即用。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多