Powered by Prisma CMS

Читайте все статьи на prisma-cms.com

13 сент. 2014 г., 14:25

Id новостей только указанных категорий

В блоге Песочница

Приветь!
Нужен решения для вывода id текущего документа только для указанных категорий.
Хотел сделать разные титле для новостей.
Можете показать пример
Примеров может быть куча, но у каждого своя реализация проекта. Элементарно какая версия MODX-а? Используется modxSmarty или нет и т.д. и т.п. Но ваш вопрос - это вообще простейшие основы MODX-а. Если такие вопросы вас толкают на то, чтобы писать топики, что вы дальше будете делать? Изучайте основы php и MODX.
P.S. простейший пример:
if(in_array($modx->resource->parent, array(2,5,8,15,))){ // ........ }
Прежде чем задавать вопрос я ищу варианты. Вот мой код
$id = $modx->resource->get('id'); $ids = $modx->getChildIds($id,2); if ($id == $sitesatrt) { return 'yes'; } elseif(!empty($ids)) { return 'no' }
:D
Во-первых, вы спрашивали про вывод id в определенных категориях, а значит вам родители нужны, а не дочерние документы.
Во-вторых, ваш код совсем не оптимальный, ведь если $id == $sitesatrt, то дальше вообще все не важно, и нафига вообще тогда перебирать дочерние документы. Более правильно так:
$id = $modx->resource->get('id'); if ($id == $sitesatrt){ return 'yes'; } // else if($ids = $modx->getChildIds($id,2)){ return 'no'; } // some return?
Наверно я не могу ясно сказать что мне нужен.
Тематика сайта спортивный ест 4 категорий 1 Превью к матчу 2 Предматчевая пресс-конференция 3 Послематчевая пресс-конференция 4 Цифры и факты
Когда заполнял у всех бил одинаковые title после seo анализа ошибки били 30 что
Примеру 1) Манчестер юнайтед - Арсенал 4) Манчестер юнайтед - Арсенал
Использовал этот код
[[*id:is=`[[++site_start]]`:then=`[[++site_name:htmlent]]`:else=`[[*pagetitle]] / [[++site_name]]`]]
Потом решил сделать разные титле для каждой дочерних новостей категории
Примеру 1) Превью к матчу: Манчестер юнайтед - Арсенал 4) Цифры и факты: Манчестер юнайтед 8 - 2 Арсенал
Через Phx не смог сделать и установил плагин if с кодом
[[!If? &subject=`1,2,3,4` &operator=`inarray` &operand=`1,2,3,4` &then=`to` &else=`neto` ]]
Код работал только для указанных категориях после этого сформулировал свой код но он работал. Ваш пример работает с кодом [[!If? &subject=`[[!title]]` &operator=`empty` &operand=`[[!title]]` &then=`neto` &else=`to` ]]
Спасибо
Не знаю, может кто и подскажет со всякими этими модификаторами и т.п., но мы давно уже такие технологии не практикуем и не пропагандируем. Это все устаревшее и не эффективное. А &operator=`inarray` вообще вряд ли пройдет. Мы работаем с phpTemplates и modxSmarty.
phpTemplates и modxSmarty для меня тёмный лес. Пока я новичок
А вот это думаете легче?
[[!If? &subject=`[[!title]]` &operator=`empty` &operand=`[[!title]]` &then=`neto` &else=`to` ]]
Но каждый выбирает для себя свою дорогу сам.
Николай.
Читаю комменты, смотрю решения, что приводят люди, смотрю те вопросы, которые задаются и решил написать свое мнение по некоторым вещам.
1. Раз люди комментируют твой модуль - значит он действительно интересен и есть смысл его использовать.
2. Если люди задают вопросы - значит есть непонятные вещи и может быть можно подумать и начать серию уроков по modxSmarty и phpTemplates? Хотя бы совершенно базовые основы. Ведь не боги же горшки обжигают... Все хотят что-то сделать. Разница лишь в том, что кто-то хочет брать, копипастить и не развиваться. А кому-то твои уроки по этим базовым вещам могут очень даже помочь в развитии.
3. Ну и крайнее. Если есть площадка, где люди пишут и делятся своими трудностями, а ты дал такую возможность на сайте - хотелось бы не видеть в ответах раздражительность и негодование тем, что кто-то не понимает простые вещи.
Извиняюсь, но всем мил не будешь. И я не буду пытаться быть для всех милым. Да, площадка открытая, и сюда может попасть любой. Но это не означает, что здесь всем рады и готовы отвечать на любые вопросы. Извиняюсь за прямоту, но это так. Для простых вопросов начального уровня, и тем более по старым технологиям - это на modx.im или типа того.
Уточню еще раз: мы учим самым основам. Основы != Простое. Основы - это xPDO и т.п., это то, что освоив, программист потом может многое сделать сам. Я не учу как вывести id, потом как вывести content, потом как вывести pagetitle и т.п. (в modResource довольно много полей). Я учу как выводить параметры объектов в принципе. Я не учу передаваемым параметрам типа &operator=`empty`, &operand=`[[!title]]`, потому что модулей к MODX-у полно, и у каждого свои параметры. Я учу формировать xPDO-запросы, потому что это основа, и это раз и навсегда.
Резюме: на этом сайте очень много учебного материала, но мало кто его читает и осваивает. Вместо этого приходят с одними и теми же вопросами (не всегда, но часто). Поэтому писать еще больше отдельного, в какой-то особенной форме учебного материала - нет смысла. Во-первых, читать от этого больше не станут, а во-вторых, очень много индивидуальных ситуаций, так что формат вопрос-ответ - он часто практичней получается.
И еще: я не раз говорил, что у Ильи очень хорошие уроки по xPDO, но и их что-то народ не особо читает. Замечены единицы тех, кто в xPDO боле менее ориентируется.
И, лучше такие темы отдельными топиками поднимать, а то много оффтопа сейчас будет.
Согласен. Я согласен, что материала полно. Но, как уже и говорил выше, люди часто хотят готовые решения. Скопировал - вставил. Все! И Это НЕПРАВИЛЬНО!!! Смысла в этом никакого. Так что я с тобой полностью солидарен. Но, тем не менее, какого-то учебного материала по modxsmarty, оформленного в удобном виде - все-таки не хватает. Да и поиска по сайту я как-то не вижу И еще, по поводу Ильи. Тут тоже все правильно. И, кстати говоря, терпения отвечать на простые вопросы, у него с избытком :) Спасибо и ему, и тебе, и вашей команде.
Но, тем не менее, какого-то учебного материала по modxsmarty, оформленного в удобном виде - все-таки не хватает.
По modxSmarty материала и не должно быть, потому что это Smarty, а по Smarty полно инфы на оффсайте, даже на русском.
Все! И Это НЕПРАВИЛЬНО!!! Смысла в этом никакого.
Это не неправильно, а как есть, и это надо понимать. Я с этим не борюсь, я просто в этом не участвую, вот и все. Кто хочет копипастить - пусть этим занимаются, но площадки для общения им лучше другие выбирать.
Не за что.

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