! Эта статья устарела, смотрите новую версю плагина Ads WordPress 3.x
Плагин позволяет писать сообщения в блог пользователям без регистрации.
Можно сделать из блога или его части доску объявлений.
Также его можно использовать для упрощенной публикации новостей, ведь для многих пользователей редактор WordPress, несмотря на его отличную юзобилити, оказывается очень сложен. Ещё один важный момент это то, что мы можем жестко задать шаблон публикации, например потребовать вводить email, почтовый адрес, телефон ну т.д. Сразу обращаю ваше внимание, что сообщения через этот плагин публикуются как записи WordPress и в дальнейшем их можно обрабатывать в своих шаблонах как вам захочется.
После прочтения этой инструкции не забываем читаем часть 3
Давайте сразу условимся те сообщения, которые мы публикуем через этот плагин, будем называть объявлениями, а те что пишем как обычно через админ часть - записями.
Возможности плагина:
Имя пользователя заменять анонимного пользователя на пользователя: если мы хотим, чтобы все анонимные объявление принадлежали какому-нибудь пользователю ну скажем пользователю anonymous или guest тогда регистрирующим этого пользователя в WordPress и записываем в этом поле его имя. Это может понадобиться в дальнейшем, если вы захотите найти все анонимные объявление достаточно перейти в раздел пользователи и далее выбрать сообщения нужного пользователя.
Что делать с сообщениями анонимного пользователя статус сообщения
- draft объявление сохраняется как черновик
- pending объявление поступает на модерацию
- publish сразу публикуется в блог
Если пользователь зарегистрирован в WordPress объявления будут подписаны его именем и соответственно к объявлению будут применены права и ограничения заданные в системе для его группы допуска.
Комментарии
- open комментарии открыты
- closed комментарии закрыты
- optional позволяет пользователю самому открыть закрыть комментарии
Авто разрыв, auto <!–more–> автоматически генерирует анонс сообщения
Интервал времени между сообщениями в часах устанавливает интервал времени через которое аноним может публиковать новое сообщение
Антибот картинка (capthca) привет спамерам
Кол-во загрузок без комментариев.
Максимальный размер в мегабайт не влияет на параметр установленный в php.ini, можно установить меньший размер
Разрешённые типы файлов (множественный выбор с нажатой Ctr) тут однако ещё есть недоработка не все расширения распознаются правильно
Сжимать большие фотографии сохраняя пропорции очень полезный параметр, если вам кто-то пытается залить гигантские фото они будут уменьшено до указанных размеров.
Добавлять номер объявления к заголовку без комментариев.
Для каждого сообщения генерируется пароль с помощью которого наш анонимус может отредактировать сообщение либо удалить его.
Теги для вывода формы
Формы ввода показываем с помощью тегов, например логично для этого было бы создать 2 страницы “Дать объявление” И “Редактировать Объявление”.
<!--AdsForm--> страница Добавить Объявление <!--AdsFormEdit--> страница РедактироватьУдалить Объявление |
Теперь немного о таксономии плагина.
Первое что должен сделать пользователь это выбрать категорию объявления, иерархия категорий задается обычным способом в админке Управление-> Рубрики. Каждое объявление должно быть привязано хотя бы к одной категории, так вот эта категория сохраняется как произвольное поле (Custom Fields) под именем “ads_basecat” - базовая категория. Эта переменная необходима для правильной работы плагина, она же является флагом на то, что это именно объявлением. Так что если вы будете редактировать объявление через админ часть WordPress и откроете чекбокс Произвольные поля удалять ее не надо, равно как и другие поля начинающиеся с префикса ads_ они все относятся к свойствам объявлений.
Кто-нибудь, что-нибудь понял? Тогда идем дальше…
С рубриками то есть с категориями лучше приведу пример.
Ну самый подходящий это сделать сайт Агентства Недвижимости.
например мы создали такую структуру категорий.
- 1 Покупка
- 2 Продажа
- 3 Законы
- 4 Вакансии
- 5 Элитные недвижимость
- 6 Объявления
тогда записываем в поле :
Родительская рубрика = 6
ну а если мы хотим отдать под объявления весь сайт, но исключить некоторые рубрики для ананимусов, например запретить писать в рубрики Законы,Вакансии
- 1 Покупка
- 2 Продажа
- 3 Законы
- 4 Вакансии
- 5 Элитные недвижимость
Исключить рубрики id через запятую 3,4
Ну теперь перейдем к более сложному.
Шаблоны плагина, скрытые настройки
Применить шаблоны постов если включит эту опцию то плагин будет показывать объявления применяя к ним шаблоны, то есть формат вывода и дизайн будет отличатся от обычных записей. Шаблон находится в папке плагина post_default_template.php это шаблон по умолчанию.
Есть возможность создать свои шаблоны и привязать их к конкретным рубрикам.
Это делается в файле config.php
// шаблоны для отображения постов $ads_config['post_templates']['default'] = '/post_default_template.php';// по умолчанию $ads_config['post_templates']['Автомашины'] = '/post_auto_template.php'; $ads_config['post_templates']['Недвижимость'] = '/post_rent_template.php'; |
Аналогично можно задавать шаблоны формы ввода объявления там же
// шаблоны формы ввода для различных категорий $ads_config['form_templates']['Недвижимость'] = '/ads_rent_form.php'; $ads_config['form_templates']['Автомашины'] = '/ads_auto_form.php'; $ads_config['form_templates']['default'] = '/form_default_template.php'; // по умолчанию |
С помощью этих шаблонов можно вводить и затем отображать произвольные поля.
Например вы решили добавить отдельное поле для ввода телефон, назовем эту переменную ads_phone ! префикс ads обязателен.
Открываем шаблон формы (form_default_template.php) редактируем вверху задается массив
$_SESSION['ads_filds_form'] = array(’ads_location’ …
добавляем в этот массив нашу переменную array(’ads_phone’,'ads_location’ … это защита от умников, чтобы не подсунули нам ненужные переменные в $_POST.
Ну и далее вставляем в нужном месте html код
<input name=”ads_phone” type=”text” size=”10″>
Плагин обработает форму отфильтрует переменные не указанные в $_SESSION['ads_filds_form'], а затем все переменные, что начинаются с префикса ads_ будут сохранены как Custom Fields.
Как работать с произвольными полями смотрите . Но у нас есть более простой вариант если включена опция Применить шаблоны постов, тот все поля будут автоматически доступны как переменные php в шаблонах объявлений. Короче говоря открываем post_default_template.php и добавляем в нужном месте вывод телефона <?=$ads_phone?>.
Чтобы проверить правильность ввода данных пользователем добавляем фильтр:add_filter(’ads_check_fields’, ‘имя функции);, функция фильтра принимает ассоциативный массив данных $_POST и если обнаружена какая либо ошибка добавляем к массиву элемент $_POST['error'] = ‘Описание ошибки’;
и затем возвращаем его return $_POST; пример фильтра смотрите в ads_config.php
Опция “Применить шаблоны постов” поключает фильтр posts_results все мета поля и все атачменты добавляются в основную выборку двумя дополнительными SQL запсами дополнительной нагрузки практически не создается, зато теперь все данные будут у вас под рукой, чтобы увидеть, что где лежит в своем шаблоне в теле основного цикла распечатайте переменную $post:
echo ‘<pre>’; print_r( $post ); echo ‘</pre>’;
Скачать ads-wordpress
Проверен на версии 2.7, не пугайтесь размера архива там просто набор шрифтов для генерации капчи.
Изменения
16.10.2008
- Добавлен поиск по произвольным полям (Custom Fields), чтобы запустить такой поиск надо сформировать адрес url или post запрос, где добавить переменную с префиксом ads_ и ее значение ?ads_location=Одесса/Ильичевск ну вот и все
Пример сайтов где задействован плагин: ну вот и все. Таких переменных может быть много, все они будут задействованы в SQL запросе и объединятся условия будут через оператор AND. Подробнее как это делается смотрите в шаблоне объявлений post_default_template.php - Исправлена автоматическое добавление тега moore (отделение анонса объявления), теперь, если пользователь вставит одну длинную строку, разрыв будет вставлен после 300 символов, на первом пробеле.
- В шаблоне объявлений добавлена возможность добавлять метки WordPress
23.10.2008
- Добавлен фильтр данных формы ввода добавлять его можно стандартным методом WordPress add_filter(’ads_check_fields’, ‘имя функции);, пример использования смотрите в файле ads_config.php
- изменено имя файла confi.php на ads_config.php
15.11.2008
- Исправлена загрузка и отображение картинок для WordPress версии 2.3
21.01.2009
- Исправление безопасности: исправлена потенциальная уязвимость в функции function ads_queryfilter($query) - конструктор SQL запроса который позволяет осуществлять поиск по произвольным полям объявлений.
16.02.2009
- Добавлена функция извещения автора если кто-то оставил комментарий к его объявлению, ну естественно если сам автор оставил email.
- Добавлена возможность указывать время жизни объявления, а также функция автоматического удаления просроченных объявлений.
- Подключен механизм кЭша WordPress в самых ресурсоемких местах : function ads_template_apply($post_content) и function ads_get_attachments($post_ID)
- Добавлен новый пользовательский фильтр add_filter(’ads_check_files’, ‘ads_filter_files’); - фильтруем загруженные файлы
- Новый вариант капчи, теперь на картинке цыфры написаны словами один, два, три… Также поменял набор шрифтов на более читабельные. Теперь код распознается довольно легко.
- Кроме того в директории плагина есть альтернативный пример настроек плагина, чтобы он заработал надо заменить ads_config2.php на ads_config2.php, в этом варианте пользователь сразу переходит к форме заполнения, а выбор категорий осуществляется с помощью выпадающего списка, здесь же есть примеры использования фильтров
Доски Объявлений - примеры
Отдельное спасибо за помощь в тестировании автору этого ресурса
256 White Shades
список открыт присылайте примеры будем публиковать
Что планируется далее:
1 Продвинутая навигация по городам
2 Раздумываю над написанием виджета для быстрого добавления объявлений,но пока не знаю чего от него хочу.
3 Сделать поиск по Custom Fields с префиксом ads_
4 Добавить оплату объявлений по sms.
Спасибо!
полезная штука, надо будет потестить
еще бы неплохо ввести поддержку тегов, кроме жестко определенных категорий.
Спасибо за плагин!!! Надо будет протестировать и организовать что-нибудь похожее на доску объявлений!
Да, поиско по Custom Fields просто необходим!!! Буду ждать с нетерпением. Кстати, работа над сайтом по недвижимости уже подходит к логическому завершению:)
Ну а как например создать форму, в которой анонимный юзер делает выбор в полях, и этот выбор выводится в Custom Fields?
Это ведь тогда мастер создания формы требуется, или мануал путный.
По сравнению с TODO Forms для меня например, это критично.
Кстати, вместо запрещения использовать разделы, наверное более логично разрешение публикаций в разделы по списку. Допустим, система объявлений использует свои разделы, количество которых контролируемо. А при создании нового раздела на сайте, чтобы не косячить, осознавая, что куда-то его номер не внесли, и теперь в этом разделе красуется левое объявление.
форму создать очень просто открывайте пример form_default_template.php
например вы решили добавить поле выбора ads_my_checkbox
напоминаю префикс ads_ обязателен ну и далее добавляем в форму элемент input нужного типа
<input type=”checkbox” name=”ads_my_checkbox” />
и это поле добавлено в таблицу wp_postmeta как Custom Field
тут вот вопрос в другом, что организовать проверку заполнено \ незаполнено с этим пока не очень. Я скажу конечно надо править код в ads.php
после комментария
// далее проверяем наличе полей и их правильность
строка примерно 238, мде ну это совсем некрасиво
наверно придется добавить отдельный файл с подключением фильтра или в config.php добавлять фильтр
Отличный плагин!
Есть ошибочка - при добавлении объявления если выбрать картинку, но не нажать кнопку “загрузить”, выдается сообщение о ошибке хотя объявление успешно добавляется.
форма добавления
форма редактирования удаления
У меня не выводится на страницу никакая форма после прибавления такого кода, как я уже не пытался пробовать!Вы не могли бы как-то по-понятнее написать, что вставлять в страницу?
<!—-AdsFormEdit—-> форма добавления
<!—-AdsFormEdit—-> форма редактирования удаления
а забыл напомнить, надо обязательно переключится в режим HTML
Спасибо - разобрался! В html я и так переключался - не работало, надо просто было двойные тире ставить.а вот фотографии у меня не грузятся, может в настройках wordpress покопаться? у меня стоит тема такая что и граватаров не выдает в комментариях - хотя вывод разрешен.
И еще - у вас ужасная капча вот тут на сайте - по пять раз коммент отправлять приходится!(((
С фотографиями у меня нормально в “просмотре” и в “загрузить”, но как только нажмешь “публиковать” - все, объявление публикуется без фотографий. подскажите что-нибудь, плиз!
Вы не одиноки, у меня такая же проблема - объявление публикуется без фоток! Никак не могу понять почему так?
Отличный плагин. Я где-то подобное встречал, но намного другое. А из вас никто не слышал о плагинах под MODx. Было бы очень интересно увидеть таковые.
Когда первый блог делал то делал на Wordpress, тогда было бы очень кстати. Сейчас уже есть солидная коллекция, нужно выкладывать.
да действительно с WordPress 2.3 перестали работать картинки
все нашел и исправил. качаем новую версию 2.0.6
приношу свои извинения
ошибка заключалась в функции update_post_meta
в версии 2.6 если вы пытаетесь обновить meta поле, которого еще нет, то функция просто создаст его, а в 2.3 вернет false
форма добавления
форма редактирования удаления
Что это значит? Создал страницу, вставил туда (в режиме html) и ничего, никакой формы нету
Обьясните пожалуйста.
Огромное спасибо за плагин!
Вы делаете очень хорошее дело.
Даже такой чайник как я смог слепить блог понедвижимости и подарить его жене.
Желаю дальнейших творческих успехов.
Разобрался с картинками))! оказывается надо было в коде - прямо в .пхп файле показа поста - post_default_template.php - вставить вот это “
“. А пишу то чего: люди на сайте уже поднакидали объявлений и смотрю я на все это и думаю что без полноценного поиска по расположению, цене и т.п. как-то все это “не очень” - хотя плагин хороший, спасибо! Вы не собираетесь ничего по этому поводу предпринять? Ну или может посоветуете как этот поиск можно самостоятельно сделать?
Есть ли где-то мануал или хелп по плагину, после его активации не пойму что сделать дальше, что-бы доска заработала
заполняю форму, нажимаю кнопку “Загрузить” получаю новую страницу и надпись “Не найдено” и ниже форма поиска. Где проблема, помогите. Хочу увидеть опубликованные объявления.
Присоединяюсь к вопросу : ТС, скажите как сделать видимым форму на сайте? Я плагин активировал, но ничего не отображается. Какую строчку прописать в шаблоне? Спасибо.
Похоже автор забросил данный блог. И как не грустно, становится очевидна разница между бесплатным и платным ПО. В одной хорошей cms есть отдельный модуль “доска объявлений”, цена 500 руб, сумма не большая, зато обратная связь сразу по аське… Автор на заметку
Доброе время суток!
Продолжаю эксперименты…
“Прикрутил” доску объявлений (ads-wordpress 2.0.6), полдня просидел разбираясь с кодом темы, но так как с WP на Вы (сталкиваюсь впервые), “научным” путём так и не вывел где можно отключить что бы сообщения одного из Разделов (в данном случаи объявления) не публиковался в Блоке “Новости дня” и на странице “Последние записи в Блоге” (Recent Articles)
Такое вообще возможно?
Заранее спасибо!
Добрый день. Подскажите, как добавить форматы загружаемых файлов (rar zip).
И вот такая проблема, например есть главная рубрика и подрубрика в ней. Мне нужна возможнось публикации в них обоих, а сейчас получается только в подрубрике. Можно это как то исправить?
так значит создаем рубрику ОБЪЯВЛЕНИЯ
открываем файл ads_config.php
добавляем новый шаблон
$ads_config['form_templates']['ОБЪЯВЛЕНИЯ'] = ‘/ads_name.php’;
таперича открываем данный шаблон (делаем его по образцу шаблона form_default_template.php)
и в новом шаблоне добавляем чекбокс с выбором категорий
, ! а также добавляем поле “post_category” в масив $_SESSION['ads_filds_form'] проверка,
переменная post_category должна быть массивом поэтому либо в форме пишем имена полей
name=”post_category[]” с квадратными скобочками ,
либо переписываем пользовательский фильтр в файле ads_config.php, ну вообщем по завершению всех манипуляций в массиве $_POST должен оказатся массив post_category с номерами категорий,
к вашем post_category будет добавлена базовая категория т/е “ОБЪЯВЛЕНИЯ”
вообщем должно работать, удачи
и кстати автор ничего не забросил он просто был очень занят, и ICQ мой можно посмотреть на странице контакты
дополнительно добавил туда свой email
поскольку у этих виджетов нет настроек надо редактировать вручную в частотности для виджета (Recent Articles) открываем файл wp-includes/widgets.php
находим функцию function wp_widget_recent_entries($args)
и вней строчечку $r = new WP_Query(array(’showposts’ => $number,…..
добавляем аргумент в массив аргументов (каламбур однако получился)
‘cat’='-34,-23,-12′ номера категорий, те что с минусом исключаются из выборки и наверняка если если ваша рубрика, которую вы хотите исключить, имеет подкатегории то их тоже придется указать.
Таки удалось вывести форму, почему-то просто скопировав теги и вставив в режиме html не получалось, а когда написал вручную форма отобразилась на странице.
Теперь возник вопрос - когда перехожу на страницу объявлений и выбора категорий - у меня выводятся все категории сайта, как убрать выбор категорий и оставить только категорию Обьявлений и подкатегории этой рубрики?
Мда… извините за предыleobq глупый вопрос.
Настраивается в админке
Немного не пойму работает ли подключение отдельных форм к подрубрикам:
Есть рубрика “Операции с недвижимостью” в ней подрубрики “Куплю”, “Продам”
Если подключаю отдельную форму к “Операции с недвижимостью” то используется дефолтная форма, если же подключаю форму к подрубрике “Куплю” то в этой подрубрике работает подключенная форма.
попробую тоже заморочиться с доской. вроде нехитрое дело, хоть и возни много
Можно как-то подстроить плагин, что-бы разбить его на 2 части.
Например есть сайт о недвижимости, на котором есть 2 страницы - покупка/продажа и аренда.
Если на страницу вставить “AdsForm” то на обоих будет одни и те же рубрики (логично конечно :))
Как можно указать что-бы на одной странице были рубрики аренды, а на второй рубрики продажи?
2Antik “Операции с недвижимостью” это что как бы главная рубрика где объявления публикуются?
Вообщем то должно все работать.
По поводу разбить на 2 части, такого не предусматривал, но можно решить вопрос выше указанным методом. Перехватить выбор рубрик и организовать это самостоятельно в шаблоне формы. Вообще довольно запутанная рубрикация у вас получается. Я вам предлагаю немного другой подход: рубрики можно разделить на 2 группы 1-ОБЪЕКТЫ (квартиры,дома,участки,офисы,склады,…) 2-ДЕЙСТВИЯ(купить,продать,аренда длительно, аренда посуточно, переоформление …), ну это чисто условно.
а WP мы создаем следующие рубрики : квартиры,дома,участки,офисы,склады,купить,продать,аренда длительно, аренда посуточно,переоформление.
Будем просто комбинировать ОБЪЕКТЫ недвижимости и ДЕЙСТВИЯ над ними.
ну далее зпускаем плагин, в админке плагина исключаем рубрики ДЕЙСТВИЯ(купить,продать,аренда длительно, аренда посуточно), а вшаблоне формы добавляем чекбокс выбора этих рубрик.
на главной странице конечно придется разбить эти две группы я имеюю ввиду ОБЪЕКТЫ и ДЕЙСТВИЯ, стандартным плагином это сделать не получится, вручную можно сделать можно сделать примерно так
>ul>
>?php
wp_list_categories(’exclude=4,7&title_li=’); ?>
>/ul>
вообщем смотрите
А вообще можно и создать эти родительские рубрики ОБЪЕКТЫ и ДЕЙСТВИЯ, наверно так даже будет правильнее и тогда вывод на главной wp_list_categories(’child_of=8′);
Вывернулся немного другим способом. Просто создав 2 разные категории, повозился с шаблонами страниц.
Есть 2 категории объявлений, в каждой много подкатегорий, если в конфиге прописать форму ввода и вывода к категории, то подкатегории всеравно используют ту что default.
Не получается добавить дополнительное поле - телефон. Добавляю переменную, в форме добаляю поле ввода, заполняю поле в форме и уже при предпросмотре ничего не выводится. В post_default_template вывод поля поставил, но почему оно не отображается не пойму. Подскажите пожалуйста.
Wp 2.7 - при просмотре объявления если кликнуть по расположению (например Киев) то просто кидает на главную.
поле с телефоном называем ads_phone ads_ обязательно
далее добавить эту поле в массив $_SESSION['ads_filds_form'] в шаблоне формы
далее откройте просто через админку WP управление
объявлние с телефоном и посмотрите Произвольные поля появилось ли там это поле ?
файл ads.php найдите function ads_queryfilter
закоментируйте строку
if(!(is_category() OR is_homepage OR is_tags) OR is_page()) return $query;
для поиска
1. поле так и называл ads_phone (все копипаст по инструкции)
Оно добавлено в шаблоне, проверял не один раз.
В произвольных полях не появилось
2. Когда закомментировал строку в ads.php объявление разместить невозможно.
1 мне даже незнаю что там у вас
надо пойти по цепочке сначала посмотрите
функция function ads_main(
ищети секцию CHECK_FORM
там надо проследить
echo ‘
‘;
а также массив $post куда девается поле
а кстати в просмотре это поле присутствует ?
с просмотра идем в секцию SAVE_FORM
надо искать в масииве $post есть или нету наше поле
я сечас тут на сайте добавил телефон и ёмаил все отлично добавилось
2 строку меняем на
if(!( is_category() OR is_home() OR is_tag() ) OR is_page()) return $query;
и вообще тоже жалательно c prin_r
в массиве $_REQUEST должна быть переменная ads_basecat
Немного разобрался со второй проблемой, по умолчанию в объявлениях если кликать на города, то кидает на ссылку вида
nashdomik.net/?ads_location=
А должно быть так
nashdomik.net/category/obyavleniya/?ads_location=
Примерно догадываюсь почему это но еще не знаю как решить. Прошу совета.
А вот с первым что-то не пойму. Попробую с нуля все поднять. Может какие плагины мешают.
Ведь брал ваш готовый плагин и ничего не менял, должно же работать, все пошагово разложил ан нет.. работать не хочет
Перезалил плагин, заново прошелся по пунктам и поле телефон появилось. Вроде все то-же самое сделал, мда.. может где пробел лишний попал или кавычка не такая.
второе решил просто правкой формы и добавлением туда полного пути.
Нашел третью проблему - поля с загрузкой картинок не выводятся в форме, весь цикл как-то не отрабатывает, из всей таблицы картинок выводится всего одна строка с кнопкой загрузить.
да странно, недавно я смотрел загрузки были на месте
попробуйте прямо в шаблоне формы посмотреть что с массивом $files
Хотелось бы еще возможность автоудаления объявления (статьи) по истечению заданного срока (и возможность задать срок в форме подачи объявления
Господа, сам функционал неплохой. Ошибочки поправьте -упращенной, матерьялы и т.д.
И еще… Вдруг кто то тестировал на версии 2.7? Если можно - результаты?
спасибо за ошибки, исправил :-[
Прошу прощения, но я наверное счас буду тупить, короче установил плагин, активировал его, создал новую страницу, вставил в режиме html в неё этот тег
что делать дальше ума не приложу, на созданной странице ничего кроме заголовка этой страницы не появилось.
Подскажите молодому
да, тег почему-то отображается здесь с ошибками
WP проглатывает почемуто одно тире
<!——AdsForm——>
<!——AdsFormEdit——>
вот так правильно
Подскажите, есть ли какой нибудь форум, где обсуждают этот плагин и подскажите возможно ли что у меня не работает плагин из за того что на сервере НЕ php5
Как в “Дать объявление” добавить “Выбирите категорию!” и куда прописать категории .Сайт ещё можно ли сделать так, чтобы обявления не выходили на главной пока не выберешь рубрику “Обявления” заранее спасибо за плагин
Удалить показ объявлений с главной страницы можно с помощью
query_posts(’cat=-23′) открываете index.php и вставить перед главным циклом там где if ( have_posts() ) : while ( have_posts() ) : the_post();
-23 в данном случае это категория объявлений
ну и надо естественно смотреть какая архитектура вашей темы,
если нет category.php который отвечает за показ категории
значит категории показывает home.php а если его нет тогда index.php тогда лучше в index.php прописываем
if (is_home()) {
query_posts(”cat=-3″);
}