powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Изменить код CSS на CSP и ZEN
18 сообщений из 18, страница 1 из 1
Изменить код CSS на CSP и ZEN
    #38262281
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем надо динамически менять стиль CSS при загрузке страниц...

Что будет если переопределить %LinkCSS в ZEN?
Если меняет ссылку на другой CSS, то есть ли похожее на CSP?
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38264645
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barl_alibekВ общем надо динамически менять стиль CSS при загрузке страниц...
...
есть ли похожее на CSP?
Как вариант...

Код: html
1.
<link rel="stylesheet" type="text/css" href="#(тут_делай_что_хочешь_на_COS)#.css" />
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38264726
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также можно отдавать сам CSS через CSP страницу, но подставить в ее ответе Content-Type. Сам не пробовал, но по HTTP протоколу в URL для CSS можно давать и параметры.
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268030
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
%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 версию?
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268098
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и в 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 элементов
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268187
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barl_alibekНу и в CSP работает адекватно.
Код: html
1.
2.
3.
4.
5.
6.
<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>


Даже для связки ХТМЛ+ЦСС так лучше не делать. Скрипты и ЦСС лучше выносить в отдельные файлы, а потом подключать

barl_alibekЕсть вопрос, где работает этот код (где запускается)? в начало или конец страницы?
В CSP он у меня расположен прямо посередине, в середине html элементов
Для скриптов и ЦСС предусмотрен тег

Код: html
1.
2.
3.
<head>
...
</head>
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268224
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

krvsaДаже для связки ХТМЛ+ЦСС так лучше не делать. Скрипты и ЦСС лучше выносить в отдельные файлы, а потом подключать

Это я прекрасно понимаю, но задача стоит в том что количество стилей>100, и у каждого пользователя свои персональный стиль для интерфейса.
Вопрос стоит в том можно ли так коверкать %DrawStyleHTML? и не будут ли проблемы с переходом с 2008 на 2012 версию?

Значит
Код: vbnet
1.
2.
3.
4.
5.
6.
<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>


перемещается в <head>...</head> в независимости в какой части страницы был написан метод?
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268293
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barl_alibekЭто я прекрасно понимаю, но задача стоит в том что количество стилей>100, и у каждого пользователя свои персональный стиль для интерфейса.
И?
Пока именно понимания и не вижу...

Ты каждый раз (!) гонишь в контент "стилей>100" причем для каждой (!) страницы!
Причем делаешь это х/з в каких частях того контента...

barl_alibekперемещается в <head>...</head> в независимости в какой части страницы был написан метод?
Скажу так - это должно быть там. Для этого тот тег и сделан...
Остальное все, мягко говоря, говнокод.
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268302
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barl_alibek , тебе нужно пересмотреть хранение пользовательских стилей... Перевести их таки в файлы css. Например такого типа:
user_<login>.css

Тогда при формировании страницы тебе нужно лишь подключить нужный файл... Он закешируется браузером... Т.о. у тебя контента на странице меньше + кеш ЦСС = более быстрая загрузка и более правильная организация страницы.
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268318
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

Сам стиль храниться в классе в БД)))
В разных экземплярах разные стили)))
Количество стилей больше ста)))

Задача стоит в том чтобы для каждого пользователя использовался свои уникальный стиль для интерфейса.
Поэтому я и решил стиль засунуть в БД, в класс с данными о пользователе. У каждого пользователя свой уникальный стиль.

Я не знаю как переписать динамически <head>...</head>, поэтому и получается говнокод))))
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268328
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

Вариант с файлами тут не поможет)))
В теории, если количество пользователей увеличится, то и количество файлов .css соответственно увеличится)))
А если пользователь захочет перенастроить стиль интерфейса...
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268332
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barl_alibekСам стиль храниться в классе в БД)))
В разных экземплярах разные стили)))
Количество стилей больше ста)))

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

Поэтому я и решил стиль засунуть в БД, в класс с данными о пользователе. У каждого пользователя свой уникальный стиль.
Это не мешает в итоге для каждого пользователя сделать персональный файл ЦСС...

barl_alibekЯ не знаю как переписать динамически <head>...</head>, поэтому и получается говнокод))))
Просто сделай файл для каждого пользователя. Потом подключи его как я показал в первом же своем сообщении...
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268337
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot barl_alibek]Вариант с файлами тут не поможет)))
Это как раз и есть решение.

barl_alibekВ теории, если количество пользователей увеличится, то и количество файлов .css соответственно увеличится)))
И что? Кончится место на сервере? Или еще какой коллапс случиться?

barl_alibekА если пользователь захочет перенастроить стиль интерфейса...
Пусть перенастраивает. Просто по окончании настроек его файл будет изменен, а далее по схеме...
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268347
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barl_alibek , наиболее приемлемым вариантом считаю наборы палитр... Они и пользователям дают какой-то выбор... И интерфейс не калечат.
Те палитры могут править админы, используя любую базовую. Но это уже т.н. пользовательские палитры и разработчик за них ответственности не несет...
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268360
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

коллапс может случится если мы потеряем эти файлы с CSS)))) такое иногда бывает))

Хочется дать пользователю возможность для выбора в позиционировании элементов интерфейса, палитры, ну и различных типов меню (столбцы, списки, иконки)
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268389
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barl_alibekколлапс может случится если мы потеряем эти файлы с CSS)))) такое иногда бывает))
У вас всегда останутся данные в БД, на этой основе еще раз сделаете те файлы... Или данные так же имеют особенность "теряться"?

barl_alibekХочется дать пользователю возможность для выбора в позиционировании элементов интерфейса, палитры, ну и различных типов меню (столбцы, списки, иконки)
Однако вы дюже полагаетесь на пользователя...
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38268766
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, особенно если стили объёмистые.
...
Рейтинг: 0 / 0
Изменить код CSS на CSP и ZEN
    #38274716
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa, servit,

Большое спасибо
Теперь стало понятно почему лучше все-таки использовать файлы
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Изменить код CSS на CSP и ZEN
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]