- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть сайт на Джумле, где меню выводится немного не стандартно.
Сами пункты меню стандартные. Мне нужно их отсортировать по алфавиту.
Единственный путь - это сортировать вручную в админке джумлы перетаскиванием.
У меня 100 пунктов, это больше часа нудной работы. Пробовал отсортировать в админке Джумлы встроенными средствами и нажать "Перестроить" - но оно зараза не сохраняется. Почем не понятно.
Может быть можно добавить сортировку в JS который выводит эти пункты?
Вот код отвечающий за показ меню
jQuery.ajax({
type: 'GET',
url: '/index.php?option=com_menus&view=item&format=raw&cached=1',
success: function (data) {
jQuery('#menu2').html(data);
//
jQuery(".nav li a").each(function() {
if (jQuery(this).next().length > 0) {
jQuery(this).addClass("parent");
}
});
jQuery(".toggleMenu").click(function(e) {
e.preventDefault();
jQuery(this).toggleClass("active");
jQuery(".nav").toggle();
});
adjustMenu(width);
}
});
сортируем
еще и еще
В общем сам разобрался. За сортировку отвечают поля lft и rgt в таблице _menu
И если у вас большое меню сортирнуть можно так.
Заходите в майдамин, выбираете нужное меню (по родительскому элементу) и сортируете по lft.
Запоминаете наименьшее значение и далее выполняете из коря сайта этот скрипт.
set_time_limit(0);
const _JEXEC = 1;
error_reporting(E_ALL | E_NOTICE);
ini_set('display_errors', 1);
if (!defined('_JDEFINES')) {
define('JPATH_BASE', dirname(__FILE__)); // если не в корне - добавить выше сколько надо
require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_LIBRARIES . '/import.legacy.php';
require_once JPATH_LIBRARIES . '/cms.php';
// Load the configuration
require_once JPATH_CONFIGURATION . '/configuration.php';
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$db->setQuery("SELECT id,lft,rgt FROM `bw173_menu` WHERE `parent_id` = 245 ORDER BY `bw173_menu`.`title` ASC");
$result = $db->loadAssocList();
$lft=55; //сюда подставляете ваши значения (на 1 меньше чем запомнили)
$rgt=56; //сюда подставляете ваши значения (на 1 меньше чем запомнили)
foreach ($result as $item){
$lft++;
$rgt++;
$db->setquery("UPDATE `bw173_menu` SET `lft` = '{$lft}', `rgt` = '{$rgt}' WHERE `bw173_menu`.`id` = {$item["id"]};");
$db->query();
}