Сейчас работаю над созданием каталога недвижимости и была необходимость создать в adsmanager vip-выделения объявлений. Задача также состояла в том, чтобы только администратор мог управлять этой функцией.
Сделал следующее:
1. Открываем базу данный (например, через phpmyadmin) и добавляем в таблицу _adsmanager_ads следующую строку (делаем SQL-запрос)
ALTER TABLE `msr_adsmanager_ads` ADD `vip` INT( 11 ) NOT NULL
Только не забудьте свой префикс поставить, вместо msr
2. В файле admin.adsmanager.html.php находим функцию function displayAd и после кода
<tr>
<td><?php echo ADSMANAGER_TH_USER; ?></td>
<td>
<select name="userid" id="userid">
<?php foreach($users as $user) { ?>
<option value="<?php echo $user->id;?>" <?php if ($user->id == $userid) { echo "selected"; } ?>><?php echo $user->username; ?></option>
<?php } ?>
</select>
</td>
<td> </td>
</tr>
вставляем
<!-- VIP user or no-->
<tr>
<td>
<?php echo ADSMANAGER_TH_VIP; ?>
</td>
<td>
<select name="vip" id="vip">
<option value="0" <?php if ($row->vip == 0) { echo "selected"; } ?>><?php echo ADSMANAGER_TH_VIP_NO; ?></option>
<option value="1" <?php if ($row->vip == 1) { echo "selected"; } ?>><?php echo ADSMANAGER_TH_VIP_YES; ?></option>
</select>
</td>
</tr>
<!--// VIP user or no-->
3. Открываем файл adsmanager.class.php и добавляем в класс class adsManagerAd
4. Открываем файл adsmanager.html.php, находим функцию function show_list (будем выделать это объявление в списке объявлений) и после строки foreach($rows as $row) { добавляем
if($row->vip==1){
$class_style = 'vip1';
}else $class_style = '';
Дальше находим в этой же функции (ниже) примерно эти строки
<table class="adsmanager_table ....
и изменяем на
<table class="adsmanager_table<?php echo $class_style; ?>">
Т.е. задаем стиль для выделения.
5. В файле adsmanager.css задаем стиль для vip-объявлений.
Например
table.adsmanager_table {border: 1px solid #FFF; width: 100%;}
table.adsmanager_tablevip {border: 1px solid #000; width: 100%;}
6. Так же было бы хорошо, чтобы VIP-объявление стояло выше, тогда открываем файл adsmanager.php и находим функцию function adsList, прокручиваем почти в самый низ и находим строку else if ($order != 0)
меняем код
else
{
$order_text = "a.date_created DESC ,a.id DESC";
}
на
else
{
$order_text = "a.vip DESC, a.date_created DESC ,a.id DESC";
}
ну вот и все.
Ах да, не забудьте добавить в языковой файл переменные
ADSMANAGER_TH_VIP
ADSMANAGER_TH_VIP_NO (нет выделения)
ADSMANAGER_TH_VIP_YES (есть выделение)
Пример можно посмотреть тут (еще дорабатываю сайт, основа (поля и пока что временный дизайн) была взята с mosr.ru, дизайн будет новый (на след. неделе запускаем проект + на неделе доработаю поиск по тегам)
+++ Забыл добавить, что тестировал на Joostina 1.2.0 + AdsManager 2.5 RC2
Открываем файл adsmanager.html.php, находим функцию function show_list (будем выделать это объявление в списке объявлений) и после строки foreach($rows as $row) { добавляем
Код:
if($row->vip==1){
$class_style = 'vip1';
}else $class_style = '';
Итого у нас получается вот так?:
foreach($rows as $row) {
if($row->vip==1){
$class_style = 'vip1';
}else $class_style = '';
Вам не кажется что скобки не хватает, я все перепробовал, но никак. Да еще... adsmanager.html.php не принимает эти изменения, т.е. filezilla пишет что все ок, а если заново открыть файл, то все вернулось назад.
кажется все это между собой связано, изменяю код выше он мне пишет нижнею ошибку ))
Вот все сделал как описано но у меня такую ошибку дают при обращении к самой рекламе из сайта :
Parse error: syntax error, unexpected T_ELSE in /home/(тут мой домен)............../public_html/components/com_adsmanager/adsmanager.html.php on line 568 Может кто встречался с таким траблом?
Помогите пожалуйстаз, очень надо )))