Форум программистов, компьютерный форум, киберфорум
Joomla
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 23.02.2015
Сообщений: 4
1

Возможность добавлять и удалять поля в модуле

25.02.2015, 19:49. Просмотров 2146. Ответов 6
Метки нет (Все метки)

Уважаемые специалисты, помогите разобраться:
Нужно реализовать в модуле возможность добавления и удаления полей из админки. Примерно так:
Возможность добавлять и удалять поля в модуле

То есть если нужно три блока, то создам три, нужно больше - нажал кнопку и добавил еще, так же и с удалением.
Вычитал про Repeatable form field type но так и не понял как его грамотно прикрутить. Подскажите способ рализации, если такой возможен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2015, 19:49
Ответы с готовыми решениями:

Дополнительные поля в модуле
В модуле нужно вывести интротекст статьи. Есть проблема. Вместо значения доп.поля выводится код...

Как добавлять и удалять элементы из очереди?
Не нашел методы Push и Pop для очереди.

Как удалять и добавлять вертексы в шейдер?
Всё копаюсь с морфингом. Есть необходмость в определённые момент добавлять некоторые НОВЫЕ грани в...

Как в datagrid добавлять и удалять колонки
Как можно сделать динамическое добавление и удаление колонок в datagrid? В devexpress есть...

6
292 / 168 / 29
Регистрация: 16.09.2012
Сообщений: 369
25.02.2015, 22:27 2
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

В долгожданном вчерашнем обновлении джумлы, наконец, поправили все баги с полем рипитбл. Зачем что-то изобретать, пользуйтесь ей, чрезвычайно удобная фича.
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<field name="test" type="repeatable" icon="list"
        label="Test" description="Test descr"
        default=""
        maximum="5">
    <fieldset hidden="true" repeat="true">
        <field name="test_color" type="color" default="#eee"
            label="color"  description="test_color" />
 
       <field name="test_tag" type="tag"
            label="JTAG" description="test_tag" mode="nested"
            multiple="true" />
 
        <field name="test_list" type="list" default="1"
            label="test_list" description="test_list" >
            <option value="1">JYES</option>
            <option value="0">JNO</option>
        </field>
 
        <field name="test_text" type="text"
            label="test_text" description="test_text" />
 
        <field name="test_textarea" type="textarea"
            label="textarea"  width="100" />
 
        <field name="test_radio" default="0" type="radio"
            label="test_radio" description="test_radio">
            <option value="1">JYES</option>
            <option value="0">JNO</option>
        </field>
 
        <field name="test_checkbox1" type="checkbox"
            label="checkbox1" description="test_checkbox1"  />
 
        <field name="test_checkboxes" type="checkboxes"
            label="checkboxes" description="test_checkboxes" >
            <option value="a">A</option>
            <option value="b">B</option>
            <option value="c">C</option>
            <option value="d">D</option>
        </field>
 
        <field name="test_media" type="media" directory=""
            label="media" description="test_media"/>
 
    </fieldset>
</field>
1
0 / 0 / 0
Регистрация: 23.02.2015
Сообщений: 4
26.02.2015, 04:56  [ТС] 3
Спасибо, но как теперь получить данные? Обычный $params->get уже ведь не подходит, наверняка joomla создает массив или что то в этом роде
0
292 / 168 / 29
Регистрация: 16.09.2012
Сообщений: 369
26.02.2015, 10:06 4
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

Stac, данные хранятся в виде json-массива
PHP
1
2
3
4
$test = json_decode($params->get('test'));
echo "<pre>";
print_r($test);
echo "</pre>";
2
0 / 0 / 0
Регистрация: 23.02.2015
Сообщений: 4
03.03.2015, 15:11  [ТС] 5
Прошу прощения за оффтоп, но никак не могу придумать как обойти два массива циклами и записать значения в div таким образом:
Имеется конфигурационный файл:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<fields name="params">
            <fieldset name="basic">
                <field name="advantages" type="repeatable" icon="list"
                label="Test" description="Test descr"
                default=""
                maximum="6">
                <fieldset hidden="true" repeat="true">
 
                <field name="advantages_title" type="text"
                label="Заголовок" description="Заголовок" />
 
                <field name="advantages_number" type="text"
                label="Описание"  description="Описание" />
 
                </fieldset>
                </field>
            </fieldset>
        </fields>
Нужно вывести это так
Возможность добавлять и удалять поля в модуле


Пока соорудил так
PHP
1
2
3
4
5
6
7
8
9
10
$main = json_decode($params->get('advantages')); 
 
foreach ($main->advantages_title as $title) {
   echo "<div>";
   echo "<p>$title</p>";
       foreach ($main->advantages_number as $number) {
           echo "<p>$number</p>";
       }       
    echo "</div>";   
 }
но вложеннный foreach выполняет все итерации а надо чтобы по одной
0
292 / 168 / 29
Регистрация: 16.09.2012
Сообщений: 369
03.03.2015, 20:31 6
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

Если по-простому, без проверок на пустоту и типы данных, то
PHP
1
2
3
4
5
6
7
8
$main = json_decode($params->get('advantages')); 
 
foreach ($main->advantages_title as $k => $title) {
    echo "<div>";
    echo "<p>$title</p>";
    echo "<p>".$main->advantages_number[$k]."</p>";
    echo "</div>";   
}
2
0 / 0 / 0
Регистрация: 23.02.2015
Сообщений: 4
04.03.2015, 15:09  [ТС] 7
StopSmell, огромное вам спасибо, вы очень помогли
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2015, 15:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как правильнее добавлять и удалять заголовки сообщений?
Как правильнее добавлять и удалять заголовки сообщений: делать экземпляр HttpRequestMessage или...

Объясните как удалять, добавлять и сортировать строки
подскажите, пожалуйста,как удалять, добавлять и сортировать строки? мне казалось,что через...

Добавлять/удалять элементы с разных концов очереди
Как создать очередь в си и работать с ней? Необходимо добавлять/удалять элементы с разных концов

Грамотно добавлять, удалять, обновлять при foreach
Добрый день. Приложение раз в две минуты синхронизирует данные с сервера. Если есть изменения,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.