Разделы

  
 

[Evo] Получение данных ресурсов, внутри системы

Плагин с содержимым:
if ( $modx->documentObject['template'] == '10' ) $modx->webAlert('12');
, срабатывающий на событии OnDocFormRender, не может получить id шаблона, и вообще api внутри системы, видимо, не используется.

Хотелось бы знать, как получить данные документа внутри системы.

( Читать дальше )
  • 0
  • 25 апреля 2012, 18:41
  • atomoc
  • 8

[EVO] Ошибка sql в AnythingRating. Как исправить?

Вопрос по использованию сниппета AnithingRating. Пишу на странице:

[!AnythingRating? &define=`1` &atrGrp=`film`!]


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

« MODx Parse Error »
MODx encountered the following error while attempting to parse the requested resource:
« Execution of a query to the database failed — You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(12), PRIMARY KEY (`id`) ) ENGINE=MyISAM' at line 7 »
SQL: CREATE TABLE modx_atRating_film ( `id` int(11) NOT NULL auto_increment, `rating_id` VARCHAR(80) NOT NULL, `rating` int(11) NOT NULL, `lastIP` varchar(255) NOT NULL, `nbIP` int(11) NOT NULL, `voteDate` TIMESTAMP(12), PRIMARY KEY (`id`) ) ENGINE=MyISAM;
[Copy SQL to ClipBoard]

Может кто сталкивался, как решить эту проблему?
Или может есть какое-нибудь другое решение, чтобы можно было документам звездочки ставить, а потом где нужно на сайте их показывать?
  • 0
  • 14 марта 2012, 23:04
  • DWand
  • 3

[offtop] SQL запрос

Волею судеб, пришлось при создании сайта на modx писать свой сниппет,
но так как я ни разу ни php ни sql, то некоторые вещи ставят меня в ступор
подскажите пожалуйста:

делаю запрос к таблице:

$id = $modx->documentIdentifier;
$dlist = $modx->db->query ('SELECT id, pagetitle FROM modx_site_content WHERE parent='.$id.' AND published=1');

так же у этих ресурсов, есть TV параметр — total-results — числовое значение.

Как достать тоже разобрался

$document_tvs = $modx->getTemplateVarOutput(true, $idd);
$templatevar_output = $document_tvs['total-results'];


А вот как сделать первый запрос с сортировкой по значению TV параметра?, ведь это разные таблицы.

Ну и в догонку второй вопрос, получив значение другого TV (тип image) как в сниппете к нему применить phx модификатор —

 [*img-news:phpthumbof=`w=65&h=65&zc=1`*]
  • 0
  • 23 февраля 2012, 01:51
  • hippie
  • 7

Скидка в Shopkeeper неверный запрос

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

Код плагина:


( Читать дальше )
  • -1
  • 13 февраля 2012, 07:55
  • SDee
  • 4

[evo] помогите написать запрос к базе

Добрый день, если php хоть могу разобрать, то вот с sql совсем беда, сильно не бейте))

Понадобилось сделать фильтр по ТВшкам — подобрать докуметы у которых значение ТВшек (filter_1 или filter_2) равно заданному значению ($key).

На выходе из базы хочу получить — массив содержащий id, значения ТВшек filter_1, filter_2, image

Т.е. как-то так
$results = $modx->dbQuery($sql);
$results=
Array
(
[0] => Array
(
[id] => 16
[filter_1] => синий
[filter_2 ] => белый
[image] => 1.jpg
)
[1] => Array
(
[id] => 17
[filter_1] => черный
[filter_2 ] => синий
[image] => 2.jpg
)
)

Если можно, приведите, пожалуйста полную строку, думаю не только мне пригодится))

ПС Не знаю, может можно задать фильтрацию сразу в запросе так «WHERE sc.isfolder='0' AND sc.published = '1' AND sc.deleted = '0' AND sc.filter_1 =».$key.«OR sc.filter_2 =».$key Если так нельзя, то можно 2 запроса сделать с filter_1 и filter_2 или просто вытащить всю таблицу, а я уж отсортирую…
  • 0
  • 29 января 2012, 21:17
  • manicko
  • 1

Лог SQL запросов

Как можно посмотреть SQL запросы конкретного сниппета или всей системы в целом?

Ошибка при сохранении главной страницы в EVO 1.0.5

Приветствую всех.

Только сейчас заметил, что при редактировании (когда жмем «сохранить») главной страницы выдается такая ошибка:

« MODx Parse Error »
MODx encountered the following error while attempting to parse the requested resource:
« Execution of a query to the database failed — You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE a.tmplvarid = AND b.tmplvarid =' at line 4 »
SQL: UPDATE `art`.`modx_site_tmplvar_contentvalues` AS a LEFT JOIN `art`.`modx_site_tmplvar_contentvalues` AS b ON a.contentid=b.contentid SET b.value = a.value* WHERE a.tmplvarid = AND b.tmplvarid =

Причем ошибка присутствует только при сохранении главной. Остальные страницы сохраняются нормально.
(До этого БД дропал, и восстанавливал из дампа с помощью Sypex Dumper 2, может быть в этом причина? Но все остальное же работает как и раньше, нормально).
Подскажите, как эту вещь исправить? Переставлять не хотелось бы, своего рода долгострой, а тут такая неприятность…
Заранее спасибо за помошь!
  • 0
  • 11 декабря 2011, 03:20
  • flynzz
  • 10

Сделать прайс

Кто подскажет, правильный ли это запрос, и разумно ли так делать чтобы получить список цен на все товары:
SELECT con.pagetitle
     , tv.value
FROM
  modx_site_content AS con, modx_site_tmplvar_contentvalues AS tv
WHERE
-- Опубликованные
  con.published = 1
-- ID TV цены
  AND tv.tmplvarid = 5
-- Не удаленные документы
  AND con.deleted = 0
-- Цена больше 0
  AND tv.value > 0
  AND con.id = tv.contentid

Выполнение SQL кода прямо из бэкенда

Никто не встречал модуля для выполнения SQL кода прямо из админки MODx? Или может у кого свой есть =)
НУ что бы в phpmyadmin не лазить постоянно.

UPD: под EVO

Как в запросе MySQL выбрать все документы по самому верхнему родителю?

Как в запросе MySQL выбрать все документы по самому верхнему родителю? Нужно для поиска. Родитель «Каталог (id=2)». Запрос типа:
SELECT ms.id, ms.pagetitle, ms.description, ms.isfolder, tc.value AS ImageTovar, tc2.value AS ImageTovarMin FROM $tbl ms LEFT JOIN (SELECT * FROM modx_site_tmplvar_contentvalues WHERE tmplvarid=4) tc ON tc.contentid = ms.id LEFT JOIN (SELECT * FROM modx_site_tmplvar_contentvalues WHERE tmplvarid=5) tc2 ON tc2.contentid = ms.id WHERE ms.parent=2


НЕ РАБОТАЕТ, т.к. ms.parent — это родитель ни верхнего уровня, а непосредственно текущего документа.

Подскажите как решить?