Автономная форма записи

Используя этот тег, вы можете создать форму записи, для публикации записей в любом из ваших разделов вне панели управления.

Пользователи этой формы должны быть пользователями сайта, и они должны быть авторизованы. Далее, группа пользователей, к которой принадлежит пользователь, должна иметь разрешения на публикацию записей в соответствующий раздел. Контент не будет опубликован, если пользователь не авторизован на сайте.

Вот пример использования тега для создания формы записи:

{exp:weblog:entry_form weblog="default_site" return="site/index" preview="site/entry"}

{preview}
<h1>{title}</h1>

{display_custom_fields}

{/preview}


<table>
<tr>
<td>

<p>Title<br />
<input type="text" name="title" id="title" value="{title}" size="50" maxlength="100" onkeyup="liveUrlTitle();" /></p>

<p>URL Title<br />
<input type="text" name="url_title" id='url_title' value="{url_title}" maxlength="75" size="50" /></p>

{formatting_buttons}

<p><a href="{upload_url}" onclick="window.open(this.href, '_blank', 'width=400,height=600');return false;" onkeypress="this.onclick()">File Upload</a>

<a href="{smileys_url}" onclick="window.open(this.href, '_blank', 'width=600,height=440');return false;" onkeypress="this.onclick()">Smileys</a></p>

{custom_fields}
{if required}* {/if}{field_label}<br />
{field_instructions}
{if textarea}
<textarea id="{field_name}" name="{field_name}" dir="{text_direction}" cols="50" rows="{rows}" onclick="setFieldName(this.name)">{field_data}</textarea>
{/if}

{if textinput}
<input type="text" dir="{text_direction}" id="{field_name}" name="{field_name}" value="{field_data}" maxlength="{maxlength}" size="50" onclick="setFieldName(this.name)" />
{/if}

{if pulldown}
& <select id="{field_name}" name="{field_name}">
{options}<option value="{option_value}"{selected}>{option_name}</option>{/options}
</select>
{/if}

{if date}
<input type="text" id="{field_name}" name="{field_name}" value="{field_data}" maxlength="{maxlength}" size="50" onclick="setFieldName(this.name)" />
{/if}

{if relationship}
<select id="{field_name}" name="{field_name}">
{options}<option value="{option_value}"{selected}>{option_name}</option>{/options}
</select>
{/if}
{/custom_fields}

<p>Trackback URLs<br />
<textarea name="trackback_urls" cols="50" rows="5">{trackback_urls}</textarea> </p>

</td>
<td valign="top">

<input type="submit" name="submit" value="Submit" />
<input type="submit" name="preview" value="Preview" />

{status_menu}
<p>Status<br />
<select name="status">
{select_options}
</select>
</p>
{/status_menu}

<p>Date <br />
<input type="text" name="entry_date" value="{entry_date}" maxlength="23" size="25" /></p>

<p>Expiration Date <br />
<input type="text" name="expiration_date" value="{expiration_date}" maxlength="23" size="25" /></p>

<p>Comment Expiration Date <br />
<input type="text" name="comment_expiration_date" value="{comment_expiration_date}" maxlength="23" size="25" /></p>

<p><input type="checkbox" name="sticky" value="y" {sticky} /> Make Entry Sticky</p>
<p><input type="checkbox" name="allow_comments" value="y" {allow_comments} /> Allow Comments</p>
<p><input type="checkbox" name="allow_trackbacks" value="y" {allow_trackbacks} /> Allow Trackbacks</p>
<p><input type='checkbox' name='dst_enabled' value='y' {dst_enabled} />DST Active on Date of Entry</p>

{ping_servers}
<p>Ping Servers<br />
{ping_row}
<input type="checkbox" name="ping[]" value="{ping_value}" {ping_checked} /> {ping_server_name}<br />
{/ping_row}
</p>
{/ping_servers}

{category_menu}
<p>Categories<br />
<select name="category[]" size="4" multiple="multiple">
{select_options}
</select>
</p>
{/category_menu}

</td>
</tr>
</table>

{/exp:weblog:entry_form}

Далее, вы должны добавить эти стили CSS к любому стилю, который вы используете для вывода вшей формы записи для того, чтобы, корректно отображались кнопки.

Поля ввода

В форме будут доступны все поля, доступные на странице публиковать в панели управления. Однако, обязательными будут только те поля, например поле заголовка, и любые поля записи, которые вы определили на странице Admin > Заказные поля разделов как обязательные.

Разрешить комментарии?

Вы можете разрешить пользователю выбор, - разрешать или нет комментарии для записи.

<p><input type="checkbox" name="allow_comments" value="y" {allow_comments} /> Allow Comments</p>

Разрешить трекбэки?

Вы можете разрешить пользователю выбор, - разрешить или нет трекбэки для записи.

<p><input type="checkbox" name="allow_trackbacks" value="y" {allow_trackbacks} /> Allow Trackbacks</p>

Меню категорий

С помощью меню пользователь может выбрать одну или более категорий для записи.

{category_menu}
<p>Categories<br />
<select name="category[]" size="4" multiple="multiple">
{select_options}
</select>
</p>
{/category_menu}

Дата окончания комментариев

Пользователь может определить точную дату окончания комментариев, если необходимо. Она указывается в формате YYYY-MM-DD hh:mm PM, точно так же, как в панели управления в секции публиковать.

<p>Comment Expiration Date <br />
<input type="text" name="comment_expiration_date" value="{comment_expiration_date}" maxlength="23" size="25" /></p>

Заказные поля записей

Поля записи выводятся ExpressionEngine динамически. Они выводятся внешней парной переменной, которая просматривает все поля для раздела и затем выводит поле в соответствии с его типом.

{custom_fields}
{if required}* {/if}{field_label}<br />

{if textarea}
<textarea name="{field_name}" dir="{text_direction}" cols="50" rows="{rows}" onclick="setFieldName(this.name)">{field_data}</textarea>
{/if}

{if textinput}
<input type="text" dir="{text_direction}" name="{field_name}" value="{field_data}" maxlength="{maxlength}" size="50" onclick="setFieldName(this.name)" />
{/if}

{if pulldown}
<select name="{field_name}">
{options}<option value="{option_value}"{selected}>{option_name}</option>{/options}
</select>
{/if}

{if date}
<input type="text" name="{field_name}" value="{field_data}" maxlength="{maxlength}" size="50" onclick="setFieldName(this.name)" />
{/if}

{if relationship}
<select name="{field_name}">
{options}<option value="{option_value}"{selected}>{option_name}</option>{/options}
</select>
{/if}
{/custom_fields}

Примечание: Атрибут onclick="setFieldName(this.name)" будет необходим, только, если вы используете кнопки форматирования в форме.

Летнее время включено

Вы можете разрешить пользователю выбирать, сохранять или нет настройку летнее время включено с записью.

<p><input type="checkbox" name="dst_enabled" value="y" {dst_enabled} /> DST Active on Date of Entry</p>

Дата записи

Пользователь может определить точную дату записи. Она указывается в формате YYYY-MM-DD hh:mm PM, точно так же, как в панели управления в секции публиковать.

<p>Date <br />
<input type="text" name="entry_date" value="{entry_date}" maxlength="23" size="25" /></p>

Дата окончания

Если необходимо, пользователь может указать точную дату окончания записи. Она указывается в формате YYYY-MM-DD hh:mm PM, точно так же, как в панели управления в секции публиковать.

<p>Expiration Date <br />
<input type="text" name="expiration_date" value="{expiration_date}" maxlength="23" size="25" /></p>

Кнопки форматирования

Вы можете включить панель кнопок форматирования, точно так же, как в панели управления на странице публиковать.

{formatting_buttons}

Помните, вы должны добавить эти стили CSS к любому стилю, который вы используете для вывода вашей формы записи, для того, чтобы кнопки форматирования отображались корректно.

Сделать запись прикрепленной?

Пользователь может определить, сделать запись "прикрепленной" или нет.

<p><input type="checkbox" name="sticky" value="y" {sticky} /> Make Entry Sticky</p>

Сервера для пинга

Пользователь может указать любые сервера, к которым он желает отправить пинги о публикации новой записи.

{ping_servers}
<p>Ping Servers<br />
{ping_row}
<input type="checkbox" name="ping[]" value="{ping_value}" {ping_checked} /> {ping_server_name}<br />
{/ping_row}
</p>
{/ping_servers}

Меню статуса

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

{status_menu}
<p>Status<br />
<select name="status">
{select_options}
</select>
</p>
{/status_menu}

Заголовок:

Пользователь может указать заголовок для записи.

<p>Title<br />
<input type="text" name="title" id="title" value="{title}" size="50" maxlength="100" onkeyup="liveUrlTitle();" /></p>

Заголовок URL

Пользователь может указать URL заголовок для записи. По умолчанию, он динамически создается, когда пользователь вводит заголовок записи. Если это поле не включено или оставлено пустым, то URL заголовок будет создан ExpressionEngine на базе заголовка.

<p>URL Title<br />
<input type="text" name="url_title" id='url_title' value="{url_title}" maxlength="75" size="50" /></p>

Параметры

allow_comments=

allow_comments="yes"

Если вы не хотите добавлять опцию формы для выбора на странице, то вы можете установить разрешить или нет комментарии для записи с помощью этого параметра. Можно установить "yes" или "no".

allow_trackbacks=

allow_trackbacks="yes"

Если вы не хотите включать в форме на странице опцию выбора, то вы можете установить, разрешить или нет трекбэки для записи, с помощью этого параметра. Можно установить "yes" или "no".

category=

category="7|13"

Если вы не хотите включать на странице формы опции выбора, то вы можете установить любые категории, в которые вы желаете назначить запись, с помощью этого параметра. Укажите категорию по ее идентификатору (ID). Вы можете указать несколько категорий, отделяя их идентификаторы (ID) символом вертикальной черты.

category="3|7|13|42"

hidden_pings=

hidden_pings="yes"

Если вы не хотите включать на странице формы опции для выбора серверов для пинга, то вы можете указать, отправлять или нет пинги с помощью этого параметра. Можно установить "yes" или "no". Если вы выбираете "yes", то EE отправит пинги всем серверам, которые указаны на странице Admin > Пинг серверы по умолчанию.

preview=

preview="site/entry"

В этом параметре указывается группа шаблонов/шаблон, который будет использоваться для предварительного просмотра записи. Как правило, наиболее просто указать тот же самый шаблон, который используется для формы записи.

return=

return="site/index"

Вы можете указать, куда будет перенаправлен пользователь после отправки записи. Укажите группу шаблонов/шаблон. Это обязательный параметр.

show_fields=

show_fields="body|extended"

Если вы желаете, то можете отображать в форме не все поля, назначенные для вашего раздела. Это может быть полезно, если у вас есть поля, которые вы используете для административных целей. Укажите, какие поля вы хотите отображать, используя для этого их имена (короткие имена, не метки). Вы можете указать несколько полей, разделяя их символом вертикальной черты:

show_fields="body|extended|full_image"

Вы можете исключить некоторые поля, размещая слово "not" перед списком:

show_fields="not image_thumbnail|source|rating"

Примечание: Вы должны включать в форму все поля, которые определены, как "обязательные".

status=

status="pending"

Если вы не хотите включать на странице формы опции выбора, то вы можете установить статусы, которые вы желаете назначать для записи. Просто используйте название статуса, как определено на странице Admin > Заказные статусы записей. По умолчанию всегда доступны два статуса, "open" и "closed", поэтому вы можете указывать их, если необходимо.

sticky_entry=

sticky_entry="yes"

Если вы не хотите включать на странице формы опции выбора, то вы можете установить сделать запись "прикрепленной" или нет, с помощью этого параметра. Можно установить "yes" или "no".

use_live_url=

use_live_url="no"

По умолчанию, поле URL заголовка будет динамически заполнено при вводе вашего заголовка. Если вы не хотите, чтобы это происходило, то вы можете выключить функцию, используя этот параметр. Можно установить "yes" или "no".

weblog=

weblog="news"

Имя (короткое имя) раздела, на который назначены категории. Это обязательный параметр.

Переменные

Автономная форма записи содержит несколько специальных переменных.

field_instructions

{field_instructions}

Инструкция заказного поля, как указано на странице редактирование заказных полей.

smiley_url

{smileys_url}

URL к набору "смайлов". Смайлы часто называют emoticons. Эта переменная обычно используется в ссылке на форме:

<a href="{smileys_url}" onclick="window.open(this.href, '_blank', 'width=600,height=440');return false;" onkeypress="this.onclick()">Smileys</a>
Добавлено в EE 1.3

upload_url

{upload_url}

URL к утилите для загрузки файлов. Эта переменная обычно используется в ссылке на форме:

<a href="{upload_url}" onclick="window.open(this.href, '_blank', 'width=400,height=600');return false;" onkeypress="this.onclick()">File Upload</a>

Чтобы использовать утилиту загрузки файлов, пользователь должен иметь доступ к панели управления и утилите для загрузки контента из панели управления.

Добавлено в EE 1.3

Предварительный просмотр

В пределах основного тега {exp:weblog:entry_form}, вы можете поместить парную переменную, позволяющую вам осуществлять предварительный просмотр записи.

{preview}
<h1>{title}</h1>

{display_custom_fields}

{/preview}

Вывод заказных полей

Есть два способа вывести на экран для предварительного просмотра данные из ваших заказных полей. Первый, и самый простой, путь состоит в том, чтобы просто использовать эту переменную:

{display_custom_fields}

Эта переменная будет автоматически в цикле выводить на экран все поля записи.

Другой метод, - указание полей индивидуально, так же, как при выводе записи в шаблоне. Например:

{preview}
<h2>{title}</h2>

{body}

<div class="more">{extended}</div>

{/preview}

Вы должны указать поля по их именам (коротким именам) а не по их меткам.

Наверх страницы