20 окт. 2015 г., 18:14

Как с помощью процессоров MODX указать, что шаблон или чанк статический?

Добрый день! Подскажите пожалуйста, как с помощью процессоров MODX можно указать, что шаблон или чанк статический с указанием пути? К сожалению в документации ничего подобного не нашел.
Опишите задачу более подробно, чтобы было понятней какой метод более подходит для этого. А так принцип общий — получить объект и глянуть его свойства. Попробуйте в консоли, к примеру, это выполнить:
$id = 1; print_r($modx->getObject('modChunk', $id) -> toArray());
То есть получите объект чанка с id=1 и увидите свойства его, в том числе source (ID источника файлов), static (статичный или нет), static_file (путь к файлу). Обратите внимание, что есть source не 1 (не Filesystem), то путь к файлу может быть не от корня сайта. Придется тогда получать сам медиасурс и выяснять какой будет полный путь.
Вот пример, частично из документации
$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"; }
Хотелось бы указать, что чанк является статическим
Опять-таки, где хотелось бы это знать? Вот в этом коде, после выполнения процессора (на случай если его каким-нибудь плагином «заставили» быть статическим)? Или «внутри» процессора перед сохранением или типа того? Если первый случай, то if($chunkArray['static'])…
Ничего не понял. Задача создать чанк. Просто содать чанк!!! Но с указанием, что этот чанк статический и указать путь до файла с кодом.
Извиняюсь, я не так прочитал топик. Я прочитал «как с помощью процессоров 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........', ), );
Для шаблона делается так же?
Да. Эти все классы расширяют общий класс modElement и колонки у них за небольшим исключением совпадают.
Николай, спасибо! Извиняюсь за сумбур в вопросе.
Не за что! Ничего страшного.
Николай, а не могли бы вы подсказать, почему не получается обновить чанк/шаблон
element/chunk/update
Пробовал и имя и ID указывать. С ресурсами по аналогии всё получается.
Процессор не тот указывали?
Я хотел переписать стандартные чанки Tickets, указав, что это статический чанк. Думал, что если поле ре указать, то останется без изменений. В моем случае name. В итоге оказалось, id,name обязательны для заполнения.
Странно, что name обязательный. Должно бы id вполне достаточно…
Да, действительно проверка прописана. Глупость какая… Вообще-то надо было в setDefaultProperties() прописывать, а проверять на наличие $this->object->get('name'). Не круто сделано.
Оказалось обязательно. Хотя может что у меня не так. Но у меня так вышло.
Борюсь с процессорами. Я же обещал сборку запилить. Вот с инсталятором сейчас занимаюсь. На шаблоне застрял. Что в итоге должно выйти Что готово В итоге хотелось бы получить нормальную шаблонную систему на файлах. Хоть и прибитуя к сборке. Иначе никак.
Так а зачем с инсталлятором бороться? Почему не взять vapor и все?
А если очень хочется поизвращаться, можешь покопать это. Это установщик в modBlog. Вот он как раз там создает документы и прочие вещи. Слишком сложно и навороченно, но очень хороший пример возможностей.
1. Для параноиков. 2. Для того, чтобы можно было поправить набор пакетов, системных настроек и набор ресурсов
Замучаешься следить что можно обновлять, а что нет. Так или иначе будешь обновлением затирать кастомные правки. Поэтому мы и делаем без гарантии обратной совместимости, под индивидуальные проекты. Это облегчает процесс сборки.
Боюсь, ято я не дорос еще до этого уровня) Ну а Vopor-ом снять бекап не проблема, сделаю конечно.
Именно что не проблема. И это готовый пакет, можно в репозитории выкладывать. Только обязательно писать предупреждение что все будет затерто, чтобы не ставили на готовые сайты.
Есть такое дело. В сотый раз убеждаюсь, что для MODX шаблонов быть не может. Для сборок да, может. Попытка объяснить загоняет карму в глубокий минус) Я сделал некоторую иерархию, где через системные настройки можно менять (шаблон/схема/стиль). Если сильно не застряну, через пару дней выпущу. Посмотрим реакцию. Понравится пользователям, замечательно. Нет, так нет)))
Ориентируйся в первую очередь на себя. Мы вот не делаем ничего такого, что не используем сами. То есть сначала делаем себе, потом делимся с другими. То есть в первую очередь оно должно устраивать нас и работать так, как мы хотим. Потом уже мы объясняем другим, но без фанатизма. Не хотят приминять или не нравится что-то — это их право. А сделать что-то, просто чтобы сделать и еще людям объяснять «пользуйтесь», хотя сам не пользуешь, ИМХО — это путь в никуда. Сделай сборку, обкатай ее на десятке проектов, потом демонстрируй кейсы. У нас вот если бы даже никто не стал пользовать ShopModxBox, к примеру, мы бы все равно его использовали.
Я ваши сборки изнутри не видел, ничего сказать не могу. Вы с инсталятором не паритесь, а просто через Vapor пакуете?
Таки да, им и упаковываю. Он ведь и создавался для того, чтобы сайты упаковывать целиком и частями.
Николай, помню когда только появился modxRepository, в списке хотелок было реализовать счетчик скачиваний. Реализовано ли это в актуальной версии?
На гите изменения есть, но новый пакет судя по всему я не собирал еще. Там только твшку свою надо будет для этого создать. Посмотри изменения, наверняка будет все понятно. И вот этот ПР прочти, пригодится.
Так и сделал) Краткое описание. Ох и муторное же это дело. Дай Бог если для десятка проектов сгодится. Все же не магазин.
Ну, вскрытие покажет :)

Добавить комментарий