Page 1 of 1
Новость и обратная связь
Posted: Mon May 30, 2011 5:07 am
by easmik
Есть новость, в которой кроме контента есть доп. поля.
Хотелось бы чтоб вместо полной новости открывалась форма обратной связи, в которой был бы чекбокс со значениями взятыми из доп. полей.
Это реально сделать без вмешательство в код двига?
Re: Новость и обратная связь
Posted: Mon May 30, 2011 11:08 am
by Vladimir
easmik wrote:Это реально сделать без вмешательство в код двига?
Должно получится если использовать Formbuilder. Нужно создать шаблон показа полной новости который будет создавать доп поля формы обратной связи, а в форме задать поле типа "Module Interface Field" в которое прописать тег вызова модуля новостей.
Re: Новость и обратная связь
Posted: Tue May 31, 2011 5:46 am
by easmik
Большое спасибо за ответ!
Если честно, то я в это не очень понимаю. А можно поподробней?
Re: Новость и обратная связь
Posted: Wed Jun 01, 2011 9:32 am
by Vladimir
easmik wrote:А можно поподробней?
У Вас есть опыт использования модуля FormBuilder? Мне хотелось бы уточнить, что именно не понятно.
Re: Новость и обратная связь
Posted: Thu Jun 02, 2011 12:57 am
by easmik
Есть. Но в создании шаблонов я не силен.
Re: Новость и обратная связь
Posted: Sat Jun 04, 2011 10:30 am
by Vladimir
easmik wrote:Но в создании шаблонов я не силен.
Плохо. Надо учить Smarty

.
Что надо сделать:
1. Создать форму, где одно из полей будет типа "Module Interface Field". Поле вставляем на то место где будут чекбоксы.
2. В модуле новостей создаём дополнительный шаблон вывода полного текста новости и дополнительные поля для чекбоксов. Оставляем эту часть кода:
Code: Select all
{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
<div class="NewsDetailField">
{if $field->type == 'file'}
{* this template assumes that every file uploaded is an image of some sort, because News doesn't distinguish *}
<img src="{$entry->file_location}/{$field->value}"/>
{else}
{$field->name}: {eval var=$field->value}
{/if}
</div>
{/foreach}
{/if}
Редактируем:
Code: Select all
{foreach from=$items item=entry}
{assign var=MData value=''}
{assign var=Cd value=''}
{foreach from=$FBvalue item=MData}
{assign var=MData value='::'|explode:$MData}
{if $MData[1]==$entry->id}
{assign var=Cd value=' checked="checked"'}
{/if}
{/foreach}
<div class="NewsItem">
{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
<input type="checkbox" name="{$FBid}[]" value="{eval var=$field->value}" {$cd}="">{$field->name}<br/>
{/foreach}
{/if}
</div>
{/foreach}
3. Создаём ещё один шаблон вывода полного текста новости, который делаем по-умолчанию. Удаляем всё содержимое и вставляем тег формы.
4. Переходим в конструктор форм. Редактируем поле типа "Module Interface Field". В поле "Добавить свой тег:" вставляем тег вывода полной новости:
Code: Select all
{News detailtemplate="имя нашего шаблона из п.2"}
Приблизительно так...
Re: Новость и обратная связь
Posted: Wed Jun 29, 2011 10:07 am
by easmik
Еще раз огромнейшее спасибо тебе, добрый человек

Учить надо, я согласен. Но это мое хобби, на которое у меня очень мало времени
Сделал как Вы написали, теперь даже можно отправить

Но вот в чем вопрос, а как связать доп. поля новости и чекбоксы в форме обратной связи?
Допустим я добавляю 5 полей (Во вкладке "Добавить определение поля"), теперь они находятся в самом низу при заполнении новости и тоже заполняются. Как мне взять значение с этих полей и вставить в поле где можно нажать чекбокс?
Заранее огромная благодарность!!! Хотя бы за то что прочитали

Re: Новость и обратная связь
Posted: Wed Jun 29, 2011 12:58 pm
by Vladimir
easmik wrote:Но вот в чем вопрос, а как связать доп. поля новости и чекбоксы в форме обратной связи?
Этот вопрос был в самом начале и я на него дал ответ (см. п. 2 выше).
Re: Новость и обратная связь
Posted: Thu Jun 30, 2011 3:51 am
by easmik
Прощу прощения. Я просто создал одно поле и не заметил чек бокса рядом. Еще раз ОГРОМНОЕ спасибо!!!
Правда только значение берется из названия поля, а не из текста который туда забит.
Re: Новость и обратная связь
Posted: Fri Oct 07, 2011 12:09 am
by donkaban
Добрейшего! =)
поясните, пожалуйста, есть ли возможность в письмо, отправляемое из контакт-формы, вставить текст из поля "-Статический текст"?
или почему шаблон отправляемого письма не понимает foreach? хотя должен же понимать...
есть магазин. есть шаблон модуля Cart, выводящий список покупок. есть контакт-форма, куда надо писать имя, мэйл, телефон, примечание. есть кнопка "Оформить заказ", которая отправляет на ящик всё, что нужно из контакт-формы.
а вот включить в "всё, что нужно" список заказанных товаров не получается...
создал поле "-Статический текст" (korzina), которое в форме отображает список покупок (вместо текста подставил выжимку из шаблона viewcart).
на сайте всё отображается, а в письмо не знаю как запихнуть - {$korzina}, {$korzina_obj->value}, {$korzina_obj} не дают ничего нужного
потом сделал поле "Module Interface Field", шаблон в Products, связал их. в письме пишут "[не заполнено]". как же его заполнишь если оно без полей для ввода и вообще какого-то выбора?
Вобщем, на экран выводится, а в письмо не хочет ((((
пробовал ещё шаблон viewcart засунуть в нужное место в шаблоне исходящего письма.
уже лучше! в письме от корзины остаётся только общая сумма, выводимая тегом {$carttotal}. а все товарные позиции, находящиеся в {foreach...}{$oneitem->...} не подставляются.
может есть ещё способ вывода корзины через Smarty?
посоветуйте, плиз, а то голова уже кипить (((((((
Re: Новость и обратная связь
Posted: Tue Oct 11, 2011 12:54 am
by donkaban
Разобрался! )
не понятно зачем я пытался усложнить задачу. всё более чем элементарно оказалось:
лишние поля я удалил (статический текст и module interface), сделал тимплейт viewcart, отображающий список покупок так как мне надо, а в коде пересылаемого письма добавил {Cart action="viewcart" viewcarttemplate="мой тимплейт"}.
Всё работает! )))))))))