И как приступим
Поставленная задача: Нужна Афиша для городского портала
Возможности: $-нету, знания для создания — минимальные
Над чем работаем: Компонент — Доска объявлений, Шаблон — стандартный!
Приступаем:
1. Заходим в папку templates\components и находим файл com_board_item.tpl
и удаляем в конце строки.
<div class="bd_links"> {if $user_id} {if $item.user_id && $item.user_id != $user_id} <span class="bd_message"><a href="/users/{$item.user_id}/sendmessage.html">{$LANG.WRITE_MESS_TO_AVTOR}</a></span> {/if} {/if} {if $item.user_login} <span class="bd_author"><a href="/board/by_user_{$item.user_login}">{$LANG.ALL_AVTOR_ADVS}</a></span> {/if} </div>
И удаляем (это уберет автора, дату установки, город и количество просмотров)
<div class="bd_item_details"> {if $cat.showdate && $con.published} <span class="bd_item_date">{$con.fpubdate}</span> {/if} {if !$con.published && $con.is_overdue} <span class="bd_item_status_bad">{$LANG.ADV_EXTEND_INFO}</span> {elseif !$con.published} <span class="bd_item_status_bad">{$LANG.WAIT_MODER}</span> {/if} <span class="bd_item_hits">{$con.hits}</span> {if $con.city} <span class="bd_item_city"><a href="/board/city/{$con.enc_city|escape:'html'}">{$con.city}</a></span> {/if} {if $con.nickname} <span class="bd_item_user"><a href="{profile_url login=$con.login}">{$con.nickname}</a></span> {else} <span class="bd_item_user">{$LANG.BOARD_GUEST}</span> {/if} {if $con.cat_title} <span class="bd_item_cat"><a href="/board/{$con.category_id}">{$con.cat_title}</a></span> {/if} </div>
Напоминаю, что объявление можно добавить по ссылке .../board/add.html
Удаляем в файле com_board_cats.tpl
{if $cat.is_can_add || $root_id==$cat.id} <div class="float_bar"> <table cellpadding="2" cellspacing="0"> <tr><td><img src="/components/board/images/add.gif" border="0"/></td> <td><a href="/board/{if $root_id!=$cat.id}{$cat.id}/{/if}add.html">{$LANG.ADD_ADV}</a></td></tr> </table> </div> {/if}
И уничтожаем то, что ненужно :)
<td >{$LANG.CITY}: </td> Надпись "Город" <td > {$bcities} Тут список городов </td>
<option value="user_id" {if $orderby=='user_id'} selected {/if}>{$LANG.ORDERBY_AVTOR}</option> Сортировка по автору <option value="hits" {if $orderby=='hits'} selected {/if}>{$LANG.ORDERBY_HITS}</option> Сортировка по просмотрам <option value="obtype" {if $orderby=='obtype'} selected {/if}>{$LANG.ORDERBY_TYPE}</option> Сортировка по типу
<td >{$LANG.TYPE}: </td> <td > <select name="obtype" id="obtype" onchange="$('form#obform').submit();"> {$btypes} </select> </td>
Далее создаем группу пользователей "Афишаторы"
Даем им право тока добавлять объявления. В настройках компонента, ставим премодерацию! Вдруг Афишатор
будет безмозглый! Всем остальным группам запрешаем добавление объявлений! Вообщем настраиваем, как вам удобно!
Теперь договариваемся с кинотеатрами) Они создают аккаунт мы его толкаем в группу Афишаторов) И пусть
добавляют объявления. Либо Всю систему можно сделать под себя!!!
И так дальше! Нас не устраивает Вид) Дорабатываем его)
Заходим в файл com_board_item.tpl
И удаляем
{if $item.is_vip} <span class="bd_item_is_vip">{$LANG.VIP_ITEM}</span> {/if} <span class="bd_item_date">{$item.pubdate}</span> <span class="bd_item_hits">{$item.hits}</span> {if $item.city} <span class="bd_item_city"> <a href="/board/city/{$item.enc_city}">{$item.city}</a> </span> {/if} {if $item.user} <span class="bd_item_user"> <a href="{profile_url login=$item.user_login}">{$item.user}</a> </span> {else} <span class="bd_item_user">{$LANG.BOARD_GUEST}</span> {/if}
Это внутри объявления уберет просмотры автора и т. д.! Оставит тока возможность редактировать и удалить!
Опять же тока для Админов!!!
Идем в конструктор форм и создаем форму с полями
Где Когда Начало Цена
И привязываем её к добавлению объявления!!!
Делаеться это в компоненте, редактируете рубрики — Там есть настройка Привязать форму :)
Теперь когда вы будете ходить по объявления увидете форму с надписями которые заполняються при добавлении
объявления!!!
Опять же форма появиться тока по ссылке .../board/add.html
То что нужно! Чтоб афишаторы не лазили где попало!
Теперь Там надо потредактировать поля! Убрать випку и прочую каку)
Летим в com_board_edit.tpl
И удаляем
{if $form_do == 'edit' && $item.is_vip} <tr> <td height="35"><span>{$LANG.VIP_STATUS}:</span></td> <td height="35">до {$item.vipdate}</td> </tr> {/if} {if $is_admin || ($is_billing && $cfg.vip_enabled && ($form_do=='add' || ($form_do=='edit' && $cfg.vip_prolong)))} <tr> <td> <span>{$LANG.MARK_AS_VIP}:</span> <div style="color:gray"> VIP-объявления выделяются цветом и всегда находятся в начале списка </div> </td> <td valign="top" style="padding-top:5px"> <select id="vipdays" name="vipdays" {if !$is_admin}onchange="calculateVip()"{/if}> {section name=vipdays start=0 loop=$cfg.vip_max_days+1 step=1} <option value="{$smarty.section.vipdays.index}"> {$smarty.section.vipdays.index} </option> {/section} </select> {$LANG.DAYS} {if !$is_admin} <input type="hidden" id="vip_day_cost" name="vip_day_cost" value="{$cfg.vip_day_cost}" /> <input type="hidden" id="balance" name="balance" value="{$balance}" /> <div id="vip_cost" style="margin-top:10px;display: none"> Стоимость: <span>0</span> баллов </div> <script type="text/javascript"> {literal} function calculateVip(){ var days = $('#vipdays').val(); var cost = $('#vip_day_cost').val(); if (Number(days)==0){ $('#vip_cost').hide().find('span').html('0'); } else { var summ = days * cost; $('#vip_cost').show().find('span').html(summ); } } function checkBalance(){ var cost = Number($('#vip_cost span').html(
Kupuexa, а что будет с доской или это дубликат компонента?
Если мне найдете инсталятор доски, чтоб не был связан со стандартной доской в БД) Еще ченить вам намучу)
Если у кого-то появились проблемы пишите! Чем смогу тем помогу!
ну кто то что то написал, потом удалил свой пост. потом я…Интересно как 5 летняя тема попала в список последних)
Доска объявлений в первой ветке это вообще самая гибкая и лучшая заготовка для приготовления на её основе новых компонентов. Когда мне нужно создать на сайте новый раздел и это будет большой раздел со множеством страниц и фильтров или я собираюсь что то парсить, я делаю всегда только на основе ДО, клонирую её и добавляю какие то новые функции если надо.
а у меня после клонирования пропала возможность для гостей добавлять записи
Добавьте действия по аналогией с Доской. Потом в настройках групп включите для гостей.