Kirill A. Rusanov
С нами с 28 декабря 2012; Место в рейтинге пользователей: #277[СДЕЛАЙ САМ] Поиск с mSearch2 и SendIt без перезагрузки страницы и динамическими параметрами
Приветствую, думаю ни для кого не секрет, что mSearch2 не умеет показывать результаты поиска без перезагрузки страницы, а pdoPage не умеет «на лету» менять параметры. На своём сайте я захотел сделать морфологический поиск услуг без перезагрузки, с постраничной навигацией и возможностью выбирать категорию поиска. Ниже опишу чтобы для этого было предпринято.
FacetSearch - быстрый фасетный поиск с сервисом facetsearch.ru
У MODX есть один компонент фасетного поиска – mFilter2. Но на больших каталогах (от 10 000 товаров) mFilter2 работает очень медленно. Загрузка страницы и фильтрация могут занимать 6–10 секунд, даже с кэшем. Современные поисковые системы используют специальные базы данных – ElasticSearch, Sphinx и другие. На сервисе FacetSearch.ru развернут OpenSearch (fork ElasticSearch). Компонент FacetSeach для MODX загружает данные в базу OpenSearch и выводит на сайты с MODX форму фасетного поиска, фильтрующую товары и ресурсы с помощью запросов в сервис.
FacetSearch фильтрует большые каталоги за 0,6-0,9 секунды.
FacetSearch фильтрует большые каталоги за 0,6-0,9 секунды.
[ModExtra3] Заготовка для создания компонентов для MODX3
Одна из проблем развития экосистемы MODX3 на текущий день — не очень большой объем доступной информации, инструкций. Официальный сайт только недавно начал выпускать справочные пособия на тему разработки MODX3.
Мне в свое время очень помогла в понимании работы компонентов, подготовленная @Василий Наумкин заготовка для создания компонентов modExtra. Я решил поднять это знамя и донести его до MODX3
Представляю вашему вниманию ModExtra3. Заготовка для создания компонентов и справочное пособие по MODX3.
Мне в свое время очень помогла в понимании работы компонентов, подготовленная @Василий Наумкин заготовка для создания компонентов modExtra. Я решил поднять это знамя и донести его до MODX3
Представляю вашему вниманию ModExtra3. Заготовка для создания компонентов и справочное пособие по MODX3.
Немного о виджетах в административной панели
Добрый день, сегодня хочу немного поговорить об удобстве наших дорогих клиентов. А именно о главной странице административной панели.
Картинка для привлечения внимания:
Картинка для привлечения внимания:
Еще немного про сессии MODX, компонент smartSessions
Всем привет!
Небольшая предыстория
Когда я на свой VPS сервер закинул очередной более-менее крупный сайт (в базе около 25 тыс. товаров), у меня начались проблемы с нехваткой памяти, mysql ее нещадно отъедал.
В процессе оптимизации я начал понимать, что у половины сайтов в базе большую часть объема занимает пресловутая таблица modx_sessions, где, как известно, лежат сессии посетителей.
Но… почему? У сайта посещаемость 150-200 человек в сутки, сессии хранятся 7 дней (да, я проверил, они действительно очищаются), но в таблице почему-то 200000 записей, хотя по логике вещей должно быть 200*7=1400+. Реальность расходится с теорией не на 5-10%, а в десятки раз!
В итоге таблица весит полгигабайта, сайтов штук 10, каждому дай памяти, вот VPS и падает периодически… непорядок!
Небольшая предыстория
Когда я на свой VPS сервер закинул очередной более-менее крупный сайт (в базе около 25 тыс. товаров), у меня начались проблемы с нехваткой памяти, mysql ее нещадно отъедал.
В процессе оптимизации я начал понимать, что у половины сайтов в базе большую часть объема занимает пресловутая таблица modx_sessions, где, как известно, лежат сессии посетителей.
Но… почему? У сайта посещаемость 150-200 человек в сутки, сессии хранятся 7 дней (да, я проверил, они действительно очищаются), но в таблице почему-то 200000 записей, хотя по логике вещей должно быть 200*7=1400+. Реальность расходится с теорией не на 5-10%, а в десятки раз!
В итоге таблица весит полгигабайта, сайтов штук 10, каждому дай памяти, вот VPS и падает периодически… непорядок!
Шпаргалка на все случаи жизни
Полезные ссылки, которые Вам пригодятся в некоторых ситуациях.
Борьба с парсерами и ботами - antiBot
Первый случай
Примерно год назад повадился на сайт парсер который шерстил сайт с разных IP адресов и c разными user agent, воровал информацию.
Сайт по содержанию имел около 10 миллионов страниц и ежедневно обновлялся по 10к страниц в день. Видел его даже в статистике сайта на метрике. Но все не мог придумать как его заблокировать.
Пробовал использовать компонент siteStatistics с костамизаций так чтобы можно было блочить его по IP адресам.
Худо бедно кое как избавился от этого парсера.
Второй случай
Две недели назад, какой то экспериментатор устроил мне атаку на форму регистрации пользователей, и как давай регистрировать по 2-3 пользователей в секунду. Пришлось закрыть сайт на некоторое время чтобы остановить регистрацию и выяснить как от него избавится. В итоге пару кастылей для формы регистрации еще пришлось написать. Но товарища я так и не успел вычислить так как компонент siteStatistics был отключен, и я честно говоря уже даже забыл как им пользоваться.
Кстати в логах сайта шарится не стал, так как понимал все ровно может повторится не на этом сервер так на другом, пришел один прийдет и второй
UPD: цена снижена с 1490 руб до 590 руб, чтобы можно было купить сразу для нескольких сайтов
Отправка Email о регистрации при оформлении заказа в miniShop2
Буквально на днях я столкнулся с вопросом, о котором как то не задумывался.
При оформлении заказа в minishop2 создается пользователь, но сам пользователь о собственной регистрации ничего не знает.
Как отправить пользователю письмо, с первоначальными регистрационными данными (логин, пароль)?
Стандартный комплект методов нашего любимого интернет-магазина такого не предусматривает. А значит руки в плечи и пишем плагин.
При оформлении заказа в minishop2 создается пользователь, но сам пользователь о собственной регистрации ничего не знает.
Как отправить пользователю письмо, с первоначальными регистрационными данными (логин, пароль)?
Стандартный комплект методов нашего любимого интернет-магазина такого не предусматривает. А значит руки в плечи и пишем плагин.
Изменяем форму заказа minishop2
Прокачиваем навык программирования на Fenom
Информация для разработчиков. Сложность средняя.
Практически все разработчики MODX используют тот или иной шаблонизатор. Большинство в рунете сделали свой выбор в пользу Fenom. Благодаря Василию конечно. Этот шаблонизатор достаточно простой и лёгкий. И его функционала хватает для решения практически всех своих задач. В этой статье мы посмотрим на него немного под другим углом и попробуем его возможности расширения.
Практически все разработчики MODX используют тот или иной шаблонизатор. Большинство в рунете сделали свой выбор в пользу Fenom. Благодаря Василию конечно. Этот шаблонизатор достаточно простой и лёгкий. И его функционала хватает для решения практически всех своих задач. В этой статье мы посмотрим на него немного под другим углом и попробуем его возможности расширения.