Astra.CMS

 

 

Форум » Приемы конструирования и интеграции дизайна

Дополнительные поля

Стоит ли открыть форум? Напишите об этом по адресу admin@astracms.ru написав в теме "открыть форум". Я не автор движка и поэтому не могу консультировать так, как это делал бы он, но возможно у нас получится совместно находить решения.

1 2  
Автор Текст сообщения

Maksim
Сообщений: 277

Здравствуйте!

Очень заинтересовала функциональность и возможности, Вашей системы. В качестве эксперимента скачал, полную версию системы и установил ее на Денвер.
Все понравилось, но никак не могу понять, как вывести несколько полей в шаблон из "дополнений". Есть дополнение: В нем создан пункт: идентификатор - color, название - цвета
Далее в пункте "Цвета" в редакторе полей создал новый пункт: название -color_in, описание - Картинка, тип - изображение.

Создал раздел: продукция на основе каталога материалов, привязал из дополнения пункт - Цвета, назвал как - Цвет, тип - множество значений из списка.

Не могу понять как сделать, чтобы можно было вывести и сам текст из дополнительных полей и изображение в шаблон если используется раздел "Дополнения"?

{if $item.fields}
<strong> Спецификации:</strong>
<table class="grid">
{section name=i loop=$item.fields}
<tr>
<td>?!?!</td> // ??? картинка из списка данных "Цвет" доп. поле - изображение ???
<td><b>{$item.fields[i].name}:</b></td> // Картинка
<td style="padding-left: 20px;">{$item.fields[i].value}</td> //
</tr>
{/section}
</table>
{/if}
 
aristoc

admin
Сообщений: 1159

Здравствуйте,
Если я правильно понимаю ситуацию:
1. в каталоге есть доп. поле с прикрепленным списком.
2. в самом списке тоже есть доп. поле с типом картинка.

Вывод картинки тогда делается следующим образом:

{image id=$item.полекаталога.полесписка}

т.е. в вашем случае:


{image id=$item.color.color_in}

Это если тип поля в каталоге "значение из списка", для "множества" работать не будет.
Через массив $item.fields не получится, т.к. доп. поля самих списков он не содержит.

 

Maksim
Сообщений: 277

Спасибо большое, для типа image помогло, но, когда добавляю "значение из списка" или "множество значений из списка", делаю вывод в шаблоне
{$item.specific.tcvet}
то показываются - ID (5) или группа ID 002, 003 ... (если множество значений)
не пойму как можно вывести "описание" в документации на сайте не нашел sad
 
aristoc

admin
Сообщений: 1159

Если я правильно понимаю ситуацию:
1. в каталоге есть доп. поле с прикрепленным списком.
2. в самом списке тоже есть доп. поле с прикрепленным еще одним списком...

Вывод делаете правильно, просто для списков в списках - текстовые значения автоматически не подставляются, а остаются id. Получить текстовое значение из списка по id можно c помощью функции listitem.


{listitem list="идсписка" id=$item.specific.tcvet}

Собственно ситуация описанная очень редкая. А для каких целей нужно поле с типом "значение из списка" в самом списке? Этот тип поля обычно имеет смысл использовать, если предполагается фильтрация по полю с помощью выбора из списка, т.е. допустим в самом каталоге. А уже в списке, если и нужны дополнительные поля, то как правило достаточно обычных типов, т.е. заполнять нужные значени я сразу текстом.
 

Maksim
Сообщений: 277

Спасибо большое!
Все работает, правда кроме списка с множеством значений, т.е:
1. в каталоге есть доп. поле с прикрепленным списком
2. в самом списке тоже есть доп. поле с прикрепленным еще одним типом списка - множество значений из списка (значение из списка - выдает, все ОК)
Предполагалось, что данная возможность в движке будет использовать в виде: выдачи в шаблон предустановленных характеристик. Например. Есть "список строк" - дисциплины, который соединен со "списком данных" - специализация, в котором создан дополнительный "список с множеством значений" (здесь будут выбираться только определенные данные из большого количества дисциплин)

Соответственно в разделе "создается каталог материалов" куда подключается, через редактор полей "список данных" - специализация в виде значения из списка.
Но предполагалось что уже в самом шаблоне будут выводится предустановленные данные Вида:

Список дисциплин факультета Психологии
1. Введение в профессию
2. Общая психология
3. Экспериментальная психология
4. Общий психологический практикум
5. История психологии
6. Зоопсихология и сравнит. психология
7. Психогенетика
и т.п.
В последствии потом создать, для каждой дисциплины свою страницу.

Также предполагалось это использовать для вывода расписания занятий. Сами расписания планировалось импортировать через Exel

С фильтром это интересно... правда еще до конца не осознал smile как это можно использовать. Вообще конечно с фильтрацией данные тоже еще не все ясно sad


 
aristoc

admin
Сообщений: 1159

Да, для множества значений listitem не сработает.
Ситуация в принципе интересная, но все таки с "множеством значений" для полей внутри списков на данный момент могут быть трудности. Попробуем это лучше проработать к след. версии.
 

Maksim
Сообщений: 277

Заметил, небольшой глюк, тестирую на Денвере правда, но всеравно: в дополнениях -> редактор полей -> когда меняешь со "списка значений" на "множеством значений" вылетает белый экран и ничего нет. Не проверял, как будет в "разделах". Не знаю может быть просто ошибка Денвера.
 
aristoc

admin
Сообщений: 1159

Спасибо, проверим.
 

Maksim
Сообщений: 277

Чего-то у меня не получается с фильтрацией данных blink Подскажите пожалуйста по возможности на небольшом примере, как можно отфильтровать раздел с модулем "каталог материалов" с заданными полями, например, по данным из списка и введенным данным в текстовое поле используя существующие возможности движка? Где, можно прочитать по этому более подробно?
 
aristoc

admin
Сообщений: 1159

Более подробно с примером описал здесь:

http://wiki.astracms.ru/modules/catalog/filters
 

Maksim
Сообщений: 277

Вот спасибо большое!
 

Maksim
Сообщений: 277

Все вроде работает, хотелось бы узнать есть ли у {selectbox...} еще какие-то значения? чтобы можно было вывести необходимые пункты в <option ...>
У меня почему то в шаблоне не получается вывести созданные поля
{$item.fields[i].name}:  {$item.fields[i].value}
Думал, так просто вручную впишу, да не тут то было sad
Еще заметил, что когда выбираешь определенные значения из списка после поиска происходит сброс полей.

 
aristoc

admin
Сообщений: 1159

Maksim писал(а):
Все вроде работает, хотелось бы узнать есть ли у {selectbox...} еще какие-то значения? чтобы можно было вывести необходимые пункты в <option ...>
вместо {selectbox ...} можно использовать и обычный <select> в шаблоне, соотв. и <option> формировать какие надо.

Maksim писал(а):
У меня почему то в шаблоне не получается вывести созданные поля
Думал, так просто вручную впишу, да не тут то было sad

Должно быть нормально. Тут мало информации.

Maksim писал(а):
Еще заметил, что когда выбираешь определенные значения из списка после поиска происходит сброс полей.

Чтобы не сбрасывались, нужно их заполнять в шаблоне формы из {$smarty.get.поле},
Добавил в прошлый пример сохранение выбранных значений.
http://wiki.astracms.ru/modules/catalog/filters
 

Maksim
Сообщений: 277

Спасибо, теперь input не сбрасывается, только спискок сбрасывается sad
...
я просто думал, может получится вывести автоматом данные из полей в option, или через smarty {selectbox...}

<form action="/catalog/" method="get">
<p>Марка:</p>
<input type="text" name="mark" value="{$smarty.get.mark|escape}">
<p>Вид:</p>
<select name="type" list="types" selected="{$smarty.get.type}"/>
<option value="0">Все</option>
{section name=i loop=$item.fields}
<option value="{$item.fields[i].value}">{$item.fields[i].name}</option>
{/section}

</select>
<input type="hidden" name="filter" value="1">
<input type="submit" value="Искать">

</form>
 
aristoc

admin
Сообщений: 1159

1. В теге <select > нет аттрибута selected (HTML)
2. Аттрибут selected должен быть у выбранного пункта <option > (HTML)


<option value="{$item.fields[i].value}"{if $item.fields[i].value==$smarty.get.type} selected{/if}>{$item.fields[i].name}</option>

3. Зачем загонять $item.fields в селект неясно.

 
1 2  

Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.