Ганин Роман
С нами с 29 апреля 2013; Место в рейтинге пользователей: #36Отсутствует связь между кастомными таблицами.
Всем доброго времени суток! Давеча столкнулся с такой проблемой.
Не работает метод getMany(). Уже не знаю что и думать. Буду очень признателен за любую помощь. Спасибо!
xml базы:
Не работает метод getMany(). Уже не знаю что и думать. Буду очень признателен за любую помощь. Спасибо!
xml базы:
<?xml version="1.0" encoding="UTF-8"?>
<model package="geolocation" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" version="1.1">
<object class="Areas" table="areas" extends="xPDOSimpleObject">
<field key="town_fk" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" />
<field key="title" dbtype="varchar" precision="255" phptype="string" null="false" />
<field key="is_default" dbtype="enum" precision="'1','0'" phptype="string" null="false" default="0" />
<aggregate alias="Towns" class="Towns" local="town_fk" foreign="id" cardinality="many" owner="foreign" />
<composite alias="Streets" class="Streets" local="id" foreign="area_fk" cardinality="one" owner="owner" />
</object>
<object class="Regions" table="regions" extends="xPDOSimpleObject">
<field key="title" dbtype="varchar" precision="255" phptype="string" null="false" />
<composite alias="Towns" class="Towns" local="id" foreign="region_fk" cardinality="one" owner="owner" />
</object>
<object class="Streets" table="streets" extends="xPDOSimpleObject">
<field key="area_fk" dbtype="int" precision="11" phptype="integer" null="false" />
<field key="title" dbtype="varchar" precision="255" phptype="string" null="false" />
<field key="adress" dbtype="varchar" precision="255" phptype="string" null="false" />
<field key="phonenumber" dbtype="char" precision="12" phptype="string" null="false" />
<field key="is_default" dbtype="enum" precision="'1','0'" phptype="string" null="false" default="0" />
<field key="in_map" dbtype="text" phptype="string" null="false" />
<aggregate alias="Areas" class="Areas" local="area_fk" foreign="id" cardinality="many" owner="foreign" />
</object>
<object class="Towns" table="towns" extends="xPDOSimpleObject">
<field key="title" dbtype="char" precision="20" phptype="string" null="false" />
<field key="region_fk" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" />
<composite alias="Areas" class="Areas" local="id" foreign="town_fk" cardinality="one" owner="owner" />
<aggregate alias="Regions" class="Regions" local="region_fk" foreign="id" cardinality="many" owner="foreign" />
</object>
</model>
Тикеты с комментами в личном кабинете
Реализовал личный кабинет с помощью Login по этой статье ilyaut.ru/tips-and-tricks/authorization-registration-personal-cabinet/
Далее необходимо, чтобы пользователь зайдя в кабинет мог оставить тикет, а админ сайта мог его прокоментировать. Соответственно этот тикет и коменты админа должен видеть только этот пользователь и админ. Подскажите, с помощью чего это можно реализовать?
Пробую через Tickets, тикеты прикрутил, коменты прикрутил, но получается, что когда в личном кабинете через [[!TicketComments?]] оставляешь комментарии, отображаются комментарии всех пользователей. Как починить или по другому как лучше сделать? Спасибо.
Далее необходимо, чтобы пользователь зайдя в кабинет мог оставить тикет, а админ сайта мог его прокоментировать. Соответственно этот тикет и коменты админа должен видеть только этот пользователь и админ. Подскажите, с помощью чего это можно реализовать?
Пробую через Tickets, тикеты прикрутил, коменты прикрутил, но получается, что когда в личном кабинете через [[!TicketComments?]] оставляешь комментарии, отображаются комментарии всех пользователей. Как починить или по другому как лучше сделать? Спасибо.
Проблемы со свойствами товаров
Обновил minishop2 до 2.3.0 (пробовал alpha2 и alpha1), Revo 2.4.0. В последние версии минишопа внедрили более удобное добавление свойств товара, нежели через систему плагинов для расширения свойств товара. Если закрыть глаза на неудобства и хотелки, про которые уже писал, то проявилось пара глюков:
1) Вызываю в чанке товара, который выводится через msProducts, [[+ключ_характеристики]], точнее два разных. В итоге вместо значения одного свойства выводится значение другого, причём у порядка 2% товаров, а у остальных всё правильно. Если выводить через msOptions, то значения правильные.
Но в документации было написано, что для страницы товара надо использовать msProductOptions (который у меня вообще выдаёт ошибку), а для msProducts достаточно плейсхолдера с ключом.
2) Сбрасывается включение опции для категорий. Их и так муторно проставлять все вручную, а в какой-то момент у меня они сбросились для половины категорий. Проставил заново, через некоторое время сбросилось для оставшейся части. Между этими манипуляциями только обновляли вручную индекс mSearch2 и импортировали товары через csv.
1) Вызываю в чанке товара, который выводится через msProducts, [[+ключ_характеристики]], точнее два разных. В итоге вместо значения одного свойства выводится значение другого, причём у порядка 2% товаров, а у остальных всё правильно. Если выводить через msOptions, то значения правильные.
Но в документации было написано, что для страницы товара надо использовать msProductOptions (который у меня вообще выдаёт ошибку), а для msProducts достаточно плейсхолдера с ключом.
2) Сбрасывается включение опции для категорий. Их и так муторно проставлять все вручную, а в какой-то момент у меня они сбросились для половины категорий. Проставил заново, через некоторое время сбросилось для оставшейся части. Между этими манипуляциями только обновляли вручную индекс mSearch2 и импортировали товары через csv.
[modExtra] Update таблиц своего компонента
Добрый день!
Все мы знаем, что MODX прекрасен мощью решений с помощью компонентов. Я, например, всегда отдаю заказчику сайт в виде компонента, содержащего нужные элементы, зависимости от других компонентов, инициализацию нужных опций и т.д. В этом мне всегда помогал modExtra.
Но вот в один прекрасный момент я задумался, как сделать пользовательские таблицы в своём компоненте таким образом, чтобы при апдейте компонента они были способны расширяться, да и вообще поддерживаться в актуальном состоянии.
Итак задача:
Все мы знаем, что MODX прекрасен мощью решений с помощью компонентов. Я, например, всегда отдаю заказчику сайт в виде компонента, содержащего нужные элементы, зависимости от других компонентов, инициализацию нужных опций и т.д. В этом мне всегда помогал modExtra.
Но вот в один прекрасный момент я задумался, как сделать пользовательские таблицы в своём компоненте таким образом, чтобы при апдейте компонента они были способны расширяться, да и вообще поддерживаться в актуальном состоянии.
Итак задача:
- У нас есть файл схемы mycomponent.mysql.schema.xml, который поставляется вместе с компонентом (или его новой версией) и содержит актуальную информацию о структуре пользовательских таблиц.
- У нас есть БД в которой может не быть наших таблиц (установка с нуля), а могут быть (как правильной, так и неправильной структуры).
Как не надо расширять MODX-процессоры
В MODX-2.4.0 появился новый процессор updatefromelement.class.php by Argnist, пришедший на замену обычному процессору updatefromelement.php. Заменять non-classed процессоры конечно дело хорошее, но делать надо это крайне осторожно и обдуманно.
Сразу уточню, что этот процессор используется для обновления параметров элементов (типа шаблонов, сниппетов и т.п.)
Сразу уточню, что этот процессор используется для обновления параметров элементов (типа шаблонов, сниппетов и т.п.)
Получение tv-параметра c помощью fenom
Здравствуйте!
Столкнулся с проблемой: в шаблоне документа синтаксис fenom не возвращает tv-параметр.
Во втором случае — возвращается «Array».
Пожалуйста, помогите советом.
P.s.: При вызове сниппетов никаких проблем подружить tv-параметры и феном не возникло, благодаря документации Василия.
UPD: Методом тыка было выяснено, что {$_modx->resource.tvName} возвращает массив, где первым элементом идет ключ — название tv-параметра, а вторым — его значение.
Столкнулся с проблемой: в шаблоне документа синтаксис fenom не возвращает tv-параметр.
<p>[[*newsTestTv]]</p>
<p>{$_modx->resource.newsTestTv}</p>
В первом случае, стандартный синтаксис возвращает корректное значение параметра.Во втором случае — возвращается «Array».
Пожалуйста, помогите советом.
P.s.: При вызове сниппетов никаких проблем подружить tv-параметры и феном не возникло, благодаря документации Василия.
UPD: Методом тыка было выяснено, что {$_modx->resource.tvName} возвращает массив, где первым элементом идет ключ — название tv-параметра, а вторым — его значение.
<p>[[*newsTestTv]]</p>
<p>{$_modx->resource.newsTestTv[1]}</p>
Два вызова, возвращающие одинаковый результат. [Анонс] Цикл статей о Gitify
Рад приветствовать, друзья.
Во многих чатах я много говорил и рассказывал об очень удобном инструменте для работы с MODX – Gitify.
И всегда у меня просили рассказать о том, как им пользоваться, что это за зверь такой и как с ним вообще работать. А самое важное – какую пользу он может принести?
На англоязычных ресурсах уже есть пару заметок о нем, а на русском, к сожалению, нет. То ли никому он не нужен, то ли просто никто еще не понял, в чем его польза. Я решил ситуацию исправить.
Я анонсирую цикл статей по Gitify. От общего описания, до детального разбора команд и пользы, которую он может принести. Недостатки тоже есть, так что о них так же обещаю написать.
План действий сейчас такой (под катом).
Создание мультисайта на MODX REVO
Лучше поздно, чем никогда. Как и обещал https://modx.pro/help/5194/ пишу про создание мультисайта на MODX REVO. Выкладываю в блог Готовые решения, т.к. в статье есть чуть-чуть кода.
Смысл всей затеи — упростить поддержку сайтов.
Под поддержкой понимаются любые действия связанные с работой сайта:
— размещение контента
— технические доработки сайта (программирование, верстка)
— консультирование модераторов, сеошников и т.д.
— бэкапы и восстановление информации
Кроме того, для упрощения работы необходимо внедрить стандарты, чтобы упростить рутину. Звучит громко, но на самом деле все просто — по «узким» моментам единожды принимаем какое-то решение и дальше просто поступаем по образцу, чтобы не тратить время на изобретение велосипедов. По принятому решению пишем короткую заметку в Евернот, чтобы потом когда понадобится можно было быстро найти, на чем основывалось решение.
В таких «стандартах» у меня:
— ресайз картинок с примерами кода
— настройки галереи fancybox с примерами кода
— создание файловых архивов
— названия чанков, например почти везде у меня есть чанки HEADER.site1, FOOTER.site1, ASIDE.site1 (в названии используем название контекста).
— и т.д. и т.п.
Т.е. единожды продумываем тонкости и решаем, что будем делать именно так и никак иначе. В дальнейшем это позволит избежать бардака и существенно ускорит процесс переноса существующих сайтов в мультисайт или разработку новых сайтов.
Смысл всей затеи — упростить поддержку сайтов.
Под поддержкой понимаются любые действия связанные с работой сайта:
— размещение контента
— технические доработки сайта (программирование, верстка)
— консультирование модераторов, сеошников и т.д.
— бэкапы и восстановление информации
Кроме того, для упрощения работы необходимо внедрить стандарты, чтобы упростить рутину. Звучит громко, но на самом деле все просто — по «узким» моментам единожды принимаем какое-то решение и дальше просто поступаем по образцу, чтобы не тратить время на изобретение велосипедов. По принятому решению пишем короткую заметку в Евернот, чтобы потом когда понадобится можно было быстро найти, на чем основывалось решение.
В таких «стандартах» у меня:
— ресайз картинок с примерами кода
— настройки галереи fancybox с примерами кода
— создание файловых архивов
— названия чанков, например почти везде у меня есть чанки HEADER.site1, FOOTER.site1, ASIDE.site1 (в названии используем название контекста).
— и т.д. и т.п.
Т.е. единожды продумываем тонкости и решаем, что будем делать именно так и никак иначе. В дальнейшем это позволит избежать бардака и существенно ускорит процесс переноса существующих сайтов в мультисайт или разработку новых сайтов.
Страница пользователя
Нужно сделать страницу пользователя, но без создания ресурса, т.е например есть user1, заходим на страницу www.mysite.com/user1 и видим его данные.
На данный момент все решил «велосипедом» который мне не очень то нравится:
В настройках поставил, чтобы modx в случае когда страница не найдена (404), делал редирект на один общий ресурс для всех пользователей, а в него «засунул» сниппет который проверяет, есть ли такой пользователь в списке юзеров, если есть то показывает о нем данные, если нет то на 404 отправляет, все работает и без проблем, но само по себе это не нравится (: Может кто сталкивался, или адекватное решение знает?
На данный момент все решил «велосипедом» который мне не очень то нравится:
В настройках поставил, чтобы modx в случае когда страница не найдена (404), делал редирект на один общий ресурс для всех пользователей, а в него «засунул» сниппет который проверяет, есть ли такой пользователь в списке юзеров, если есть то показывает о нем данные, если нет то на 404 отправляет, все работает и без проблем, но само по себе это не нравится (: Может кто сталкивался, или адекватное решение знает?
Назначить товару дополнительную категорию
Всем привет.
Подскажите, как через API назначить товару дополнительную категорию?
Объект создаю так:
$resourse = $modx->newObject(«msProduct»);
$resourse->set('id', $row['id']);
…
$resourse->set('parent', $row['catalog_id']);
$resourse->save();
Подскажите, как через API назначить товару дополнительную категорию?
Объект создаю так:
$resourse = $modx->newObject(«msProduct»);
$resourse->set('id', $row['id']);
…
$resourse->set('parent', $row['catalog_id']);
$resourse->save();