Новости Joomla

Вышли релизы безопасности Joomla 6.1.4 и Joomla 5.4.9

Релиз безопасности Joomla 6.1.4 и Joomla 5.4.9

Проект Joomla! рад сообщить о выходе Joomla 6.1.4 и Joomla 5.4.9. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

JoomShift - компонент переноса контента между Joomla сайтами.

‍ JoomShift - компонент переноса контента между Joomla сайтами.

JoomShift - компонент переноса контента между Joomla сайтами.Он позволяет экспортировать модули, меню, материалы, категории, пользовательские поля и пользователей в виде переносимых JSON/ZIP-файлов, а затем импортировать их в любую другую установку Joomla.

Возможности компонента:- Модули — полная настройка, назначение пунктов меню, позиционирование и содержимое SP Page Builder.
-Меню — иерархия родительских/дочерних элементов, типы элементов, ссылки, уровни доступа и параметры. Отсутствующие типы меню создаются автоматически, а элементы, указывающие на неустановленные компоненты, пропускаются с предупреждением.
-Статьи и категории — контент, метаданные, изображения и иерархия категорий.
-Пользовательские поля — группы полей, определения, ограничения по категориям и значения (включая поля с несколькими значениями) — экспортируются и автоматически создаются заново на целевом сайте.
-Пользователи — данные профиля, назначения групп и хэши паролей, чтобы учетные записи работали сразу после импорта.
-Кросс-версииJoomla - компонент адаптируется к различиям в схеме базы данных между версиями Joomla.
-Создан для крупных сайтов — постраничные списки (20/50/100/250строк) и автоматический пакетный экспорт для сайтов с более чем 500 элементами, поэтому он продолжает работать на обычном хостинге.
-Опция перезаписи — обновляет совпадающие элементы при повторном импорте вместо создания дубликатов.
-Drag-n-drop импорт с подробным отчетом о том, что было импортировано, обновлено или пропущено, и почему.

На момент написания заметки для скачивания необходима регистрация/логин на сайте разработчика.

-Joomla Extensions Directory-Страница расширения#joomla#расширения

Модуль joomLab JS Ajax Cart позволит организовать в Вашем интернет-магазине на компоненте JoomShopping удобную AJAX корзину с возможностью добавлять товары и изменять их количество без перезагрузки страницы.

Модуль joomLab JS Ajax Cart позволит организовать в Вашем интернет-магазине на компоненте JoomShopping удобную AJAX корзину с возможностью добавлять товары и изменять их количество без перезагрузки страницы.

Кроме этого, в состав пакета установки входит плагин, который позволяет выводить атрибуты товара в список всех товаров, менять эти атрибуты и добавлять товар в корзину из списка товаров. Если атрибутов много, то их можно выводить в всплывающем (модальном окне).

В модуле предусмотрено 2 макета дизайна для Bootstrap и UIkit и максимальная кастомизация для переопределения макетов в шаблон.Демо расширенияСтраница расширения

Видео в Telegram

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

JLang

  • Захожу иногда
  • 103
  • 19 / 0
JavaScript замены слов
« : 11.03.2015, 13:18:39 »
Для создания полезной штуки необходимо немного (или много? без понятия) исправить следующий код.
Это для перевода компонентов без языковых строк.
Код: javascript
<script language="JavaScript" type="text/javascript">
function repl(a) {
    var b = {
'Search': 'Поиск',
'Media': 'Медиа',
'Title': 'Заголовок',
'Upload': 'Загрузить'
    };
    for (var c in b) {
        var d = RegExp(c, 'g');
        a = a.replace(d, b[c])
    }
    return a
};

window.onload = function () {
    all_elements = document.getElementsByTagName('*');
    i = 0;
    for (s = all_elements.length; i < s; i++) if (all_elements[i].tagName != 'SCRIPT') {
        j = 0;
        for (s_ = all_elements[i].childNodes.length; j < s_; j++)
        if (all_elements[i].childNodes[j].nodeType == 3)
        all_elements[i].childNodes[j].data = repl(all_elements[i].childNodes[j].data)
    }
};
</script>

Абсолютно не понимаю js. Ни функций, ни синтаксиса. Мудрю уже долгое время, но воз и ныне там.
Прошу помощи (как и куда) вставить функцию setTimeout или setInterval, чтобы сценарий запускал функцию window.onload = function () { (её пока никак не назвал, но планирую perevod() ) с заданным интервалом времени.
Так же попутный вопрос и хотелка (что в идеале   :D)
Правильно ли это - запускать функцию такого поиска и замены с периодичностью в 2 секунды при наличии в заданном массиве, допустим 100 фраз, слов?
И хотелка - возможно ли запускать эту функцию не по временному интервалу, а по событию, т.е. клике мыши в любом месте экрана или нажатии любой кнопки. Кнопка onclick="perevod()" не вариант.
Сейчас сценарий работает, но во многих моментах необходимо нажать ту самую onclick="perevod()" но без неё, автоматически  ;D если понимаете о чём я.
Буду благодарен любой помощи (даже поддержке, типа - ну, удачи.  :dry:)
« Последнее редактирование: 11.03.2015, 13:47:13 от JLang »
*

fsv

  • Живу я здесь
  • 2796
  • 414 / 2
Re: JavaScript замены слов
« Ответ #1 : 11.03.2015, 14:29:02 »
Цитировать
Правильно ли это - запускать функцию такого поиска и замены с периодичностью в 2 секунды при наличии в заданном массиве, допустим 100 фраз, слов?
я бы начал с 50мс
100 слов – Неправильно, это мелочь
100 фраз – зависит от длины строки.
Правильнее было бы после каждой итерации цикла проверять затраченное время. Если оно не вышло за лимит (50мс), следующая итерация. Если вышло, запуск рекурсивно продолжения через таймаут, чтобы дать возможность выполнения других скриптов в очереди.

Цитировать
Это для перевода компонентов без языковых строк.
Если компонент собственный, нечего обходить все теги в документе, сужайте поиск набора элементов.
Или парсите англоязычный сайт?

Цитировать
Буду благодарен любой помощи (даже поддержке, типа - ну, удачи.
Нууу… УДАЧИ!
« Последнее редактирование: 11.03.2015, 22:18:47 от fsv »
Веб-разработка: заказ. Только новая разработка.
*

JLang

  • Захожу иногда
  • 103
  • 19 / 0
Re: JavaScript замены слов
« Ответ #2 : 13.03.2015, 00:14:06 »
Аллилуюшка! Спустя всего то два дня нашёл решение  ;D в этом мега сложном вопросе
Пришлось убрать window.onload, назвать функцию perevod() и добавить в самом конце setInterval(perevod, 250);
И всё заработало! Поверить не могу, как просто... Но как сложно.

я бы начал с 50мс
100 слов – Неправильно, это мелочь
100 фраз – зависит от длины строки.
fsv, спасибо. Поступил по первому вашему совету на 25мс. Слов, конечно не 100, а в разы меньше. И оказывается на глаз практически не заметна подмена. Расчитывая на 2 секунды минимум - мерцание бы напрягало.
Вы ещё писали "после каждой итерации цикла проверять затраченное время" Если не сложно, пожалуйста, подскажите как это сделать. В виде кода. С такими страшными словами, боюсь никогда не осилить.
Сейчас конечный вариант выглядит так:
Спойлер
[свернуть]

Если компонент собственный, нечего обходить все теги в документе, сужайте поиск набора элементов.
Или парсите англоязычный сайт?
Компонент не собственный и к сожалению понятия не имею как ограничивать поиск.
У меня маленькое хобби, в свободное время и при наличии желания делаю русификаторы компонентов.
А некоторые не имеют своих языковых строк. Поэтому думал-думал и придумал такой способ их перевода с прописью JavaScript в языковой ini файл, ведь любой компонент по идее имеет(или может подключить) ru-RU.com_component.ini
Этот скрипт нашёл случайно, под свои нужды исправил (так же после недельных поисков) буквально две буковки))
« Последнее редактирование: 13.03.2015, 00:32:49 от JLang »
*

fsv

  • Живу я здесь
  • 2796
  • 414 / 2
Re: JavaScript замены слов
« Ответ #3 : 13.03.2015, 01:51:29 »
Цитировать
и добавить в самом конце setInterval(perevod, 250);
И всё заработало!
у вас сейчас переводит сразу всю страницу,
Спойлер
[свернуть]

Цитировать
Вы ещё писали "после каждой итерации цикла проверять затраченное время" Если не сложно, пожалуйста, подскажите как это сделать. В виде кода.
Пример универсальной функции. Подгоняйте под свою ситуацию, прокомментировал для ясности.
Код: javascript
// пакетная обработка элементов массива с проверкой времени
// функция принимает аргументы: обрабатываемый массив, функцию обработки каждого элемента массива и функцию обратного вызова

function timedProcessArray(items, process, callback){
    var todo = items.concat();      // создать копию оригинального массива, используется в качестве очереди
    setTimeout(function(){
        var start = +new Date();    // преобразование объекта Date в числовое представление
        do {
            process(todo.shift());  // извлечь очередной элемент массива (с его удалением из массива) и обработать его
        } while (todo.length > 0 && (+new Date() - start < 50));
        if (todo.length > 0){
            setTimeout(arguments.callee, 25);  // arguments.callee указывает на анонимную функцию, в которой в данный момент находится поток выполнения
        } else {
            callback(items);
        }
    }, 25);
}
Веб-разработка: заказ. Только новая разработка.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

JavaScript не работает в Firefox &amp; Edge

Автор antarey

Ответов: 8
Просмотров: 1664
Последний ответ 20.03.2019, 22:20:06
от antarey
JavaScript Fingerprintjs2

Автор antarey

Ответов: 18
Просмотров: 4714
Последний ответ 05.03.2019, 09:20:15
от antarey
Как быстро изучить php и JavaScript?

Автор dm-krv

Ответов: 0
Просмотров: 958
Последний ответ 22.04.2018, 17:58:17
от dm-krv
Как прописать JavaScript позицию вывода ?

Автор warlocksp

Ответов: 3
Просмотров: 1605
Последний ответ 04.05.2015, 14:38:43
от warlocksp
Вопрос по функциям и переменным javascript

Автор alex_next

Ответов: 20
Просмотров: 2084
Последний ответ 07.10.2014, 10:21:06
от AlekVolsk