Всего 122 808 комментариев

Василий Наумкин
27 октября 2013, 21:09
0
Я наверное глупенький, но по-прежнему не вижу проблемы.

Почему нельзя вызвать сниппет из плагина?
$modx->runSnippet('mySnippet', $myParams);
Володя
27 октября 2013, 20:57
0
В двух словах — есть сниппет, получает токен, авторизуется по протоколу OAuth 2.0, при запросе использует Callback URI… дальнейшие действия не суть…
Создал плагин на какое то событие, берет контент ресурса, отправляет в сниппет, но сниппет получит токен и отправит текст в панель вебмастера — только если будет вызван на странице Callback URI.

вот с этим и заморочка…

p.s. по сути вся проблема в получении токена при вызове сниппета из плагина…
Василий Наумкин
27 октября 2013, 20:33
0
Объясни, в чем именно проблема?

Я тексты в Яндекс не отправлял, поэтому мне не понятно.
Ганин Роман
27 октября 2013, 14:45
0
Это различные версии, отличающиеся по семантике. Но лично для меня труда не составит уложиться в те же сроки; по бюджету можно также договориться.
Mihan
27 октября 2013, 14:33
0
Потому что я приобрел готовую верстку и она на v2. Можно переконвертировать?
Ганин Роман
27 октября 2013, 14:25
0
Я готов взяться.
P.S. А почему не хотите использовать Bootstrap v3?
Василий Наумкин
27 октября 2013, 14:25
0
Отпиши завтра, если еще нужно будет.
Mihan
27 октября 2013, 14:24
0
Ого, здорово.
Василий Наумкин
27 октября 2013, 14:19
0
Легкие деньги.

Если никто сегодня не возьмется — завтра могу сделать.
Mihan
27 октября 2013, 14:18
0
Ну могу и верстку показать: wrapbootstrap.com/preview/WB00D58R3
Василий Наумкин
27 октября 2013, 14:11
0
5 тыщ за работу с Bootstrap — очень достойно.

Ты бы приложил еще пару скриншотов верстки, чтобы простимулировать соискателей.
Vitea Kirichenko
26 октября 2013, 19:03
0
у тебя файл загрузился на сервер?
Vitea Kirichenko
26 октября 2013, 18:57
0
Кто то пробовал это реализовать? у меня не выходит (
Cyrax_02
26 октября 2013, 16:11
0
И ещё одна оптимизация. В предложении WHERE (как для стандартных полей `properties`, `uri`, `introtext`, `alias`, так и для пользовательских TV-полей) добавлять проверку на NULL (IFNULL/ISNULL) достаточно только в 2 случаях:
1. Если поле сравнивается с некоторым значением операцией «не равно»:
..., "tv1:!=":"5", ...
Сейчас такому условию НЕ будут удовлетворять ресурсы, для которых значение поля tv1 не указано. А должны удовлетворять.
2. Если поле сравнивается с пустым значением:
..., "tv1:=":"", ...
..., "tv1":"", ...
Сейчас такому условию НЕ будет удовлетворять ни один ресурс. А должны удовлетворять все ресурсы, для которых не задано значение поля tv1.

Во всех остальных случаях подстановка IFNULL/ISNULL не нужна. Все прочие условия будут работать корректно и без IFNULL/ISNULL.

— Почему в предложении WHERE важно не добавлять IFNULL/ISNULL в безусловном порядке для всех полей, а делать это только для двух вышеуказанных случаев:
а) ускорение выполнения запроса (т.к. каждый IFNULL/ISNULL увеличивает время выполнения запроса)
б) если IFNULL/ISNULL ставить всегда, то пользователь не будет иметь возможности корректно использовать оператор is null:
..., "tv1:IS":"null", ...
Этот оператор ничего не будет возвращать, т.к. в итоговом запросе вместо (tv1 IS NULL) получим (tv1 IS '').
Cyrax_02
26 октября 2013, 11:42
0
Да, и касательно IFNULL. В целях сохранения переносимости я бы сделал так:
switch($modx->getOption('dbtype')) {
    case 'mysql': $dbObjectNameBorder = '`'; $nullCheckExpr = 'IFNULL'; break;
    case 'sqlsrv': $dbObjectNameBorder = ''; $nullCheckExpr = 'ISNULL'; break;
}
и далее использовал $dbObjectNameBorder и $nullCheckExpr. Такой вариант будет работать и с mySQL, и с MS SQL.
Михаил
26 октября 2013, 10:55
0
У меня книг по PHP аж 8. И скажу что везде по разному описан один и тот же код, к сожалению. Можно с ним смотреть как то примеры реализации, может советы. Но прямо все выучить не получиться(
Лучше делать на примерах. Я вот взял CodeIgnaiter и начал на нем делать блог, сайт, доску объявлений. Все криво конечно, но зато начинаешь понимать что то в программировании
Александр Москвин
26 октября 2013, 01:23
0
Всё просто, тебе нужно вывести только товары.
Используй &where — JSON массив с дополнительными условиями получения ресурса.
А именно напиши так:
&where=`{'template':15}` — указываешь вывод только определенных шаблонов, где 15 номер шаблона.
Или берешь по папке
&where=`{'isfolder':0}` — т.е вывод всех ресурсов, которые не папка.
Александр Москвин
26 октября 2013, 01:22
0
Посмотри основную таблицу и по изучай её
Cyrax_02
25 октября 2013, 22:27
0
Ну вот, только руки дошли.
В общем, получается так. В предложение SELECT Вы добавили проверку IFNULL для всех дополнительных TV-полей:
IFNULL(`TVtv1`.`value`, '')
В итоге при заполнении чанка-шаблона значениями TV-полей туда будут «вставляться» не null, а пустые строки.

Но осталось ещё добавить IFNULL:
1) в предложение SELECT для стандартных полей `properties`, `uri`, `introtext`, `alias` — эти поля также могут принимать значения null
2) в предложение WHERE для всех дополнительных TV-полей.
Например, при указании в параметре &where JSON-условия {..., «tv1»:"", ...} в предложении WHERE должно формироваться условие:
... AND IFNULL(`TVtv1`.`value`, '') = '' AND ...
3) в предложении WHERE для стандартных полей `properties`, `uri`, `introtext`, `alias`

Необходимости добавления IFNULL в предложении WHERE (последние два пункта) можно избежать, если все проверки вытащить во внешний запрос: во внутреннем запросе выполняются JOIN'ы необходимых таблиц и отбираются все необходимые поля с использованием IFNULL, а во внешнем запросе выполняются все необходимые проверки. Но в этом случае памяти может требоваться больше. Если же без использования внешнего запроса — будет дольше выполняться. Впрочем, нужно тестировать.