Глеб

Глеб

С нами с 19 сентября 2014; Место в рейтинге пользователей: #236

Семантически правильныe Breadcrumbs на pdoCrumbs

Верстая очередной проект для замороченных на SEO клиентов, столкнулся с тем, что pdoCrumbs конечно хорош в своей программной логике, но приведенные в документации примеры не совсем верно построены с точки зрения SEO и архитектуры HTML.

Под катом сам код, мои заметки и несколько полезных комментариев.



Николай Савин
27 января 2017, 19:12
modx.pro
49
16 118
+20

Собственные модификаторы Fenom

Продолжаю разработку новой версии modstore.pro и хочу поделиться простым способом подключения своих модификаторов.

Обычный способ все знают: нужно создать сниппет, который будет принимать переменные $input и $options и вызвать его в чанке вот так:
{$variable | snippet}
Но
  • Сниппеты бывают совсем небольшие и создавать их на каждый чих не хочется
  • Вызов сниппета, это всё-таки дополнительная нагрузка
  • Лично я уже полностью перешел на файлы, и создавать запись в БД для сниппета, только ради его связи с файлом мне совсем не хочется
То есть, я хочу просто вызывать некий код в качестве модификатора. И в этом мне поможет событие pdoToolsOnFenomInit, которое появилось в pdoTools 2.6.0 и мало кто это заметил.
Василий Наумкин
14 января 2017, 05:49
modx.pro
29
8 860
+14

Ссылки на сайты-магазины на minishop2

Привет всем. Кому не сложно, подкиньте в комментах ссылок на сайты-магазины на минишопе, а то мне ответить нечем на "что-то я не видел магазинов на modx, все нормальные фирмы делают на Битриксе". Ну и думаю будет многим интересно посмотреть.
Виталий Барышников
12 января 2017, 10:27
modx.pro
8
5 178
+1

Функции хелперы для MODX

Друзья, поздравляю всех с наступающим Новым годом! Надеюсь, в новом году мы преодолеем все трудности и нам всем улыбнётся удача!


Ещё я хочу представить новую разработку в сфере улучшения процесса разработки — функции для работы с MODX.
Сергей Шлоков
31 декабря 2016, 08:57
modx.pro
22
5 412
+25

Редирект с удаленных ресурсов

Здравствуйте. Есть сайт, на котором нужно удалить целую рубрику, а это 12 категорий, в категории около 200 позиций, то есть страниц много. Сеошники советуют делать редирект на морду сайта, то есть со всех удаленных страниц, нам нужно делать редирект на главную страницу сайта. Подскажите пожалуйста, возможно ли как-то средствами Modx сделать такую вещь? Возможно уже готовые есть плагины?
Dolce
16 декабря 2016, 09:43
modx.pro
2
1 067
0

вывод по разнице price-old_price в процентах

Привет!
Я учусь и появилась следующая задача:
Вывести товары minisop2 отсортированные по проценту разницы price и old_price

т.е.

[[!pdoPage?
				&element=`msProducts`
				&tpl=`tpl`
				&sortby=`этот_процент`
				&sortdir=`DESC`
			]]
для получения этого процента в товаре я использую сниппет [[!procent]]

<?php
$price2 = str_replace(" ","",$modx->resource->get('price'));
$old_price2 = str_replace(" ","",$modx->resource->get('old_price'));
$pricevariations = $old_price2 - $price2;

if($old_price2 > 0){
  echo '<div class="procent"><span>'.number_format(round(($pricevariations / $old_price2) * 100), 0, '.', ' ') .'</span></div>';
}
чтобы этот же процент получить в категории товаров пришлось сниппет немного изменить

<?php
$price2 = str_replace(" ","",empty($price) ? 0 : $price);
$old_price2 = str_replace(" ","",empty($old_price) ? 0 : $old_price);
if($old_price2 > 0){
  return '<div class="procent"><span>'.number_format(round((($old_price2 - $price2) / $old_price2) * 100), 0, '.', ' ') .'</span></div>';
} 
return '';
и его вызов
[[!procent_category? &price=`[[+price]]` &old_price=`[[+old_price]]`]]
Это работает. Но теперь нужно сделать вывод товара отсортировнного по возрастанию или убыванию по этому проценту и, например, не показывать товары, где процент меньше 10%.

Кто-нибудь решал подобную задачу? Гуру, подскажите!

пробовал еще такую конструкцию, но по плейсхолдеру pricevariations – сортировки не происходит
[[+old_price:isnot=`0`:then=`[[+old_price:replace=` ==`:subtract=`[[+price:replace=` ==`]]`:div=`[[+old_price:replace=` ==`]]`:mpy=`100`:toPlaceholder=`pricevariations`]]`:else=``]]
Виталий
10 декабря 2016, 08:32
modx.pro
2
1 859
0

Критическая уязвимость в MODX Revolution

Сильно в детали лезть не буду, просто скажу, что сейчас любой MODX Revo сайт потенциально уязвим. Дыра позволяет выполнить SQL-инъекции, в том числе с созданием на сайте привилегированных пользователей.
Базовые методы противодействия: подмена дефолтных системных папок (особенно connectors) и, главное — смена префикса таблиц. Так как далеко не все это делают, то можно сказать, большинство сайтов в зоне опасности. Кто хочет ощутить это на себе, может в комментах написать ссылку на сайт.

Если кто на уже рабочем сайте хочет префиксы сменить, я описывал метод здесь.

P.S. И еще заповедь: не пускайте никого в админку, даже с самыми минимальными правами. Это практически 100% гарантия взлома при желании.
Fi1osof
05 ноября 2016, 07:50
modx.pro
17
39 924
+30

Скрипт для создания менеджера

Скрипт для создания пользователей с определенными правами и своим источником файлов для админки.

По умолчанию будет создан менеджер с логинам и паролем manager и медиа источником с корневым каталогам assets/uploads из прав у пользователя будет только возможность работать с ресурсами, а c пунктов меню доступ только к «Приложения»

Для настройки политики доступа необходимо в массив $accessPolicy добавить название определенной политики с значение 0 или 1
Prihod
09 октября 2016, 14:12
modx.pro
34
4 208
+22

Как прикрепить изображение к комментарию?


Как загрузить изображение на сервер и прикрепить его к комментарию в Tickets?

Написал плагин загрузки фотки и обрезки её с помощью встроенного в MODX phpThumb (спасибо Василию за готовый код, который я только кастомизировал под мои нужды).

Перенёс в категорию "Пошаговые инструкции", т.к. вопрос превратился в конкретную инструкцию.

Запишу эту инструкцию для себя будущего, может и кому-нибудь ещё понадобится…
Василий Столейков
06 октября 2016, 19:12
modx.pro
17
3 764
+3

Как организовать отправку писем на разные почты ()

Есть форма она отправляет письма в ней есть radio, как в зависимости от радио отправлять почты на разные адреса
А если не выбрано то на адрес по умолчанию
например: Есть 3 получателя
Получатель 1
Получатель 2
Получатель 3
Если выбран первый отправлять на email1, второй на email2 и тд

[[!AjaxForm? 
&snippet=`FormIt` 
&form=`tpl.FormAjax` 
&hooks=`email`
&emailFrom=`no-reply@site.ru`
&emailSubject=`Заявка с  [[++site_url]]` 
&emailTo=`my@mail.ru`  
&validate=`name:required,phone:required` 
&validationErrorMessage=`В форме содержатся ошибки!` 
&successMessage=`Сообщение успешно отправлено` ]]
Поле формы
<input type="radio" name="sto[]" value="Отдел 1"
 [[!+fi.sto:FormItIsChecked=`Отдел  1`]]
> Отдел 1
<input type="radio" name="sto[]" value="Отдел 2"
[[!+fi.sto:FormItIsChecked=`Отдел  2`]]
> Отдел  2
<input type="radio" name="sto[]" value="Отдел  3"
[[!+fi.sto:FormItIsChecked=`Отдел 3`]]
> Отдел  3
topmarka
01 сентября 2016, 13:12
modx.pro
1
2 816
0