|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
В общем надо динамически менять стиль CSS при загрузке страниц... Что будет если переопределить %LinkCSS в ZEN? Если меняет ссылку на другой CSS, то есть ли похожее на CSP? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2013, 16:02 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
barl_alibekВ общем надо динамически менять стиль CSS при загрузке страниц... ... есть ли похожее на CSP? Как вариант... Код: html 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2013, 15:15 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
Также можно отдавать сам CSS через CSP страницу, но подставить в ее ответе Content-Type. Сам не пробовал, но по HTTP протоколу в URL для CSS можно давать и параметры. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2013, 15:57 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
%LinkCSS как я понял меняет путь к файлику со стилями Но покопавшись в int-ах нашел такой метод %DrawStyleHTML. Немного его переделал, вместо Method поставил ClassMethod, ну и вместо Public поставил As %Status Сам стиль храниться в классе в БД, при отображении странички в различных браузерах стиль работает на все 100% ClassMethod %DrawStyleHTML() As %Status { set XClass=##class(DATA.XXX).%OpenId(%session.Get("IdOfXXX")) Write "<!-- Style: GUI.RU.XXX.EduDocsGoso-->",! If 1 { Write "",!,"<style type=""text/css"">",!,XClass.StyleOfInterface,!,"</style>",!," ",! } } Можно ли так коверкать %DrawStyleHTML? и не будут ли проблемы с переходом с 2008 на 2012 версию? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 11:58 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
Ну и в CSP работает адекватно. <script language=Cache runat=server> set XClass=##class(DATA.XXX).%OpenId(%session.Get("IdOfXXX")) Write "<style type=""text/css"">" Write !,XClass.StyleOfInterface,! Write "</style>" </script> Есть вопрос, где работает этот код (где запускается)? в начало или конец страницы? В CSP он у меня расположен прямо посередине, в середине html элементов ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 12:23 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
barl_alibekНу и в CSP работает адекватно. Код: html 1. 2. 3. 4. 5. 6.
Даже для связки ХТМЛ+ЦСС так лучше не делать. Скрипты и ЦСС лучше выносить в отдельные файлы, а потом подключать barl_alibekЕсть вопрос, где работает этот код (где запускается)? в начало или конец страницы? В CSP он у меня расположен прямо посередине, в середине html элементов Для скриптов и ЦСС предусмотрен тег Код: html 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 13:16 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
krvsa, krvsaДаже для связки ХТМЛ+ЦСС так лучше не делать. Скрипты и ЦСС лучше выносить в отдельные файлы, а потом подключать Это я прекрасно понимаю, но задача стоит в том что количество стилей>100, и у каждого пользователя свои персональный стиль для интерфейса. Вопрос стоит в том можно ли так коверкать %DrawStyleHTML? и не будут ли проблемы с переходом с 2008 на 2012 версию? Значит Код: vbnet 1. 2. 3. 4. 5. 6.
перемещается в <head>...</head> в независимости в какой части страницы был написан метод? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 13:39 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
barl_alibekЭто я прекрасно понимаю, но задача стоит в том что количество стилей>100, и у каждого пользователя свои персональный стиль для интерфейса. И? Пока именно понимания и не вижу... Ты каждый раз (!) гонишь в контент "стилей>100" причем для каждой (!) страницы! Причем делаешь это х/з в каких частях того контента... barl_alibekперемещается в <head>...</head> в независимости в какой части страницы был написан метод? Скажу так - это должно быть там. Для этого тот тег и сделан... Остальное все, мягко говоря, говнокод. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 14:16 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
barl_alibek , тебе нужно пересмотреть хранение пользовательских стилей... Перевести их таки в файлы css. Например такого типа: user_<login>.css Тогда при формировании страницы тебе нужно лишь подключить нужный файл... Он закешируется браузером... Т.о. у тебя контента на странице меньше + кеш ЦСС = более быстрая загрузка и более правильная организация страницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 14:20 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
krvsa, Сам стиль храниться в классе в БД))) В разных экземплярах разные стили))) Количество стилей больше ста))) Задача стоит в том чтобы для каждого пользователя использовался свои уникальный стиль для интерфейса. Поэтому я и решил стиль засунуть в БД, в класс с данными о пользователе. У каждого пользователя свой уникальный стиль. Я не знаю как переписать динамически <head>...</head>, поэтому и получается говнокод)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 14:25 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
krvsa, Вариант с файлами тут не поможет))) В теории, если количество пользователей увеличится, то и количество файлов .css соответственно увеличится))) А если пользователь захочет перенастроить стиль интерфейса... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 14:29 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
barl_alibekСам стиль храниться в классе в БД))) В разных экземплярах разные стили))) Количество стилей больше ста))) Задача стоит в том чтобы для каждого пользователя использовался свои уникальный стиль для интерфейса. Поэтому я и решил стиль засунуть в БД, в класс с данными о пользователе. У каждого пользователя свой уникальный стиль. Это не мешает в итоге для каждого пользователя сделать персональный файл ЦСС... barl_alibekЯ не знаю как переписать динамически <head>...</head>, поэтому и получается говнокод)))) Просто сделай файл для каждого пользователя. Потом подключи его как я показал в первом же своем сообщении... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 14:32 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
[quot barl_alibek]Вариант с файлами тут не поможет))) Это как раз и есть решение. barl_alibekВ теории, если количество пользователей увеличится, то и количество файлов .css соответственно увеличится))) И что? Кончится место на сервере? Или еще какой коллапс случиться? barl_alibekА если пользователь захочет перенастроить стиль интерфейса... Пусть перенастраивает. Просто по окончании настроек его файл будет изменен, а далее по схеме... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 14:34 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
barl_alibek , наиболее приемлемым вариантом считаю наборы палитр... Они и пользователям дают какой-то выбор... И интерфейс не калечат. Те палитры могут править админы, используя любую базовую. Но это уже т.н. пользовательские палитры и разработчик за них ответственности не несет... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 14:37 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
krvsa, коллапс может случится если мы потеряем эти файлы с CSS)))) такое иногда бывает)) Хочется дать пользователю возможность для выбора в позиционировании элементов интерфейса, палитры, ну и различных типов меню (столбцы, списки, иконки) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 14:44 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
barl_alibekколлапс может случится если мы потеряем эти файлы с CSS)))) такое иногда бывает)) У вас всегда останутся данные в БД, на этой основе еще раз сделаете те файлы... Или данные так же имеют особенность "теряться"? barl_alibekХочется дать пользователю возможность для выбора в позиционировании элементов интерфейса, палитры, ну и различных типов меню (столбцы, списки, иконки) Однако вы дюже полагаетесь на пользователя... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 14:53 |
|
Изменить код CSS на CSP и ZEN
|
|||
---|---|---|---|
#18+
barl_alibekНо покопавшись в int-ах нашел такой метод %DrawStyleHTML.Исходники ZEN-компонент вполне доступны в области %SYS. barl_alibekНемного его переделал, вместо Method поставил ClassMethod, ну и вместо Public поставил As %Status Так сигнатуру методов лучше не менять. Правильнее будет воспользоваться в студии мастером переопределения методов. barl_alibekМожно ли так коверкать %DrawStyleHTML? и не будут ли проблемы с переходом с 2008 на 2012 версию?Лучше так не делать. Могут быть проблемы. Если Вы воспользуетесь мастером, то увидите, что много вставляется системного кода, который Вы благополучно выкидываете. Конечно, в Вашем случае он может оказаться лишним и тем не менее. barl_alibekЕсть вопрос, где работает этот код (где запускается)? в начало или конец страницы?Во время формирования страницы. barl_alibekЗначит <...> перемещается в <head>...</head> в независимости в какой части страницы был написан метод?Нет. Посмотрите INT-код и исходный код страницы для следующего CSP-файла:<html> <head><script language="Cache" runat="Server">w 5</script></head> <body><script language="Cache" runat="Server">w 6</script></body> </html>Порядок вызова системных обработчиков для ZEN хорошо описан в документации: Zen Pages at Runtime Проще будет переопределить на странице метод %OnDrawHTMLHead , например так:/// This callback is called at the end of the HTML HEAD section of the page.<br/> /// (default implementation is a simple expression). Method %OnDrawHTMLHead() As %Status { w ..%LinkCSS("test.css") q $$$OK }Если хотите на уровне всего приложения, то либо переопределите %DrawStyleHTML, либо - и это мне больше нравится - сделайте общий класс-предок для Ваших страниц и в нём реализуйте %OnDrawHTMLHead . PS: а стили лучше всё-таки вынести в файлы, как советует krvsabarl_alibekколлапс может случится если мы потеряем эти файлы с CSS)))) такое иногда бывает)), которые могут генерироваться автоматически из БД. barl_alibekВ теории, если количество пользователей увеличитсяХорошо бы сначала дождаться эту "теорию", тогда начнёте решать уже проблему производительности веб-сервера из-за невозможности кешировать CSS, особенно если стили объёмистые. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 17:30 |
|
|
start [/forum/topic.php?fid=39&msg=38262281&tid=1557150]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
298ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 244ms |
total: | 645ms |
0 / 0 |