• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

По поводу css на лотусовых сайтах

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
Всем привет!

Подскажите пожалуйста, как Вы внедряете css на Ваши веб-сайты на лотусе.

Спасибо.
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
1) как дизайн элемент
2) как Page
3) как аттач
4) как вид
 

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
Уточню вопрос. Гугл рекомендует css подключать не как файл, а внедрять в тело странички. Как в этом случае?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Уточню вопрос. Гугл рекомендует css подключать не как файл, а внедрять в тело странички. Как в этом случае?
вообще-то он рекомендует не блокировать шапку, и именно для этого CSS ответственный за показ шапки писать сразу ;)
 

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
2
Пробую обкатывать такую схему:
1. Пишу front (js и css) отдельно в нормальной IDE (react + router + redux + material-ul, собираю webpack'ом).
2. Domino юзаю как rest API (на xPage кладу customRestService, который мапится на мой кастомный класс, наследник CustomServiceBean - получаем чистый JavaEE (HttpServletRequest + HttpServletResponse) + Domino обекты (ExtLibUtil.getCurrentSession() + ExtLibUtil.getCurrentDatabase()...)).

Front собирается в bundle.css и bundle.js, которые запихиваются в ODP (On Disk Project) на файловом уровне (например total commander) в WebContent.
Туда же (WebContent) кладуться все необходимые ресурсы и index.html, который и открывается в вебе.

В index.html ресурсы подключаются:

<link rel="stylesheet" href="build/bundle.css"> - мои стили из WebContent\build\bundle.css
<script type="text/javascript" src="build/bundle.js"></script>- мои скрипты из WebContent\build\bundle.js
<script type="text/javascript" src="/ckeditor/ckeditor.js"></script> - ckeditor из domino

Front и Domino ODP кладу в git - имею версионный контроль.
 

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
<link rel="stylesheet" href="build/bundle.css"> - мои стили из WebContent\build\bundle.css

Вот этого хотелось бы избежать, а внедрять прямо в страничку.
По грамотному внедрять надо в head

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

NetWood

Lotus Team
17.04.2008
545
93
BIT
8
Эх джедаи). А у меня вот так работает:
1. На каждой страничке есть в заголовке HTML
wdbn:=@WebDbName;
libversion:=@GetProfileField("Configuration_Profile";"cssjsversion");
gzip:=@If(@Middle(HTTP_Cookie;"onimod_gzip=";";")="1";@True;@False);
filesystem:=@If(@Middle(HTTP_Cookie;DBID+"_filesystem=";";")="1";@True;@False);
commonlibpath:=@If(filesystem;@If(gzip;"/gzip/common.js?Open";"/common.js?Open");@If(gzip;"/"+wdbn+"/gzipcommon.js?OpenFileResource";"/"+wdbn+"/common.js?OpenJavascriptLibrary"))+
"&ExpandSection="+libversion;
base:="http"+@If(HTTPS="OFF"; ""; "s")+"://" + Server_Name;
common:="<script src=\""+base+commonlibpath+"\"></script>";
На вебе выглядит так
<script src=".....nsf/common.js?OpenJavascriptLibrary&ExpandSection=120"></script>
2. В заголовке каждой страницы JS
_doSkin();
3. В либе common.js
Код:
//Skin managed browser side so we can cache better
function _doSkin() {
var tmp_skin=_doExtractCookie('skin') ; if(tmp_skin==null) {tmp_skin='Default'}
var tmp_lang=_doExtractCookie('lang') ; if (tmp_lang=='' | tmp_lang==null | tmp_lang=='null') {tmp_lang='ru'}
//set variables
document.write('<script>var onimod_ui=\''+_doExtractCookie('ui')+'\'</script>');
document.write('<script>var onimod_skin=\''+tmp_skin+'\'</script>');
//then load css and html from skin
var tmp_cssjsversion = '&ExpandSection='+onimod_cssjsversion;
if (onimod_httpfilesystemmode=='YES') {
    var tmp_libcommand='?Open';
    var tmp_libprefix='';
    if (_doExtractCookie('gzip')=='1') {var tmp_libpath='domBulletin/gzip'} else {var tmp_libpath='domBulletin'}}
else {
    var tmp_libpath=onimod_webdbname;
    if (_doExtractCookie('gzip')=='1') {var tmp_libcommand='?OpenFileResource';var tmp_libprefix='gzip'} else {var tmp_libcommand='?OpenJavascriptLibrary';var tmp_libprefix=''}
}
document.write('<script language="JavaScript" src="/'+ tmp_libpath+'/'+tmp_libprefix+'language_ressources_'+tmp_lang+'.js'+tmp_libcommand+tmp_cssjsversion+'"&charset="UTF-8"><\/script>');
document.write('<script language="JavaScript" src="/'+ tmp_libpath+'/'+tmp_libprefix+'footer.js'+tmp_libcommand+tmp_cssjsversion+'"&charset="UTF-8"><\/SCRIPT>');
document.write('<link rel="stylesheet" type="text/css" href="/'+onimod_webdbname+'/Skins/'+tmp_skin+'?OpenDocument&Expand=CSS'+tmp_cssjsversion+'">');
document.write('<script language="JavaScript" src="/'+onimod_webdbname+'/Skins/'+tmp_skin+'?OpenDocument&Expand=HTMLAfter'+tmp_cssjsversion+'"><\/script>')
}
4. В доке по форме Skin есть поле CSS, в которое пишется сам скин и переключается Enable Disable.

То есть вначале на странице грузится common.js, из которого по функции _doSkin() достается док-страница из базы с активным CSS и применяется по ?OpenDocument&Expand=CSS. По кукам юзер может выбрать тот скин и тот язык, который ему нравится. Xpage идут лесом.
Жуть! :))))))))))

Хотя достаточно обычной страницы с CSS, подключаемой в Head. . Гугл вам наговорит еще...
 
Последнее редактирование:

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
ну если хочешь быть в результатах поиска повыше, то гугл надо слушать
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
а я рендерю все странички заранее агентом, вот прямо так в одно RT, его потом и свечу
а так как собираю по байтово - никаких проблем и скорость максимальна
 

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
в форме задается other для документа?

А как быть с ричтекстовым полем, если оно используется под веб?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!