Новости Joomla

Собственные макеты вывода для пользовательских полей JoomlaМы привыкли использовать механизм...

Собственные макеты вывода для пользовательских полей JoomlaМы привыкли использовать механизм...

Собственные макеты вывода для пользовательских полей JoomlaМы привыкли использовать механизм переопределения макетов Joomla: скопируй нужный тебе файл макета в папку

html шаблона и твори там что хочешь. Это в полной мере относится и к пользовательским полям Joomla.Joomla ищет макеты рендера всех пользовательских полей в следующем порядке:- Есть ли файл
templates/[template name]/html/layouts/[component name]/fields/render.php , переопределяющий макет вывода полей для конкретного компонента? Да - используем его.- Нет? Есть ли файл
components/[component name]/layouts/fields/render.php в папке компонента? Да - используем его.- Нет? Есть ли файл
templates/[template name]/html/layouts/com_fields/fields/render.php, переопределяющий вывод полей для
com_fields? Да - используем его.- Нет? Используем файл
components/com_fields/layouts/fields/render.phpЭто механизм поиска переопределений файлов макетов. Вчера столкнулся с тем, что если поле вставлено в текст материала с помощью шорт-кода (кнопкой редактора) вида
{field 25}, то переопределения не сработали. Поэтому стал вспоминать как сделать свой макет для поля Joomla. Файл
components/com_fields/layouts/field/render.php копируем в
templates/YOUR_TEMPLATE/html/layouts/com_fields/field/etapy-raboty-nad-proektom.php. Обратите внимание, что мы файл переименовали, чтобы в настройках поля видеть его в выпадающем списке. После этого всё заработало как надо. Благо, переводил уже раньше статью
Как происходит рендер пользовательских полей в Joomla?. Потом, порывшись по своему же переводу увидел, что эта особенность работы Joomla в статье уже в ней описана 😂. А также напомнил себе о возможности указывать макет поля прямо в шорт-коде, через запятую:
{field 25,etapy-raboty-nad-proektom}. Правда, если честно, никогда этой возможностью не пользовался. @webtolkru#joomla #php #разработка #webdev

Вышел JoomShoppping 5.6.0Один из популярных компонентов интернет-магазина на Joomla. v.5.6.0

Вышел JoomShoppping 5.6.0Один из популярных компонентов интернет-магазина на Joomla.👩‍💻 v.5.6.0. Что нового?- Добавлена ​​сортировка товаров для конкретной категории- Параметры
count_products_to_page /
count_products_to_row - по умолчанию теперь пустые (используется из конфигурации)- Добавлена сортировка для налогов- Добавлена форма поиска в списке стран- Добавлен фильтр только не завершенных заказов для списка заказов (не закончен: скрывать / показывать / все)- Добавлены состояния опубликовано / не опубликовано для аддонов (опции - дополнения)- Добавлены зависимости (dependencies) для аддонов- ⚠️ Библиотека Tcpdf удалена из ядра Joomshopping. Генерация PDF счетов отключена по умолчанию. Библиотека теперь устанавливается как дополнение Lib TcPdf.- ➕ Новая опция. Техническое обслуживание для дополнений (отладка, журнал, переопределения папок)- ➕ Новая опция: Настройки - Другие - Использовать WebAssetManager. - ➕ Новая опция: Настройки - Другие - Администратор продукты Поиск по словам. Поиск в админке будет искать по описаниям товаров.- Обновлены иконки в админке- ➕ Новая опция конфигурации check_valid_productpage_attribute- ➕Новая опция конфигурации attribut_dep_sorting_in_product_dir- ➕Новая опция конфигурации attribut_nodep_sorting_in_product_dir- ➕Новый метод
prepareSaveParams для ShippingFormRoot (разработчикам способов доставки)- Добавлены новые триггеры для плагинов- Обновление HttpClientLite- Исправления роутера- Исправлен выбор оформления заказаНужно помнить, что не все опции конфигурации JoomShopping доступны для настройки из панели администратора. Некоторые параметры можно изменить только в файлe
components/com_jshopping/config/user_config.php (переопределение
default_config.php). Так же параметры конфигурации могут быть изменены плагинами на события
onBeforeLoadJshopConfig и
onLoadJshopConfig.
Страница расширения#JoomShopping

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

Здравствуйте, товарищи!
На форуме, по-моему, еще нигде не описывался способ копирования категорий (если не так, то укажите где есть материал). Для этого я применяю следующую поделку в виде следующего кода:

Код
<?php
define( '_VALID_MOS', 1 );
global $database;
require_once( 'configuration.php' );
require_once( 'includes/joomla.php' );
require_once( 'includes/pageNavigation.php' );

$sourceCat = 501;
$destinationCat = 508;

$queryGetMaxVendors = "SELECT max(id) as max FROM jos_autobb_vendors";
$database->setQuery($queryGetMaxVendors);
$database->loadObject($vendMax);
$maxNumberOfVendors = $vendMax->max;

$queryGetMaxCat = "SELECT max(id) as max FROM jos_autobb_vendors WHERE `category`=$sourceCat";
$database->setQuery($queryGetMaxCat);
$database->loadObject($MaxCat);
$maxVendorsOfCat = $MaxCat->max;

$queryGetMaxModels = "SELECT max(id) as max FROM jos_autobb_models";
$database->setQuery($queryGetMaxModels);
$database->loadObject($modelMax);
$maxNumberOfModels = $modelMax->max;

$queryGetFirstCat = "SELECT min(id) as min FROM jos_autobb_vendors WHERE `category`=$sourceCat";
$database->setQuery($queryGetFirstCat);
$database->loadObject($MinCat);
$iVendor = $MinCat->min;
//---------------------------------------------------------------------------------
// копирование видов комплектации
$qMaxComplect = "SELECT max(id) as max FROM jos_autobb_complectations";
$database->setQuery($qMaxComplect);
$database->loadObject($complectMax);
$maxComplect = $complectMax->max;

$qComplect = "SELECT * FROM jos_autobb_complectations WHERE `category`=$sourceCat";
$database->setQuery($qComplect);
$oComplect = $database->loadObjectList();
foreach( $oComplect as $complect)
{
$maxComplect++;
$queryInsComplect= "INSERT INTO `jos_autobb_complectations` (`id`, `category`, `title`, `options`) VALUES ($maxComplect, $destinationCat, '$complect->title', '$complect->options')";
$database->setQuery($queryInsComplect);
$database->query();
print "----- $maxComplect: $complect->title, $complect->options";
echo "</br>";
}
echo "</br>";
echo "------------------------------------------------------------";
//---------------------------------------------------------------------------------
// копирование типов кузова
$qMaxBody = "SELECT max(id) as max FROM jos_autobb_bodies";
$database->setQuery($qMaxBody);
$database->loadObject($bodyMax);
$maxBody = $bodyMax->max;

$qBody = "SELECT * FROM jos_autobb_bodies WHERE `category`=$sourceCat";
$database->setQuery($qBody);
$oBody = $database->loadObjectList();
foreach( $oBody as $body)
{
$maxBody++;
$queryInsComplect= "INSERT INTO `jos_autobb_bodies` (`id`, `category`, `title`) VALUES ($maxBody, $destinationCat, '$body->title')";
$database->setQuery($queryInsComplect);
$database->query();
print "----- $maxBody: $body->title";
echo "</br>";
}
echo "</br>";
echo "------------------------------------------------------------";
//---------------------------------------------------------------------------------
for(; $iVendor <= $maxVendorsOfCat; $iVendor++)
{
// Добавление в таблицу jos_autobb_vendors легковых автомобилей из категории $sourceCat в категорию $destinationCa
$queryVendor = "SELECT * FROM jos_autobb_vendors WHERE `category` = $sourceCat and  `id` = $iVendor ";
$database->setQuery($queryVendor);
$database->loadObject($oVendor);
$numVendor = $maxNumberOfVendors+$iVendor; // номер производителя в таблице  ->  id
print "$numVendor: $oVendor->title";
echo "</br>";
$queryInsVendors = "INSERT INTO `jos_autobb_vendors` (`id`, `category`, `title`, `itemid`, `description`) VALUES ($numVendor, $destinationCat, '$oVendor->title', 0, '')";
$database->setQuery($queryInsVendors);
$database->query();
// Добавление в таблицу jos_autobb_models марок категории $sourceCat соответствующих категории $destinationCat
$queryModels = "SELECT * FROM jos_autobb_models WHERE `vendor` = $iVendor";
$database->setQuery($queryModels);
$oModels = $database->loadObjectList();
$iMod = 1;
foreach( $oModels as $model )
{
$maxNumberOfModels++;
$queryInsMod= "INSERT INTO `jos_autobb_models` (`id`, `title`, `vendor`, `itemid`, `description`) VALUES ($maxNumberOfModels, '$model->title', $numVendor, 0, '')";
$database->setQuery($queryInsMod);
$database->query();
print "----- $maxNumberOfModels: $model->title";
echo "</br>";
}
} // for(; $iVendor <= $maxVendorsOfCat; $iVendor++)
?>
Для полного копирования содержимого одной категории ТС в другую необходимо:
- в админке создать новую категорию ТС;
- запомнить ID  категории источника и ID созданной категории;
- в приведённом коде переменной $sourceCat присвоить значение ID категории источника, а переменной $destinationCat присвоить ID созданной категории;
- сохранить код в файл;
- разместить этот файл в каталоге размещения сайта;
- выполнить файл через командную строку или из окна браузера.

Alex Revo, обращаюсь, как к гуру компонента! Было бы не плохо встроить такую возможность в дорабатываемы компонент. Приведённый код имеется во вложенном файле.

З.Ы. Я не php-программист, т.ч. не судите строго, а лучше напишите как надо было делать. Эта поделка вполне работоспособна. Проверял неоднократно. Думаю, многим будет полезна.

[вложение удалено Администратором]
« Последнее редактирование: 15.03.2008, 00:04:16 от Nikodim »
*

Alex Revo

  • Moderator
  • 1995
  • 109 / 0
Спасибо, Nikodim. Обязательно рассмотрю это предложение и попробую реализовать в новой версии.

Сидел разбирался ииии ... обнаружил, что у меня не было копирования типов кузова (таблица _autobb_bodies). Исправил в коде и перезаписал файл в первом посте.

А для дальнейших модернизаций компонента такое предложение:
так как при установке установке компонента, устанавливается полная база всех марок и моделей в стандартные категории (легковые, грузовые), можно сделать кнопку для создания новой категории вроде "создать копированием" с выбором базовой (стандартной) категории в качестве источника.
« Последнее редактирование: 15.03.2008, 11:55:04 от Nikodim »
*

Alex Revo

  • Moderator
  • 1995
  • 109 / 0
Да, я так и планирую сделать.
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Хотел вопользоватся кодом, но получил:

Warning: Invalid argument supplied for foreach() in E:\xampp\htdocs\auto\set.php on line 40

------------------------------------------------------------
Warning: Invalid argument supplied for foreach() in E:\xampp\htdocs\auto\set.php on line 61

------------------------------------------------------------0:

Warning: Invalid argument supplied for foreach() in E:\xampp\htdocs\auto\set.php on line 90

Посмотрл код, вроде всё правильно...
*

P@shKenDr

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
А для дальнейших модернизаций компонента такое предложение:
так как при установке установке компонента, устанавливается полная база всех марок и моделей в стандартные категории (легковые, грузовые), можно сделать кнопку для создания новой категории вроде "создать копированием" с выбором базовой (стандартной) категории в качестве источника.
Чтото я непонял логики, ведь стандартной базе всех марок и моделей идёт привязка по id к  стандартным категориям (легковые, грузовые 601,'Иномарки легковые' и 603,'Грузовики'), а если я изменил категории на 601,'Иномарки легковые' 602,'Отечественные легковые' 603,'Легкий грузовик' 604,'Грузовик или спец.техника' и т.д. то как импортирование базы марок ТС правильно "ляжет" на изменёные категории???
*

Alex Revo

  • Moderator
  • 1995
  • 109 / 0
правильно не ляжет, нужно так менять значения id на новые
*

Sto-auto

  • Захожу иногда
  • 183
  • 0 / 2
  • не останавливайся...
Раньше все получалось, а сейчас все время "Restricted access". С autobb for Joomla 1.5 этот метод работает?
*

Sto-auto

  • Захожу иногда
  • 183
  • 0 / 2
  • не останавливайся...
Как сделать аналогичное на 1.5? Как скопировать категорию?
« Последнее редактирование: 21.09.2011, 00:15:36 от Sto-auto »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вопрос по модулю Выбор марок/моделей автомобилей

Автор FLYERok

Ответов: 2
Просмотров: 3177
Последний ответ 21.08.2012, 23:33:53
от Alex Revo
Собираю базу моделей и марок

Автор Dimka56ru

Ответов: 9
Просмотров: 4395
Последний ответ 19.08.2012, 20:43:54
от Goldcoding
Красивая навигация с логотипами марок

Автор pilotus

Ответов: 11
Просмотров: 4377
Последний ответ 05.07.2010, 09:16:34
от Alex Revo
Проблема со списком моделей авто

Автор ZeoNic

Ответов: 4
Просмотров: 2814
Последний ответ 28.06.2010, 06:18:12
от Павел Зотов
А как в общем каталоге марок и моделей убрать общее количество авто?

Автор pinkfloyd

Ответов: 1
Просмотров: 2109
Последний ответ 14.06.2010, 20:40:06
от Alex Revo