Форум русской поддержки Joomla!® CMS
09.12.2016, 23:25:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2 3  Все   Вниз
  Добавить закладку  |  Печать  
Автор

VIP-объявления для AdsManager 2.8

 (Прочитано 8770 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Doc
Завсегдатай
*****

Репутация: +17/-0
Offline Offline

Сообщений: 445


« : 11.06.2013, 12:34:36 »

Взято из этой темы http://joomlaforum.ru/index.php/topic,137455.0.html
Опишу как себе поставил на AdsManager 2.8.2 VIP-объявления но без SMS на Joomla 2.5.11
Идем в базу данных и в таблице (свой префикс)_adsmanager_ads создаем поле, называем его vip, тип поля tinyint, длинна значения поставил 1, по умолчанию НЕТ и остальные поля оставляем пустые
Сохраняем
Дальше идем редактировать файлы
Ваш сайт /administrator/components/com_adsmanager/tables/contents.php
Добавляем строку
Код:
var $vip = null;
Добавил после строки var $images = null;
И в нем же ищем код
Код:
foreach($this->data['fields'] as $name => $value) {
         if (is_array($value))
            $v = ','.implode(',',$value).',';
         else
            $v = $value;
         $row->$name = $v;
      }
И после него добавляем код
Код:
$row->vip = $this->vip;
Сохраняем

Дальше идем в файл administrator/components/com_adsmanager/views/admin/tmpl/editcontent.php и там после этого кода
Код:
<tr>
<td><?php echo JTEXT::_('ADSMANAGER_TH_PUBLISH'); ?></td>
<td>
<select name="published" id="published">
<option value="1" <?php if ($this->content->published == 1) { echo "selected"; } ?>><?php echo JTEXT::_('ADSMANAGER_PUBLISH'); ?></option>
<option value="0" <?php if ($this->content->published == 0) { echo "selected"; } ?>><?php echo JTEXT::_('ADSMANAGER_NO_PUBLISH'); ?></option>
</select>
</td>
<td>&nbsp;

</td>
</tr>
Добавляем этот код
Код:
<tr>
<td><?php echo 'VIP'; ?></td>
<td>
<select name="vip" id="vip">
<option value="0" <?php if ($this->content->vip == 0) { echo "selected"; } ?>><?php echo JTEXT::_('ADSMANAGER_NO'); ?></option>
<option value="1" <?php if ($this->content->vip == 1) { echo "selected"; } ?>><?php echo JTEXT::_('ADSMANAGER_YES'); ?></option>
</select>
</td>
<td>&nbsp;
</td>
</tr>
Сохраняем и переходим к следующему файлу в administrator/components/com_adsmanager/models/content.php
Почти в самом конце находим такую вот строчку
Код:
$filter_order = "a.date_created DESC ,a.id ";
Меняем ее на эту
Код:
$filter_order = "a.vip DESC ,a.date_created DESC ,a.id";

Все, у меня работает без проблем на AdsManager 2.8.2 и Joomla 2.5.11
Как выделить ее цветом пока не знаю, нужно искать решение
Сам не гуру в этих делах, просто нашел на этом форуме и собрал всю информацию в одну тему, при этом установил себе по такому принципу
« Последнее редактирование: 11.06.2013, 12:54:35 от Doc » Записан
Doc
Завсегдатай
*****

Репутация: +17/-0
Offline Offline

Сообщений: 445


« Ответ #1 : 11.06.2013, 13:35:32 »

Теперь выделяем цветом наше VIP объявление
Идем в файл \components\com_adsmanager\views\list\tmpl\default.php
Находим там такой код
Код:
if (function_exists('getContentClass'))
    $classcontent = getContentClass($content);
else
    $classcontent = "adsmanager_table_description";
?>  
<tr class="<?php echo $classcontent;?> trcategory_<?php echo $content->catid?>">
Меняем его на этот код
Код:
if ($content->vip == 1)
    $classcontent = 'vip';
else
    $classcontent = "normal";
?>  
<tr class="<?php echo $classcontent;?>">

Дальше идем в components/com_adsmanager/css/adsmanager.css
И в самом низу дописываем это
Код:
.adsmanager_table tr.normal
{
 background-color: #FFFFFF;
 border: 1px solid #ffffff;
 border-collapse: collapse;
 width: 98%;
}

.adsmanager_table tr.vip {
 background-color: #FFDD00;
 border: 1px solid #ffffff;
 border-collapse: collapse;
 width: 98%;
}
В результате мы получаем все объявления белого цвета, а VIP желтого, но цвета можно изменить самому, кому какой нравится...подобрать можно здесь http://www.w3schools.com/html/html_colornames.asp
Описал как сделал себе, если что-то неправильно, то думаю наши гуру поправят и подскажут, что неправильно сделано
Записан
khan-alex
Осваиваюсь на форуме
***

Репутация: +6/-1
Offline Offline

Сообщений: 173


« Ответ #2 : 12.06.2013, 17:31:21 »

Цитировать
$row->vip = $this->vip;
К сожалению данная строка не только позволяет сохранять статус объявления VIP при редактировании, но и не позволяет редактировать объявление даже через админку. Нельзя изменить ни дату, ни текстовые поля, вот фотку удалить-редактировать можно!
Записан
Doc
Завсегдатай
*****

Репутация: +17/-0
Offline Offline

Сообщений: 445


« Ответ #3 : 12.06.2013, 18:27:14 »

У меня редактирует без проблем и в админке и с фронта
Вы можете конечно поставить этот код
Код:
$row->vip = JRequest::getInt('vip',0);
Но при редактирование будет пропадать статус, если нет подтверждения, что это вип через SMS
« Последнее редактирование: 12.06.2013, 18:31:09 от Doc » Записан
khan-alex
Осваиваюсь на форуме
***

Репутация: +6/-1
Offline Offline

Сообщений: 173


« Ответ #4 : 03.07.2013, 00:05:37 »

Да, всё прекрасно, и редактируется и остаётся VIP. Теперь осталось только вставить иконку vip, там же где top и new.
Записан
LS_D
Осваиваюсь на форуме
***

Репутация: +16/-0
Offline Offline

Сообщений: 155


« Ответ #5 : 12.07.2013, 00:21:35 »

Да, всё прекрасно, и редактируется и остаётся VIP. Теперь осталось только вставить иконку vip, там же где top и new.
Разберетесь куда вставить
if ($content->vip == 1) {
                  //if ($iconflag == false) //по желанию
                     echo "<div class='center'>";
                  echo "<img align='center' src='".$this->baseurl."components/com_adsmanager/images/ваша картинка' />";
                  //$iconflag = true; //по желанию
               }
Записан
LS_D
Осваиваюсь на форуме
***

Репутация: +16/-0
Offline Offline

Сообщений: 155


« Ответ #6 : 12.07.2013, 06:45:34 »

.
« Последнее редактирование: 06.07.2015, 19:19:37 от LS_D » Записан
ritm-it45
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 64


« Ответ #7 : 12.07.2013, 15:26:33 »

to LS_D
что использовал для списков "Страна-Область-Город"? ajaxcity?
Записан
LS_D
Осваиваюсь на форуме
***

Репутация: +16/-0
Offline Offline

Сообщений: 155


« Ответ #8 : 12.07.2013, 15:59:12 »

to LS_D
что использовал для списков "Страна-Область-Город"? ajaxcity?
Плагин от Грината
Записан
khan-alex
Осваиваюсь на форуме
***

Репутация: +6/-1
Offline Offline

Сообщений: 173


« Ответ #9 : 12.07.2013, 17:33:16 »

Цитировать
Разберетесь куда вставить
Спасибо разобрался - работает! Для полноты картины хотел таким же методом вставить иконку vip в модуль mod_adsmanager_ads , но не тут-то было: пусто, видимо в самом модуле нужно прописывать classcontent = vip , попытался - не получилось....
Как бы опять хелп!
Ну и ещё в догонку. Хотелось бы эти же иконки вывести, так же, в подробном режиме и в полном просмотре объявления.
« Последнее редактирование: 12.07.2013, 17:51:14 от khan-alex » Записан
LS_D
Осваиваюсь на форуме
***

Репутация: +16/-0
Offline Offline

Сообщений: 155


« Ответ #10 : 12.07.2013, 18:41:39 »

Спасибо разобрался - работает! Для полноты картины хотел таким же методом вставить иконку vip в модуль mod_adsmanager_ads , но не тут-то было: пусто, видимо в самом модуле нужно прописывать classcontent = vip , попытался - не получилось....
Как бы опять хелп!
Ну и ещё в догонку. Хотелось бы эти же иконки вывести, так же, в подробном режиме и в полном просмотре объявления.

В модуле: if ($row->vip == 1)
В детальном виде: if ($this->content->vip==1)
Записан
kanevlife
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Мужской
Сообщений: 84


Всегда читай до конца, и не будет лишних вопросов


« Ответ #11 : 13.07.2013, 13:25:08 »

 VIP-объявления AdsManager 2.8.2,  Joomla 3.1.1 - работает отлично! Спасибо Doc и LS_D! и +.
Вопрос:
     1. Возможно ли сделать так, например: срок публикации объявления установлен 30 дней, но через некоторое время пользователь решил на пару дней (поднять) сделать это объявление VIP. После чего это объявление, до окончания срока публикации, должно автоматом вернуться в прежнее состояние. Сейчас, как я понял, срок публикации начинается с дня установки статуса VIP (срок зависит от настроек AdsManager, т.е. ручками админ или автоматом AdsManager). Получается изначальный срок публикации игнорируется.
     Зачем это нужно? Просто в ситуации, когда пользователь за публикацию объявления в течении 30 дней уплатил прим.30$. Затем через 10 дней решил сделать VIP на пару дней за прим.20$. В результате общий срок публикации объявления составил 12 дней (- 22 дня и - 22$ пользователя).
P.S. На каком-то форуме, что-то было о сроках для VIP, но никак не могу найти. Может кто-нибудь "ткнет носом" в топик или подскажет решение?

     2. Как сделать по аналогии с VIP, допустим СРОЧНО, но без поднятия объявления? Должно остаться: - выделение цветом и соотв. иконка.

Буду благодарен. Думаю и не только я.

С уважением kanevlife.
   
Записан
khan-alex
Осваиваюсь на форуме
***

Репутация: +6/-1
Offline Offline

Сообщений: 173


« Ответ #12 : 13.07.2013, 17:53:56 »

Цитировать
На каком-то форуме, что-то было о сроках для VIP
Тут про сроки для VIP обсуждалось.
Цитировать
Как сделать по аналогии с VIP, допустим СРОЧНО, но без поднятия объявления?
А не проще ли сделать дополнительное поле с картинкой и выводить как в Вашей теме?
Цитировать
В модуле: if ($row->vip == 1)
В детальном виде: if ($this->content->vip==1)
Метод научного тыка не сработал, укажите пальчиком куда вставить, что б работало, пожалуйста!
« Последнее редактирование: 13.07.2013, 17:58:55 от khan-alex » Записан
LS_D
Осваиваюсь на форуме
***

Репутация: +16/-0
Offline Offline

Сообщений: 155


« Ответ #13 : 13.07.2013, 18:11:53 »

Метод научного тыка не сработал, укажите пальчиком куда вставить, что б работало, пожалуйста!
Метод тыка тут не сработает, хотя бы выучите условия в php и немного CSS.
Покажу как вывести в модуле, а остальное уже платные функции )))

Находим в фаиле /modules/mod_adsmanager_ads/tmpl/horizontal.php код:
Показать текстовый блок
и заменяем на
Показать текстовый блок
в файле vertical.php сделаете аналогично.

Теперь добавим стиль для vip
в файле AdsManager.css
div.center.vip {
background-color: red; //цвет фона
}
« Последнее редактирование: 13.07.2013, 18:22:19 от LS_D » Записан
kanevlife
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Мужской
Сообщений: 84


Всегда читай до конца, и не будет лишних вопросов


« Ответ #14 : 13.07.2013, 21:40:31 »

Цитировать
Как сделать по аналогии с VIP, допустим СРОЧНО, но без поднятия объявления? Должно остаться: - выделение цветом и соотв. иконка.
Решено.
Цитировать
без поднятия
Просто в этом коде
Код:
$filter_order = "a.vip DESC ,a.date_created DESC ,a.id";
не указывать СРОЧНО (urgently)
Решено.
Иконка код от LS_D. Указать нужное значение и вставить в нужное место. В данном примере urgently(СРОЧНО).
Код:
if ($content->urgently == 1) {
                  //if ($iconflag == false) //по желанию
                     echo "<div class='center'>";
                  echo "<img align='center' src='".$this->baseurl."components/com_adsmanager/images/ваша картинка' />";
                  //$iconflag = true; //по желанию
               }
А вот выделить цветом в кратком просмотре, пока что-то не получается, но ведь решение есть, и думаю, что совсем несложное (если знаешь PHP).
В коде от Doc
Код:
if ($content->vip == 1)
    $classcontent = 'vip';
else
    $classcontent = "normal";
?>  
<tr class="<?php echo $classcontent;?>">
не получается "прикрутить"
Код:
if ($content->urgently == 1)
    $classcontent = 'urgently';

С уважением kanevlife
« Последнее редактирование: 14.07.2013, 11:34:59 от kanevlife » Записан
khan-alex
Осваиваюсь на форуме
***

Репутация: +6/-1
Offline Offline

Сообщений: 173


« Ответ #15 : 14.07.2013, 00:14:21 »

Цитировать
Покажу как вывести в модуле, а остальное уже платные функции )))
А иконку вставить таким методом:
Показать текстовый блок
в модуле не прокатывает (((. Давайте завершим начатое.  Smiley
Записан
LS_D
Осваиваюсь на форуме
***

Репутация: +16/-0
Offline Offline

Сообщений: 155


« Ответ #16 : 14.07.2013, 00:30:46 »

А иконку вставить таким методом:
Показать текстовый блок
в модуле не прокатывает (((. Давайте завершим начатое.  Smiley
Если вы внимательно посмотрите на код, то  увидите, что вывод иконки там не предусмотрен.

Вот тут нужно прописать условие на вывод иконки
$iconflag = false;
   if (($conf->show_new == true)&&(isNewContent($row->date_created,$conf->nbdays_new))) {
      echo "<div class='center'><img align='center' src='".$baseurl."components/com_adsmanager/images/new.gif' /> ";
      $iconflag = true;
   }
   if (($conf->show_hot == true)&&($row->views >= $conf->nbhits)) {
      if ($iconflag == false)
         echo "<div class='center'>";
      echo "<img align='center' src='".$baseurl."components/com_adsmanager/images/hot.gif' />";
      $iconflag = true;
   }
   if ($iconflag == true)
      echo "</div>";

То получим
$iconflag = false;
   if (($conf->show_new == true)&&(isNewContent($row->date_created,$conf->nbdays_new))) {
      echo "<div class='center'><img align='center' src='".$baseurl."components/com_adsmanager/images/new.gif' /> ";
      $iconflag = true;
   }
   if (($conf->show_hot == true)&&($row->views >= $conf->nbhits)) {
      if ($iconflag == false)
         echo "<div class='center'>";
      echo "<img align='center' src='".$baseurl."components/com_adsmanager/images/hot.gif' />";
      $iconflag = true;
   }
   if ($row->vip == 1) {
                 
                     echo "<div class='center'>";
                  echo "<img align='center' src='".$baseurl."components/com_adsmanager/images/ваша картинка' />";
                 
               }
   if ($iconflag == true)
      echo "</div>"
« Последнее редактирование: 14.07.2013, 00:35:07 от LS_D » Записан
kanevlife
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Мужской
Сообщений: 84


Всегда читай до конца, и не будет лишних вопросов


« Ответ #17 : 14.07.2013, 08:17:45 »

Спасибо khan-alex за ссылку на сроки, но пока разобраться в этом топике мудрено.
Вопрос по срокам для VIP пока остается открытым. Может кто из гуру обратит на данную тему внимание и направит нас неуков на путь истинный? Думаю благодарных будет немерено.

С уважением kanevlife.
Записан
kanevlife
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Мужской
Сообщений: 84


Всегда читай до конца, и не будет лишних вопросов


« Ответ #18 : 14.07.2013, 11:34:33 »

Решено.
Цитировать
А вот выделить цветом в кратком просмотре, пока что-то не получается, но ведь решение есть, и думаю, что совсем несложное (если знаешь PHP).

Оказалось совсем не сложно и просто (если знаешь PHP). Вот код:
Код:
if ($content->urgently == 1)
    $classcontent = 'urgently';
else
if ($content->vip == 1)
    $classcontent = 'vip';
else
    $classcontent = "normal";
?>   
<tr class="<?php echo $classcontent;?>">

Если использовать данный метод, то можно, хоть каждой категории объявлений задать свой цвет и свою иконку и пр., пр.
Как наглядный пример, здесь:
Показать текстовый блок

С уважением kanevlife
Записан
khan-alex
Осваиваюсь на форуме
***

Репутация: +6/-1
Offline Offline

Сообщений: 173


« Ответ #19 : 14.07.2013, 17:08:05 »

Цитировать
Если вы внимательно посмотрите на код, то  увидите, что вывод иконки там не предусмотрен.
Вот тут нужно прописать условие на вывод иконки
Согласен  Sad не предусмотрен, добавил его вот так:
Показать текстовый блок
сейчас всё показывает, спасибо за наводку. Буду искать PHP для чайников.  Cool
Записан
gluc
Новичок
*

Репутация: +2/-0
Offline Offline

Сообщений: 8


« Ответ #20 : 27.07.2013, 07:55:50 »

Doc. Спасибо за проделанную работу. Все получилось. Объявления вверху и выделены цветом.  drink Как будет разрешено плюсовать, обязательно поставлю +.
Записан
genabukin
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 22



« Ответ #21 : 22.10.2013, 18:13:51 »

я все зделал как написано....вобщем неробит...может с базай данных чево...помогите а....пожалуйста. adsmeneger 2.7
Записан
genabukin
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 22



« Ответ #22 : 22.10.2013, 18:47:26 »

я все зделал как написано....вобщем неробит...может с базай данных чево...помогите а....пожалуйста. adsmeneger 2.7
блин извиняюсь разобрался
Записан
genabukin
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 22



« Ответ #23 : 22.10.2013, 19:29:50 »

в модуле vip обьявления невыводятся...помогите плис Sad
Записан
Doc
Завсегдатай
*****

Репутация: +17/-0
Offline Offline

Сообщений: 445


« Ответ #24 : 23.10.2013, 00:24:48 »

Здесь описано для AdsManager 2.8 и Joomla 2.5, хотя я по этому же описанию поставил на Joomla 1.5 и AdsManager 2.6.5 и все работает
Смотрите лучше, что вы не так делаете....думаю, что ошибка в руках и внимательности
Записан
genabukin
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 22



« Ответ #25 : 23.10.2013, 00:30:58 »

Здесь описано для AdsManager 2.8 и Joomla 2.5, хотя я по этому же описанию поставил на Joomla 1.5 и AdsManager 2.6.5 и все работает
Смотрите лучше, что вы не так делаете....думаю, что ошибка в руках и внимательности
я поставил на 2.7...и Joomla 2.5...в модуле непойму как вип выводица...нет там такой кнопки, там как я понял появица должна...а так восновном все получилось...внимательность и руки в данном случае непричем...поменят кусок кода в файле один раз.....
Записан
Doc
Завсегдатай
*****

Репутация: +17/-0
Offline Offline

Сообщений: 445


« Ответ #26 : 24.10.2013, 01:47:45 »

я поставил на 2.7...и Joomla 2.5...в модуле непойму как вип выводица...нет там такой кнопки, там как я понял появица должна...а так восновном все получилось...внимательность и руки в данном случае непричем...поменят кусок кода в файле один раз.....
вип выводиться очень просто, в админки заходите в обьявление и там должно быть вип...как бы когда через админку редактируете обьявление...просто ставите ДА или НЕТ и все
ps\ не хотел вас обидеть, вы сами сразу не написали, что и как, вот я и подумал, что руки виноваты, а теперь все понятно, что вы просто не можете найти как включить вип
Записан
Doc
Завсегдатай
*****

Репутация: +17/-0
Offline Offline

Сообщений: 445


« Ответ #27 : 24.10.2013, 01:51:32 »

genabukin, только сейчас дошло...вы это хотите в модуль запихнуть.....я тут пас, так как не знаю как это сделать
Записан
genabukin
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 22



« Ответ #28 : 24.10.2013, 01:58:34 »

да...я хотел модулем вывести
Записан
LS_D
Осваиваюсь на форуме
***

Репутация: +16/-0
Offline Offline

Сообщений: 155


« Ответ #29 : 25.10.2013, 11:01:47 »

Открываем фаил administrator/components/com_adsmanager/models/content.php
Находим функцию function getLatestContents($nbcontents,$sort_type=0,$catselect="no",$orderfils)
В ней добавляем поле
case 3:
$order_sql = "ORDER BY a.ad_vip DESC "; // Здесь указывается поле по которому будет сортировка выполнятся
break;

далее
открываем вот этот фаил /modules/mod_adsmanager_ads/mod_adsmanager_ads.xml
после строки <option value="2">MOD_ADSMANAGER_ADS_POPULAR</option>
добавляем  <option value="3">Вип</option>
« Последнее редактирование: 25.10.2013, 14:27:35 от LS_D » Записан
Страниц: [1] 2 3  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet