• Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: Yuri_G  
Сообщество uCoz » Мастерская uCoz » Дизайн: управление шаблонами » Идентификатор модуля, $MODULE_ID$, распознавание модуля. (Если нужно указать системе что выводить в разных модулях.)
Идентификатор модуля, $MODULE_ID$, распознавание модуля.
evra
Сообщений: 1
Репутация: 88

Сообщение # 1 | 13:13:51
Есть глобальный код для конструктора шаблонов - зовется он $MODULE_ID$. Этот код несет в себе идентификатор модуля. Этот код может принимать следующие значения(попробуйте прописать эту переменную в код каркаса и примените каркас ко всем модулям - так Вы сами увидите какие значения будут в каждом из модулей, должно получиться следующее):"Новости" - news, "Редактор страниц" - index, "Фотоальбом" - photo, "Каталог файлов" - load, "Дневник" - blog, "Каталог статей" - publ, "Каталог сайтов" - dir, "Доска объявлений" - board, "Гостевая книга" - gb, FAQ(вопрос/ответ) - faq. Если на момент прочтения в системе появились новые модули, можно узнать название вышеуказанным методом лимбо догадаться по аналогии.
Практическое применение.
Используем код для вывода разной информации в зависимости от модуля.
Создадим глобальный блок(с главной страницы панели управления зайдите в раздел "Управление блоком "Друзья сайта""), назовем его INFO_MODULE, код вызова будет - $GLOBAL_INFO_MODULE$. Вставим в каркасе этот код в желаемое место и применим к шаблонам этот каркас. В $GLOBAL_INFO_MODULE$ пропишем следующий код:
Code
<?if($MODULE_ID$="photo")?>Это фотоальбом,здесь пользователи могут оставлять свои фото в упорядоченном хранилище.<?endif?>
<?if($MODULE_ID$="blog")?>Тут можно вести записи и получать на них комментарии.<?endif?>

В результате работы этого кода мы получим вывод на всех страницах фотоальбома надпись - "Это фотоальбом,здесь пользователи могут оставлять свои фото в упорядоченном хранилище.", а надпись "Тут можно вести записи и получать на них комментарии." выведется на каждой странице модуля "Дневник". Далее, используя глобальный код $PAGE_ID$ можно дополнительно указать на каких именно страницах выводить, так, код <?if($MODULE_ID$="main")?><?endif?> даст гарантию вывода лишь на главной странице каждого модуля,а объединение условий даст нужный результат (вернее их сложение). Перепишем код.
Code
<?if($MODULE_ID$="photo")?><?if($MODULE_ID$="main")?>Это фотоальбом,здесь пользователи могут оставлять свои фото в упорядоченном хранилище.<?endif?><?endif?>
<?if($MODULE_ID$="blog")?><?if($MODULE_ID$="main")?>Тут можно вести записи и получать на них комментарии.<?endif?><?endif?>

Теперь мы получили то,что хотели. Наглядную реализацию всего сказанного можно узреть вот тут (правая часть меняется в разных модулях, при этом используется только 1 глобальный блок).Сайт полностью управляется системой uCoz и являет собой реализацию ее возможностей.

uCoz - это потенциал. Приложив энергию, получите силу.
Адекватность - есть ясное осознание кто ты, где ты, что ты делаешь. Свобода = ответственность.
evra
Сообщений: 1
Репутация: 88

Сообщение # 2 | 01:00:00
Вопрос: Постараюсь задать вопрос здесь:

Коды и операторы ucoz работают лишь на страницах сделанных в модулях: "Новости" - news, "Редактор страниц" - index, "Фотоальбом" - photo, "Каталог файлов" - load, "Дневник" - blog, "Каталог статей" - publ, "Каталог сайтов" - dir, "Доска объявлений" - board, "Гостевая книга" - gb, FAQ(вопрос/ответ) - faq.

Если я залил html документы в созданные самостоятельно директории, то коды работать не будут?

Ответ: , нет, не будут, они не проходят через фильтр, который преобразует эти коды в их значения.


uCoz - это потенциал. Приложив энергию, получите силу.
Адекватность - есть ясное осознание кто ты, где ты, что ты делаешь. Свобода = ответственность.
LuСiFеr
Сообщений: 250
Репутация: 289
Уровень замечаний:

Сообщение # 3 | 21:07:55
Вопрос: помогите как сделать допустим 10 страниц с шаблоном1 ,10 с шаблоном 2
Как? помогите?

Ответ:, используйте условный оператор $URI_ID$


sch779
Сообщений: 703
Репутация: 348

Сообщение # 4 | 14:45:59
Извини, nibelungi, не понял - при чем тут глобальный блок?

Еще раз:
- есть страница, созданная с помощью редактора страниц Панели Управления (предположим, с $URI_ID$ = 'page6')
- при ее генерации необходимо отключить генерацию правого глобального блока для увеличения доступной ширины страницы
- я это делаю в шаблоне страниц с помощью условного оператора типа <?if($URI_ID$ != 'page6')?>
- при добавлении новой страницы, которая должна генериться по тем-же правилам что и 'page6', приходится тупо модифицировать вышеупомянутое условие
- все это приходится повторять для каждой новой страницы, которая должна иметь формат по типу страницы 'page6'

После третьего-четвертого раза у меня, как программиста, возникает естественный вопрос - как применить общее правило для страниц, имеющих формат страницы 'page6'?

Неплохим решением, имхо, было-бы добавление в свойства страниц некоторого числа флажков для разработчиков. По типу резервных полей в некоторых модулях системы. При таком подходе я, к примеру, решил бы свою проблему легко - для всех страниц, имеющих формат по типу страницы 'page6', установил-бы, например, первый такой флажок и в условном операторе написал-бы простое условие типа <?if(!$PAGE_FLAG1$)?>.

Как альтернатива для меня в данном случае подходит и проверка URL-адреса страницы - всем вышеупомянутым страницам можно легко присвоить URL-адрес типа scheduler_page1, scheduler_page2 и т.д., после чего в условном операторе проверять вхождение слова 'scheduler' в URL-адрес текущей страницы типа <?if(substr($PAGE_URL$,0,10) != 'scheduler_')?>.

YuriT
Сообщений: 231
Репутация: 701
Уровень замечаний:

Сообщение # 5 | 15:52:12
Quote (sch779)
Т.е. - есть-ли шаблонный идентификатор, хранящий URL-адрес текущей страницы? Не название страницы, а именно полный ее URL-адрес типа: http://mysite.ucoz.ru/index/...?

Специального кода - нет. Но URL входит в состав кода формы "посоветовать другу", так что если уж очень нужно - то можно попытаться приспособить под это дело код данной формы.
Правда, не уверен, что URL входит туда в ЧПУ-формате. Возможно, что и в сокращенном (проверить не могу, у меня ЧПУ отключен).

Потеряшка - поиск потерянных и помощь бездомным животным в Питере
Сообщение отредактировал YuriT - Четверг, 01 Июл 2010, 15:53:25
player0
Сообщений: 15
Репутация: 4

Сообщение # 6 | 22:51:35
здравствуйте. хочу выводить уникальною картинку для каждого раздела, причём не только на странице "список материалов раздела", но и на страницах самих материалов, принадлежащих к соответствующим разделам.
$URI_ID$ не подходит. единственное, за что можно зацепится, это $SECTION_URL$ . но он выдаёт полный адрес, вида сайт.ru/publ/xx . Т. к. publ является зарезервированной папкой (как и остальные подобные), то ничего туда напрямую я добавить не могу. мне хотя бы как-нить взять код раздела (цифры xx в конце), там бы я свои пути сделал. как быть??
Сообщение отредактировал player0 - Воскресенье, 29 Авг 2010, 22:54:02
fflesh
Сообщений: 1784
Репутация: 1314

Сообщение # 7 | 23:11:40
sch779,
Quote (sch779)
Неплохим решением, имхо, было-бы добавление в свойства страниц некоторого числа флажков для разработчиков. По типу резервных полей в некоторых модулях системы. При таком подходе я, к примеру, решил бы свою проблему легко - для всех страниц, имеющих формат по типу страницы 'page6', установил-бы, например, первый такой флажок и в условном операторе написал-бы простое условие типа <?if(!$PAGE_FLAG1$)?>.

- Ну, да. Идея неплохая - поставить типа фильтра или флага.
В данном случае, если страницы идут подряд, можно указать диапазон, как вариант ....
Или вот ещё один ... хм ... не фонтан-вариант - но, работать будет ....
Задаём условие в названии страницы. То есть. Пишем так:
«Страница 1 20»
и условие:
Quote
<?if(substr($MODULE_NAME$,-2)=20)?>код<?endif?>

«Страница 2 20», «Страница 3 20», «Страница 4 20» ........ «Страница 999 20» ...
А дабы не портить название - вырезаем лишнее по тому же методу ....
Если идея понятна - проблем не возникнет.


Flesh

Добавлено (29-Авг-2010, 23:11:40)
---------------------------------------------
player0,
Изучай системные операторы ... типа substr/strpos .... В ПУ - достаточно полная справка на тему.
Смотри, как пример текст выше.
А чем тебя не устраивают вот эти $SID $ и $CID$ - тоже выдают уникальные номера для каждой категории/раздела.
Да, полно вариантов ...

...
Почитать о substr/strpos можно в ПУ ... Главная » Управление дизайном » Редактирование шаблонов


Flesh
Прикрепления: 4541791.png (25.6 Kb) · 8541857.png (11.6 Kb)

Всё написанное выше - моё личное мнение и на абсолютную правоту не претендует.
Есть вопросы лично ко мне - пиши сюда: http://likbezz.ru/forum/8
Сообщение отредактировал fflesh - Воскресенье, 29 Авг 2010, 23:26:35
player0
Сообщений: 15
Репутация: 4

Сообщение # 8 | 23:52:37
я если честно, не знаю где это такую таблицу смотреть. и где почитать про $SID$ и $CID$

Добавлено (29-Авг-2010, 23:52:37)
---------------------------------------------
мде. идея с substr/strpos отпадает - укоз выдаёт мне на $SECTION_URL$ постоянно - publ/0.
fflesh, так где можно такую таблицу посмотреть?. и где почитать про $SID$ и $CID$

fflesh
Сообщений: 1784
Репутация: 1314

Сообщение # 9 | 23:59:54
player0,
...
Quote (player0)
fflesh, так где можно такую таблицу посмотреть?. и где почитать про $SID$ и $CID$

- в смысле? что про них читать? Они выдают, ID категории и раздела. А вообще, советую, и уже не первый раз, завести блок ...
вот такой:

- забить в него коды и смотреть, что и где показывает ... несложные наблюдения, наверняка подтолкнут к правильной идее ...

P.S. Надеюсь не нужно напоминать, что он должен быть виден только группам админов/модеров? Или только админам ... ヅ

Quote (player0)
мде. идея с substr/strpos отпадает - укоз выдаёт мне на $SECTION_URL$ постоянно - publ/0

а что ты пытаешься получить? ...
Тебе картинку?
Вот так, например
Quote
<img src="/img/MODULE_ID$/$SID$/$CID$/картинка.gif" width="16" height="16" />

Или вот так вот
Quote
<img src="/img/MODULE_ID$/$SID$-$CID$-картинка.gif" width="16" height="16" />

- вставь - и посмотри, что выдаёт ... Лишнее вычеркни ...


Flesh
Прикрепления: 1769872.png (13.4 Kb)

Всё написанное выше - моё личное мнение и на абсолютную правоту не претендует.
Есть вопросы лично ко мне - пиши сюда: http://likbezz.ru/forum/8
Сообщение отредактировал fflesh - Понедельник, 30 Авг 2010, 00:08:15
player0
Сообщений: 15
Репутация: 4

Сообщение # 10 | 14:55:28
итак.

я хотел сделать (условно), чтобы в каждом разделе было своё оформление. т к сайт у меня про игры, то разделы это по сути разные игры.

вариант с $URI_ID$ не подходил, так-как в разделе у каждого материала он разный ($URI_ID$)

поэтому, из того, что мне было известно, было только $SECTION_URL$, но как с ним работать, я не знал.
потом fflesh мне подсказал, сначала про substr/strpos, потом про $SID$ $CID$.

с substr/strpos я накосячил и першел к $SID$ $CID$ - оказалось что они возвращают значение, только когда просматриваешь сам материал. а когда ты находишься в разделе данного материала, то они возвращали пустое место. т е етот вариант мне пришлось тоже отбросить.
попутно я заметил, что идея с $SECTION_URL$ и substr/strpos ,в принципе, реализуема. дальше я потратил два часа smile и сделал вот это

Code
<?substr((substr($CAT_URL$,0,(strrpos($CAT_URL$,'/')))),(strrpos((substr($CAT_URL$,0,(strrpos($CAT_URL$,'/'))),'/'))))?>

- в любом адресе, выделяет название раздела (т е не цифру, а именно название - например "игра_1"). для "галереи" пришлось его чуть подправить, но смысл тот же.
быдлокод конечно, но зато работает smile да и языки я особо не знаю, чтобы выбирать.

теперь у меня на сервере есть папочка, в которой по названию хранится оформление к каждой игре (разделу) в одном экземпляре. осталось только заняться оформлением ...

а fflesh `у спасибо.

Сообщение отредактировал player0 - Понедельник, 30 Авг 2010, 14:58:09
fflesh
Сообщений: 1784
Репутация: 1314

Сообщение # 11 | 15:57:26
player0,
Чёт как-то сложно ты замутил ....
Я вот так, например, делаю ...
Code
<img alt="" src="/cat<?substr($CAT_URL$,strpos($CAT_URL$,'/load/'))?>.gif" />

/cat/load/6.gif - для раздела,
/cat/load/spravki_uchebniki/21.gif - для категории,
/cat/load/spravki_uchebniki/21.gif - для материала.
... ヅ
P.S. Молодец, что сам дошёл ... ヅ


Flesh

Всё написанное выше - моё личное мнение и на абсолютную правоту не претендует.
Есть вопросы лично ко мне - пиши сюда: http://likbezz.ru/forum/8
player0
Сообщений: 15
Репутация: 4

Сообщение # 12 | 16:40:04
так фишка то в чём - $CAT_URL$ выдаёт не просто адрес категории, но ещё и сайт - пример - site.ru/publ/cat . и напрямую с этим адресом сделать ничего не получается (в системные папки типа publ, photo доступ закрыт). вот и пришлось мне извращатся smile

щас в твоём разберусь.

Добавлено (30-Авг-2010, 16:35:57)
---------------------------------------------
понял. ты берёшь последнее число - т е номер категории. хоть это и просто сделать, но я в самом начале решил от этого отказаться, т к в каталоге статей и , например, в галерее, номера разделов разные. и пришлось бы одно оформление закачивать на сервак в двух (и более) вариантах. поэтому решил, что лучше раз помучаюсь , а потом .... smile

Добавлено (30-Авг-2010, 16:40:04)
---------------------------------------------
кстати, по этому же принципу хотел решить проблему с $CAT_NAME$ в информерах - вместо $CAT_NAME$ использовать это выделенное название из ссылки (по сути тоже, только без регистра и с _ ) но оказалось что в информерах $CAT_NAME$ возвращает только номер категории.

Сообщение отредактировал player0 - Понедельник, 30 Авг 2010, 16:28:54
fflesh
Сообщений: 1784
Репутация: 1314

Сообщение # 13 | 16:55:10
player0,
Quote (player0)
понял. ты берёшь последнее число - т е номер категории. хоть это и просто сделать, но я в самом начале решил от этого отказаться, т к в каталоге статей и , например, в галерее, номера разделов разные. и пришлось бы одно оформление закачивать на сервак в двух (и более) вариантах. поэтому решил, что лучше раз помучаюсь , а потом ....

Ну а что тебе мешает сделать вот так:
Quote
«/_$MODULE_ID$/cat<?substr($CAT_URL$,strpos($CAT_URL$,'/$MODULE_ID$/')-1)?>.gif»

«/_publ/cat20.gif» - каталог статей ...
«/_load/cat21.gif» - каталог файлов .... ヅ
- попробуй - совпадений быть не может.



Flesh

Всё написанное выше - моё личное мнение и на абсолютную правоту не претендует.
Есть вопросы лично ко мне - пиши сюда: http://likbezz.ru/forum/8
Сообщение отредактировал fflesh - Понедельник, 30 Авг 2010, 16:57:39
player0
Сообщений: 15
Репутация: 4

Сообщение # 14 | 17:22:51
да нет, ты меня понял. совпадения наоборот нужны. для моей цели. я хотел, чтобы и для "статей" и для "галереи" оформление для игры_1 бралось из одной и той же папки.
fflesh
Сообщений: 1784
Репутация: 1314

Сообщение # 15 | 17:35:04
player0,
Quote (player0)
да нет, ты меня понял. совпадения наоборот нужны. для моей цели. я хотел, чтобы и для "статей" и для "галереи" оформление для игры_1 бралось из одной и той же папки.

... ヅ ... Понятно ... ヅ

Flesh


Всё написанное выше - моё личное мнение и на абсолютную правоту не претендует.
Есть вопросы лично ко мне - пиши сюда: http://likbezz.ru/forum/8
Сообщество uCoz » Мастерская uCoz » Дизайн: управление шаблонами » Идентификатор модуля, $MODULE_ID$, распознавание модуля. (Если нужно указать системе что выводить в разных модулях.)
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: