/** * Returns JForm object representing extension's parameters * * @param string Extension name * @return JForm Extension's parameters */ function &getExtParamsForm($option) { static $forms; if (!isset($forms)) { $forms = array(); } if (!isset($forms[$option])) { $forms[$option] = new JForm($option, array('control' => 'params')); // Set the extension's parameters renderer $pxml = SEFTools::getExtParamsXML($option); if (is_a($pxml, 'SimpleXMLElement')) { $forms[$option]->load($pxml); } else { if (is_array($pxml) && count($pxml) > 0) { for ($i = 0, $n = count($pxml); $i < $n; $i++) { if (is_a($pxml[$i], 'SimpleXMLElement')) { $forms[$option]->load($pxml[$i]); } } } } // Set the default parameters renderer $xml = SEFTools::getExtsDefaultParamsXML(); if (is_a($xml, 'SimpleXMLElement')) { $forms[$option]->load($xml); } else { if (is_array($xml) && count($xml) > 0) { for ($i = 0, $n = count($xml); $i < $n; $i++) { if (is_a($xml[$i], 'SimpleXMLElement')) { $forms[$option]->load($xml[$i]); } } } } // Bind data $forms[$option]->bind(self::getExtParams($option)); } return $forms[$option]; }
/** * Returns JParameter object representing extension's parameters * * @param string Extension name * @return JParameter Extension's parameters */ function &getExtParams($option) { $db =& JFactory::getDBO(); static $exts, $params; if (!isset($exts)) { $query = "SELECT `file`, `params` FROM `#__sefexts`"; $db->setQuery($query); $exts = $db->loadObjectList('file'); } if (!isset($params)) { $params = array(); } if (!isset($params[$option])) { $data = ''; if (isset($exts[$option . '.xml'])) { $data = $exts[$option . '.xml']->params; } $params[$option] = new JParameter($data); // Set the extension's parameters renderer $pxml =& SEFTools::getExtParamsXML($option); if (is_a($pxml, 'JSimpleXMLElement')) { $params[$option]->setXML($pxml); } else { if (is_array($pxml) && count($pxml) > 0) { for ($i = 0, $n = count($pxml); $i < $n; $i++) { if (is_a($pxml[$i], 'JSimpleXMLElement')) { $params[$option]->setXML($pxml[$i]); } } } } // Set the default parameters renderer $xml =& SEFTools::getExtsDefaultParamsXML(); if (is_a($xml, 'JSimpleXMLElement')) { $params[$option]->setXML($xml); } else { if (is_array($xml) && count($xml) > 0) { for ($i = 0, $n = count($xml); $i < $n; $i++) { if (is_a($xml[$i], 'JSimpleXMLElement')) { $params[$option]->setXML($xml[$i]); } } } } } return $params[$option]; }