Новости Joomla

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

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0

Этот способ будет действенен только для Ads начиная с версии 2.5RC2

Первый этап:
1. Заходим в админ панель и переходим к пункту редактирования полей в AdsMeneger ("AdsManager -> Fields List" )
2. Создаём поле со следующими параметрами:
- Type: SingleSelect
- Name: ad_delta
- Title: Срок размещения (на усмотрение)
- Required?: если оставите нет, то по умолчанию объявления будут публиковаться на срок 30 дней
- Published?: Да
- Editable?: Да
- Добавляете параметры:
   


Если всё получилось и данное поле отображается в форме добавления объявления, переходим ко второму этапу:
И так кодинг:
Находим в файле adsmanager.php кусок кода:
Код
	$isUpdateMode  = intval(mosGetParam( $_POST, 'isUpdateMode', 0));
if ($isUpdateMode == 0)
{
if ($conf->auto_publish == 1)
{
$row->published = 1;
$redirect_text = ADSMANAGER_INSERT_SUCCESSFULL_PUBLISH;
}
else
{
$row->published = 0;
$redirect_text = ADSMANAGER_INSERT_SUCCESSFULL_CONFIRM;
}
}
else
$redirect_text .= ADSMANAGER_UPDATE_SUCCESSFULL;

if ($isUpdateMode == 0)
{
$row->date_created = date("Y-m-d");
$delta = $conf->ad_duration; 
echo $delta;
$row->expiration_date = date("Y-m-d",mktime()+($delta*24*3600));

}

и меняем его на:
Код
$isUpdateMode  = intval(mosGetParam( $_POST, 'isUpdateMode', 0));
$delta =intval(mosGetParam( $_POST, 'ad_delta',30 ));
if ($isUpdateMode == 0)
{
if ($conf->auto_publish == 1)
{
$row->published = 1;
$recall_time = $conf->recall_time;
$redirect_text = sprintf(ADSMANAGER_INSERT_SUCCESSFULL_PUBLISH,$delta,$recall_time);
}
else
{
$row->published = 0;
$redirect_text = ADSMANAGER_INSERT_SUCCESSFULL_CONFIRM;
}
}
else
$redirect_text .= ADSMANAGER_UPDATE_SUCCESSFULL;

if ($isUpdateMode == 0)
{
$row->date_created = date("Y-m-d");
$row->expiration_date = date("Y-m-d",mktime()+($delta*24*3600));
}

Последний штрих, для корректного вывода информационного собщения

в используемом языковом файле изменяем значение переменной ADSMANAGER_INSERT_SUCCESSFULL_PUBLISH , по максимуму это будет выглядеть так:
Код
DEFINE( "ADSMANAGER_INSERT_SUCCESSFULL_PUBLISH","Ваше объявление опубликовано.Срок публикации %s дней, за %s дней до окончания срока Вам на e-mail придет уведомление с ссылкой на продление.");
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
У меня не получилось! у меня даже код adsmanager.php отличается может напишешь подробнее что и как.
*

bargakuzzo

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
А у меня заработало на 2.5RC1. Спасибо.
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
У меня еще есть пару вопросов касательно Adsmanager а вот спросить не у кого, на форумах мало на что отвечают, а ты я видел часто помогаешь в решениях проблем. Может поможешь мне тоже, думаю многим будут полезны изменения   
*

bargakuzzo

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
А ads какой? (Я вообще не специалист, так пытаюсь разобраться).
Найди блокнотом Notepad++ (если нет - скачай и установи, полезная штука) какой-то маленький кусочек кода (например $isUpdateMode) и замени весь кусок на предложенный. В блокноте поиск = Ctr+F.
Создай поле как написано (можешь со своим вариантом сроков публикации и позицией вывода).
Также в языковом файле измени DEFINE( "ADSMANAGER_INSERT_SUCCESSFULL_PUBLISH","Ваше объявление опубликовано.Срок публикации %s дней, за %s дней до окончания срока Вам на e-mail придет уведомление с ссылкой на продление."); или свой вариант.
Вроде все.
*

Dimm555

  • Захожу иногда
  • 103
  • 6 / 0
bargakuzzo, вот у меня такая же RC1 как и у тебя, но, к сожалению, не работает... Ты не знаешь, что можно проверить, может у меня какие функции в коде повреждены?
И как можно проверить, что работает? Через день удаляется или если, например, на денвере время перевести?
*

bargakuzzo

  • Осваиваюсь на форуме
  • 46
  • 3 / 0
Посмотри настройки поля, может ты его не опубликовал. В Ads объявы по умолчанию на сколько выставлены-?
Вот файл. Строки с 1207 по 1230. Попробуй заменить этот на свой, только свой скопируй на всякий случай, если что - обратно поставишь.
Мне кажется что проблема в настройках поля, поковыряйся.

[вложение удалено Администратором]
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
У меня не получилось! у меня даже код adsmanager.php отличается может напишешь подробнее что и как.
в более ранних версиях Адс, дата окончания публикации вычислятется исходя из сегодняшней даты:
Код
$expiration_date = date("Ymd",mktime()-($delta*24*3600));
именно поэтому приведённый выше рецепт, не подходит

*

eklmn

  • Осваиваюсь на форуме
  • 34
  • 2 / 0
Спасибо.
Цитировать
- Required?: если оставите нет, то по умолчанию объявления будут публиковаться на срок 30 дней
- Это значит что будет срок по умолчанию, тот который администратор установил в конфигурации?
- Что если в настройках поля для срока (ad_delta) сделать -Редактируемый? - нет-    Получится так, что поле будет отображаться при добавлении объявления пользователем с фронта, но пользователь не сможет установить срок (выпадающий список не работает:) При этом администратор в админке может поменять срок для этого объявления. Получится, что администратор может установить любой срок для объявления без участия пользователя? Если так, то как бы скрыть поле ad_delta на фронте для пользователя? (хотя можно и не скрывать).
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
1. если не сделать это поле обязательным для заполнения и пользователь при добавлении объявления не выберет срок, то ему будет присвоена ad_delta=30 дней;
для изменения этой даты правим
Код
$delta =intval(mosGetParam( $_POST, 'ad_delta',30 ));
где 30 - это и есть значение по умолчанию

2. тебя интересует возможность изменять срок публикации только администратором в админке?
*

eklmn

  • Осваиваюсь на форуме
  • 34
  • 2 / 0
Ясно, спасибо.
Да, это было бы здорово, чтобы только администратор устанавливал срок публикации.
« Последнее редактирование: 10.02.2010, 21:48:53 от eklmn »
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Для того чтобы из админки можно было устанавливать произвольную дату окончания публикации объявления, необходимо:
в файле admin.adsmanager.html.php найти function displayAd после строчки
Код
<table cellpadding="4" cellspacing="0" border="0" width="100%" class="adminlist">
вставляем
Код
<tr>
<td><?php echo ADSMANAGER_EXPIRATION_DATE; ?></td>
<td>
<input name="expiration_date" type="text" size="10" value="<?php echo $row->expiration_date; ?>">
</td>
<td>&nbsp;</td>
</tr>

Проверяем чтоб в adsmanager.class.php class adsManagerAd содержит var $published = null;

*

eklmn

  • Осваиваюсь на форуме
  • 34
  • 2 / 0
Сделал.
Добавил в lang: DEFINE('ADSMANAGER_EXPIRATION_DATE','Дата окончания публикации объявления');
Спасибо, за такой хороший хак и помощь, буду пробовать.
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Готовое решение на тему "Срок публикаци объявлений только для администратора" + календарик для ввода даты, можно просмотреть тут
http://joomlaforum.ru/index.php/topic,100565.new.html#new
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
в более ранних версиях Адс, дата окончания публикации вычислятется исходя из сегодняшней даты:
Код
$expiration_date = date("Ymd",mktime()-($delta*24*3600));
именно поэтому приведённый выше рецепт, не подходит
Спасибо! помогло!
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
Подскажите пожалуйста, у меня объявления выглядят так (картинка 1) а мне нужно чтоб выглядели так (картинка 2). Короче нужен компактный вид объявлений, то-есть только заголовок, дата и город, а миниатюры фотографий заменить на иконку, например фотоаппарата, при наведении на который отображалась бы фотография с объявления (картинка3). И еще при наведении на заголовок чтоб отображался текст объявления (картинка2).





*

Ротор

  • Захожу иногда
  • 97
  • 0 / 0
Kikasso в очередной раз + ^-^,было замечательно если бы ты подсказал теперь как прикрутить рейтинги к адсу ::)
*

Rudolf

  • Захожу иногда
  • 65
  • 11 / 0
Хочу добавить: когда у себя реализовывал срок размещения, то для большей эффективности использовал условие, при котором, в случае, если когда то захочется убрать изменяемый срок размещения на стандартный, то не нужно будет править компонент

Код
if ($isUpdateMode == 0)
{
$row->date_created = date("Y-m-d");

// период размещения объявления
if ( $_POST['ad_period']) $delta = $_POST['ad_period'];
else $delta = $conf->ad_duration; 
$row->expiration_date = date("Y-m-d",mktime()+($delta*24*3600));

}
бизнес-планирование, финансовое моделирование
*

samson56633

  • Осваиваюсь на форуме
  • 37
  • 7 / 1
  • Самсон
1. если не сделать это поле обязательным для заполнения и пользователь при добавлении объявления не выберет срок, то ему будет присвоена ad_delta=30 дней;
для изменения этой даты правим
Код
$delta =intval(mosGetParam( $_POST, 'ad_delta',30 ));
где 30 - это и есть значение по умолчанию.

Что-то не получается чтоб срок был 30 дней.  У меня после добавления объявы табличка пишет (Поздравляем, Ваша объявление удачно добавлено! Срок публикации 0 дней.) и реально объява опубликовывается на 0 дней!
Поле я поставил не обязательным. А вот если я поле вообще отключаю, тогда публикуется на 30 дней.

И еще вопрос.  Как бы сделать чтоб срок размещения объявлений был доступен только зарегистрированным пользователям.
А не зарегистрированным это поле не выводилось и естественно срок ставился бы автоматом, указанный в 'ad_delta'
« Последнее редактирование: 26.02.2010, 17:35:17 от samson56633 »
*

igriv

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Для того чтобы из админки можно было устанавливать произвольную дату окончания публикации объявления, необходимо:
в файле admin.adsmanager.html.php найти function displayAd после строчки
Код
<table cellpadding="4" cellspacing="0" border="0" width="100%" class="adminlist">
вставляем
Код
<tr> 
<td><?php echo ADSMANAGER_EXPIRATION_DATE; ?></td>
<td>
<input name="expiration_date" type="text" size="10" value="<?php echo $row->expiration_date; ?>">
</td>
<td>&nbsp;</td>
</tr>

Проверяем чтоб в adsmanager.class.php class adsManagerAd содержит var $published = null;



не сохраняется дата, после изменения
и с календариком ошибка выходит
« Последнее редактирование: 04.03.2010, 03:35:04 от igriv »
*

igriv

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
как можно сделать, что бы при обновлении объявления, изменялся срок окончания на количество выбранных дней от даты обновления?

*

igriv

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
if ($isUpdateMode == 0) нужно убрать из кода, что бы обновлялись даты при обновлении, спасибо Leech
*

archik

  • Осваиваюсь на форуме
  • 31
  • 4 / 0
Подскажите пожалуйста, что надо сделать чтоб я мог добавить срок размещения объявлений на AdsMeneger 2.2.1
*

Doc

  • Захожу иногда
  • 456
  • 17 / 0
Для того чтобы из админки можно было устанавливать произвольную дату окончания публикации объявления, необходимо:
в файле admin.adsmanager.html.php найти function displayAd после строчки
Код
<table cellpadding="4" cellspacing="0" border="0" width="100%" class="adminlist">
вставляем
Код
<tr>
<td><?php echo ADSMANAGER_EXPIRATION_DATE; ?></td>
<td>
<input name="expiration_date" type="text" size="10" value="<?php echo $row->expiration_date; ?>">
</td>
<td>&nbsp;</td>
</tr>

Проверяем чтоб в adsmanager.class.php class adsManagerAd содержит var $published = null;


Поставил этот код, но почему то число не сохранялось
Из разных тем собрал вот такой
Код
<tr>
<td><?php echo ADSMANAGER_EXPIRATION_DATE; ?></td>
<td><form action="index2.php" method="post" name="adminForm" id="adminForm" class="adminForm" enctype="multipart/form-data">
<input name="expiration_date" type="text" size="10" value="<?php echo $row->expiration_date; ?>">
</td>
<td>&nbsp;</td>
</tr>
Теперь все сохраняется
Теперь бы хотел узнать, правильной код собрал ?
Можно его использовать ?
*

omvitamin

  • Осваиваюсь на форуме
  • 33
  • 0 / 1
Что-то не получается чтоб срок был 30 дней.  У меня после добавления объявы табличка пишет (Поздравляем, Ваша объявление удачно добавлено! Срок публикации 0 дней.) и реально объява опубликовывается на 0 дней!
Поле я поставил не обязательным. А вот если я поле вообще отключаю, тогда публикуется на 30 дней.

И еще вопрос.  Как бы сделать чтоб срок размещения объявлений был доступен только зарегистрированным пользователям.
А не зарегистрированным это поле не выводилось и естественно срок ставился бы автоматом, указанный в 'ad_delta'


Тоже самое. Публикуется на ноль дней.
*

wtp

  • Осваиваюсь на форуме
  • 26
  • 1 / 0
Подскажите замену кода для adsmanager 2.6
*

apelsin

  • Захожу иногда
  • 129
  • 0 / 1
Для 2.6 кто нибудь смог сделать?
*

Flanker381

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Для 2.6 кто нибудь смог сделать?

Сделал в 2.6.2

Этот фрагмент кода в данной версии находится в controller.php
*

apelsin

  • Захожу иногда
  • 129
  • 0 / 1
Какой именно код вставил? в controller.php код отличается от того что в первом сообщении
*

Алекс82

  • Захожу иногда
  • 120
  • 4 / 0
  • Совсем новичок
Сделал в 2.6.2

Этот фрагмент кода в данной версии находится в controller.php
Там другой код. Вы какой вставили.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Заглушки с http://placehold.it вместо картинок в списке объявлений

Автор efimov777

Ответов: 6
Просмотров: 3332
Последний ответ 12.04.2020, 07:25:59
от Pavel
Хочу уточнить, есть в AdsManager возможность загрузки объявлений с парсера?

Автор DomBeri

Ответов: 3
Просмотров: 7908
Последний ответ 28.03.2019, 17:20:10
от DomBeri
Удалить карту объявлений Google

Автор trel

Ответов: 7
Просмотров: 1992
Последний ответ 25.03.2019, 09:02:25
от Technic
Вывод объявлений в случайном порядке

Автор Sabotage

Ответов: 3
Просмотров: 1144
Последний ответ 28.09.2018, 14:21:05
от Sabotage
Поля в списке объявлений

Автор klekovkinandrey

Ответов: 0
Просмотров: 977
Последний ответ 17.01.2018, 10:18:34
от klekovkinandrey