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

Володя
25 апреля 2015, 09:31
0
Привет, напиши в скайп — vgrish_vgrish
Сергей Шлоков
25 апреля 2015, 08:15
0
Кажись, я понял. Ты, видимо, авторизуешься в админке, а не во фронте. А если так, то получается, что ты всегда гость, не зависимо от того, авторизовался ты или нет. Поэтому и редактирование невозможно.
Если ты хочешь, чтоб параметр allowGuestEdit работал и для авторизованных в админке, то нужно в условии указать контекст mgr, а не текущий
if (!$modx->user->isAuthenticated('mgr')
	$scriptProperties['readOnly'] = true;
Сергей Шлоков
25 апреля 2015, 08:06
0
Поправочка. Правильно вызывать сниппет так
[[!snippet? &resId=`[[*id]]`]]
Павел Ширяев
25 апреля 2015, 00:06
+1
В общем-то, как я вижу, ответы на большинство моих вопросов есть в курсе Василия по разработке компонента. Там же и про IDE и про остальное :)

Но и за подробное объяснение о процессе разработке также большое спасибо, всегда было интересно, как организована работа с gulp и прочими инструментами, но все руки никак не доходили поковыряться как следует и разобраться.
Павел Ширяев
24 апреля 2015, 23:35
0
О, спасибо!
Как-то пропустил эту информацию у Василия! Будем почитать :)
Павел Ширяев
24 апреля 2015, 23:33
0
Вот это ответ! Спасибо за исчерпывающее разъяснение! :)
В общем-то, я спрашивал больше про написание компонентов, меня интересует, как сама разработка этих компонентов происходит.

Ну вот сижу я, скажем, за компом с 7 виндой. И как далее нужно все организовать, чтобы процесс разработки был комфортным? Я до этого всерьез программировал только на C# под MS SharePoint, там есть несколько неуклюжий, но вполне работоспособный процесс разработки, который очень неплохо интегрирует VisualStudio и сам SP (включая внушительные инструменты дебага, которые позволяют отслеживать реакцию чуть ли не на каждую строчку кода). Пишем код, потом одной комбинацией клавиш компилируем/копируем/устанавливаем решение на сервер SP, потом стоит только открыть нужную страницу — и там все уже есть. Гибкость этой процедуры позволяет внутри VisalStudio написать целый огромный портал, причем вместе со страницами, файлами, данными, связями и прочим. И потом всего одной строчкой в консоли всю эту красоту развернуть на девственно чистую инсталляцию SP, и все уже будет работать.

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

До сего момента я писал код примерно так:

1. Пишу код прямо в окошке нового сниппета MODX;
2. Чертыхаясь, вспоминаю, что нужно писать на PHP, все написанное переписываю;
3. Обнаруживаю, что написанное не работает;
4. Начинаю отлаживать построчно, время от времени выводя прямо в текст страницы, где вызывается сниппет, содержимое нужных объектов или переменных;
5. Собственно, получается сниппет из 10 строк, на который было потрачено 3 часа.

Вот это как-то хочется оптимизировать. Чтобы редактор был с подсказками (PHPStorm? PhpED?), чтобы не приходилось из этого редактора код копировать вручную в окошко сниппета в админке modx, а потом вручную смотреть, что получилось, обновляя страницу, где вызывается сниппет.
maxamin
24 апреля 2015, 23:21
0
А как просто разместить ссылку на файл из Яндекс Диска? В Modx файл виден, но ссылки для скачивания не создать…
Василий Наумкин
24 апреля 2015, 23:03
+1
Системная настройки register_users по умолчанию в HybridAuth активна.

А Office её отключает при установке. Но и там можно включить обратно.
Сергей Шлоков
24 апреля 2015, 22:59
+2
Ну как-то типа так
[[!snippet& ?resId=`[[*id]]`]]
А в сниппете написать
/* Получаем значения TV указанного ресурса */
$query = $modx->newQuery('modTemplateVarResource', array(
    'contentid' => $resId,
));
$query->select('value');
$results = array();
if ($query->prepare() && $query->stmt->execute()) {
    $results = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
}
Ганин Роман
24 апреля 2015, 22:57
11
+2
Начало разработки — за пределами MODX. Вёрстка (БЭМ) шаблонов, чанков и страниц в Sublime Text 3 с использованием Gulp-задач для автокомпиляции с использованием пре- и постпроцессоров (ускоряют разработку в 4-5 раз), зависимости: bower, для UI-тестов адаптивности: BrowserSync. Минификация стилей и скриптов на клиенте (прекратите вешать эту задачу на MinifyX/сервер!). Кодстайл: CSScomb и JSCS + JSLint. В дальнейшем можно настроить автоматическую выгрузку по SFTP скомпилированных файлов прямо на сервер. Шаблонизация на клиенте легко настраивается с помощью gulp-rigger, gulp-file-include или gulp-include-source. За счет вотчеров скорость просто реактивная. Особенно удобно, если монитора два и больше — в одном мониторе код проекта, в остальных — мгновенный результат (страница обновляется быстрее, чем я успеваю перевести взгляд с одного монитора на другой или переключиться на новый раб. стол).
Инициализация сервера: ansible, установка MODX: Gitify, импорт настроек: Teleport. Импорт уже подготовленных чанков, tpl-ек занимает минуты, нет необходимости заниматься «клавадрочерством» с Ctrl+Tab (переключиться на фронтенд-вкладку), Ctrl/Cmd+R (обновить страницу), чтобы просмотреть результат — всё уже оттестированно на этапе вёрстки. Остаётся только настроить магию сниппетов и оформить Custom Forms. Дальше — оверлокинг с XDebug, debugParser, BloodLine и Chrome DevTools.
Сергей Шлоков
24 апреля 2015, 22:31
0
Проблема как раз в том что когда авторизованный точно такая же картина.
Не такая же. Все работает как положено.
Для неавторизованного пользователя
//Нельзя редактировать гостям
[[!myCalendar? &allowGuestEdit=`0`]]

Для авторизованного пользователя
//Нельзя редактировать гостям
[[!myCalendar? &allowGuestEdit=`0`]]

Как видишь, редактирование возможно.
Дружище, я больше не знаю чем тебе помочь. Все работает как я и писал выше. Только теперь с подтверждением.
Василий Столейков
24 апреля 2015, 22:24
0
мм… значит регистрация возможна? Это мне и нужно было узнать, спасибо!
Alexander V
24 апреля 2015, 22:23
+1
HybridAuth регистрирует пользователей. Не путайте с офисом.
Василий Столейков
24 апреля 2015, 22:10
0
modx.pro/components/3283-office-1-1-0-improve-authorization/ — вижу Василий отключил тут возможность регистрации через HybridAuth.
Можно ли её включать при необходимости? Например если один провайдер и запутаться сложно…
Сергей Скат
24 апреля 2015, 20:38
0
Во, типа того =)
but1head
24 апреля 2015, 18:46
+1
[[snippet? &tvs=`tv1,tv2,tv3,tv4`]]
...
$alltvs = explode(',',$tvs);

foreach($tvs as $tv){
	... $modx->resource->getTVValue(tv);
}
Viktor
24 апреля 2015, 18:33
0
Проблема как раз в том что когда авторизованный точно такая же картина. Или я чего-то не понимаю в реализации allowGuestEdit.
Хотя выше описана тобой-же верная логика.
Еще раз повторюсь.
Ставлю [[!myCalendar? &allowGuestEdit=`1`]]
Доступ к редактированию есть у всех.

Ставлю [[!myCalendar? &allowGuestEdit=`0`]]
Редактировать ни кто не может, авторизованный и не авторизованный пользователь.
Как я понял при &allowGuestEdit=`0` доступ к редактированию должен пропасть только у не авторизованных пользователей. исходя из твоего коммента
Сергей Шлоков
24 апреля 2015, 18:28
0
После обновления Tickets эта возможность стала доступнее. Займусь в свободное время.
Сергей Шлоков
24 апреля 2015, 18:21
0
Я не знаю как ты это делаешь. Вот на алифе (я не авторизованный).
//Нельзя редактировать
[[!myCalendar? &allowGuestEdit=`0`]]

//Можно редактировать
[[!myCalendar? &allowGuestEdit=`1`]]

С авторизованным проверять не стал. Ибо итак работает.