Как создать доску объявлений на сайте?

Приветствую вас, друзья! Тема сегодняшней статьи — как создать доску объявлений на сайте. На самом деле, в свой блог я уже давно ничего нового не писал, хотя Вы этого, конечно, не заметили — просто я пишу всегда с запасом на будущее, когда есть свободное время, поэтому статьи выходили с обычной регулярностью раз в два дня. А дело все в том, что я решил перенести, наконец, один свой сайт с давно устаревшей морально и физически CMS phpNuke xxx-годичной давности на наш любимый WordPress, чем и был занят последние пару недель. Сайт большой и многофункциональный, поэтому много чего пришлось додумывать и допиливать в WP самому своими кривыми ручонками. И одной из задумок было создать бесплатную доску объявлений на сайте. Однако стандартные существующие плагины меня не совсем устраивали. Что из это вышло сейчас покажу!

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

Настройка бесплатной доски объявлений для сайта

Так вот, после установки, активации и настройки основных функций плагина через админку

мне понадобилось сделать 2 доработки.

Первая — добавить новые поля в форму. Мне нужно было, чтобы пользователи могли вводить в форму доски объявлений свой город и стоимость товара. Если вам тоже это необходимо, то открываем файл в папке плагина «ads-wordpress/template/form_default_template.php» и находим в самом начале закоментированный образец для добавления новых полей

/*
	//сюда надо добавить имена новых полей  
$_SESSION['ads_fields_form'] = array('ads_my_var', 'adp_myvar');
*/

Давайте добавим Цену и Город, который у нас будут называться ads_price и ads_town. После закомментированного примера вставляем строку:

$_SESSION['ads_fields_form'] = array('ads_price', 'ads_town');

Сделали? Отлично! Теперь надо вставить эти поля в форму. Спускаемся по коду файла чуть ниже и добавляем в таблицу формы отправки данных две строки:





<tr><td><?_e('Цена','ads-wordpress')?> (руб.)</td><td><input type="text" size="10" name='ads_price' /><br /><? $this->error_msg('ads_price')?><br /></td></tr>
<tr><td><?_e('Город','ads-wordpress')?></td><td><input type="text" size="30" name='ads_town' /><br /><? $this->error_msg('ads_town')?></td></tr>

Далее открываем файл «ads-wordpress/template/post_default_template.php» и в нужное место внутри блока

<div class="ads_meta">

добавляем код вывода отправленных данных

<?if($ads_price):?><div id="ads_price"><b>Цена (руб)*</b>:&nbsp;<?=$ads_price?></div><br><?endif?>
<?if($ads_town):?><div id="ads_town"><b>Город*</b>:&nbsp;<?=$ads_town?></b>&nbsp;<?=$ads_town?></div><?endif?>

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

Аналогично тому, как мы это сделали только что, добавляем в форму доски объявлений еще одну строку со значением «ads_picture». После выполнения всех описанных выше шагов добавляем в файл формы «form_default_template.php» ссылку на загрузку изображения. У меня это выглядело так:

<tr><td><?_e('Адрес картинки','ads-wordpress')?><br><a href="http://ipicture.ru" target="_blank">(загрузить картинку)</a></td><td><input type="text" size="10" name='ads_picture' /><br /><? $this->error_msg('ads_picture')?><br /></td></tr>

Можно к ссылке на сервиз загрузки прицепить какой-то скрипт, который бы открывал сайт в всплывающем окошке, но мне это было не принципиально. Главное, чтобы пользователь вставил в форму именно ссылку на загруженное им изображение, а не на ссылку со страницей, где оно показывается (в сервисе ipicture.ru она идет самой первой), иначе картинка в доске объявлений на сайте не будет отображаться. После этого возвращаемся в файл «post_default_template.php» и над блоком

вставляем вывод картинки:

<center><?if($ads_url):?><a target="_blank" href="<?=$ads_picture?>"><img src="<?=$ads_picture?>" width="150" border="0"></a><?endif?></center>

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

<!--AdsForm-->

, а во вторую —

<!--AdsFormEdit-->

. И, разумеется, поставить на них ссылки в меню сайта. Если все сделали правильно, то получится примерно следующее:

Поделись этой статьей с друзьями!

Это будет интересно прочитать:

  • Стала ковыряться, первую доработку в папке «post_default_template.php» не смогла сделать. По-видимому эту доработку необходимо делать в папке «form_default_template.php»

  • Че-то никак не получается. Новые поля добавились. Добавляю код вывода отправленных данных. Однако в объявлении данные новых полей не отображаются. Проверьте, точно Вы даете правильный код для вставки в post_default_template.php? А может быть я неправильно определяю «нужное место» внутри блока ? Подскажите, после каких строчек вставлять код в этом файле в стандартной комплектации плагина?

    • Все верно написано. Вывод данных на сайте начинается после строки [code lang=»php»]<div class="ads_meta"> в файле post_default_template.php. Туда надо прописать коды тех параметров, которые вы задали для формы заполнения. Проверьте, правильно вы их прописали..

      • Все прописала, следуя Вашему примеру, однако введенные данные в новые поля в объявлении не отображаются.

        • скиньте мне на почту отредактированные вами файлы шаблона

        • 1. Вы вписали код в form_default_template внутри закомментированной строки — естественно, это надо сделать после закрытия комментария.
          Вот Ваш код:
          [code language=»»]
          /*
          //сюда надо добавить имена новых полей
          $_SESSION[‘ads_fields_form’] = array(‘ads_my_var’, ‘adp_myvar’);
          $_SESSION[‘ads_fields_form’] = array(‘ads_price’, ‘adp_town’);
          */

          Надо:

          [code language=»»]/*
          //сюда надо добавить имена новых полей
          $_SESSION[‘ads_fields_form’] = array(‘ads_my_var’, ‘adp_myvar’);
          */
          $_SESSION[‘ads_fields_form’] = array(‘ads_price’, ‘ads_town’);

          • Спасибо за Ваши советы. Чтобы я делала без Вашей помощи?!

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

  • Хочу сделать такую же доску как на данном сайте (это не спам) мой сайт другой. Как можно это организовать, писал уже создателю сайта и тому человеку на кого сссылку оставил avtoinstruktor.info/board/add.
    Может вы сможете помочь?

    • Ну вот примерно как здесь описано и сделана там доска. Помочь не могу, т.к. занят. Надеюсь, статья вам поможет

  • Все сделала, как Вы написали в статье. Но почему-то при публикации объявления нет ни цены, ни города, ни картинки… Может я все-таки что-то упустила, помогите разобраться?

    • Возможно.. Так как если все делать по инструкции,то должно получиться,если только плагин суперкардинально с момента написания статьи не изменился

Добавить комментарий