Новости Joomla

SW JProjects v.2.6.0 - компонент каталога расширений для Joomla

👩‍💻 SW JProjects v.2.6.0 - компонент каталога расширений для Joomla.Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам.👩‍💻 v.2.6.0. Что нового?Этот релиз прежде всего связан с SEO и AI-оптимизацией. - Микроразметка Schema.org.Добавлен плагин микроразметки Schema.org для сущностей компонента. Для списков используется ListItem, для страницы проекта и версии - SoftwareApplication, для страницы документации - TechArticle. Плагин группы schemaorg в отличие от стандартных плагинов заполняет данные автоматически, но встраивает данные в граф сущностей микроразметки Joomla. Также исправляется одна ошибка генерируемой ядром микроразметки в зоне ответственности компонента.- Улучшение поиска по ключам. В панели администратора в списке ключей теперь можно искать по номеру заказа, email, домену, содержимому примечания к ключу.- Список ключей в админке. В списке ключей в панели администратора добавлен вывод домена и примечания- Поиск в списке проектов. Поиск в списке проектов в панели администратора стал более точным. Из полей для поиска убраны лишние поля.Компонент работает на Joomla 6 без включённого плагина обратной совместимости.Страница расширения и скачатьGitHub расширения.Joomla Extensions Directory#joomla #расширения

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

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

RYUMASHKIN

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Доброго времени суток достопочтенные форумчане.
Возник вопрос следующего толка.
Необходимо состыковать БД стороннего скрипта и Joomla соответсвенно, и соответственно перенести пользователей в Joomla чтобы олни могли авторизоваться со своими паролями.

Не подскажите как правильно завернуть пароль ?? Если не сложно то на простом примере.
« Последнее редактирование: 04.10.2016, 05:07:55 от RYUMASHKIN »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
md5 поможет, если у вас в стороннем скрипте пароль хранится в открытом виде, если нет, то никак.
*

RYUMASHKIN

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
md5 поможет, если у вас в стороннем скрипте пароль хранится в открытом виде, если нет, то никак.
То есть, вы хотите сказать что пароль в Joomla хранится просто в MD5?? Без солей и свистоплясок?  Да быть такого не может.
*

RYUMASHKIN

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Ладно, зайдем с другой стороны.
Со стороннего скрипта я перенесу пользователей с принудительной сменой пароля к примеру.
Отправлю ему письмо со ссылкой на активацию нового пароля.
И теперь вопрос каким образом мне захешировать этот новый пароль для записи в БД??
К примеру у меня это работает образно говоря так

Код
$passwd = sha1($pkey . $password);
//где $pkey - это персональный уникальный ключ генерируемый для пользователя
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Arkadiy немного о другом говорил. Пароли в Joomla хранятся не просто в виде хеша с солью, там другой алгоритм. В Joomla 3 паролями занимается класс JCrypt. Проверить свой пароль можно так:
   
Код: php
<?php
//проверка пароля в Joomla 3.х из стороннего скрипта. Этот скрипт лежит в корне сайта.
    if (!defined('_JEXEC')) {//подключение к Joomla
        define('_JEXEC', 1);
        define('JPATH_BASE', dirname(__FILE__));
        define('DS', DIRECTORY_SEPARATOR);
        require_once JPATH_BASE . DS . 'includes' . DS . 'defines.php';
        require_once JPATH_BASE . DS . 'includes' . DS . 'framework.php';
    }

//проверка пароля  
    $user = JFactory:: getUser('admin');//проверяем пользователя с логином admin
    $Password = "test";// пароль
 
    $verifyPass = JUserHelper::verifyPassword($Password, $user->password, $user->id);
    if($verifyPass) {echo 'Верный пароль!';}else{echo 'Неверный пароль!';}
?>

Так же можете в файле libraries\joomla\crypt\password\simple.php посмотреть, как Joomla обрабатывает разные типы паролей.

Вторую часть вопроса не понял. Если вы переносите своих пользователей в Joomla, то естественно ваш алгоритм создания хеша отличается от алгоритма этой CMS и пароль она дешифровать не сможет. Но вы можете пойти другим путем - сгенерировать всем новые пароли и сохранить их в MD5. В админке (или в БД) можете всех новых пользователейй деактивировать и уведомить о том, что нужно срочно сменить пароль. При этом пароль для каждого пользователя вместе с уведомлением выслать на e-mail. Пользователь зайдет уже в Joomla и создаст в ней свой пароль.

Конечно, можно поизвращаться, например, сбрутить все ваши sha1-пароли, но это вряд ли целесобразно. Как я понял из беглого просмотра исходников, Joomla 3 использует шифрование Blowfish, но поддерживает и md5. Поэтому вам проще сгенерировать пароли именно в MD5 и выслать их юзерам, чем заниматься какими то дополнительными обработками.

То есть, вы хотите сказать что пароль в Joomla хранится просто в MD5?? Без солей и свистоплясок?  Да быть такого не может.
По умолчанию - нет. Но такая возможность поддерживается.
« Последнее редактирование: 02.10.2016, 12:04:38 от SeBun »
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

RYUMASHKIN

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Arkadiy немного о другом говорил. Пароли в Joomla хранятся не просто в виде хеша с солью, там другой алгоритм. В Joomla 3 паролями занимается класс JCrypt. Проверить свой пароль можно так:
   
Код: php
<?php
//проверка пароля в Joomla 3.х из стороннего скрипта. Этот скрипт лежит в корне сайта.
    if (!defined('_JEXEC')) {//подключение к Joomla
        define('_JEXEC', 1);
        define('JPATH_BASE', dirname(__FILE__));
        define('DS', DIRECTORY_SEPARATOR);
        require_once JPATH_BASE . DS . 'includes' . DS . 'defines.php';
        require_once JPATH_BASE . DS . 'includes' . DS . 'framework.php';
    }

//проверка пароля   
    $user = JFactory:: getUser('admin');//проверяем пользователя с логином admin
    $Password = "test";// пароль
 
    $verifyPass = JUserHelper::verifyPassword($Password, $user->password, $user->id);
    if($verifyPass) {echo 'Верный пароль!';}else{echo 'Неверный пароль!';}
?>

Так же можете в файле libraries\joomla\crypt\password\simple.php посмотреть, как Joomla обрабатывает разные типы паролей.

Вторую часть вопроса не понял. Если вы переносите своих пользователей в Joomla, то естественно ваш алгоритм создания хеша отличается от алгоритма этой CMS и пароль она дешифровать не сможет. Но вы можете пойти другим путем - сгенерировать всем новые пароли и сохранить их в MD5. В админке (или в БД) можете всех новых пользователейй деактивировать и уведомить о том, что нужно срочно сменить пароль. При этом пароль для каждого пользователя вместе с уведомлением выслать на e-mail. Пользователь зайдет уже в Joomla и создаст в ней свой пароль.

Конечно, можно поизвращаться, например, сбрутить все ваши sha1-пароли, но это вряд ли целесобразно. Как я понял из беглого просмотра исходников, Joomla 3 использует шифрование Blowfish, но поддерживает и md5. Поэтому вам проще сгенерировать пароли именно в MD5 и выслать их юзерам, чем заниматься какими то дополнительными обработками.
По умолчанию - нет. Но такая возможность поддерживается.


Я планировал сделать просто.
В цикле я делаю выборку из БД
имя пользователя, email и инициирую для всех пользователей автоматически процедуру смены пароля. Тут я в принципе могу не мучиться и создать пользователя в таблице с любым значением хеша в поле пароля.
Отправляю пользователю письмо со ссылкой на смену пароля.
И вот этот введенный новый пароль мне нужно будет захешировать в 2 базы.
Как в мою базу происходит процесс я понимаю, потому и интересуюсь как хешировать пароль для Joomla. Хотелось бы просто оставить процесс регистрации, активации, смены пароля на моем скрипте.

Но возможно, наверное так даже будет проще, все действия с учетными записями передать в Joomla  только дописать функции для создания пользователей в моей базе данных с моим алгоритмом хеширования.

*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну вам же дали метод JUserHelper::verifyPassword($Password, $user->password, $user->id), ну посмотрите же его :) ну не копировать же простыни кода, если файлы доступны всем. вам нужна часть, в которой участвует третий переданный параметр $user->id (запускается механизм перехеширования, если используемый алгоритм старый, например md5)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
То есть, вы хотите сказать что пароль в Joomla хранится просто в MD5?? Без солей и свистоплясок?  Да быть такого не может.
соль есть, но для совместимости со старыми паролями понимает и без соли.
*

RYUMASHKIN

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Всем спасибо кто отозвался, нужно было просто плюнуть на все и отдохнуть денек.
После отдыха посмотрел=>почтила=>реализовал.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 1500
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
[Решено] Получить category description image в index.php шаблона

Автор goga_pgasovav

Ответов: 6
Просмотров: 1502
Последний ответ 12.07.2024, 17:06:14
от goga_pgasovav
[Решено] Перестали работать переходы по меню сайта

Автор AlexP750

Ответов: 12
Просмотров: 2159
Последний ответ 06.02.2024, 12:42:26
от AlexP750
[Решено] Ссылка на домен и текущий шаблон в блоге категории

Автор goga_pgasovav

Ответов: 2
Просмотров: 950
Последний ответ 06.03.2023, 16:30:23
от goga_pgasovav
[Решено] Не добавляется CSS-класс страницы

Автор Strelok760

Ответов: 16
Просмотров: 2026
Последний ответ 02.03.2023, 16:14:47
от Танита Сар