Страницы – формы
Форма ввода может быть создана только на статической странице! Только там будут работать шоткоды.
По умолчанию работает шаблон ./template/form_default_template.php
Чтобы указать свой шаблон удобно использовать шоткод, создаем статическую страницу и пишем :
[AdsForm name_template=form_test.php /]
1 | [AdsForm name_template=form_test.php /] |
name_template – имя формы. подробнее об [AdsForm]
Старые способы версии плагина 3.х также будут работать:
<!—AdsForm—>
1 | <!—AdsForm—> |
Привязка к рубрикам
Если включен выбор категории как отдельный этап, тогда у нас есть возможность каждой конкретной рубрике назначить свою форму.
Предположим наш сайт (Городской портальчиг) имеет такую рубрикацию, а циферка справа от названия это ID категории:
- Новости 1
- Законы 2
- Финансы 3
- Объявления 4
- Недвижимость 5
- Квартиры 6
- Дома 7
- Участки 8
- Офисы 9
- Склады 10
- Автомашины 11
- Бытовая техника 12
- Услуги 13
- Разное 14
- Недвижимость 5
Итак открываем конфигурационный файл ads_config.php и пишем
$ads_config[‘form_templates’][‘Недвижимость’] = ‘/ads_rent_form.php’; $ads_config[‘form_templates’][‘auto’] = ‘/ads_auto_form.php’; // автомашины $ads_config[‘form_templates’][12] = ‘/texno_form.php’; $ads_config[‘form_templates’][‘default’] = ‘/form_default_template.php’;
12345 | $ads_config[‘form_templates’][‘Недвижимость’] = ‘/ads_rent_form.php’;$ads_config[‘form_templates’][‘auto’] = ‘/ads_auto_form.php’; // автомашины$ads_config[‘form_templates’][12] = ‘/texno_form.php’; $ads_config[‘form_templates’][‘default’] = ‘/form_default_template.php’; |
*заготовка конфига смотрите в ads_config.php_
Мы должны задать массив form_templates указываем ключ = имя файла, в качестве ключа можно использовать Имя категории, slug или ID категории – на ваш выбор.
Как видно из примера мы назначили рубрике Недвижимость свою собственную форму ввода это файл ads_rent_form.php .
Другой вариант это использовать slug рубрики, как это сделано для категории Автомашины и еще вариант это для ипользование ID как это сделанно для категории Бытовая техника указанно 12.
Ну и наконец для всех остальных вариантов мы назначаем форму по умолчанию form_default_template.php.
Все шаблоны должны располагаться в папке /templates плагина
Обратите внимание на то, что назначив рубрике Недвижимость свою форму, мы, тем самым прекращаем процесс выбора рубрик и переходим к форме ввода, но в Недвижимости ведь есть еще под рубрики, поэтому в форме придется самостоятельно организовать дополнительный элемент управления чекбокс или флажки либо переключатели, для того чтобы пользователь мог выбрать эти подрубрики.
Вот приме как это можно сделать для нашей недвижимости – пишем в шаблоне /ads_rent_form.php :
<?php if($post[‘ads_basecat’]){ $args .= ‘&child_of=’.$post[‘ads_basecat’]; } elseif($_GET[‘ads_basecat’]){ $args .= ‘&child_of=’.$_GET[‘ads_basecat’]; }; if($ads_options[‘ads_exclude’]){ $args .= ‘&exclude=’.$ads_options[‘ads_exclude’]; }; $cat = get_categories($args); foreach ($cat as $key=>$value) { $category.=»$value->name<input name=’post_category[]’ type=’checkbox’ value=’$value->term_id’ />»; } ?> // далее в форме выводим список <tr><td>Категория*</td><td><?=$category?></td></tr>
123456789101112131415161718 | <?phpif($post[‘ads_basecat’]){ $args .= ‘&child_of=’.$post[‘ads_basecat’];}elseif($_GET[‘ads_basecat’]){ $args .= ‘&child_of=’.$_GET[‘ads_basecat’];};if($ads_options[‘ads_exclude’]){ $args .= ‘&exclude=’.$ads_options[‘ads_exclude’];};$cat = get_categories($args);foreach ($cat as $key=>$value) { $category.=«$value->name<input name=’post_category[]’ type=’checkbox’ value=’$value->term_id’ />»;}?>// далее в форме выводим список <tr><td>Категория*</td><td><?=$category?></td></tr> |
! Если мы хотим вообще пропустить этап выбора категории, нам надо назначить шаблон all
$ads_config[‘form_templates’][‘all’] = ‘/all_form.php’;
1 | $ads_config[‘form_templates’][‘all’] = ‘/all_form.php’; |
Теперь как только пользователь перейдет на страницу Добавить объявление ему будет сразу выведена форма /all_form.php и уже выбор категории вам придется организовать самостоятельно.
ads_basecat флаг объявления
Каждому объявление присваивается мета поле ads_basecat это поле есть флаг того, что запись является именно объявлением, и это же поле определяет шаблон с помощью которого будет показана запись. Так вот если мы имеем такую форму ввода как я описывал выше с Недвижимостью, то в этом случае ads_basecat будет присвоено id Недвижимости, а не ее под категорий.
И если как писалось выше вы решили для всех категорий сделать одну форму используя ключ all то надо позаботится о том чтобы ads_basecat было присвоена какая то категория.
И напоследок напомню – обязательно сохранять все файлы в кодировке UTF8 -without BOM
Если необходимо что бы объявление закидывалось во все родительские рубрики то ставим фильтр
function all_check($_post){ $_post[‘post_category’] = ads_get_parents_id($_post[‘ads_basecat’]); return $_post; } add_filter(‘ads_check_fields’, ‘all_check’);
12345 | function all_check($_post){ $_post[‘post_category’] = ads_get_parents_id($_post[‘ads_basecat’]); return $_post;}add_filter(‘ads_check_fields’, ‘all_check’); |