Новости Joomla

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

WT IndexNow плагин для Joomla - отправка страниц сайта на переиндексацию в поисковые системы

WT IndexNow плагин для Joomla - отправка страниц сайта на переиндексацию в поисковые системы

👩‍💻 WT IndexNow плагин для Joomla - отправка страниц сайта на переиндексацию в поисковые системы.Пакет плагинов, обеспечивающий ручную и автоматическую отправку url адресов Joomla в поисковые системы на переиндексацию по протоколу IndexNow. Согласно документации протокол поддерживают все крупнейшие поисковые системы, кроме Google. Протокол служит для получения от сайтов URL, которые нужно переиндексировать заново или проиндексировать в первый раз как можно быстрее. Отправка адресов сайта таким образом существенно ускорит индексацию нового или изменённого контента поисковыми системами.Поисковые системы по этому протоколу обмениваются друг с другом данными, поэтому отправив URL в одну из них вы сообщаете их сразу всем. Протокол IndexNow поддерживают:- Amazon- Microsoft Bing- Naver- Seznam.cz- Yandex - YepСуточный лимит URL - 10000 в сутки. Возможна отправка вручную и автоматически. Поддерживаются:- материалы и категории материалов Joomla- контакты и категории контактов Joomla- SW JProjects - компонент каталога расширений для Joomla- JoomShopping - компонент интернет-магазина для Joomla- Phoca Download - компонент каталога файлоа для Joomla- Phoca Cart - компонент интернет-магазина для Joomla- RadicalMart - компонент интернет-магазина для JoomlaПакет плагинов работает с Joomla 4.3+. Тестировался на Joomla 5 и Joomla 6.Смотреть видео:- ВК Видео- RuTubeСсылки:Страница расширенияGitHub расширенияРаздел Поддержка протокола IndexNow в справке Яндекса@joomlafeed#joomla #seo #indexnow

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

ruopg

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Что есть:

Есть файл отвечающий за вывод пунктов меню со следующим кодом

Код
<?php




class WarpMenuDefault extends WarpMenu {

/*
Function: process

Returns:
Object
*/
public function process($module, $element) {
self::_process($module, $element->first('ul:first'));
return $element;
}

/*
Function: _process

Returns:
Void
*/
protected static function _process($module, $element, $level = 0) {

if ($level == 0) {
$element->attr('class', 'menu '.$module->menu_style);
} else {
$element->addClass('level'.($level + 1));
}




foreach ($element->children('li') as $li) {

// is active ?
if ($active = $li->attr('data-menu-active')) {
$active = $active == 2 ? ' active current' : ' active';
}




// is parent ?
$ul = $li->children('ul');
$parent = $ul->length ? ' parent' : null;

// set class in li
$li->attr('class', sprintf('level%d item%s'.$parent.$active, $level + 1, $li->attr('data-id')));









// set class in a/span
foreach ($li->children('a,span') as $child) {

// get title
$title = $child->first('span:first');

// set subtile
$subtitle = $title ? explode('||', $title->text()) : array();

if (count($subtitle) == 2) {
$li->addClass('hassubtitle');
$title->html(sprintf('<span class="title">%s</span><span class="subtitle">%s</span>', trim($subtitle[0]), trim($subtitle[1])));
}





// set image
if ($image = $li->attr('data-menu-image')) {
$title->prepend(sprintf('<span class="icon" style="background-image: url(\'%s\');"> </span>', $image));
}

$child->addClass(sprintf('level%d'.$parent.$active, $level + 1));




}

// process submenu
if ($ul->length) {
self::_process($module, $ul->item(0), $level + 1);
}
}

}

}

Что нужно:

Нужно добавить одному из пунктов аттрибут 
Код
data-lightbox

Вот что я сделал: Добавил такой вот код

Код
$miki = 'data-lightbox';
$child->attr($miki,'transitionIn:elastic;transitionOut:elastic;');


Что я получил:

Я получил то что хотел, с одной оговоркой - атрибут был добавлен всем пунктам меню и это логично.
Тогда я задал пункту меню  - CSS-класс ссылки чтобы он отличался от других пунктов


Вопрос:

как правильно написать условие на языке php, чтобы аттрибут был присвоен только одному из пунктов



*

ruopg

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
похоже все уже начали новый год отмечать
*

ruopg

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Пробовал такое
Код
if(isset($child('class','ids'))
{
$child->attr($miki,'transitionIn:elastic;transitionOut:elastic;');
}
Но выдает фатальную ошибку
Fatal error: Can't use function return value in write context
*

oriol

  • Завсегдатай
  • 1042
  • 100 / 4
Как правильно?
Добавить в CSS класс и при создании пункта меню указать этот CSS-класс
в твоем случае data-lightbox

зы: А за красный цвет можешь быть наказан
« Последнее редактирование: 31.12.2011, 16:06:52 от oriol »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Я так понял в цикле foreach ($element->children('li') as $li) {} нужно проверять этот самый класс ссылки, примерно так:
$a = $li->children('a:first'); // либо $li->children('a')->item(0);
if ($a->attr('class') == 'myClass') { // или if ($a->hasClass('myClass'))
    $li->attr('data-lightbox', 'transitionIn:elastic;transitionOut:elastic;'); // и случаем ли не "{transitionIn: 'elastic', transitionOut: 'elastic'}" ?
}

Это все примерно, так как я не пойму что это за модуль и какому классу принадлежит $element (смахивает на DomElement)

Не уверен что на этом этапе li->a имеет attr('class') со значением установленным в админке, и что добавленный attr('data-lightbox') окажется в конечном html-коде. Помоему тык проще на js инициализировать нужные функции с нужными параметрами.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

ruopg

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Как правильно?
Добавить в CSS класс и при создании пункта меню указать этот CSS-класс
в твоем случае data-lightbox

зы: А за красный цвет можешь быть наказан

Нет, мне нужен не CSS класс пункта, а атрибут т.е.   если заглянуть в код сайта я должен увидет нечто следующее
Код
<a data-lightbox="transitionIn:elastic;transitionOut:elastic;" href="#test" class="ids">
а если последовать твоему совету я получу вот что:
Код
<a class="data-lightbox ids" href="#test">
*

ruopg

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Я так понял в цикле foreach ($element->children('li') as $li) {} нужно проверять этот самый класс ссылки, примерно так:
$a = $li->children('a:first'); // либо $li->children('a')->item(0);
if ($a->attr('class') == 'myClass') { // или if ($a->hasClass('myClass'))
    $li->attr('data-lightbox', 'transitionIn:elastic;transitionOut:elastic;'); // и случаем ли не "{transitionIn: 'elastic', transitionOut: 'elastic'}" ?
}

Это все примерно, так как я не пойму что это за модуль и какому классу принадлежит $element (смахивает на DomElement)

Не уверен что на этом этапе li->a имеет attr('class') со значением установленным в админке, и что добавленный attr('data-lightbox') окажется в конечном html-коде. Помоему тык проще на js инициализировать нужные функции с нужными параметрами.

друг, если не смогу в ближайшее время, возьмешься выполнить?
*

ruopg

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Все сделал, всем спасибо
Итоговый код:
Код
if ($child->hasClass('ids'))
{
$child->attr($miki,'transitionIn:elastic;transitionOut:elastic;');
}
*

arma

  • Завсегдатай
  • 1752
  • 81 / 3
Кто-нибудь помогите правильно вставить тот же атрибут в следующее меню, а то или ошибка, или ничего не происходит.
Вот код меню:

Код
<?php
/**
* @package   Warp Theme Framework
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license   http://www.gnu.org/licenses/gpl.html GNU/GPL
*/

/*
                Class: WarpMenuPre
                               Menu base class
*/
class WarpMenuPre extends WarpMenu {

                /*
                               Function: process

                               Returns:
                                               Object
                */                           
                public function process($module, $element) {

                               // has ul ?
                               if (!$element->first('ul:first')) {
                                               return false;
                               }

                               // init vars
                               $menu   = JSite::getMenu();
                               $images = strpos($module->parameter->get('class_sfx'), 'images-off') === false;       

                               foreach ($element->find('li') as $li) {

                                               // get menu item
                                               if (preg_match('/item-(\d+)/', $li->attr(version_compare(JVERSION, '1.7.0', '>=')? 'class' : 'id'), $matches)) {
                                                               $item = $menu->getItem($matches[1]);
                                               }

                                               // set id
                                               if (isset($item)) {
                                                               $li->attr('data-id', $item->id);
                                               }

                                               // set current and active
                                               if ($li->hasClass('active')) {
                                                               $li->attr('data-menu-active', $li->hasClass('current') == 'current' ? 2 : 1);
                                               }

                                               // set columns and width
                                               if (isset($item) && strpos($item->params->get('pageclass_sfx'), 'column')!== false) {

                                                               if (preg_match('/columns-(\d+)/', $item->params->get('pageclass_sfx'), $matches)) {
                                                                              $li->attr('data-menu-columns', $matches[1]);
                                                               }
                                                               
                                                               if (preg_match('/columnwidth-(\d+)/', $item->params->get('pageclass_sfx'), $matches)) {
                                                                              $li->attr('data-menu-columnwidth', $matches[1]);
                                                               }
                                                               
                                               }
                                               
                                               // set image
                                               if (isset($item) && $images && ($image = $item->params->get('menu_image'))) {
                                                               if ($image != -1) {
                                                                              $li->attr('data-menu-image', JURI::base().$image);
                                                               }
                                               }
                                               
                                               // set title span and clean empty text nodes
                                               foreach ($li->children('a,span') as $child) {
                                                               $child->html(sprintf('<span>%s</span>', trim($child->text())));
                                               }

                                               $li->removeAttr('id')->removeAttr('class');
                               }
                                                               
                               return $element;
                }

}
*

arma

  • Завсегдатай
  • 1752
  • 81 / 3
Решил другим путем: подправил файл default_url.php
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Назначение макета, посредством ссылки в меню

Автор xxxLOGIATxxx

Ответов: 20
Просмотров: 6845
Последний ответ 04.02.2022, 14:44:14
от hoi
Съезжает меню при наведении

Автор yyyuuu

Ответов: 4
Просмотров: 3800
Последний ответ 08.12.2020, 11:12:32
от AlexB
Проблемы в горизонтальном меню Joomla 2.5

Автор Димьяна

Ответов: 1
Просмотров: 4265
Последний ответ 27.11.2018, 14:58:30
от Ragivort
mod_menu и подписи к пунктам меню (subtitles)

Автор St@lker

Ответов: 21
Просмотров: 8917
Последний ответ 29.10.2017, 16:24:00
от xilog
Перенос строки в название пункта меню Joomla

Автор skitskis

Ответов: 33
Просмотров: 18577
Последний ответ 29.10.2017, 10:36:30
от xilog