Alexander V 20 октября 2015 0 30
Добрый день! Подскажите пожалуйста, как с помощью процессоров MODX можно указать, что шаблон или чанк статический с указанием пути? К сожалению в документации ничего подобного не нашел.
30 комментариев
Fi1osof1
Fi1osof 20 октября 2015г в 21:51 #
Опишите задачу более подробно, чтобы было понятней какой метод более подходит для этого.
А так принцип общий — получить объект и глянуть его свойства. Попробуйте в консоли, к примеру, это выполнить:
$id = 1;
print_r($modx->getObject('modChunk', $id) -> toArray());

То есть получите объект чанка с id=1 и увидите свойства его, в том числе source (ID источника файлов), static (статичный или нет), static_file (путь к файлу). Обратите внимание, что есть source не 1 (не Filesystem), то путь к файлу может быть не от корня сайта. Придется тогда получать сам медиасурс и выяснять какой будет полный путь.
A
Alexander V 20 октября 2015г в 21:55 #
Вот пример, частично из документации
$chunks = array (
    array (
            'name' => 'NewChunk',
            'description' => 'A test Chunk made with runProcessor.',
            'snippet' => '<h3>Chunkify!</h3>',
            'category' => '3'
        ),

    );
foreach ($chunks as $chunk) {
$response = $modx->runProcessor('element/chunk/create', $chunk);

$chunkArray = $response->getObject();
echo 'The chunk "'.$chunkArray['name'].' was created with ID '.$chunkArray['id']."\n";
}

Хотелось бы указать, что чанк является статическим
Fi1osof1
Fi1osof 20 октября 2015г в 22:11 #
Опять-таки, где хотелось бы это знать? Вот в этом коде, после выполнения процессора (на случай если его каким-нибудь плагином «заставили» быть статическим)? Или «внутри» процессора перед сохранением или типа того?
Если первый случай, то if($chunkArray['static'])…
A
Alexander V 20 октября 2015г в 22:15 #
Ничего не понял.
Задача создать чанк. Просто содать чанк!!! Но с указанием, что этот чанк статический и указать путь до файла с кодом.
Fi1osof1
Fi1osof 20 октября 2015г в 22:26 #
Извиняюсь, я не так прочитал топик. Я прочитал «как с помощью процессоров MODX можно узнать». Это логичней подходить под данную формулировку. А если указать надо, то не с помощью процессора, а самому процессору. В итоге так и указывайте:
$chunks = array (
    array (
            'name' => 'NewChunk',
            'description' => 'A test Chunk made with runProcessor.',
            'snippet' => '<h3>Chunkify!</h3>',
            'category' => '3',
            'static' => 1,
            'source' => 1,
            'static_file' => 'path to file........',
        ),

    );
A
Alexander V 20 октября 2015г в 22:30 #
Для шаблона делается так же?
Fi1osof1
Fi1osof 20 октября 2015г в 22:31 #
Да. Эти все классы расширяют общий класс modElement и колонки у них за небольшим исключением совпадают.
A
Alexander V 20 октября 2015г в 22:34 #
Николай, спасибо! Извиняюсь за сумбур в вопросе.
Fi1osof1
Fi1osof 20 октября 2015г в 22:37 #
Не за что! Ничего страшного.
A
Alexander V 24 октября 2015г в 17:56 #
Николай, а не могли бы вы подсказать, почему не получается обновить чанк/шаблон
element/chunk/update

Пробовал и имя и ID указывать.
С ресурсами по аналогии всё получается.
A
Alexander V 24 октября 2015г в 18:33 #
Разобрался!
Fi1osof1
Fi1osof 24 октября 2015г в 21:32 #
Процессор не тот указывали?
A
Alexander V 24 октября 2015г в 21:44 #
Я хотел переписать стандартные чанки Tickets, указав, что это статический чанк. Думал, что если поле ре указать, то останется без изменений. В моем случае name. В итоге оказалось, id,name обязательны для заполнения.
Fi1osof1
Fi1osof 24 октября 2015г в 22:36 #
Странно, что name обязательный. Должно бы id вполне достаточно…
A
Alexander V 24 октября 2015г в 22:48 #
Оказалось обязательно. Хотя может что у меня не так. Но у меня так вышло.

Борюсь с процессорами. Я же обещал сборку запилить. Вот с инсталятором сейчас занимаюсь. На шаблоне застрял.
Что в итоге должно выйти
Что готово
В итоге хотелось бы получить нормальную шаблонную систему на файлах. Хоть и прибитуя к сборке. Иначе никак.
Fi1osof1
Fi1osof 24 октября 2015г в 22:56 #
Так а зачем с инсталлятором бороться? Почему не взять vapor и все?
A
Alexander V 24 октября 2015г в 23:00 #
1. Для параноиков.
2. Для того, чтобы можно было поправить набор пакетов, системных настроек и набор ресурсов
Fi1osof1
Fi1osof 24 октября 2015г в 23:04 #
Замучаешься следить что можно обновлять, а что нет. Так или иначе будешь обновлением затирать кастомные правки. Поэтому мы и делаем без гарантии обратной совместимости, под индивидуальные проекты. Это облегчает процесс сборки.
A
Alexander V 24 октября 2015г в 23:15 #
Есть такое дело.
В сотый раз убеждаюсь, что для MODX шаблонов быть не может. Для сборок да, может. Попытка объяснить загоняет карму в глубокий минус)
Я сделал некоторую иерархию, где через системные настройки можно менять (шаблон/схема/стиль). Если сильно не застряну, через пару дней выпущу. Посмотрим реакцию. Понравится пользователям, замечательно. Нет, так нет)))
Fi1osof1
Fi1osof 25 октября 2015г в 11:45 #
Ориентируйся в первую очередь на себя. Мы вот не делаем ничего такого, что не используем сами. То есть сначала делаем себе, потом делимся с другими. То есть в первую очередь оно должно устраивать нас и работать так, как мы хотим. Потом уже мы объясняем другим, но без фанатизма. Не хотят приминять или не нравится что-то — это их право. А сделать что-то, просто чтобы сделать и еще людям объяснять «пользуйтесь», хотя сам не пользуешь, ИМХО — это путь в никуда. Сделай сборку, обкатай ее на десятке проектов, потом демонстрируй кейсы. У нас вот если бы даже никто не стал пользовать ShopModxBox, к примеру, мы бы все равно его использовали.
Fi1osof1
Fi1osof 24 октября 2015г в 22:58 #
А если очень хочется поизвращаться, можешь покопать это. Это установщик в modBlog. Вот он как раз там создает документы и прочие вещи. Слишком сложно и навороченно, но очень хороший пример возможностей.
A
Alexander V 24 октября 2015г в 23:06 #
Боюсь, ято я не дорос еще до этого уровня) Ну а Vopor-ом снять бекап не проблема, сделаю конечно.
Fi1osof1
Fi1osof 24 октября 2015г в 23:07 #
Именно что не проблема. И это готовый пакет, можно в репозитории выкладывать. Только обязательно писать предупреждение что все будет затерто, чтобы не ставили на готовые сайты.
A
Alexander V 25 октября 2015г в 18:40 #
Я ваши сборки изнутри не видел, ничего сказать не могу. Вы с инсталятором не паритесь, а просто через Vapor пакуете?
Fi1osof1
Fi1osof 25 октября 2015г в 19:35 #
Таки да, им и упаковываю. Он ведь и создавался для того, чтобы сайты упаковывать целиком и частями.
A
Alexander V 25 октября 2015г в 22:42 #
Николай, помню когда только появился modxRepository, в списке хотелок было реализовать счетчик скачиваний. Реализовано ли это в актуальной версии?
Fi1osof1
Fi1osof 26 октября 2015г в 14:46 #
На гите изменения есть, но новый пакет судя по всему я не собирал еще. Там только твшку свою надо будет для этого создать. Посмотри изменения, наверняка будет все понятно. И вот этот ПР прочти, пригодится.
A
Alexander V 27 октября 2015г в 14:59 #
Так и сделал) Краткое описание.
Ох и муторное же это дело. Дай Бог если для десятка проектов сгодится. Все же не магазин.
Fi1osof1
Fi1osof 27 октября 2015г в 15:33 #
Ну, вскрытие покажет :)
Fi1osof1
Fi1osof 24 октября 2015г в 22:44 #
Да, действительно проверка прописана. Глупость какая… Вообще-то надо было в setDefaultProperties() прописывать, а проверять на наличие $this->object->get('name'). Не круто сделано.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.