Новости 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 Гость просматривают эту тему.
  • 10 Ответов
  • 2216 Просмотров
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Пытаюсь создать таблицу в базе данных:

Код
$db1 =& JFactory::getDBO();
$query = 'CREATE TABLE IF NOT EXISTS `#__table1` (
      `rowid` integer NOT NULL AUTO_INCREMENT,
              `name` varchar(255) NOT NULL DEFAULT ``,
              `artist` varchar(80) NOT NULL DEFAULT ``,
              `title` varchar(80) NOT NULL DEFAULT ``,
              `down_count` integer NOT NULL DEFAULT 0,
              `raiting` integer NOT NULL DEFAULT 0,
              PRIMARY KEY (`rowid`),
              UNIQUE KEY `music_name` (`name`,`artist`,`title`)
      );';

        $result = $db1->setQuery($query);
        if (!$result = $db1->query($query)){
            echo "Error: ".$db1->getError();// отлавливаем ошибки
        }

Код выполняется внутри функции. Вернее должен выполняться. Всё остальное внутри функции выполняется. А этот код почему-то нет! Таблица не создаётся!

В чём может быть проблема?
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

icom

  • Давно я тут
  • 830
  • 202 / 4
Re: Проблемы работы с базой данных
« Ответ #1 : 01.09.2010, 12:50:18 »
может проблема в том что вы целочисленные поля объявили как integer а не например - int(11)
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #2 : 01.09.2010, 13:04:09 »
может проблема в том что вы целочисленные поля объявили как integer а не например - int(11)

Изначально это было int(11)... уже и так и так пытался.

А в результате выдаёт:
Цитировать
Error:
И всё... никаких ошибок.

Может быть внутри функции такое сделать невозможно?

Даже не знаю, что предположить.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #3 : 01.09.2010, 13:23:31 »
Вот код страницы с начала:

Код
defined( '_JEXEC' ) or die( 'Restricted access' );
$mainframe->registerEvent( 'onPrepareContent', 'plugin1' );

function plugin1( &$row, &$params )  {

        $db1 =& JFactory::getDBO();
$query = 'CREATE TABLE IF NOT EXISTS `#__table1` (
      `rowid` integer NOT NULL AUTO_INCREMENT,
              `name` varchar(255) NOT NULL DEFAULT ``,
              `artist` varchar(80) NOT NULL DEFAULT ``,
              `title` varchar(80) NOT NULL DEFAULT ``,
              `down_count` integer NOT NULL DEFAULT 0,
              `raiting` integer NOT NULL DEFAULT 0,
              PRIMARY KEY (`rowid`),
              UNIQUE KEY `music_name` (`name`,`artist`,`title`)
      );';

        $result = $db1->setQuery($query);
        if (!$result = $db1->query($query)){
            echo "Error: ".$db1->getError();// отлавливаем ошибки
        }
}

И почему-то этот код не работает. Таблица не создаётся! :-(
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #4 : 01.09.2010, 13:35:41 »
Такс... походу проблема в самом запросе... попробовал пример из ехтравоте плагина:

Код
$query = 'CREATE TABLE IF NOT EXISTS  `#__content_extravote` (
      `content_id` INT(11) NOT NULL,
      `extra_id` INT(11) NOT NULL,
      `lastip` VARCHAR(50) NOT NULL,
      `rating_sum` INT(11) NOT NULL,
      `rating_count` INT(11) NOT NULL,
  KEY `extravote_idx` (`content_id`)
      );';

Всё сработало! Таблица создалась. Всем спасибо. Буду копать дальше!
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Проблемы работы с базой данных
« Ответ #5 : 01.09.2010, 13:36:34 »
Код
if (!$db1->query()) {
  echo $db1->stderr();
}
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Проблемы работы с базой данных
« Ответ #6 : 01.09.2010, 13:41:00 »
Вообще-то прежде чем совать в код, запрос стоит прогонять через phpmyadmin чистоганом. Т.е. без php.
Код: php
$query = "CREATE TABLE IF NOT EXISTS `#__table1` (
     `rowid` integer NOT NULL AUTO_INCREMENT,
              `name` varchar(255) NOT NULL DEFAULT '',
              `artist` varchar(80) NOT NULL DEFAULT '',
              `title` varchar(80) NOT NULL DEFAULT '',
              `down_count` integer NOT NULL DEFAULT 0,
              `raiting` integer NOT NULL DEFAULT 0,
              PRIMARY KEY (`rowid`),
              UNIQUE KEY `music_name` (`name`)
     )";
$db =& JFactory::getDBO();
$db->setQuery($query);
$db->query();
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #7 : 01.09.2010, 14:02:43 »
Не понимает в строке
Код
`rowid` int(11) NOT NULL AUTO_INCREMENT,
Слово:
Код
AUTO_INCREMENT

Также не понимает в конце каждой строки:

Код
DEFAULT ''

Почему?

Копаю дальше...
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #8 : 01.09.2010, 14:11:55 »
Код
if (!$db1->query()) {
  echo $db1->stderr();
}

Спасибо! Теперь вижу ошибки!
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #9 : 01.09.2010, 14:16:53 »
Почти разобрался! Вот эта конструкция работает вся кроме последней строчки:

Код
'CREATE TABLE IF NOT EXISTS `#__table1` (
      `rowid` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `name` varchar(255) NOT NULL DEFAULT \'\',
      `artist` varchar(80) NOT NULL DEFAULT \'\',
               `title` varchar(80) NOT NULL DEFAULT \'\',
               `down_count` int(11) NOT NULL DEFAULT 0,
               `raiting` int(11) NOT NULL DEFAULT 0,
                PRIMARY KEY (`rowid`),
                UNIQUE KEY `music_name` (`name`,`artist`,`title`)
            );'

Если это убрать:

Код
,
                UNIQUE KEY `music_name` (`name`,`artist`,`title`)

То всё работает!

Иначе выдаёт ошибку:

Цитировать
Specified key was too long; max key length is 1000 bytes SQL=CREATE TABLE...

Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Проблемы работы с базой данных
« Ответ #10 : 01.09.2010, 14:23:35 »
Понял в чём причина:

для Utf8 1 символ — 3 байта.

Сократил кол-во символов в полях до 200, 50 и 50

Всем спасибо за помощь. Смоку отдельное за вывод ошибок! Уже поставил +.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблемы с входом на сайт

Автор belovpaha

Ответов: 7
Просмотров: 4700
Последний ответ 20.09.2022, 14:30:51
от sivers
Проблемы с правами на запись папок "logs и tmp"

Автор murich

Ответов: 42
Просмотров: 28741
Последний ответ 07.10.2021, 18:29:16
от Maxandrey
Ошибка #1050 при переносе базы данных на хостинг

Автор Ksen

Ответов: 7
Просмотров: 24920
Последний ответ 16.03.2020, 17:47:29
от Petrovich
Есть у кого нибудь опыт работы с EZ Realty?

Автор stardel

Ответов: 5
Просмотров: 3543
Последний ответ 08.03.2019, 13:47:38
от zaspola
Передача данных в форму при нажатии на ссылку

Автор usmdamir

Ответов: 4
Просмотров: 1747
Последний ответ 26.07.2017, 09:40:22
от usmdamir