Новости Joomla

Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5

👩‍💻 Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5.Работает везде, где работают плагины группы content. Проверено в материалах, модулях, в описаниях товаров JoomShopping.Плагин конвертирует любую таблицу в адаптивную блочную сетку Bootstrap 5.В админке, в редакторе создаете таблицу, размещает в её ячейках контент, а на сайте эта таблица выводиться как адаптивная сетка из блоков. На мобильных устройствах контент размещенный в таблице будет виден и ничто не вылезет за пределы сайта как раньше.Версия плагина: 1.0.0. Разработчик предупреждает, что плагин пока не корректно работает со сложными таблицами (где много объединенных ячеек или столбцов) - данная проблема будет решена в следующих версиях. В дальнейшем планируется также добавление настроек.Стоимость: 2 500р. Тем, кто даст обратную связь по работе плагина и развёрнутый комментарий, тот получит скидку в 50% на любое другое платное расширение разработчика или сможет сделать заказ на разработку по льготной цене.Разработчик - участник нашего сообщества Дмитрий (@kit2m2).ПодробнееСайт разработчика@joomlafeed#joomla #JoomShopping #расширения

JoomShaper SP Page Builder 6: динамический контент, комментарии и Joomla 6

JoomShaper SP Page Builder 6: динамический контент, комментарии и Joomla 6

JoomShaper SP Page Builder 6: динамический контент, комментарии и Joomla 6.Анонсирован выход новой версии одного из самых распространённых конструкторов страниц на Joomla от студии JoomShaper.v.6.0.0. Что нового?Динамический контент. Добавлена ​​поддержка материалов Joomla в динамическом контенте.➕ Новые комментарии для Joomla. Введена встроенная система комментирования статей.➕ Плагин аватара пользователя. Включена поддержка изображений профиля через плагин SP Page Builder - Profile Image.🫥 Обновление: Добавлена ​​совместимость с моделями GPT-5.🫥 Обновление: добавлена ​​опция приоритета извлечения в надстройку «Изображение». 🫥 Обновление: улучшена скорость загрузки динамического контента.🫥 Обновление: включена поддержка вертикального видео в модулях «Видео» и «Модальные всплывающие окна».🛠 Исправление: исправлены ошибки, из-за которых дополнения к формам не работали на страницах динамических сведений.🛠 Исправление: устранены проблемы с разрывом макета и всплывающими окнами при разбиении на страницы динамической медиагалереи.🛠 Исправление: решена проблема с неработоспособностью списка ссылок на страницы в редакторе интерфейса.🛠 Исправление: Исправлены проблемы с маршрутизацией многоязычных страниц SEF.🛠 Исправление: устранена уязвимость критического обхода пути в Media Manager.Большое спасибо за ссылку участнику нашего сообщества Ринату Кажетову (@rkazhet)!Новость на сайте JoomShaper.@joomlafeed#joomla #расширения #шаблоны

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

ArtPV

  • Осваиваюсь на форуме
  • 42
  • 3 / 0
  • Компания ArtPV.ru
Стоит Ads версии 2.2

Вопрос!!!
Поставил в настройках публикацию объявлений на 5 дней
Предупреждение по почте  об окончании срока публикации поставил за 2 дня
Прошло 6 дней
Предупреждение так и не пришло об окончании публикации
Объявление досих пор висит на доске, хотя должно было автоматом удалиться по истечении срока публикации!

В чем проблемма?
*

hel

  • Новичок
  • 4
  • 0 / 0
Стоит Ads версии 2.2

Вопрос!!!
Поставил в настройках публикацию объявлений на 5 дней
Предупреждение по почте  об окончании срока публикации поставил за 2 дня
Прошло 6 дней
Предупреждение так и не пришло об окончании публикации
Объявление досих пор висит на доске, хотя должно было автоматом удалиться по истечении срока публикации!

В чем проблемма?

Присоединяюсь к вопросу - date_recall прописывает как NULL.   Joomla 1.5.9    Версии adsmanager ставил разные - от 2.1.9 до 2.5
*

cor_ar

  • Захожу иногда
  • 137
  • 27 / 1
Да, ребята, надо разобраться - как то коряво єто работает...
у меня версия 2,1,9
в файле adsmanager.php есть функция function manage_expiration
я так понял ( если что поправте) она используется для вычисления времени ит.д
Думаю копать в ней надо. Какие есть предложения?
я не силен в запросах к бд и вообще в пхп
давайте коллективно решим трабл этот  ^-^
*

hel

  • Новичок
  • 4
  • 0 / 0
Отсоединяюсь от вопроса. Удалил мой adsmanager объявления  Т о у меня терпения не хватило :laugh:
Удалил, но осадок остался..   Че то мне теперь кажется, что он картинки от объявлений не поудалял..
*

Leech

  • Захожу иногда
  • 91
  • 21 / 0
  • НоворосМаркет
таже петрушка. плюс, я так понял, он берет емаил тот, кот был указан при подаче объявления. если зарегистрированый пользователь не указал емайл в форме подачи, то и предупреждение не придет. на официальном форуме не так много людей жалуются на эту проблему, может дело в настройках сервера???
*

Leech

  • Захожу иногда
  • 91
  • 21 / 0
  • НоворосМаркет
Присоединяюсь к вопросу - date_recall прописывает как NULL.   Joomla 1.5.9    Версии adsmanager ставил разные - от 2.1.9 до 2.5

а date_recall похоже не используется вовсе. высчитывается дельта, потом recall_time и пошел запрос на все объявы старше этого recall_time.

Код
$delta = $conf->ad_duration - 1 + $conf->recall_time;  
$recall_time = date("Ymd",mktime()-($delta*24*3600));
$database->setQuery( "SELECT id,email,ad_headline FROM #__adsmanager_ads WHERE date_created < $recall_time AND recall_mail_sent = 0");

есть еще recall_mail_sent - отсылалось ли уведомление пользователю. у меня емайл стоит необязательным и, как правило, остается незаполненным. далее по коду вызывается sendEmail. видимо из-за того, что емайл поле пустое, ничего не происходит. раньше думал, что если пользователь зарегистрирован, то ему на регистрационный емайл будет прилетать. ан нет, используется емайл указанный в при подаче обявления. нет емайла - нет предупреждения
*

maxpa

  • Захожу иногда
  • 67
  • 2 / 0
Ну как господа кто нибудь решил проблему с автоудалением
у меня AdsManager Version 2.5  и тоже не пашет.
хоть другой скрипт переставляй
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
стоит Joomla 1.5.10 и AdsManager 2.1.9
Удаление, работает (неправильно!, если отмечено уведомлять по E-mail), рисунки тоже не хотел удалять!!!

Вся проблема была из-за ошибкок допущенных в функции manage_expiration, код которой целиком я выложил ниже... кому надо прикрепляю файл adsmanager.php.
- решена проблема с удалением картинок;
- во время удаляются сообщения при отмеченном уведомлении по E-mail
- как часики работает уведомление ^-^

Пару слов о том как работает удаление просроченных объявлений: текущая дата записывается в переменную $last_cron_date (она хранится в фале cron.php),так сделано что функция manage_expiration, которая отвечает за удаление просроченных объявлений будет запускаться только один раз в день при первом посищении сайта (грамотно!!!)
Для тех кто будет эксперементировать с работоспособностью функции, просто переводите дату на системных часах!!!
Код
if ($last_cron_date != date("Ymd"))  	
manage_expiration($option);


Код
function manage_expiration($option){
global $database,$mosConfig_absolute_path;

// get configuration
$database->setQuery( "SELECT * FROM #__adsmanager_config");
$database->loadObject($conf);
if ($database -> getErrorNum()) {
echo $database -> stderr();
return false;
}

if ($conf->expiration == 1)
{
if ($conf->recall == 1)
{
$delta = $conf->ad_duration - 1 - $conf->recall_time; 
$recall_time = date("Ymd",mktime()-($delta*24*3600));
$database->setQuery( "SELECT id,email,ad_headline FROM #__adsmanager_ads WHERE date_created < $recall_time AND recall_mail_sent = 0");
$ads = $database->loadObjectList();
if ($database -> getErrorNum()) {
echo $database -> stderr();
return false;
}
if(isset($ads))
{
foreach($ads as $ad)
{
sendEmail($ad,$conf,$option);

}
}
$database->setQuery( "UPDATE #__adsmanager_ads SET recall_mail_sent = 1,date_recall = CURDATE() WHERE date_created < $recall_time AND recall_mail_sent = 0");
$database->query();
if ($database -> getErrorNum()) {
echo $database -> stderr();
return false;
}

$delta = $conf->recall_time - 1; 
$expiration_date = date("Ymd",mktime()-($delta*24*3600));

//echo "DELETE FROM #__adsmanager_ads WHERE recall_mail_sent = 1 AND date_recall < $expiration_date";
$database->setQuery( "SELECT id FROM #__adsmanager_ads WHERE recall_mail_sent = 1 AND date_recall < $expiration_date");
    $pic_id = $database->loadResultArray();
if ($database -> getErrorNum()) {
echo $database -> stderr();
return false;
}

$database->setQuery( "DELETE FROM #__adsmanager_ads WHERE recall_mail_sent = 1 AND date_recall < $expiration_date");
$database->query();
if ($database -> getErrorNum()) {
echo $database -> stderr();
return false;
}
//
foreach($pic_id as $ad)
{
$nbImages = $conf->nb_images;
for($i = 1 ;$i < $nbImages + 1; $i++)
{
$ext_name = chr(ord('a')+$i-1);
$pict = $mosConfig_absolute_path."/images/com_adsmanager/ads/".$ad.$ext_name."_t.jpg";
if ( file_exists( $pict)) {
unlink( $pict);
}
$pic = $mosConfig_absolute_path."/images/com_adsmanager/ads/".$ad.$ext_name.".jpg";
if ( file_exists( $pic)) {
unlink( $pic);
}
}}
//
}
else
{
////
$delta = $conf->ad_duration - 1; 
$expiration_date = date("Ymd",mktime()-($delta*24*3600));

        $database->setQuery( "SELECT  id FROM #__adsmanager_ads WHERE date_created < $expiration_date");
$pic_id = $database->loadResultArray();
if ($database -> getErrorNum()) {
echo $database -> stderr();
return false;
}

foreach($pic_id as $ad)
{
   
$nbImages = $conf->nb_images;

for($i = 1 ;$i < $nbImages + 1; $i++)
{
$ext_name = chr(ord('a')+$i-1);
$pict = $mosConfig_absolute_path."/images/com_adsmanager/ads/".$ad.$ext_name."_t.jpg";
if ( file_exists( $pict)) {
unlink( $pict);
}
$pic = $mosConfig_absolute_path."/images/com_adsmanager/ads/".$ad.$ext_name.".jpg";
if ( file_exists( $pic)) {
unlink( $pic);
}
}
     }

/////

$database->setQuery( "DELETE FROM #__adsmanager_ads WHERE date_created < $expiration_date");
$database->query();
if ($database -> getErrorNum()) {
echo $database -> stderr();
return false;
}
}
}

$last_cron_date = date("Ymd");
$Fnm = $mosConfig_absolute_path .'/components/'.$option.'/cron.php';
    $inF = fopen($Fnm,"w");
fwrite($inF,'<?php $last_cron_date='.$last_cron_date.';?>');
fclose($inF);
}

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

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Чуть не забыл))) еще один совет! Для тех кто хочет что бы зарегестрированным пользователям приходило уведомление на мыло указанное при регистрации и его нельзя было изменить можно просто скрыть это поле! для тех кто не хочет дальше могут не читать.... ;)

для этого в файле adsmanager.html.php находим строчку case 'emailaddress': (их найдется несколько, аш 3), там где будут поля input (это самая нижняя из найденных) меняем type='text' на type='hidden' - делаем поле невидимым! в фалле lang_russian.php ищем строчку с фразой ADSMANAGER_FORM_EMAIL и приводим её к следующему виду:
Код
DEFINE ( "ADSMANAGER_FORM_EMAIL", "");
« Последнее редактирование: 23.08.2009, 02:32:13 от Kikasso »
*

vidima

  • Осваиваюсь на форуме
  • 19
  • 3 / 0
Спасибо Kikasso  :D

Я твой код вставил, проверил (кроме почты), все гут. 
Вот файл к adsmanager 2.2.2 - с исправлениями от  Kikasso.
Есчё раз тебе спасибо.

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

maxpa

  • Захожу иногда
  • 67
  • 2 / 0
У меня с твоим куском кода тоже все работает.Дни прошли сообщение удалилось
Вроде все ок
Как плюс в репу поставить так и не нашел
Огромное спасибо
*

Timoshkin

  • Захожу иногда
  • 55
  • 7 / 0
один раз в день при первом посищении сайта

Посещении сайта кем? =O
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
любым пользователем... который обратится к компоненту com_adsmanager
*

Timoshkin

  • Захожу иногда
  • 55
  • 7 / 0
Выдает ошибку:
Parse error: syntax error, unexpected $end in ...../components/com_adsmanager/adsmanager.php on line 2459

$end - это че за переменная?
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
а что у тебя за версия Ads Manager ? Такой переменной не должно быть...
*

Timoshkin

  • Захожу иногда
  • 55
  • 7 / 0
а что у тебя за версия Ads Manager ? Такой переменной не должно быть...

АМ 2,5,0

Твоим кодом заменил функцию, стал выдавать это сообщение. а номер строки - конец файла :(

переменная есть в admin.adsmanager.php    $end = strlen($data);

и еще 4 раза там же используется
« Последнее редактирование: 17.01.2010, 18:11:02 от Timoshkin »
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
В 2,5 удаление объявлений работает корректно (на сколько я помню), моё "лекарство" было написано для 2,1,9
*

Timoshkin

  • Захожу иногда
  • 55
  • 7 / 0
У меня не работает :( изменил дату на сегодня - объявление не удалилось.
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
в настройках всё включено? где дату менял?
*

Timoshkin

  • Захожу иногда
  • 55
  • 7 / 0
через базу сменил, а мож дату вчерашнюю надо сделать?

Изменил - не удалилось.
в базе:
recall_mail_sent=1
published=1
expiration_date=2010-01-16
« Последнее редактирование: 17.01.2010, 18:33:08 от Timoshkin »
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
функция удаления не смотрит на expiration_date она вычисляет дату удаления исходя из date_created + срок публикации, надо в базе уменьшать дату публикации! (для 2,5 могу ошибаться)
*

Timoshkin

  • Захожу иногда
  • 55
  • 7 / 0
функция удаления не смотрит на expiration_date она вычисляет дату удаления исходя из date_created + срок публикации, надо в базе уменьшать дату публикации! (для 2,5 могу ошибаться)

Изменил date_created на месяц назад, срок публикации (ad_duration) - 30 дн, результата нет.



Не срабатывает date_recall = CURDATE()

$database->setQuery( "UPDATE #__adsmanager_ads SET recall_mail_sent = 1,date_recall = CURDATE() WHERE date_created < $recall_time AND recall_mail_sent = 0");

date_recall=NULL че за фигня?

и мыло не приходит
« Последнее редактирование: 17.01.2010, 19:48:51 от Timoshkin »
*

Timoshkin

  • Захожу иногда
  • 55
  • 7 / 0
А че SQL Server может сравнивать типы Дата и Интежер? date_created < $recall_time
*

Timoshkin

  • Захожу иногда
  • 55
  • 7 / 0
Для чего используется date_recall?
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
date_recall - дата отправки уведомления
recall_mail_sent (0,1) - 1 если письмо уведомления отправлено
*

Timoshkin

  • Захожу иногда
  • 55
  • 7 / 0
date_recall - дата отправки уведомления
recall_mail_sent (0,1) - 1 если письмо уведомления отправлено


Отправку письма сделал - работает. Пришлось некоторые команды в запросе заменить (Версия MySQL:  5.0.87-community)  и явные значения нуно выделять '. Не удаляет объявления хотя должен, по идее.
код отвечающий за удаление:
Код: php
$database->setQuery( "SELECT id FROM #__adsmanager_ads WHERE recall_mail_sent = '1' AND expiration_date < CURDATE()");
$idsarray = $database->loadResultArray();
if(isset($idsarray) && count($idsarray) > 0){
foreach($idsarray as $adid)
{
remove_ad($adid,$conf,$plugins);
}
}

Может он не все параметры передаёт функции remove_ad? Может переменные объявить типа как Public?

« Последнее редактирование: 18.01.2010, 02:57:19 от Timoshkin »
*

Timoshkin

  • Захожу иногда
  • 55
  • 7 / 0
Проверил! Вставил код из функции remove_ad и все заработало! Почему-то не передается переменная $adid из manage_expiration в remove_ad  :o

Код: php
			$database->setQuery( "SELECT id FROM #__adsmanager_ads WHERE expiration_date < CURDATE()");
$idsarray = $database->loadResultArray();
if(isset($idsarray) && count($idsarray) > 0){
foreach($idsarray as $adid)
{
$database->setQuery("SELECT * FROM #__adsmanager_ads WHERE id=$adid");
$database->loadObject($ad);
if ($database -> getErrorNum()) {
echo $database -> stderr();
return false;
}

$database->setQuery("DELETE FROM #__adsmanager_ads WHERE id=$adid");
if ($database->getErrorNum()) {
echo $database->stderr();
} else {
$database->query();
}

$database->setQuery("DELETE FROM #__adsmanager_adcat WHERE adid=$adid");
if ($database->getErrorNum()) {
echo $database->stderr();
} else {
$database->query();
}

$database->setQuery( "SELECT name FROM #__adsmanager_fields WHERE `type` = 'file'");
$file_fields = $database->loadObjectList();
foreach($file_fields as $file_field)
{
$filename = "\$ad->".$file_field->name;
eval("\$filename = \"$filename\";");
@unlink($mosConfig_absolute_path."/images/com_adsmanager/files/".$filename);
}

$nbImages = $conf->nb_images;

for($i = 1 ;$i < $nbImages + 1; $i++)
{
$ext_name = chr(ord('a')+$i-1);
$pict = $mosConfig_absolute_path."/images/com_adsmanager/ads/".$adid.$ext_name."_t.jpg";
if ( file_exists( $pict)) {
unlink( $pict);
}
$pic = $mosConfig_absolute_path."/images/com_adsmanager/ads/".$adid.$ext_name.".jpg";
if ( file_exists( $pic)) {
unlink( $pic);
}
}

foreach($plugins as $plugin)
{
$plugin->onDelete(0,$adid);
}

if (function_exists('deletePaidAd')){
deletePaidAd($adid);
}

}

Как сделать, чтобы значение переменной из функции в функцию передавалось?
*

Timoshkin

  • Захожу иногда
  • 55
  • 7 / 0
$ad используется в remove_ad для заполнения значениями из таблицы, далее поля используются для удаления приаттаченных файлов. А строки удаляются через запрос SQL - DELETE.

Все работает. Забыл про файл Cron.php где записывается дата обращения к таблице, соответственно второй раз запрос не выполняется.

Все оказалось просто..

Timoshkin можешь выложить файлик adsmanager.php, буду очень благодарен!

Все вопрос решон)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор efimov777

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

Автор DomBeri

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

Автор trel

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

Автор Sabotage

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

Автор klekovkinandrey

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