Андрей

Андрей

С нами с 09 апреля 2015; Место в рейтинге пользователей: #68

Удаление ресурсов в MODX Revolution

Здравствуйте. Подскажите, пожалуйста, как программно из фронтенда удалять ресурсы? Вывожу ресурсы с помощью getPage, где для каждого ресурса генерится ссылка-кнопка «Удалить». Как реализовать это? Заранее спасибо!
Вадим Собчук
27 июня 2013, 11:29
modx.pro
3
11 831
0

Вывод производителей на отдельной странице

Как вывести всех производителей на отдельной странице?

Так я вывожу всех производителей у товаров. Вернее товар и его производителя.
А как отдельно вывести производителя. Т.е. по типу брендов товаров.
У каждого бренда есть свои товары а как сделать страницу с брендами что бы ссылка вела на фильтр?

На странице брендов есть вызов:
[[!getPage? 
    &element=`msProducts` 
    &tpl=`tpl.msProducts.brands.row` 
    &parents=`0` 
    &sortby=`Data.vendor` 
    &sortdir=`ASC` 
    &limit=`50` 
    &showLog=`0` 
]]
А в tpl.msProducts.brands.row
<h3 class="tname">[[+vendor.name]]</h3>
<img src="[[+vendor.logo]]" ></div>
Саша Иващенко
14 июня 2013, 01:25
modx.pro
8
6 051
0

Номер Заказа

Василий, как поменять шаблон номера заказа?
Леша Макеев
26 мая 2013, 13:45
modx.pro
1
2 135
0

Первичный ключ xPDOObject

Как известно, при создании собственных таблиц в MODX принято наследовать или xPDOSimpleObject, или xPDOObject.

Отличие между ними ровно одно — в SimpleObject уже прописан первичный ключ id, а в Object — нет. То есть, если вы хотите, чтобы у вашей таблицы создавалось поле id с становилось primary key — нужно наследовать SimpleObject.

Я, однако, люблю простые таблицы ключ-значение, в которые добавляю первичным ключом два и более полей сразу. Например, в репозитории пакет может быть в нескольких категориях, значит нужно создать таблицу extraCategoryMember из двух полей category_id и package_id.

Ключ id мне здесь совершенно не нужен, ведь он будет расти при каждой операции добавления пакета в категорию, а таких операций может быть очень много. Конечно, вряд ли INT(10) скоро закончится, но зачем хранить лишнее?
Василий Наумкин
11 мая 2013, 12:42
modx.pro
9
5 414
0

miniShop2 — работа с оптовыми ценами

Подскажите, пожалуйста, каким образом в miniShop2 можно работать с оптовой ценой (которая будет вводится к примеру в tv [[*opt_price]])? Задача, чтобы для простого юзера в каталоге и в корзине цена была розничная, а для авторизованного (через HybridAuth) — оптовая.
Богдан
05 апреля 2013, 23:23
modx.pro
8
6 343
0

Вопрос про процессор security/user/create

Здравствуйте!
Не подскажите где почитать про процессоры более подробно?
Почему MODx игнорирует указанный мной пароль и генерирует свой?
Андрей Фатюк
26 марта 2013, 14:08
modx.pro
1
2 434
0

last-modified + MS2

Хотел сегодня с помощью плагина, настроить отдачу заголовка last-modified.
И получил глюк корзины. То товары добавляются, то нет, то удалить нельзя из корзины.
Ошибок в журнале нету, все запросы типа проходят, но ничего не меняется.
Куда копать?
Плагин работает по событию:
OnLoadWebDocument
Вот код плагина:
<?php
if($modx->event->name!='OnLoadWebDocument') return;
if(!empty($_SERVER['HTTP_IF_MODIFIED_SINCE'])){
$lastMod = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']);
if($modx->resource->editedon <= $lastMod){
header("HTTP/1.0 304 Not Modified");
header("Cache-control: private, max-age = 3600");
header('Expires: '.gmdate('D, d M Y H:i:s', time()+3600));
exit();
}
}
header("Cache-control: private, max-age = 3600");
header('Expires: '.gmdate('D, d M Y H:i:s', time()+3600));
header("Last-Modified: " . gmdate('D, d M Y H:i:s', $modx->resource->editedon) . " GMT");
return;
Владимир Колесник
26 марта 2013, 13:42
modx.pro
1
4 644
0

Работа с phpThumb


Не многие задумывались, что вместе с MODX Revolution поставляется и phpThumb. Это, фактически, единственная и самая крутая библиотека для работы с изображениями на PHP.

В MODX принято работать с ней через сниппет phpThumbOf, однако у него есть существенные недостатки, например серьёзные тормоза и странное кэширование. Поэтому, верным способом будет работа с библиотекой напрямую.

При разработке "Файлохранилища" мне пришлось покопаться в том, как устроен phpThumb и как он интегрирован в MODX, в результате чего появился универсальный рецепт использования этой библиотеки для генерации изображений.

Заодно решил известную проблему с генерацией уменьшенной копии, с обрезкой из левой верхней части картинки.
Василий Наумкин
27 января 2013, 07:00
modx.pro
25
29 971
0

IDE phpStorm как инструмент разработки в MODX

Долгое время я пользовался простыми и быстрыми редакторами для разработки, типа Geany и Notepad++. Просто не понимал, зачем мне тяжеловесная IDE, если и этих редакторов хватает с головой?

Я помню свой код, что откуда выходит и как работает, зачем мне подсказки от программы, которая грузится полторы минуты? Тем более, я люблю по-быстрому забежать на сервер, подправить пару опечаток и сохранить файл. Мне не нужно создавать проект, синхронизировать его с сервером и т.д.

Однако, всё поменялось, когда я написал miniShop. Компонент вышел большой, и со временем я понял, что просто запутываюсь в нём. Заодно я понял, что допустил много грубых ошибок, по незнанию — например доставучие уведомления о необъявленных переменных или ключах массива, те самые — E_NOTICE.

Поэтому, когда я засел за Tickets, сразу решил писать его в IDE phpStorm, чтобы таки разобраться в ней и упростить себе разработку. Поначалу было непросто, но я быстро втянулся.

Сразу говорю, всё освоено методом тыка, без чтения литературы или чьих-то инструкций. Подозреваю, что освоил я процентов 5 от общего функционала, однако и этот объем позволил мне работать радикально быстрее и выдавать в разы более качественный код.
Василий Наумкин
24 января 2013, 08:42
modx.pro
8
16 106
0

Самые быстрые сниппеты с pdoTools

Давно изместно, что xPDO не нужен для выборки и вывода большого количества данных. Зачем его использовать, создавая кучу объектов, жрать процессор и память, если мы хотим просто выбрать 100 строк из БД и вывести их на экран?

Тут больше подойдет специальный сниппет, который будет работать через PDO, без объектов. Таких сниппетов я написал немало, и в один момент мне надоело их копипастить с разных проектов и изменять.

Тогда я написал себе список хотелок:
— Быстрое создание готового сниппета.
— Любые выборки, из любых таблиц с любыми условиями и джоинами.
— Учет времени на каждую операцию, подробный лог для выявления узких мест.
— Итоговые сниппеты должны работать с getPage, автоматически.
— Лёгкая кастомизация, оно не должно меня ограничивать.
— Самый быстрый рендер чанков, быстрее только вообще без них.

Simple Dream дали добро на это дело, и в итоге вышла мини-библиотека pdoTools, которая уже входит в состав Tickets и войдёт в miniShop2.

Она отвечает всем моим требованиям и позволяет писать самые быстрые сниппеты для MODX Revolution, всего за 10 минут.
Василий Наумкин
11 января 2013, 06:43
modx.pro
8
14 143
0