2011-01-11 3 views
1

Hinzufügen Dies ist das Skript, das ich ein Akkordeon in meiner Joomla Website anzuzeigen bin mit:Variablen in JavaScript in 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; 
    } 
} 

ich diese drei Werte in der templateDetails.xml Datei als Benutzereingabe aufgerufen werden soll.

    slideNum: true,     
        autoStart: true, 
        slideInterval: 4000 

Wie dies in der templateDetails.xml Datei:

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

Wie kann ich dies tun? Was wird die genaue Syntax für das gleiche sein.

Ich bin sehr neu Programmierung und speziell auf JavaScript.

Bitte helfen.

Antwort

2

Versuchen Sie folgendes:

$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); 
    "; 
+0

Sie sind cool. Danke für die Antwort. Das hat aus der Box funktioniert. Noch einmal vielen Dank. –