При работе над одним проектом понадобилось сделать несколько переработок AdsManager'а.
I
Первое, что было необходимо, чтобы товары показывались именно в той категории, где они находятся, а не в какой-либо родительской или иной. В конфигурациях данного свойства не было, поэтому пришлось лезть в код и править там.
В файле components/com_adsmanager/adsmanager.html.php ищем функцию show_list, в global добавляем параметр $database (мы же будем анализировать, в какой категории сейчас находимся и выводить или нет нам товар, а переменная для подключения к БД):
global $mosConfig_live_site,$mosConfig_absolute_path,$mosConfig_live_site,$my,$database;
Дальше примерно после 390 строки, ниже этого куска кода:
$database->setQuery( "SELECT COUNT(*) FROM #__adsmanager_categories WHERE parent='".$catid."' ");
$total_cats = $database->loadResult();
Заметим, что используем запрос с parent='".$catid."' — он служит кдля определения, того находимся мы в родительской категории или мы уже в категории, где этот товар лежит.
После этого вставляем следующий код:
if ($total_cats>1){ echo ''; }
else {
Думаю, что тут все понятно :)
Только не забудьте закрыть фигурную скобку (у меня она закрывается на 552 строке).
II
В пакет AdsManager'а входит модуль, который показывает последний объявления в разном порядке (случайно, последние и популярные — вроде так :) ), но была проблема в том, что надо было сделать так, чтобы модуль отображался по вертикали, только картинкой с названием и ширина картинки не превышала ширины левой колонки (см. сайт), вроде бы все просто, в коде модуля можно прописать жёстко ширину для изображения (допустим, 190px) и дело сделано, все картинки будут одинаковой… как бы не так! У нас же еще есть и картинки, у которых ширина меньше 190 и при фиксации они будут выглядеть ужасно…
Что же, тогда делаем следующем образом!
После строки 71-72
Итак, поясняю:
1. list($width, $height, $type, $attr) = getimagesize($pic); — это функция вытаскивает из изображения его параметры (ширина, высота, тип и аттрибуты), $pic — ссылка на изображение, она задана выше в коде.
2. if ($width>189) $wdt='width=190'; else $wdt=''; — тут мы определяем, что если ширина картинки больше 189 пикс, то мы фиксируем ширину и ставим её равную 190 пикс, иначе ничего не делаем.
3. echo… — тут все просто (и ясно), просто в код для изображения вставляем параметр ширины (".$wdt.") :)
III (добавлено чуть позже)
Так же возникла проблема с загрузкой файлов. Почему-то в версии 2.5RC2 файлы загружаются, но не записываются в БД (имя файла не записывается). Спасибо джумлафоруму — нашел там решение, делюсь тут же.
В файле administrator\components\com_adsmanager\admin.adsmanager.php в функции saveAd после
Посмотрел «большой проект». Обычный каталог.
Каталог товаров делают из SOBI2 и AdsManager…
Я не пойму, чем не нравится людям VirtueMart? Он же для этого и создан. Это что, менталитет народа «забивать гвозди рубанком».
Не, это конечно моё мнение…
Ну и: citadel-pro.ru/component/option,com_adsmanager/page,show_ad/adid,13/catid,48/Itemid,26/
Название (Тип «Контур») обрамляем «ёлочкой», в тексте ловим «экран» (отечественные: \\\«Сам-799\\\»)
Virtuemart не удобный, громозкий.
Да, «экраны» остались в некоторых местах.
Большой, т.к. возимся с ним долго и доработок оч много. Может и неправильно назвал, но уж простите
Всем привет. Я много компонентов «досок» перебрал, но… ничего кроме АdsManager, мне не понравилось. Вот то, что у меня получилось: www.slavboard.com.ua. Кое-что правда пришлось изменить, доработать… благодаря Вашему сайту в том числе. Спасибо!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Комментарии:3