Lotus Sandbox

Тема в разделе "Lotus - Программирование", создана пользователем NetWood, 23 окт 2010.

Наш партнер Genesis Hackspace
  1. NetWood

    NetWood Well-Known Member
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    345
    Симпатии:
    6
    Поскольку нехорошие дяди на IBM песочницу закрыли, а хорошие выложили для скачивания и дали ссылку база была скачена и изучена.
    Ахтунг 1.6Gb в архиве!

    В ней какие-то кривые руки испортили WEB поиск. Как настоящих джедаев нас такая ситуация не устраивает никак, особенно на таком объеме полезных данных. Починим.

    Начнем с установки. По умолчанию база открывается по web линку как хост/ldd/sandbox.nsf Если вы записали ее в другую папку, то сделайте сопоставление Url to Url /ldd/ to /ваша папка/ . Это во вью сервера кнопочка есть. И протрите стекла te http restart. Теперь все "левые" урлы будут на правильном пути :) Кстати это способ позволяет скрыть .nsf базы в урле вообще, но надо делать дизайн сразу под это, иначе потом исправлять муторно.

    Далее чиним поиск с заглавной страницы. По непонятной причине на форме Download Page отсутствует поле $$Return. Создаем его скрытым от WEB, также как SaveOptions=0
    в $$Return пишем
    Код (Text):
    REM {If nothing to search for return to search form!};
    @If(@Trim(Query)=""&@Trim(SearchQuery)=""; @Return("[/"+@WebDbName + "/DownloadPage?OpenForm]");"");

    SearchView:="Search";

    CritBasic:=@If(Query=""; ""; @URLEncode("Platform";Query));
    CritSubject:=@If(Subject="";""; "[Subject]co(\""+@URLEncode("Platform";Subject)+"\")");
    CritPseudo:=@If(Pseudo="" | Pseudo="null";""; "[Pseudo]co(\""+Pseudo+"\")");

    CritDateBegin:=@If(DateBegin="";""; "[Created]>="+DateBegin);
    CritDateEnd:=@If(DateEnd="";""; "[Created]<="+DateEnd);

    CritCat:=@If(Category="";""; "[Category]co(\""+@URLEncode("Platform";Category)+"\")");

    Crit:=@Implode(@Trim(CritBasic:CritSubject:CritPseudo:CritDateBegin:CritDateEnd:CritCat); "+AND+");

    "["+@WebDbName+"/"+SearchView+"?SearchView&Query="+Crit+"]"
    Далее в табличке ищем кусок HTML с полем text и картинкой поиска. По сабмиту там стоит newchecksearch() которое нигде не находится. Можно это заремить или удалить вовсе. Джедайское поле для поиска должно иметь имя Query. Там вставляем кусок HTML
    Код (Text):
    <script>document.write(text_searchmaincriteria)</SCRIPT>
    <br>[поле Query] 
    <script>document.write("<INPUT TYPE=SUBMIT VALUE=\"Search\" CLASS=\"inputbutton\" STYLE=\"width: 20%\"")</SCRIPT><BR>
    Индексируем песочницу и наслаждаемся поиском с заглавной страницы.

    to admin/ Я не поместил этот пост в раздел FAQ потому что считаю его бесполезным. Этих разделов и так развелось много. Все равно все ломятся сюда. Хорошо что "для избранных" удалили...
     
  2. NetWood

    NetWood Well-Known Member
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    345
    Симпатии:
    6
    Далее. Стили этой базы грузятся напрямую с IBM :)
    <link rel="stylesheet" type="text/css" href="//www.ibm.com/common/v14/main.css" />
    <link rel="stylesheet" type="text/css" media="all" href="//www.ibm.com/common/v14/screen.css" />

    Велика вероятность, что их тоже грохнут. Поэтому вкладываем их страницами с теми же названиями в дизайн базы и правим ссодержимое заголовка HTML форм. Фалики приложены.
    "<link rel=\"stylesheet\" type=\"text/css\" href=\"main.css\" />"+@NewLine+
    "<link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"screen.css\" />"

    Кстати поверхностное изучение дизайна наводит на мысль по какой причине ее грохнули. Уж слишком там много надо править под новые маркетинговые концепции, слишком много написано "линейно", а время дороже. Проще грохнуть и всех в эклипс.
     

    Вложения:

    • SandboxCSS.zip
      Размер файла:
      4,8 КБ
      Просмотров:
      22
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.445
    Симпатии:
    7
    офф(потом почищу): тему закрепить тут хоть дашь?))) а то вот я ща, например, не могу себе позволить на ноут скачать гиг базы и потом править - нет тут ни лотуса, ни лишнего места.

    Добавлено: просто я вот только что боялась, что тема вообще потеряется, даже скопипастила и продублировала себе...
     
  4. NetWood

    NetWood Well-Known Member
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    345
    Симпатии:
    6
    Она доступна на WEB вот тут http://www.bananahome.com/ldd/sandbox.nsf/...adPage?OpenForm, но немного поломатая :) Поиск не пашет и не проиндексирована.
     
  5. NetWood

    NetWood Well-Known Member
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    345
    Симпатии:
    6
    В общем отремонтировал что можно. Поиск работает во всех формах. Немного поправил нафигацию. Факультативно восстановил камменты к топикам и создание топиков.

    Выложить все это возможности пока нет ибо провайдер меня по головке не погладит, а шаблон дам правленый как есть. То бишь надо будет скачать базу по ссылке, накатить на нее шаблон и пользоваться. Для начинающих на WEB пойдет в самый раз. Всякие новомодные Xpage там не используются и я сам не пользуюсь.

    Приаттачил шаблон. Многое там на скорую руку. Для новых постов была форма /ldd/sandinbox.nsf/websub?openform&login, но она похерена вообще <_< - слепил из того что есть. Такое впечатление, что перед тем как базу "выпустить" на нее накатили какой-то старый шаблон. Урезанный.

    Йо. Стили не поправил - забыл - так и грузятся с IBM, но зато почикал агрименты эти дурацкие. Теперь сразу кнопочка download активна.
     

    Вложения:

    • sandbox_ntf.zip
      Размер файла:
      442,9 КБ
      Просмотров:
      42
  6. NetWood

    NetWood Well-Known Member
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    345
    Симпатии:
    6
    По состоянию на октябрь 2012 года мне известна одна ссылка на старый Сандбокс на банане. http://www.bananahome.com/ldd/sandbox.nsf/...adPage?OpenForm
    Там по-прежнему не работает поиск :( по базе.

    Исправляем это недоразумение линком на Lotus Sandbox 1999-2007 с работающим поиском!
    Бонусом открыт секретный линк IBM Only
     
  7. NetWood

    NetWood Well-Known Member
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    345
    Симпатии:
    6
    Прибрался немного. Теперь песочница будет доступна по постоянному адресу domquery.info

    Кстати, там есть справа тизер Resources. Если у кого есть туда желание добавиться по теме или разместить полезный линк - велкам.
    Абсолютно безвозмездно -_-
     
  8. Xomyak

    Xomyak Member

    Регистрация:
    10 июн 2008
    Сообщения:
    21
    Симпатии:
    0

    Спасибо тебе огромное!
     
  9. NetWood

    NetWood Well-Known Member
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    345
    Симпатии:
    6
    По случаю юбилейного десятилетнего закрытия песочницы Lotus Sandbox :), задумал я обновить его каким-нибудь вкусным шаблоном и, заодно, оживить здешнюю прикрепленную ветку. И получилось у меня Demo сайта под Lotus Domino с адаптивным и мобильным дизайном с примером автоматической подгрузки ричтекстового содержания наподобие Твиттера и Вконтактика.

    Lotus Sandbox .

    Demо доступно по адресу http://domquery.info/demo/webdesign.nsf
    About this Demo http://domquery.info/demo/webdesign.nsf/About?OpenView
    About this Demo Design http://domquery.info/demo/webdesign.nsf/pages/aboutdesign?open
    About this Lotus Domino Template http://domquery.info/demo/webdesign.nsf/pages/abouttemplate?open
    Скачать шаблон базы со всеми потрохами можно из вкладки Download меню About.

    Подробнее об этой базе
    Наткнулся я как-то на Хабре на демо сайта с Адаптивным и мобильным дизайном с CSS3 Media Queries и решил его портировать на платформу Lotus Domino. Сама статья с адаптивным дизайном немного лохматого 2011 года, но актуальность имеет и по сей день. Заодно, захотелось повысить свои скилы и разобраться как это все работает, тем более что с шаблонами сайтов на Domino с современным дизайном в интернете ситуация обстоит чуть лучше чем никак. В процессе работы над шаблоном Остапа понесло и кроме web дизайна на базу Domino были натянуты примеры работы с любимым мной jQuery и еще много всякого вкусного. Xpage я не понимаю, также как не работаю в эклипс-монстрах Notes 8 и Notes 9. Считаю, что все это прекрасно можно заменить, например на jQuery, тем паче, что примеров по нему в интернетах более чем достаточно…

    Итак, что же получилось:
    1. Пример работы сайта под Lotus Domino с адаптивным и вполне современным кругленьким дизайном на экранах с разным разрешением. Подробнее тут. Некоторые элементы дизайна были допилены по ходу дела.
    2. Пример работающего поиска по сайту. Для работы поиска базу надо проиндексировать в Notes. Количество найденных страниц склоняется на русском языке, например: 1 страница, 5 страниц, 22 страницы.
    3. Известно, что Lotus не умеет выводить содержимое RichText полей во View, поэтому сделан пример конвертации RT поля в HTML и показа оного в представлении - View by Doc RT to HTML.
    4. Подключен jQuery и в представлении View by Doc RT to HTML сделана динамическая подгрузка страниц через AJAX.
    5. Решение по п.4 позволило пойти дальше и в представлении Dynamic View сделана уже динамическая подгрузка в представление содержимого RichText поля наподобие Вконтактика или Твиттера. Все, что есть в RT поле – картинки, текст, таблицы, объекты — выводится совершенно без проблем. При прокрутке скролла мыши вы получаете бесконечную страницу, пока документы не закончатся. Пожалуй, это самый вкусный пример в этом шаблоне. Подробнее о нем вот на этой странице.
    6. По ходу дела добавлен плагин FansyBox для показа раскрывающихся картинок в большем разрешении на формах Memo.
    7. На стартовую страницу добавлен простой слайдер с таймером, динамически подгружающий три разные картинки из документов со ссылками на эти страницы.
    8. Небольшие удобства внутри базы для SEO контента вывода meta descriptions, keywords и проверки имени страницы базы на уникальность. База имеет сложное вычисляемое поле $$HTMLHead в общей подформе CommonFields для веб форм и загрузку Download последней доступной версии через скрипт с редиректом на форме. Линк берется из последнего документа Revision.
    9. Формулы выделения из документа аттачей с необходимым расширением и показом их количества или вывод как картинок, например, ембеднутые объекты в RT полях содержатся как аттачи и их надо отсекать.
    10. Общий подход для разработки сайтов под Lotus Domino на примере разных форм и представлений для клиента Notes и WEB, который будет полезен для новичков и для опытных программистов как Sandbox.

    В целом, получилась неплохая рыба Lorem ipsum dolor в виде базы webdesign.nsf для построения простых документальных сайтов под Lotus Domino с вполне современным адаптивным дизайном и удобными функционалом. Хочу обратить внимание, что я не профессиональный программист и все делалось из академического интереса. Как это будет работать на вашем мобильнике можете проверить прямо сейчас. Лицензия базы — absolutely free. Если кто захочет сказать спасибо, то это можно сделать при помощи волшебной кнопочки Donate в сайдбаре меню About :).

    Enjoy!
     

    Вложения:

    • Lotus Sandbox
      Untitled7.jpg
      Размер файла:
      120,6 КБ
      Просмотров:
      5
    • Lotus Sandbox
      Untitled8.jpg
      Размер файла:
      102,3 КБ
      Просмотров:
      5
    • Lotus Sandbox
      Untitled9.jpg
      Размер файла:
      65,3 КБ
      Просмотров:
      5
    • Lotus Sandbox
      Untitled11.png
      Размер файла:
      176,1 КБ
      Просмотров:
      5
    #9 NetWood, 9 мар 2017
    Последнее редактирование: 9 мар 2017
    WebWare Team, rinsk и alexas1 нравится это.
  10. alexas1

    alexas1 Well-Known Member
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    593
    Симпатии:
    217
    красиво :)
    но в мобайле не все пикчи показывает :(
     
  11. rinsk

    rinsk Well-Known Member
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    843
    Симпатии:
    82
    Круто - мне понравилось!)
    Есть только заковыка в том, что при $.get("doMemoLoad?OpenView&start="+$('#loaded_max').val()+"&count=1", //Load RT Memo from
    при $('#content').append(loaded)
    в DOM документа пихается все с <html> по </html> вместе с <body> и т.п..
    что некоторые браузеры могут не переваривать имхо.
     
  12. NetWood

    NetWood Well-Known Member
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    345
    Симпатии:
    6
    Наверное это IE :). Испытывал на Фоксе, Опере, Хроме, Ондроеде и Ойфоне - все работает. Картинки большие, да. Могут не грузиться на плохой связи.
    По IE пока не понимаю как прикрутить в html на форме загружаемый именно для него костыль типа
    Код (Text):
    <!-- html5.js for IE less than 9 -->
    <!--[if lt IE 9]>
        <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <!-- css3-mediaqueries.js for IE less than 9 -->
    <!--[if lt IE 9]>
        <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
    <![endif]-->
    Он из этого примера выпилен.
     
  13. rinsk

    rinsk Well-Known Member
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    843
    Симпатии:
    82
    Я просто выкусывал промеж <body></body> и вставлял в DOM. Было какая то проблема без этого с адресацией элементов там...
     
    NetWood нравится это.
  14. NetWood

    NetWood Well-Known Member
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    345
    Симпатии:
    6
    Спасибо за подсказку. Да, с выгрызанием боди будет правильнее. Переписал вот так и load и get. И подгружаться стало субъективно быстрее.
    Код (Text):
    //Get only data body content in <body ...><form action="">content</form></body>
    function getbodycontent(data,start,stop) {
        //alert(data);
        return data.substring(data.indexOf(start)+start.length,data.indexOf(stop));
    };
    $.get("doMemoLoad?OpenView&start=1&count=2",     //Load RT Memo from Lotus Domino View preloaded as function doAjax(id,url) in Form $$ViewTemplate for doMemoLoad
            function(data){      
            var $body = getbodycontent(data, '<form action="">','</form>');
                $('#content_load').append($body).fadeIn();    //Load content to id='content'
              }
        );
    });
     
    #14 NetWood, 10 мар 2017
    Последнее редактирование: 10 мар 2017
Загрузка...

Поделиться этой страницей