Добавить git на готовый проект

Добавляю git к действующему проекту.
Локальные изменения отправляем в удаленный репозиторий.
На сервере, куда требуется добавить GIT и выкатить изменения выполняю команды
git init
git add .
git commit -m "инициализация на сервере"
Далее копируем файл ./git/config на сервер
Выполняем команды
git fetch
git reset --hard origin/master

MIGX примеры

Пример для слайдера. Используются поля:
  • Изображение
  • Заголовок
  • Текст
  • Ссылка
Вкладки формы:
[{"caption":"Элементы","fields": [
{"field":"img","caption":"Картинка","inputTVtype":"image"},
{"field":"caption","caption":"Заголовок"},
{"field":"text","caption":"Текст"},
{"field":"link","caption":"Ссылка"}]
}]
Разметка колонок:
[{"header": "Картинка","dataIndex": "img","renderer":"this.renderImage","width":"100"},
{"header": "Заголовок","dataIndex": "caption","width":"400"},
{"header": "Ссылка","dataIndex": "link","width":"400"}]

[{"caption":"Gallery","fields": [
{"field":"img","caption":"Картинка","inputTV":"image"},
{"field":"caption","caption":"Заголовок"},
{"field":"subcaption","caption":"Подзаголовок"},
{"field":"text","caption":"Текст"},
{"field":"link","caption":"Ссылка"},
{"field":"tmpl","caption":"Шаблон слайда","inputTVtype": "listbox","inputOptionValues": "@SELECT IF(description!='', description, name), name FROM [[+PREFIX]]site_htmlsnippets WHERE `category` = 33;"}
]}]

Чтобы pdoMenu выводил документы в заданном порядке

Для того, чтобы pdoMenu выводил ресурсы в том порядке, в котором они перечислены в параметре resources, необходимо добавить пустой параметр sortby
{$_modx->runSnippet('pdoMenu', [
'parents' => '0',
'resources' => '7,9,10,11,8,12,13',
'sortby' => '',
])}

Вывод даты на MODx через Fenom

У документа Modx есть несколько дат, которые можно использовать для отображения на сайте:
  • Дата создания — поле createdon
  • Дата публикации — поле publishedon
  • Дата изменения — поле editedon
MODx хранит их в формате Timestamp, поэтому, чтобы вывести их в человеческом виде, нужно использовать модификатор Fenom
Например так:
{$publishedon | date : "d.m.Y"}

Стоит различать место вывода. Тут возможно несколько ситуаций.
1. Вывод непосредственно в шаблоне. Тогда поле будет доступна у объекта $_modx->resource
И вывод будет выглядеть так
{$_modx->resource.publishedon | date : "d.m.Y"}
2. В чанке сниппета, например, в чанке pdoResource или msProduct. Тогда выводим дату непосредственно из переменной
{$publishedon | date : "d/m/Y"}

И, чтобы настроить нужный формат вывода даты, используем дополнительный параметр, где указываем что и как выводить.
"d/m/Y" -> 12/02/2017
"d.m.Y" -> 12.02.2017
"d.m.Y H:i:s" -> 12.02.2017 17:30:12

Все возможные подстановочные символы можно найти на официальной документации PHP php.net/manual/en/function.date.php

Чтобы вывести текущее дату:
{'' | date : "d.m.Y"}

Так можно вывести через fenom текущий год:
{'' | date : "Y"}

Например, для вывода текущего года в копирайте:
© {'' | date : "Y"} - название компании

Превышение нагрузки на хостинге Timeweb

Итак, обратился клиент с проблемой — в контрольной панели хостинга Timeweb имеется открытый тикет с темой 'TIMEWEB> Критическая нагрузка на сервер.'. В тикете сообщается, что ваш аккаунт превышает допустимую нагрузку и перенесен на специальный сервер TMPB3. Далее приложены текстовые инструкции общего характера и никакой конкретики.
Читать дальше

Импорт из CSV

По многочисленным просьбам общественности написал скрипт импорта в miniShop2 из CSV. У нас уже проскакивало несколько вариантов, но все они как то не очень.

Особенности:


  1. Это не сниппет, это самодостаточный скрипт.
  2. Использует процессоры для импорта ресурсов и изображений.
  3. Умеет обновлять ресурсы по указанному ключевому полю.
  4. Поддерживает ТВ параметры и поля товаров, включая JSON типа size и color.
  5. Есть режим отладки, с подробным логом и обработкой только первой строки файла.
  6. Выводит сообщения через системный лог.

Теретически, можно импортировать не только товары, но и категории или другие ресурсы, но не проверял.

Скрипт входит в состав miniShop2 с версии 2.1.4 и лежит в /core/components/minishop2/import/csv.php. Запускать его можно как из браузера (если у вас открыта директория core), так и из консоли.

Если захотите его перенести в другое, более подходящее место, то нужно отредактировать строку


Читать дальше

Прикрепляем в письмо менеджеру Excel файл с данными заказа

Обратился ко мне заказчик по доработкам minishop2, чтобы в письма менеджеру добавлять файд Excel с данными заказа. Изначально подумал про счет какой-то, или накладную. Оказалось обычная таблица с четырьмя колонками: код товара, название, цена и кол-во. Сроки как всегда поджимают — сделать надо было еще вчера.
Собственно вот так выглядил шаблон, который нужно было заполнить:

Читать дальше

YML файл для маркета при использовании minishop2

Создаем документ и скрываем из меню.
У документа:
— указываем Тип содержимого — «XML»;
— замораживаем адрес, какой нам необходим.
— шаблон выбираем «Пустой»
— в содержимое добавляем:
Читать дальше

Раздел статьи для сайта через pdoPage

Решил и такой пример оставить, так как часто применяю, когда надо раздел статьи сделать или новости. Храню данные в Collection, а вывожу черех pdoPage. Также здесь в вызове присутствует указание на кастомные параметры "@styled" сниппета. В них переопределена разметка пагинации и соответственно стили. Удобно использовать, когда пагинация на всем сайте повторяется.
Читать дальше