Среда , 14 Ноябрь 2018
Home / Vbulletin 4 / Vbulletin4 | Добавляем дополнительные поля при создании темы.
Дополнительные поля Vbulletin
Дополнительные поля Vbulletin

Vbulletin4 | Добавляем дополнительные поля при создании темы.

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

Давайте пофантазируем? Представим себе что нам нужно добавить дополнительные поля, каждый раз, когда пользователь создает новую тему, и он будет иметь возможность заполнить данное поле. Это потребует от вас некоторых знаний PHP и HTML, так что будьте готовы.

Автор: Алексей Раков

С чего же нам начать? Ну самое первое в этом деле это HTML код дополнительных полей в шаблоне newthread. Для этого мы добавим наш HTML код прямо в шаблон сразу после:


    
   

Например, вы можете добавить:

Или, вы можете добавить переменную ({vb:raw additionalfields}) и сделать так, чтобы эта строка автоматически обрабатывалась с плагина.

Захват дополнительных значений для поля

Теперь, чтобы вывести некоторые значения полей вы должны их обработать, захватить, прежде чем добавлять их в базу. Сделать это можно обычным подключением хука newthread_post_start и от туда вывести значение поля:

$value = $vbulletin->input->clean_gpc('p', "additionField", TYPE_STR);

 

Где additionalField это HTML атрибут, имя дополнительного поля, которое мы добавили выше.

 

Добавляем дополнительные значения полей в пост или в базу данных!

После того как мы перехватили значения поля ($value) через хак, мы может опубликовать его в посте или в базе данных.

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

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

$vbulletin->GPC['message'] = $vbulletin->GPC['message']."(здесь заполняем)".$value;

Дополнительные ББ коды

Если вы хотите  заключить значение $value в какой либо HTML код. то вам необходимо создать пользовательский BB код, чтобы в него заключить ваше значение:

$value = "[customBBcode]".$value."[/customBBcode]";

Для этого необходимо добавить BB код вручную над всем остальным.

Разберем конкретный пример

К примеру мы хотим добавить поле которое будет заключать в себе источник статьи, то есть url

Сначала мы добавим

в шаблон newthread как я описывал выше.

Затем создадим плагин (примерно следующего содержания):



Дополнительное поле
Дополнительное поле
0.0.1














дополнительное поле
newthread_post_start
input->clean_gpc('p', "additionlFieldURL", TYPE_STR);
$custom_message .= "[customBBcode][b]Источник URL: [/b] [/customBBcode]: ".$value;
$vbulletin->GPC['message'] .= "".$custom_message;
]]>












Этот плагин сохраним как xml и загрузим себе в админку через AdminCP -> Плагины и продукты -> Управление продуктами, и [Добавить / импорт продуктов]

Ура, мы это сделали
Если уж нечего не поняли, задавайте вопросы, будем думать вместе

About artscripts

Check Also

восстановление vbulletin часть 6

Взломали форум — начинаем восстанавливать (Часть 6)

Настала время заменить все файлы Vbulletin форума новой копией. Для этого скачаем новый zip архив …

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.