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

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Друзья, добрый день!
Есть файл прайс листа. Как сделать его скачивание доступным только после заполнения формы?
Логика проста: Пользователь может скачать файл только после того, как оставит ФИО и номер телефона или почту.

Заранее спасибо!
*

Webster

  • Захожу иногда
  • 185
  • 7 / 0
как вариант, обычная форма регистрации с автоматической активацией и автовходом

а доступ к файлу только зареганым
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
как вариант, обычная форма регистрации с автоматической активацией и автовходом
а доступ к файлу только зареганым
Ненене. Прайс для потенциальных оптовых клиентов. Т.е. может они ими станут, а может не станут. А сам сайт - интернет магазин. Там регятся в большинстве своем обычные покупатели.

Оптовики интересны, поэтому нужна возможность перезвонить им спустя 2-3 дня, узнать как у них дела, и заинтересовались ли нашей продукцией.
*

xpank

  • Захожу иногда
  • 448
  • 41 / 0
Как вариант, создать контактную форму, а после отправки письма перенаправлять по ссылке на скачивание.
*

Webster

  • Захожу иногда
  • 185
  • 7 / 0
тогда только писать обработчик формы который на сабмит будет инициализировать скачивание файла
или редирект на файл после сабмита
*

Webster

  • Захожу иногда
  • 185
  • 7 / 0
или же в ответном письме высылать ссылку или файл
но это если почта указана
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Хм, понял логику работы.
А может какой-то модуль есть?
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
Смотря в чем форму делаете. Если по аналогии с RSForm, то можно в сообщение об успешной отправке формы вставить ссылку на файл. Тогда и проверку корректности данных можно там же сделать.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Webster

  • Захожу иногда
  • 185
  • 7 / 0
На самом деле вариант с редиректом самый простой

*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Друзья, добрый день!
Есть файл прайс листа. Как сделать его скачивание доступным только после заполнения формы?
Логика проста: Пользователь может скачать файл только после того, как оставит ФИО и номер телефона или почту.

Заранее спасибо!

У меня есть небольшой скрипт собственной разработки, пример можно посмотреть тут:
http://dveri.ekolestnica.ru/
Справа кнопка есть, получить прайс - это она. Попробуйте заполнить. На вбитую почту отсылается прайс, плюс, все кому был отправлен прайс заносятся в базу. Эту базу потом можно использовать для рассылок.

Если устроит такой формат, бесплатно поделюсь. Скрипт универсальный и подходит для любой CMS.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Да просто пишется, простейший компонент или даже плагин.
Сам файл закидываем за придел root чтобы не было прямого доступа по ссылке и все.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
аякс-плагин на отдачу файла + радикалформ, на который вроде как можно повесить обработчик js при успешном сабмите (показать этим обработчиком кнопку для скачивания)
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Компонент, аякс-плагин + радикал, да просто пишется...ппц, кончаю после каждого поста. Человеку нужен всего лишь простой обработчик.
Код
$file = "mysite.ru/file";
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . basename($file));
readfile($file);
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Kostelano

  • Давно я тут
  • 525
  • 52 / 1
Друзья, добрый день!
Есть файл прайс листа. Как сделать его скачивание доступным только после заполнения формы?
Логика проста: Пользователь может скачать файл только после того, как оставит ФИО и номер телефона или почту.

Заранее спасибо!

Все ответы не читал, но есть OSDownloads (компонент + модуль).
Демо | Русский язык

Выполняет то, что вы написали, за исключением поля ФИО. Думаю, можно дописать.
Фронтенд после ввода мыла:



Админка - список адресов:

*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Компонент, аякс-плагин + радикал, да просто пишется...ппц, кончаю после каждого поста. Человеку нужен всего лишь простой обработчик.
Ну так и засунуть обработчик надо в правильное место. А именно в плагин, модуль или компонент.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Человеку нужен всего лишь простой обработчик.
обработчик должен сработать в конкретный момент, а именно - после отправки формы, следовательно нужен отправщик формы, позволяющий после сабмита показать кнопку скачивания файла - радикал ту должен помочь, а на кнопку уже вешать обработчик скачивания - простейший аякс-плагин

непонятен момент: файл всегда один или разные файлы на разных страницах (да, прайсы бывают разные, на каждую группу товаров - свой прайс)? если файлов много - то их надо где-то учитывать, либо хардкорить в коде, либо уже писать компонент для админки, в который можно переместить обработчик отдачи файла

OSDownloads не поможет - он отдаёт скачивание без предварительной отправки формы, да и не позволяет работать с файлами за пределами папки сайта, что позволяет вычислить прямой путь для скачивания
*

Cedars

  • Давно я тут
  • 585
  • 31 / 0
на sendpulse.com заведите форму - там желаемое настроите ... Вывод через обычный blank module на страницу..
*

Webster

  • Захожу иногда
  • 185
  • 7 / 0
зачем столько сложностей?
все элементарно, берется любой компонент обратной связи, где можно настроить страницу/всплывашку спасибо.и туда просто вешается кнопочка с линком на скачивание
как пример подобное накидал за 4 минуты в balboaforms(привык к нему)
*

Kostelano

  • Давно я тут
  • 525
  • 52 / 1
OSDownloads не поможет - он отдаёт скачивание без предварительной отправки формы, да и не позволяет работать с файлами за пределами папки сайта, что позволяет вычислить прямой путь для скачивания

В админке задается сегмент для пути к файлу. По итогу, файл на скриншоте com_rscomments-v1.13.14.zip превратился в 711643717035e92e36bf327c8b8d01b2_com_rscomments-v1.13.14.zip в каталоге /media/com_osdownloads/files.

Да и речь об обычном прайсе. Если пользователь не агент 007, то ничего не будет искать специально.
Зашел, оставил данные, скачал.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
зачем столько сложностей?
А чего тут сложного? даже если делать спец компонент под этот такс со всем возможными наворотами, это 4-6 часов работы профессионала.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Webster

  • Захожу иногда
  • 185
  • 7 / 0
4-6 часов работы профессионала
в этом все и дело
зачем усложнять отдачу обычного прайса?
требуется просто собрать данные тех кому он отдался
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Ого, сколько ответов! Спасибо всем огромное за участие!

Конечно, ставить что-то большое ради такой не сложной задачи не хотелось бы. Прайса всего два. Да и не думаю, что будет повальный спрос какой-то... 2-3 человека в неделю, я думаю.

Тут еще один момент, весьма важный всплыл. Нужно, что бы для пользователей из специальной группы (назовем её "партнеры") этой формы не было. Т.е. зарегистрированных партнеров админ сайта добавляет в эту группу, и они уже скачивают прайс свободно.
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Ого, сколько ответов! Спасибо всем огромное за участие!

Конечно, ставить что-то большое ради такой не сложной задачи не хотелось бы. Прайса всего два. Да и не думаю, что будет повальный спрос какой-то... 2-3 человека в неделю, я думаю.

Тут еще один момент, весьма важный всплыл. Нужно, что бы для пользователей из специальной группы (назовем её "партнеры") этой формы не было. Т.е. зарегистрированных партнеров админ сайта добавляет в эту группу, и они уже скачивают прайс свободно.

А это уже надо скрипт конкретно под эту задачу править, стучитесь в личку, обсудим.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Тут еще один момент, весьма важный всплыл. Нужно, что бы для пользователей из специальной группы (назовем её "партнеры") этой формы не было. Т.е. зарегистрированных партнеров админ сайта добавляет в эту группу, и они уже скачивают прайс свободно.
Форму в модуле в материал или просто модуль- доступ для нужной группы .
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Форму в модуле в материал или просто модуль- доступ для нужной группы .
Наоборот, нужной группе сразу файл отдавать, им не нужна эта форма.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Наоборот, нужной группе сразу файл отдавать, им не нужна эта форма.
Ну тогда 2 модуля- один с формой, другой с файлом.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Ну тогда 2 модуля- один с формой, другой с файлом.
  :o Joomla точно г**но  ^-^.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Ну тогда 2 модуля- один с формой, другой с файлом.
зачем 2? проверить права пользователя в одном не судьба?
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
А потом выясниться что для одной группы один файл, для другой другой.
И на каждый файл должна быть своя настраиваемая форма.

Я же говорю компонент писать надо и не парится.
« Последнее редактирование: 15.08.2019, 11:01:55 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Webster

  • Захожу иногда
  • 185
  • 7 / 0
ну стакими условиями поступаем так
точнее так:
клик на скачать прайс - ведет на страницу с прайсом доступную для заданной группы
если юзер не в группе, то открывает форму - заполняется и на странице спасибо линк на файл
опять же дело 5 минут
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль "Скачать фаил"

Автор Alex_iPod

Ответов: 6
Просмотров: 1968
Последний ответ 07.06.2024, 14:09:11
от Alex_iPod
Динамическое изменение вывода в зависимости от данных формы

Автор PavelK

Ответов: 0
Просмотров: 2385
Последний ответ 18.05.2023, 17:51:16
от PavelK
Плагин "vm custom - произвольные товары" установочный файл

Автор piter2022

Ответов: 0
Просмотров: 748
Последний ответ 11.04.2022, 15:15:19
от piter2022
Поиск формы для Joomla

Автор disig

Ответов: 1
Просмотров: 1054
Последний ответ 19.02.2022, 09:04:22
от sivers
Блокировка спамеров контактной формы по IP (Блокировка доступа по IP)

Автор Adm1nspb

Ответов: 6
Просмотров: 753
Последний ответ 22.11.2021, 21:20:20
от Adm1nspb