[Решение!] VIP-объявления и монетизация доски объявлений adsmanager 2.6

  • 139 Ответов
  • 31035 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

GlooM

  • *
  • 559
  • 91
  • AdsManager
Все работает на доске adsmanager 2.6!

Сделаем сначала vip-объявления.
Для этого
1. Создаем в БД adsmanager_ads новую строку и называем ее vip.

2. в файле [Joomla] /administrator/components/com_adsmanager/tables/content.php добавляем var $vip = null; (поймете куда).

3. переходим в файл [Joomla] 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>
Далее в файле [Joomla] /administrator/components/com_adsmanager/models/content.php находим функцию function getListOrder и $filter_order изменяем сл. образом:
Код
$filter_order = "a.vip DESC ,a.date_created DESC ,a.id ";

Вот мы сделали так, чтобы администратор мог сам делать объявление VIPом.


Теперь упростим задачу, чтобы система сама делала объявления VIP (с помощью смсок, конечно же).

1.   Регистрируемся на http://avisosms.ru/ (именно через этот сервис и будем осуществлять работу)

2.   В личном кабинете во вкладке «Биллинг» добавляем номер, придумываем префикс…

3.   В настройках – Настройки удаленного доступа придумывает сложный ключ и сохраняем

4.   Скачайте архив для работы с сервисом и поместите его содержимое в любое место на сайте (например, создайте каталог vipsmski)

5.   В БД создайте таблицу, например, вашпрефикс_vipsms. В этой таблице создайте одно поле code.

6.   Зайдите в файл config.php, который вы разархивировали, и настройте его. В поле smsAccessKey введите ключ, который придумывали в настройках удаленного доступа на сайте ависосмс.

7.   В файле vipsms.php настройте соединение с БД, укажите имя базы. Поле $q = mysql_query("INSERT into OLOLOL VALUES ('".$code."')"); измените на $q = mysql_query("INSERT into вашпрефикс_названиетаблицыдлявипобъявлений VALUES ('".$code."')"); Думаю понятно, что означает вашпрефикс_названиетаблицыдлявипобъявлений :)

8.   Теперь заходим в файл [Joomla]/ components/com_adsmanager/ controller.php и в самом начале файла, после строк
Код
/**
 * Content Component Controller
 *
 * @package Joomla
 * @subpackage Content
 * @since 1.5
 */
Вставляем
Код
// sms
function checkCode($code) {

$db = JFactory::getDBO();
$query = "SELECT * FROM #__ названиетаблицыдлявипобъявлений ";
$db->setQuery($query);
$cods = $db->loadObjectList();

$db2 = JFactory::getDBO();
$q = "SELECT * FROM #__adsmanager_ads WHERE ad_code='".$code."'";
$db2->setQuery($q);
$ads = $db2->loadObjectList();

$ok = false;
foreach($cods as $c) {
if( $c->code == $code ) {
$codesmstable = $c->code;
}
}
foreach($ads as $a) {
if( $code == $a->ad_code ) {
$codeadstable = $a->ad_code;
}
}
if( ($codesmstable == $code) && ($codesmstable != $codeadstable) && ($code != '')) {
$ok = true;
}

    return $ok;
}
// -sms
Замечу, что присланный код можно использовать только один раз! (p.s. у кого будет более изящное решение — пишите, на скорую руку набросал такое)

9.   В этом же файле находим функцию function save(), там находим $content->expiration_date = date("Y-m-d",mktime()+($delta*24*3600));

10.    После этого кода вставляем
Код
// ---------- sms ---------
$codes = $content->ad_code;
if (!checkCode($codes)) {
$content->vip = '0';
} else {
$content->vip = '1';
}
// ----------/sms/---------
11.    Дальше создаем в компоненте новое поле! Тип: Text Field; Название: ad_code (т.е. пишем code,  а он сам сформирует приставку), Заголовок: СМС-код для VIP-объявления (или по усмотрению), Ставим галочки на Опубликовано? Ну и выбираем Все объявления слева в «Категория».

12.   Заходим опять на сайт смсок, в личном кабинете в биллинге где высвечиваются Ваши префиксы нажимаем Редактировать (префикс будем редактировать), ставим галочку «Вызывать URL на API вашего сайта» и вписываем туда полный путь до файла vipsms.php (Например, http://www.yoursite.ru/vipsmski/vipsms.php). Сохраняемся.

13.   На этом же сайте можно и потестировать. В биллинге в виртуальный телефон заходим, там выбираем номер и вписываем префикс, внизу Вам отобразиться код

Вот в принципе и все! :)
Хочу отдельно поблагодарить Комкова Александра с сайта AvisoSMS, который подсказал во многих местах как лучше сделать!

p.s.: сейчас немного не оптимальный код проверки SMS на правильность, чуть позже разберусь с ним и подправлю :)

upd1: пофиксил небольшую ошибку в строке
Код
if( ($codesmstable == $code) && ($codesmstable != $codeadstable)) {
исправил на
Код
if( ($codesmstable == $code) && ($codesmstable != $codeadstable) && ($code != '')) {
« Последнее редактирование: 11.11.2010, 18:23:13 от GlooM »

*

uf1976

  • ****
  • 242
  • 1
Мощная работа!
Осталось дождаться выхода стабильной 2.6

*

GlooM

  • *
  • 559
  • 91
  • AdsManager
Хотелось бы еще немного переделать код проверки смс-кода в плане того, что если код совпал с кодом из таблицы, то мы включаем режим VIP, а код в таблице кодов переименовываем, например, в "Ок", т.е. должно по идеи выглядеть вот так запрос:
Код
UPDATE #__названиетаблицыдлявипобъявлений SET code='Ok'
Но почему-то не получается выполнять вообще запросы в этой функции, кроме выборки из БД.. :(

*

Timuchen

  • ***
  • 62
  • -1
Коряво как-то, не функционально. Все сделал, а как работает то оно? Ничего не происходит, ввожу любой текст в поле SMS кода, объявление добавляется... Очень сыро, очень...

*

Timuchen

  • ***
  • 62
  • -1
Разобрался вроде бы, но впечатление не изменилось.
Так и не понял, за что платит пользователь? За статус? И что он дает? Ну заплатил он деньги, стал он ВИП, и какие привелегии, как вывести на главной, как добавить картинку ВИП, к объявлению, а главное как пользователь узнает, что он ввел верно пароль из СМС?   
« Последнее редактирование: 12.11.2010, 21:16:50 от Timuchen »

*

GlooM

  • *
  • 559
  • 91
  • AdsManager
Цитировать
Коряво как-то, не функционально.
Ой, даже не знаю, что и ответить... предложите свой вариант, а? Буду только рад.
Цитировать
Ничего не происходит, ввожу любой текст в поле SMS кода, объявление добавляется...
Наверное, надо внимательно читать то, что написано в первом посте.
Цитировать
Так и не понял, за что платит пользователь? За статус? И что он дает?
Пользователь платит за то, что его объявление всегда выводиться выше всех других объявлений. У меня на сайте, например, сделано еще так, что VIP-объявления имеют расширенные параметры вывода в общем списке, т.е. все объявления выводятся в виде:
Код
дата: действие: <ссылка>Заголовок объявления</ссылка>
а VIP-объявления в более обширной форме.
Цитировать
как вывести на главной, как добавить картинку ВИП, к объявлению
Думаю, что это уже Ваши заботы.
Цитировать
как пользователь узнает, что он ввел верно пароль из СМС?
Можно просто поставить проверку и все. Ничего сложного нет. Можете сами сделать, раз говорите, что ничего не функционально, сыро... удачи ;)
А, к последнему: Вы хотите, чтобы все время выводилось "Вы ввели неверный код, введите верный" ? чтобы мог перебрать? смешно. Можно просто дописать к редиректтексту сообщение, что сообщение добавлено + оно стало VIP.
« Последнее редактирование: 12.11.2010, 23:46:39 от GlooM »

*

Timuchen

  • ***
  • 62
  • -1
Спасибо за ответ :) Это уже интереснее. Подскажите, реально ли сделать выборку в стандартном модуле modADS_Ads чтобы выводились только VIP и к ним же добавлялась картинка как new, только VIP. Все остальные действия тогда будут не нужны. И хотелось бы узнать более подробно как проверить функциональность всего приложения. Сами понимаете слать СМСки как-то не камильфо :)

*

GlooM

  • *
  • 559
  • 91
  • AdsManager
Спасибо за ответ :) Это уже интереснее. Подскажите, реально ли сделать выборку в стандартном модуле modADS_Ads чтобы выводились только VIP и к ним же добавлялась картинка как new, только VIP. Все остальные действия тогда будут не нужны. И хотелось бы узнать более подробно как проверить функциональность всего приложения. Сами понимаете слать СМСки как-то не камильфо :)
для вывода vip-объявления я просто создал новую функцию в модели и вывел с помощью ее данные во фронте.
Если же нужна картинка vip, то легче сделать обычное условие, что если $content->ad_vip == 1, то выводиться картинка.
Про проверку функциональности я писал уже (см. п. 13)

*

GraD

  • ***
  • 94
  • 3
GlooM ждём окончания ваших работ и посмотреть как это работает
форум школ schoolkuban.ru

*

GlooM

  • *
  • 559
  • 91
  • AdsManager
GlooM ждём окончания ваших работ и посмотреть как это работает
это уже реализовано и работает у меня на сайте :)
Позже немного буду оптимизировать код (после выходных)

*

haytig

  • **
  • 14
  • 0
а можно все это сделать для smscoin.com?  :'(

*

GraD

  • ***
  • 94
  • 3
это уже реализовано и работает у меня на сайте :)
Позже немного буду оптимизировать код (после выходных)
А выходные уже прошли :)
форум школ schoolkuban.ru

*

GlooM

  • *
  • 559
  • 91
  • AdsManager

*

GraD

  • ***
  • 94
  • 3
А что у вас не видно по категориям а срезу все объявления в столбик?
было бы красива и удобнее если на главной можно было увидеть все категории и войти в интересующу катреогию
форум школ schoolkuban.ru

*

GlooM

  • *
  • 559
  • 91
  • AdsManager
А что у вас не видно по категориям а срезу все объявления в столбик?
было бы красива и удобнее если на главной можно было увидеть все категории и войти в интересующу катреогию
мне кажется, что удобнее сразу посмотреть объявления, а не рыскать по категориям, чтобы найти (или не найти) нужное. Лишний шаг.

*

GraD

  • ***
  • 94
  • 3
наоборот пользователя это путает может человек зашол только посмотреть на продажи авто так ему придётся поискать.
Попробуйте и ваш вариант и то что я предлогаю посмотрите резултат
форум школ schoolkuban.ru

*

beicik

  • ***
  • 60
  • 8
Цитировать
2. в файле [Joomla] /administrator/components/com_adsmanager/tables/content.php добавляем var $vip = null; (поймете куда).


У меня не существует папки /tables/

*

GlooM

  • *
  • 559
  • 91
  • AdsManager
У меня не существует папки /tables/
Версия компонента 2.6 ?

*

haytig

  • **
  • 14
  • 0
все это можно сделать для другого sms биллинг сервиса?

*

GlooM

  • *
  • 559
  • 91
  • AdsManager
Конечно! Надо только знать Api той системы, которую хотите интегрировать

*

haytig

  • **
  • 14
  • 0
« Последнее редактирование: 22.12.2010, 23:57:04 от haytig »

*

haytig

  • **
  • 14
  • 0
за деньги измените код так чтобы регистрация была платным?

*

Faith

  • *
  • 2
  • 0
А можно объявление выделить как в прошлой версии+)?

добрый день подскажите пожалуйста кто нибудь второй день голову ломаю из админки могу вип сделать а через смс вип не делается этот файл ковыряю  [Joomla]/ components/com_adsmanager/ controller.php но ни чего не выходит
« Последнее редактирование: 05.02.2011, 11:59:34 от aleks43127 »

Подскажите пожалуйста а на сколько по времени объявление будет вип? можно как то сделать чтоб через неделю оно опять нормальное становилось?или только на весь срок публикации пока не истечет ?

*

GlooM

  • *
  • 559
  • 91
  • AdsManager
Подскажите пожалуйста а на сколько по времени объявление будет вип? можно как то сделать чтоб через неделю оно опять нормальное становилось?или только на весь срок публикации пока не истечет ?
в данном случае, только на весь срок.
Либо пока администратор не снимет публикацию "руками"

А модно по подробнее как создать в базе строку vip какие к ней еще надо добавить параметры?
А то когда админом ставишь галочку VIP -да - то ругается ссылаясь на базу данных, после созранения

*

GlooM

  • *
  • 559
  • 91
  • AdsManager
А модно по подробнее как создать в базе строку vip какие к ней еще надо добавить параметры?
А то когда админом ставишь галочку VIP -да - то ругается ссылаясь на базу данных, после созранения
Создайте тип INT и значение 11

*

shreg1

  • **
  • 10
  • 0
Подскажите как можно сделать выделение цветом vip объявления и вывод их в mod_adsmanager_ads? Ну очень нужно.........

*

GlooM

  • *
  • 559
  • 91
  • AdsManager
Подскажите как можно сделать выделение цветом vip объявления и вывод их в mod_adsmanager_ads? Ну очень нужно.........
сделайте в модуле условие, что если объявление вип, то ему соотносятся такие-то параметры CSS, например.