Как получить параметры компонента?

У меня есть проблема и просто не могу решить ее: – /

Я разрабатываю компонент Joomla с бэкэнд. В backend я устанавливаю параметр, dashboardId , но я не могу получить к ним доступ в представлении. Я всегда получаю data:protected (при сбросе params ). Похоже, мне не разрешен доступ к объекту.

Вот default.xml :

 <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="Dashboard"> <message> <![CDATA[dashboard LAYOUT DESCRIPTION]]> </message> </layout> <fields name="params"> <fieldset name="params"> <field name="dashboardId" type="text" label="Dashboard ID" description="com_dashboard_desc" default="1" > </field> </fieldset> </fields> </metadata> по <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="Dashboard"> <message> <![CDATA[dashboard LAYOUT DESCRIPTION]]> </message> </layout> <fields name="params"> <fieldset name="params"> <field name="dashboardId" type="text" label="Dashboard ID" description="com_dashboard_desc" default="1" > </field> </fieldset> </fields> </metadata> 

Теперь, в view.html.php я пытаюсь получить доступ к параметру следующим образом:

 $app = &JFactory::getApplication(); $params = JComponentHelper::getParams('com_dashboard'); $dashboardId = $params->get('dashboardId'); var_dump($dashboardId); 

Когда я делаю var_dump($dashboardId); Я получаю NULL но когда я сбрасываю $app , я могу видеть dashboardID

всякая помощь будет оценена! благодаря

Related of "Как получить параметры компонента?"

Это более простой способ. Первый импортный помощник компонента Joomla:

 jimport('joomla.application.component.helper'); 

И затем извлеките любой атрибут, который вы хотите:

 $dashboardID = JComponentHelper::getParams('com_dashboard')->get('dashboardID'); 

Приветствую.

 $app = JFactory::getApplication('site'); $componentParams = $app->getParams('com_example'); $param = $componentParams->get('paramName', defaultValue); 

Как и в случае с LoboX, я рекомендую использовать компонентный помощник для получения параметров компонента:

 jimport('joomla.application.component.helper'); // Import component helper library $params = JComponentHelper::getParams(JRequest::getVar('option')); // Get parameter helper (corrected 'JRquest' spelling) $params->get('parameter_name'); // Get an individual parameter 

JRequest::getVar('option') возвращает имя вашего компонента с префиксом com_. Кроме того, похоже, что вы пытаетесь смешивать немного синтаксиса 1.5 / 1.6 в файле конфигурации. Если вы еще этого не видели, попробуйте прочитать версию версии 2.5 . Надеюсь, это поможет!

Это похоже на ответ JT Blum, но в Joomla 3.x JRequest лишен. Это еще один способ получить параметры apllication.

  $app = JFactory::getApplication(); $input = $app ->input; $componentName = $input ->get('option'); $params = JComponentHelper::getParams($componentName); print_r($params); 

У меня была аналогичная проблема. Я только получил данные: защищенный результат, пока не перешел к конфигурации моего компонента и не сохранил его. Хотя в текстовых полях были отмечены значения по умолчанию, Joomla не смог их прочитать, прежде чем нажимать «Сохранить».

Функция помощника для получения объекта Params во всех версиях Joomla 1.5 / 2.5 /3.x

 class myCompoHelper{ public static function getParams($option) { if (version_compare(JVERSION, '1.5', 'g')) { $application = JFactory::getApplication(); if ($application->isSite()) { $params = $application->getParams($option); } else { jimport('joomla.application.component.helper'); $params = JComponentHelper::getParams($option); } } else { jimport('joomla.application.component.helper'); $params = JComponentHelper::getParams($option); } return $params; } } $params=myCompoHelper::getParams('com_mycomponent'); echo $params->get('myParamName',null); 

Начиная с версии 3.1 Joomla в процессе обесценивания всех J классов, эффект материи, версия 4.0 будет обесценивать почти все J классы, рекомендуемый путь отсюда для извлечения компонентов param – это вызов всей функции пространства имен:

 Joomla\CMS\Component\ComponentHelper::getParams('com_dashboard')->get('dashboardID'); 

или, если вы работаете над моделью, вы можете вызвать ключевое слово use , чтобы импортировать файл и использовать класс в документе, например

 use Joomla\CMS\Component\ComponentHelper; function myFunction() { $param = ComponentHelper::getParams('com_dashboard'); $dashboardID = $param->get('dashboardID'); } 

У меня была та же проблема, и решение было таким:

 $input = JFactory::getApplication()->input; $parametername = $input->getInt('parametername'); echo $parametername; 

Это имя параметра в файле default.xml в папке views tmpl. вот xml

 <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="Offers"> <message>This is a component in order to display offers</message> </layout> <state> <name>name</name> <description>description</description> <url addpath="/administrator/components/com_component/elements"> <param name="category_id" section="com_component" type="categoriesmenu" value_field="category_name" label="COM_COMPONENT_CATEGORY_FIELD_SELECT_TITLE" description="COM_COMPONENT_CATEGORY_FIELD_SELECT_TITLE_DESC" /> </url> </state> <fields name="request" > <fieldset name="request" addfieldpath="/administrator/components/com_component/models/fields"> <field name="parametername" type="category" label="category" required="true" description="Perigrafh" /> </fieldset> </fields> </metadata>