Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

srg

  • Захожу иногда
  • 209
  • 41 / 1
Добрый день, перекопал кучу тем, но требуемого не нашел, задачка в следующем:
как сделать более наглядный выбор категории при добавлении нового объявления? А то в одном раскрывающемся списке может быть 40-50-100 категорий для добавления. Т.е. сделать два раскрывающихся списка (второй формируется как под категории выбранной категории в первом списке). На  скриншоте, например, в списке "Аренда >> Квартиры", а нужно сделать первый список, выбор "Аренда", после появляется второй список с выбором "Квартиры".

[вложение удалено Администратором]
« Последнее редактирование: 06.11.2012, 16:38:55 от smart »
*

srg

  • Захожу иногда
  • 209
  • 41 / 1
Класс. А это для какой версии 2.6 или 2.5.? Выложите пожалуйста. Не раз поднималась эта проблема.

ADS_2.6.1 Связные поля выбора категории и под категории.
Подчеркиваю, у меня по задаче только родительские категории и под категории, если у Вас 3-4-5 и т. д. вложенные под категории нужно вводить еще <select>`ы и модифицировать скрипт динамического селектбокса.

Изменяем шаблон добавления объявления:
в файле \components\com_adsmanager\views\edit\tmpl\default.php функция function updateFields() примерно 208 строка, между, ну например <!-- titel --> и  <!-- form --> вставляем скрипт

Код
  <!--/*my script*/-->
  <script>
  function dynamicSelect(id1, id2) {

// Сперва необходимо проверить поддержку W3C DOM в браузере

if (document.getElementById && document.getElementsByTagName) {

// Определение переменных, ссылающихся на списки

var sel1 = document.getElementById(id1);
var sel2 = document.getElementById(id2);

// Клонирование динамического списка

var clone = sel2.cloneNode(true);

// Определение переменных для клонированных элементов списка

var clonedOptions = clone.getElementsByTagName("option");

// Вызов функции собирающей вызываемый список

refreshDynamicSelectOptions(sel1, sel2, clonedOptions);

// При изменении выбранного элемента в первом списке:
// вызов функции пересобирающей вызываемый список

sel1.onchange = function() {
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
}
}
}

// Функция для сборки динамического списка

function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {

// Удаление всех элементов динамического списка

while (sel2.options.length) {
sel2.remove(0);
}
var pattern1 = /( |^)(select)( |$)/;
var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");

// Перебор клонированных элементов списка

for (var i = 0; i < clonedOptions.length; i++) {

// Если название класса клонированного option эквивалентно "select"
// либо эквивалентно значению option первого списка

if (clonedOptions[i].className.match(pattern1) ||
clonedOptions[i].className.match(pattern2)) {

// его нужно клонировать в динамически создаваемый список

sel2.appendChild(clonedOptions[i].cloneNode(true));
}
}
}

// Вызов скрипта при загрузке страницы

window.onload = function() {
dynamicSelect("parentcats", "subcats");
}
  </script>
  <!--/*end my script*/-->

идем в файл \components\com_adsmanager\views\edit\view.html.php и меняем функции (не забывайте старые версии файлов сохранить, что бы откатиться можно было)

Код
	function selectCategories($id, $level, $children,&$catid,$root_allowed,$link,$current_cat_only =0) {
if (@$children[$id]) {
foreach ($children[$id] as $row) {
if (($root_allowed == 1)||(!@$children[$row->id])) {
if ($current_cat_only == 0)
{?>
<option class="<?php echo 'cat'.$row->parent;?>" value="<?php echo JRoute::_("$link&catid=".$row->id); ?>" <?php if ($row->id == $catid) { echo "selected='selected'"; } ?>>
<?php echo $level.$row->name; ?>
</option>
<?php
}
else if ($row->id == $catid)
{
echo $level.$row->name;
}
}
$this->selectCategories($row->id, /*убрано что бы не дублировать родительские категории $level.$row->name." >> "*/"", $children,$catid,$root_allowed,$link,$current_cat_only);
}
}
}

function displaySingleCatChooser($ad_id,$conf,$option,$cats,$catid,$itemid)
{

if (($ad_id != "")&&
  file_exists( JPATH_BASE . "/components/com_paidsystem/api.paidsystem.php"))
{
$display_current_cat_only = 1;
$this->selectCategories(0,"",$cats,$catid,$conf->root_allowed,""/*$link*/,$display_current_cat_only);
}
else
{
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function jumpmenu(target,obj,restore){
  eval(target+".location='"+obj.options[obj.selectedIndex].value+"'");
  obj.options[obj.selectedIndex].innerHTML="<?php echo JText::_('ADSMANAGER_WAIT');?>";
}
//-->
</script>

<?php
/*my*/
$parcat=-1;
if ($catid <> 0){
$keys=array_keys($cats);
$count = count($keys);
for ($i = 0; $i < $count; $i++) {
foreach ($cats[$keys[$i]] as $row){
if ($row->id==$catid) $parcat=$row->parent;
}
}

}
?>
<select name="ParentCats" id="parentcats">
<?php
echo "<option class='select' value='select' selected=selected>".JText::_('ADSMANAGER_SELECT_CATEGORY')."</option>";
foreach ($cats[0] as $row) {
$selected='';
if ($row->id == $parcat) $selected= "selected='selected'";
echo '<option value="cat'.$row->id.'" '.$selected.'>'.$row->name.'</option>';
}
?>
  </select>

<select id='subcats' class='adsmanager_required' name='category_choose' onchange="jumpmenu('parent',this)">
<?php

if ((@$ad_id)&&($ad_id != ""))
$link = "index.php?option=com_adsmanager&Itemid=$itemid&task=write&id=$ad_id";
else
$link = "index.php?option=com_adsmanager&Itemid=$itemid&task=write";
/*if ($catid == 0)*/ /* не нужно т.к. при смене род.категории требуется повторно выбрать и под категорию*/
echo "<option class='select' value='select' selected=selected>".JText::_('ADSMANAGER_SELECT_CATEGORY')."</option>";
if (function_exists("selectPaidCategories"))
selectPaidCategories(0,"",$cats,$catid,$conf->root_allowed,$link,0);
else
$this->selectCategories(0,"",$cats,$catid,$conf->root_allowed,$link,0);
?>
</select>
<?php
}
}

Вроде все! Спасибо автору статьи http://www.my-article.net/get/html/select/динамические-выпадающие-списки , тут можно подробнее почитать о технике
*

Алекс82

  • Захожу иногда
  • 120
  • 4 / 0
  • Совсем новичок
ADS_2.6.1 Связные поля выбора категории и под категории.
Подчеркиваю, у меня по задаче только родительские категории и под категории, если у Вас 3-4-5 и т. д. вложенные под категории нужно вводить еще <select>`ы и модифицировать скрипт динамического селектбокса.

Изменяем шаблон добавления объявления:
в файле \components\com_adsmanager\views\edit\tmpl\default.php функция function updateFields() примерно 208 строка, между, ну например <!-- titel --> и  <!-- form --> вставляем скрипт

Код
  <!--/*my script*/-->
  <script>
  function dynamicSelect(id1, id2) {



Вроде все! Спасибо автору статьи http://www.my-article.net/get/html/select/динамические-выпадающие-списки , тут можно подробнее почитать о технике
[/quote]





.

Дополнительный пункт появился, но подкатегории почему то не отображаются. Это может быть из-за тог, что у меня категории 4й вложенности?

Посмотрите пожалуйста


Дополнительный пункт появился, но подкатегории почему то не отображаются. Это может быть из-за тог, что у меня категории 4й вложенности?

Посмотрите пожалуйста


[вложение удалено Администратором]
« Последнее редактирование: 02.08.2011, 23:39:30 от Алекс82 »
*

mbgr

  • Захожу иногда
  • 88
  • 11 / 0
гляньте что не так

[вложение удалено Администратором]
« Последнее редактирование: 03.08.2011, 01:28:43 от mbgr »
*

srg

  • Захожу иногда
  • 209
  • 41 / 1
гляньте что не так
Хммм... посмотрел, заменил на Ваши файлы у себя все работает...
На всякий случай спрошу, что за браузер?
структура категорий?
должно быть так:
род.катег -|- под катег.
               +- под катег.
а так работать скорее всего не будет:
род.катег -|- под катег. -под катег
               +-  под катег - под катег.
*

srg

  • Захожу иногда
  • 209
  • 41 / 1
Дополнительный пункт появился, но подкатегории почему то не отображаются. Это может быть из-за тог, что у меня категории 4й вложенности?
Посмотрите пожалуйста
да 2 селекта только на 2х уровневый каталог, что бы обрабатывать все N уровней нужно динамически создавать N селектов, что под силу AJAX технологии, я пока такое не делал, но тут можно почитать разобраться http://pyha.ru/forum/topic/86.0
*

Алекс82

  • Захожу иногда
  • 120
  • 4 / 0
  • Совсем новичок
да 2 селекта только на 2х уровневый каталог, что бы обрабатывать все N уровней нужно динамически создавать N селектов, что под силу AJAX технологии, я пока такое не делал, но тут можно почитать разобраться http://pyha.ru/forum/topic/86.0

Спасибо за ответ. будем ждать пока кто-нибудь не выложит. Я в PHP не бум бум.
*

mbgr

  • Захожу иногда
  • 88
  • 11 / 0
Хммм... посмотрел, заменил на Ваши файлы у себя все работает...
На всякий случай спрошу, что за браузер?
структура категорий?
должно быть так:
род.катег -|- под катег.
               +- под катег.
а так работать скорее всего не будет:
род.катег -|- под катег. -под катег
               +-  под катег - под катег.
опера-браузер
род.катег -|- под катег.
               +- под катег. ---вот так у меня
и не пашет нормально
http://real.adresnmsk.ru/
_____________________________
странно а мозиле все нормально, почему?
« Последнее редактирование: 03.08.2011, 15:00:39 от mbgr »
*

srg

  • Захожу иногда
  • 209
  • 41 / 1
http://real.adresnmsk.ru/
_____________________________
странно а мозиле все нормально, почему?

Все работает, выбираю род.категорию и фильтруется 7 под категорий у вас всего их 35.
Если у вас не фильтруются под категории, а вылезают все 35 во втором селекте, вероятно в браузере отключены скрипты...т.к. у меня в опере работает в мазиле работает.
*

Алекс82

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

http://real.adresnmsk.ru/
_____________________________
странно а мозиле все нормально, почему?
У меня в опере тоже нормально отображается
*

rusdark

  • Захожу иногда
  • 130
  • 0 / 0
  • RusDark
...вероятно в браузере отключены скрипты...т.к. у меня в опере работает в мазиле работает.

Огого! Я тут общаясь с коллегами (в недвижимости), товарищами, друзьями понял, что многие отключают скрипты, ставят всякие дополнения от скриптов и настраивают высокий уровень безопасности в браузерах. Как же тогда будет отображаться это поиск? )
А уж если речь идет о крупной компании, так  там админы настраивают сеть так, что люди часто не видят даже элементарных вещей.
Недавно одна барышня выносила мозг по телефону на предмет отсутствия на сайте фотографий коттеджного поселка.
Фотки там есть и очень давно! Вот, бывает, что люди с такими настройками сёрфят! )))
*

Алекс82

  • Захожу иногда
  • 120
  • 4 / 0
  • Совсем новичок
Кто-нибудь реализовал выбор категорий с вложенностью более 2-х.? ?
« Последнее редактирование: 12.08.2011, 02:59:45 от Алекс82 »
*

Алекс82

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

homelux

  • Захожу иногда
  • 190
  • 1 / 1
классно, srg можешь сделать такое для расширенного поиска и модуля поиска?
*

apelsin

  • Захожу иногда
  • 129
  • 0 / 1
Подкатегории выбираются, но не отображается (написано выберите категорию) в ie8, но объявление добавляется правильно. Как нибудь можно исправить?
*

homelux

  • Захожу иногда
  • 190
  • 1 / 1
правда есть такая проблема
*

Высотник

  • Осваиваюсь на форуме
  • 48
  • 3 / 0
как сделать три взаимосвязанных селекта  ?
*

srg

  • Захожу иногда
  • 209
  • 41 / 1
как сделать три взаимосвязанных селекта  ?
в 1ом селекте, выводим из базы 1 уровень категорий, после выбора делаем запрос к базе с фильтром по 2ому уровню категорий и так рекурсия на N вложенность, т.е. запросы к базе непосредственно после выбора, а это под силу технологии AJAX, нужно написать обработчик, или самим или заказываете на фрилансе, навряд ли в ближайших аптейтах АДС это появиться.
*

Nervniy

  • Новичок
  • 4
  • 1 / 0
Подскажите где подправить,чтобы если нет подкатегорий,то второй селект не отображал,а сразу показывал дальше поля для заполнения?
*

runis1

  • Новичок
  • 5
  • 0 / 0
Подкатегории выбираются, но не отображается (написано выберите категорию) в ie8, но объявление добавляется правильно. Как нибудь можно исправить?
проблема есть в IE не работает!
*

sav

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
кто знает что за хрень? у меня раньше выбор категории был выпадающим списком, а в один прекрасный момент стал списком с мультивыбором. Кто-нибудь знает как сделать назад? Или подскажите файл хотя бы который отвечает за отображение выбора категории при подаче объявления.
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
Цитировать
кто знает что за хрень?
Вы наверно в админке поменяли значение (Конфигурация->Общие->Количество категорий). Значение должно быть равным единице, если больше, то появляется мультивыбор
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
Спасибо всё работает!
Но возник такой вопрос?Первая колонка категорий отличается по цвету от всех остальных.Где находится файл отвечающий за её цвет?никак не могу найти
*

lionman

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
Вопрос такой. Можно тоже самое сделать в расширенном поиске?
*

lionman

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
ЛЛЛЮДИ! Что никто не делал для расширенного поска. Или надо тоже самое почти делать?
*

HoBu4oK1982

  • Новичок
  • 1
  • 0 / 0
Люди добрые! ПОМОГИТЕ сделать 3-х уровневый список категорий и подкатегорий!
*

erick29

  • Захожу иногда
  • 74
  • 0 / 0
поддерживаю насчёт поиска!
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
кто знает решение для 2.7?
представленное здесь решение для версии 2.7 работает не совсем корректно
*

shketok

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
кто-нибудь в курсе как для поиска сделать?
*

leprikon_s

  • Захожу иногда
  • 60
  • 4 / 0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Выбор марки>модели автомобиля

Автор THE KILLERS

Ответов: 16
Просмотров: 4854
Последний ответ 06.05.2025, 22:24:58
от Matzzz
Слетают категории объявления

Автор guardnext

Ответов: 1
Просмотров: 3220
Последний ответ 09.07.2019, 10:10:59
от guardnext
Изменить категории в AdsManager 3.1.5

Автор Doc

Ответов: 2
Просмотров: 10015
Последний ответ 17.03.2019, 21:17:30
от Doc
Как сделать сортировку объявдений в AdsManager

Автор Olegarh

Ответов: 9
Просмотров: 15644
Последний ответ 03.06.2018, 22:59:57
от Sabotage
AdsManager - как сделать несколько адресов?

Автор Ksenia2009

Ответов: 0
Просмотров: 11464
Последний ответ 21.04.2018, 15:13:44
от Ksenia2009