Василий Столейков

Василий Столейков

С нами с 19 декабря 2012; Место в рейтинге пользователей: #25
Отправить деньги

Делимся приемами оптимизации под Google PageSpeed

Поделитесь опытом, кто как оптимизирует сайт? Кто набирает 85 баллов на продуктовой странице или на странице категории товаров, то есть на тех, где minishop2 свои ресурсы подключает?
Konstantin
31 августа 2017, 16:56
modx.pro
14
6 205
+3

DNS хостинг на modhost.pro

Привет, друзья! У нас очередное обновление нашего любимого modhost.pro.

Начнём с приятной новости, которую я в своё время не стал публиковать — мы установили на сервис замечательный файловый менеджер Sprut.io. Это Open Source приложение, разработанное мастерами Beget, которое мы чуть-чуть модифицировали и теперь вы можете эффективно работать со своими файлами прямо в браузере.

Для этого у вас появилась ссылка в меню сайта и на странице информации:
При клике вы перейдете в менеджер, который выглядит вот так:

Интерфейс написан на всеми нелюбимом ExtJS =)
Василий Наумкин
22 августа 2017, 21:28
modx.pro
1
4 454
+17

Использование модификаторов Fenom в PHP

Заметка коротенькая, но может быть полезной.

Все знают, что мы можем добавлять собственные модификаторы Fenom на событие pdoToolsOnFenomInit. А как быть, если мы хотим потом использовать этот же модификатор не в чанках и шаблонах, а в своих PHP скриптах?

А очень просто:
$pdoTools = $modx->getService('pdoTools');

$string = 'Some very very long string';
if ($truncate = $pdoTools->getFenom()->getModifier('truncate')) {
	$string = $truncate($string, 10);
}

return $string;
Здесь мы получаем модификатор truncate и обрезаем строку до 10 символов, если она больше.
Василий Наумкин
20 августа 2017, 11:10
modx.pro
13
3 010
+10

mFilter2 и оптимизация скорости на 7k товарах


Всем, кто хоть раз пытался завести mFilter2 на большом кол-ве товаров и хотя-бы 10 опциях в фильтре, известно, что тормозов не избежать. Вот и мне попался на днях сайт, в котором, казалось бы, всего-то 7000 товаров и 10 опций на странице каталога. Однако сниппет фильтра отрабатывал за 3-4 секунды. Переписал на Fenom — стал отрабатывать за 2-3 секунды.
Не годится! Тем более, что у заказчика было требование: «Чтобы сайтом было комфортно пользоваться». Что-ж, взял задачу — надо решать!

Дебаг показал, что проблема в методе mse2FiltersHandler::getMsOptionValues, а именно в запросе (7k товаров!), который выглядит как-то так:
SELECT `product_id`, `key`, `value` FROM `modx_ms2_product_options` AS `msProductOption` 
WHERE (`msProductOption`.`product_id` IN (3394,3408,еще 7 тысяч ID)
AND `msProductOption`.`key` IN ('atr_n1','atr_n6','atr_n5','atr_n12','atr_n43','atr_n46','atr_n29','atr_n11','atr_n44','atr_n2'))
Павел Гвоздь
14 августа 2017, 14:14
modx.pro
41
4 683
+21

[xLike] Идеальная система лайков с оптимистичным интерфейсом и правильной формулой

Пакет довольно прост и одновременно функционален. Выполняет систему рейтинга для любого объекта, по-умолчанию, для ресурсов. Чем-то напоминает систему лайков на YouTube, в частности, в пакете реализован оптимистичный интерфейс.


Также, особенностью компонента является правильный подсчет рейтинга на основе вычисления нижней границы доверительного интервала Вильсона для параметра Бернулли. По-простому: эта формула не даст встать новым записям с 1 лайком и 0 дизлайками выше более старых записей с сильным рейтингом.

Список преимуществ:
  1. Оптимистичный интерфейс,
  2. Наиболее правильная формула вычисления рейтинга,
  3. Работа с любыми объектами (modResource, modUser, кастомные объекты),
  4. Голосование гостями,
  5. Анимированное изменение полосы/числа рейтинга,
  6. Событие плагина — xLikeOnVote.
Павел Гвоздь
16 июля 2017, 18:05
modx.pro
18
10 212
+34

Обновление modhost.pro

Пока вокруг пора отпусков и затишье, мы подготовили и запустили обновление modhost.pro.

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

Шучу, всё было не так просто, конечно. Под катом список изменений.
Василий Наумкин
16 июля 2017, 17:06
modx.pro
3
4 038
+11

DiscountMS2 - Скидки для категорий товаров

Поздравляю всех (или сочувствую всем, спорный вопрос) с началом новой рабочей недели!
Наклепал свой первый более-менее серьезный компонент, хочу представить на суд общественности.

Компонент предназначен для выставления скидки внутри категорий. Поддерживает мультикатегории и указание глубины поиска товаров.

Есть возможность указания скидки как со страницы компонента, так и через TV.

Вот так выглядит страница в админке:



Вот так — указание скидки через ТВ:



Добавление новой скидки:



Олег
03 июля 2017, 12:43
modx.pro
3
1 562
+12

Office 1.5 - авторизация на фронтенде

Привет, друзья!

В связи с отключением дополнений от MODX-клуба, а соответственно и отсутствием исправлений в SwitchUser, которых мне не хватало, представляю вам новую версию Office c функционалом авторизации на фронтенде из админки.
Отличия от SwitchUser:
— Ссылка на авторизацию выводится только для активных пользователей.
— Помимо пункта меню в списке пользователей, выводится и кнопка на панели редактирования пользователя. Причём, она реагирует на отключение и блокировку юзера при редактировании, становясь неактивной.
— Авторизация всегда происходит в новом окне, админка не закрывается.
— Юзер авторизуется сразу во все контексты, если может.
— Нет чёрного окошка на фронтенде.
Василий Наумкин
20 июня 2017, 08:05
modx.pro
2
2 350
+24

settingsWidget - настройки в панели управления

Это маленькое дополнение предназначено для показа выбранных настроек на панели управления MODX.


Добавить виджет на панель: Панели — Default — Редактировать панель — Добавить виджет — Быстрые настройки.
В системной настройке settingswidget_keys указать через запятую список ключей настроек. Например, так:
site_name,site_status,emailsender,error_page
Эти перечисленные настройки и будут отображаться в виждете.

Дополнение целиком и полностью бесплатно и доступно в Modstore: settingsWidget.
DocentBF
19 июня 2017, 21:14
modx.pro
14
4 006
+19

Добавление пользователя в другую группу

Добрый день!

Натолкнулся на снипет который сделал Николай https://modx.pro/help/9699/, чтобы добавить всех пользователей из одной группы в другую.

<?php
$usergroup = 4;
$c = $modx->newQuery('modUser');
$c->innerJoin ('modUserProfile','Profile');
$c->innerJoin ('modUserGroupMember','UserGroupMembers');
$c->innerJoin ('modUserGroup','UserGroup','`UserGroupMembers`.`user_group` = `UserGroup`.`id`');
$c->leftJoin ('modUserGroupRole','UserGroupRole','`UserGroupMembers`.`role` = `UserGroupRole`.`id`');
$c->where(array(
'UserGroupMembers.user_group' => $usergroup,
'UserGroupMembers.role' => '1',
));
$users = $modx->getCollection('modUser',$c);
foreach($users as $user) {
$user->joinGroup(11,1);
}

Снипет работает, добавляет всех пользователей, но подскажите, что нужно изменить в снипете, чтобы не всех пользователей из одной группы добавляло в другую группу, а только одного. Или может есть другое решение. Нужно для того, чтобы зарегистрированные при нажатии кнопки «Стать партнером» попадали в другую группу.
Александр
02 июня 2017, 12:10
modx.pro
1
1 101
0