Доску объявлений преврашаем в АФИШУ

#1 15 декабря 2011 в 16:16
Т. к. кармы для создания блога не хватает, а показать очень хотелось! Решил это сделать на форуме.
И как приступим

Поставленная задача: Нужна Афиша для городского портала
Возможности: $-нету, знания для создания — минимальные
Над чем работаем: Компонент — Доска объявлений, Шаблон — стандартный!
Приступаем:

1. Заходим в папку templates\components и находим файл com_board_item.tpl
и удаляем в конце строки.


  1.  
  2. <div class="bd_links">
  3. {if $user_id}
  4. {if $item.user_id && $item.user_id != $user_id}
  5. <span class="bd_message"><a href="/users/{$item.user_id}/sendmessage.html">{$LANG.WRITE_MESS_TO_AVTOR}</a></span>
  6. {/if}
  7. {/if}
  8. {if $item.user_login}
  9. <span class="bd_author"><a href="/board/by_user_{$item.user_login}">{$LANG.ALL_AVTOR_ADVS}</a></span>
  10. {/if}
  11. </div>
  12.  
2. В той же папке находим com_board_items.tpl
И удаляем (это уберет автора, дату установки, город и количество просмотров)


  1.  
  2. <div class="bd_item_details">
  3. {if $cat.showdate && $con.published}
  4. <span class="bd_item_date">{$con.fpubdate}</span>
  5. {/if}
  6. {if !$con.published && $con.is_overdue}
  7. <span class="bd_item_status_bad">{$LANG.ADV_EXTEND_INFO}</span>
  8. {elseif !$con.published}
  9. <span class="bd_item_status_bad">{$LANG.WAIT_MODER}</span>
  10. {/if}
  11. <span class="bd_item_hits">{$con.hits}</span>
  12. {if $con.city}
  13. <span class="bd_item_city"><a href="/board/city/{$con.enc_city|escape:'html'}">{$con.city}</a></span>
  14. {/if}
  15. {if $con.nickname}
  16. <span class="bd_item_user"><a href="{profile_url login=$con.login}">{$con.nickname}</a></span>
  17. {else}
  18. <span class="bd_item_user">{$LANG.BOARD_GUEST}</span>
  19. {/if}
  20. {if $con.cat_title}
  21. <span class="bd_item_cat"><a href="/board/{$con.category_id}">{$con.cat_title}</a></span>
  22. {/if}
  23. </div>
  24.  
3. Можно делать можно и не делать😊Убирает надпись добавить объявление
Напоминаю, что объявление можно добавить по ссылке .../board/add.html
Удаляем в файле com_board_cats.tpl


  1. {if $cat.is_can_add || $root_id==$cat.id}
  2. <div class="float_bar">
  3. <table cellpadding="2" cellspacing="0">
  4. <tr><td><img src="/components/board/images/add.gif" border="0"/></td>
  5. <td><a href="/board/{if $root_id!=$cat.id}{$cat.id}/{/if}add.html">{$LANG.ADD_ADV}</a></td></tr>
  6. </table>
  7. </div>
  8. {/if}
4. Мне НЕ нужна была сортировка по городам я её тоже убрал! для этого заходим в файлик com_board_order_form.tpl
И уничтожаем то, что ненужно :)


  1. <td >{$LANG.CITY}: </td> Надпись "Город"
  2. <td >
  3. {$bcities} Тут список городов
  4. </td>
Там же можно удалить еще ненужны пункты, я дополнительно удалил строки

  1. <option value="user_id" {if $orderby=='user_id'} selected {/if}>{$LANG.ORDERBY_AVTOR}</option> Сортировка по автору
  2. <option value="hits" {if $orderby=='hits'} selected {/if}>{$LANG.ORDERBY_HITS}</option> Сортировка по просмотрам
  3. <option value="obtype" {if $orderby=='obtype'} selected {/if}>{$LANG.ORDERBY_TYPE}</option> Сортировка по типу
Убрал вообще поле ТИП оно мне за ненадобностью)

  1. <td >{$LANG.TYPE}: </td>
  2. <td >
  3. <select name="obtype" id="obtype" onchange="$('form#obform').submit();">
  4. <option value="all" {if (empty($btype))} selected {/if}>{$LANG.ALL_TYPE}</option>
  5. {$btypes}
  6. </select>
  7. </td>
Заходим в компонент. Добавляем рубрики (я добавил Кино, Концерты, Выставки, Клубные Тусовки)
Далее создаем группу пользователей "Афишаторы"
Даем им право тока добавлять объявления. В настройках компонента, ставим премодерацию! Вдруг Афишатор
будет безмозглый! Всем остальным группам запрешаем добавление объявлений! Вообщем настраиваем, как вам удобно!
Теперь договариваемся с кинотеатрами) Они создают аккаунт мы его толкаем в группу Афишаторов) И пусть
добавляют объявления. Либо Всю систему можно сделать под себя!!!

И так дальше! Нас не устраивает Вид) Дорабатываем его)

Заходим в файл com_board_item.tpl

И удаляем


  1. {if $item.is_vip}
  2. <span class="bd_item_is_vip">{$LANG.VIP_ITEM}</span>
  3. {/if}
  4. <span class="bd_item_date">{$item.pubdate}</span>
  5. <span class="bd_item_hits">{$item.hits}</span>
  6. {if $item.city}
  7. <span class="bd_item_city">
  8. <a href="/board/city/{$item.enc_city}">{$item.city}</a>
  9. </span>
  10. {/if}
  11. {if $item.user}
  12. <span class="bd_item_user">
  13. <a href="{profile_url login=$item.user_login}">{$item.user}</a>
  14. </span>
  15. {else}
  16. <span class="bd_item_user">{$LANG.BOARD_GUEST}</span>
  17. {/if}

Это внутри объявления уберет просмотры автора и т. д.! Оставит тока возможность редактировать и удалить!
Опять же тока для Админов!!!

Идем в конструктор форм и создаем форму с полями
Где Когда Начало Цена
И привязываем её к добавлению объявления!!!
Делаеться это в компоненте, редактируете рубрики — Там есть настройка Привязать форму :)

Теперь когда вы будете ходить по объявления увидете форму с надписями которые заполняються при добавлении
объявления!!!
Опять же форма появиться тока по ссылке .../board/add.html
То что нужно! Чтоб афишаторы не лазили где попало!
Теперь Там надо потредактировать поля! Убрать випку и прочую каку)

Летим в com_board_edit.tpl
И удаляем


  1. {if $form_do == 'edit' && $item.is_vip}
  2. <tr>
  3. <td height="35"><span>{$LANG.VIP_STATUS}:</span></td>
  4. <td height="35">до {$item.vipdate}</td>
  5. </tr>
  6. {/if}
  7.  
  8. {if $is_admin || ($is_billing && $cfg.vip_enabled && ($form_do=='add' || ($form_do=='edit' && $cfg.vip_prolong)))}
  9. <tr>
  10. <td>
  11. <span>{$LANG.MARK_AS_VIP}:</span>
  12. <div style="color:gray">
  13. VIP-объявления выделяются цветом и всегда находятся в начале списка
  14. </div>
  15. </td>
  16. <td valign="top" style="padding-top:5px">
  17. <select id="vipdays" name="vipdays" {if !$is_admin}onchange="calculateVip()"{/if}>
  18. {section name=vipdays start=0 loop=$cfg.vip_max_days+1 step=1}
  19. <option value="{$smarty.section.vipdays.index}">
  20. {$smarty.section.vipdays.index}
  21. </option>
  22. {/section}
  23. </select>
  24. {$LANG.DAYS}
  25.  
  26. {if !$is_admin}
  27. <input type="hidden" id="vip_day_cost" name="vip_day_cost" value="{$cfg.vip_day_cost}" />
  28. <input type="hidden" id="balance" name="balance" value="{$balance}" />
  29. <div id="vip_cost" style="margin-top:10px;display: none">
  30. Стоимость: <span>0</span> баллов
  31. </div>
  32.  
  33. <script type="text/javascript">
  34. {literal}
  35. function calculateVip(){
  36.  
  37. var days = $('#vipdays').val();
  38. var cost = $('#vip_day_cost').val();
  39.  
  40. if (Number(days)==0){
  41. $('#vip_cost').hide().find('span').html('0');
  42. } else {
  43. var summ = days * cost;
  44. $('#vip_cost').show().find('span').html(summ);
  45. }
  46.  
  47. }
  48.  
  49. function checkBalance(){
  50. var cost = Number($('#vip_cost span').html(
#2 15 декабря 2011 в 16:33
+
Kupuexa, а что будет с доской или это дубликат компонента?
#3 15 декабря 2011 в 16:40
Это и есть сама доска) laugh
Если мне найдете инсталятор доски, чтоб не был связан со стандартной доской в БД) Еще ченить вам намучу)
Если у кого-то появились проблемы пишите! Чем смогу тем помогу!
#4 15 декабря 2011 в 17:09
вот же… а я статьями ограничился… +
#5 29 января 2017 в 22:53
Доска объявлений в первой ветке это вообще самая гибкая и лучшая заготовка для приготовления на её основе новых компонентов. Когда мне нужно создать на сайте новый раздел и это будет большой раздел со множеством страниц и фильтров или я собираюсь что то парсить, я делаю всегда только на основе ДО, клонирую её и добавляю какие то новые функции если надо.
#6 29 января 2017 в 22:55
Интересно как 5 летняя тема попала в список последних)
#7 29 января 2017 в 22:57

Интересно как 5 летняя тема попала в список последних)

Jestik
ну кто то что то написал, потом удалил свой пост. smileпотом я… smile
#8 25 февраля 2017 в 14:51


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

Нил™

а у меня после клонирования пропала возможность для гостей добавлять записи
#9 25 февраля 2017 в 14:55
@iKrym, cms_user_groups_access
Добавьте действия по аналогией с Доской. Потом в настройках групп включите для гостей.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.