модуль с формой Repeatable form field type, проблема с переменной $list_templates

Moderator: AlexSmirnov

Locked
Glog1
Joomla! Fledgling
Joomla! Fledgling
Posts: 4
Joined: Mon May 22, 2017 6:29 am

модуль с формой Repeatable form field type, проблема с переменной $list_templates

Post by Glog1 » Mon May 22, 2017 6:39 am

Здравствуйте, пишу простой модуль для вывода ссылок,
Сделал модуль с формой Repeatable form field type
Повторил все как написано в документации
Ссылка на документацию(https://docs.joomla.org/Repeatable_form_field_type)
Example XML Definition

Code: Select all


<field name="list_templates"
	type="repeatable"
	icon="list"
	description="PLG_TINY_FIELD_TEMPLATE_FIELD_ELEMENTS_DESC"
	label="PLG_TINY_FIELD_TEMPLATE_FIELD_ELEMENTS_LABEL"
	default='{"template":["Layout","Simple snippet"],
		"location":["layout1.html","snippet1.html"],
		"description":["HTMLLayout","Simple HTML snippet"]}'>
	<fieldset hidden="true" name="list_templates_modal" repeat="true">
		<field name="template"
			label="PLG_TINY_FIELD_TEMPLATE_FIELD_NAME_LABEL"
			size="30"
			type="text" />
		<field name="location"
			label="PLG_TINY_FIELD_TEMPLATE_FIELD_LOCATION_LABEL"
			description="PLG_TINY_FIELD_TEMPLATE_LOCATION_DESC"
			size="30"
			type="filelist"
			directory="media/editors/tinymce/templates"
			exclude="index.html"
			hide_default="true"
			hide_none="true" />
		<field name="description"
			label="PLG_TINY_FIELD_TEMPLATE_FIELD_DESCRIPTION_LABEL"
			size="30"
			type="textarea" />
	</fieldset>
</field>

Code: Select all

// get the repeatable field value and decode it
$list_hosts 	 = json_decode( $params->get('list_templates'),true);
// loop your result
foreach( $list_templates as $list_templates_idx => $list_template ) {
   // do something clever for each of the templates
}

Проблема в том что переменная $list_templates пустая, в чем может быть причина? и как ее решить?

User avatar
AlexSmirnov
Joomla! Hero
Joomla! Hero
Posts: 2682
Joined: Fri Sep 18, 2009 6:33 pm
Location: United Kingdom
Contact:

Re: модуль с формой Repeatable form field type, проблема с переменной $list_templates

Post by AlexSmirnov » Mon May 22, 2017 7:54 pm

Приветствую. Поле по типу "Repeatable form field type" устарело. Используйте вместо него "Subform form field type".

Glog1
Joomla! Fledgling
Joomla! Fledgling
Posts: 4
Joined: Mon May 22, 2017 6:29 am

Re: модуль с формой Repeatable form field type, проблема с переменной $list_templates

Post by Glog1 » Thu May 25, 2017 12:12 pm

Спасибо за ответ!
Столкнулся со следующей проблемой,
при добавлении поля

Code: Select all

<field name="field-name" type="subform"
    formsource="path/exampleform.xml" multiple="true"
    label="Subform Field" description="Subform Field Description" />
    

в модуле появляется ошибка,

Subform Field
JForm::getInstance could not load file

файл exampleform.xml установлен .

пробовал отключить ошибку, в файл
/libraries/joomla/language/language.php

добавил код

Code: Select all

 libxml_disable_entity_loader(false);
не помогло

можете подсказать в чем проблема?
Очень благодарен за вашу помощь!

главный xml файл

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="1" client="site" method="upgrade">
    <name>mod_seo_link</name>
    <author>Serhiy Biluk</author>
    <version>1.0.0</version>
    <description>mod_seo_link</description>
    <files>
        <filename>mod_seo_link.xml</filename>
        <filename module="mod_seo_link">mod_seo_link.php</filename>
        <filename>index.html</filename>
        <filename>helper.php</filename>
        <filename>tmpl/default.php</filename>
        <filename>tmpl/index.html</filename>
        <filename>patch/exampleform.xml</filename>
        <folder>sql</folder>
        <folder>patch</folder>
        
    </files>
    <languages>
                <language tag="en-GB">language/en-GB.mod_seo_link.ini</language>
		<language tag="en-GB">language/en-GB.mod_seo_link.sys.ini</language>
		<language tag="ru-RU">language/ru-RU.mod_seo_link.ini</language>
                <language tag="ru-RU">language/ru-RU.mod_seo_link.sys.ini</language>
	</languages>
    <config>
        <fields name="params">
            <fieldset name="basic">
<field name="count" type="text" default="10" label="MOD_SEO_LINK_COUNT_LABEL" description="MOD_SEO_LINK_COUNT_DESC" />
<field name="field-name" type="subform"
    formsource="path/exampleform.xml" multiple="true"
    label="Subform Field" description="Subform Field Description" />
            </fieldset>
          </fields>
    </config>
    <install>
     <sql>
         <file driver="mysql" charset="utf8">sql/mysql/install.mysql.utf8.sql</file>
       
     </sql>
</install>
 
<uninstall>
     <sql>
         <file driver="mysql" charset="utf8">sql/mysql/uninstall.mysql.utf8.sql</file>
        
     </sql>
</uninstall>
 
<update> 
    <schemas>
        <schemapath type="mysql">sql/mysql/updates</schemapath> 
	
    </schemas> 
</update>
файл exampleform.xml

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<form>
    <fieldset name="section1" label="Section1">
        <field name="example_text" type="text" label="Example Text" />
        <field name="example_textarea" type="textarea" label="Example Textarea" cols="40" rows="8" />
    </fieldset>
    <fieldset name="section2" label="Section2">
        <field name="example_list" type="list" default="1" class="advancedSelect" label="Example List">
            <option value="1">JYES</option>
            <option value="0">JNO</option>
        </field>
    </fieldset>
</form>
Проблема решилась, указанием пути к файлу /modules/name module/path/to/exampleform.xml

Glog1
Joomla! Fledgling
Joomla! Fledgling
Posts: 4
Joined: Mon May 22, 2017 6:29 am

Re: модуль с формой Repeatable form field type, проблема с переменной $list_templates

Post by Glog1 » Fri May 26, 2017 7:16 am

Подскажите как правильно выводить данные из формы Subform form field type

я вывожу так,

Code: Select all

echo $param->fieldname->fieldname1->example_text ;
echo $param->fieldname->fieldname1->example_textarea;
пробовал в цикле

Code: Select all

<?php foreach ($params as $item) : ?>
  <a href="<?php echo $item->fieldname1->example_textarea; ?>"><?php echo $item->fieldname1->example_text ;?></a>
  
<?php endforeach; ?>
но когда добавляю еще одну форму то

Code: Select all

fieldname1
меняется на

Code: Select all

fieldname0
и в следующей формы

Code: Select all

fieldname2
и тд.
как правильно выводить все значения с формы в цикле?
Image


Locked

Return to “Russian Forum”