Сообщений: 901
Тем: 78
Зарегистрирован: Dec 2012
Репутация:
9,514
01-31-2013, 12:55 PM
(Сообщение последний раз редактировалось: 01-31-2013, 04:05 PM OneThunder.)
Хочу написать комюнити заного но базируясь на скриптах других разрабов ибо у меня опыта в кодинге вообще почти по нулям. Коекакие идеи есть, поправьте плз или подскажите как сделать правильно
1)Надо написать ява класс на сепаратор хтмлок...аля пример BbsUtil
2)Внедрять данную процедуру куда? именно какой участок кода в скриптах комюнити? После каждой процы?
3)Создать байпассы на %menu% %content% %footer% %header%
4)внедрить их в хтмлки...
Самое не понятное куда сувать процу из ббсутил в самих скриптах..ясен пень импорт класса делать но саму строку я не понимаю как делают
И еще вопрос по скриптам
Делаются сначало иморты, далее делаются опубликовать методы, потом прописать байпасы, и после все скрипты?
За это отвечает код?
Код: else if(bypass.startsWith("_bbspage"))
{
//My Example: "bypass _bbspage:index".
String[] b = bypass.split(":");
String page = b[1];
html = HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/pages/" + page + ".htm", player);
html = html.replace("<?cb_name?>", Config.COMMUNITYBOARD_NAME);
html = html.replace("<?cb_header?>", Config.COMMUNITYBOARD_HEADER);
html = html.replace("<?cb_footer?>", Config.COMMUNITYBOARD_FOOTER);
html = html.replace("%bbs_menu%", HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/bbs_menu.htm", player).toString());
}
Добавлено через 3 часа 9 минут
если проблема в цене пишите обсудим( но я парень бедный skype: aezzio-art
Сообщений: 1,053
Тем: 33
Зарегистрирован: Sep 2011
Репутация:
12,172
Rattyx Написал:Код: else if(bypass.startsWith("_bbspage"))
{
//My Example: "bypass _bbspage:index".
String[] b = bypass.split(":");
String page = b[1];
html = HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/pages/" + page + ".htm", player);
html = html.replace("<?cb_name?>", Config.COMMUNITYBOARD_NAME);
html = html.replace("<?cb_header?>", Config.COMMUNITYBOARD_HEADER);
html = html.replace("<?cb_footer?>", Config.COMMUNITYBOARD_FOOTER);
html = html.replace("%bbs_menu%", HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/bbs_menu.htm", player).toString());
}
Если вызываемый байпас начинается с _bbspage то выводим страницу указанную после знака ":".
К примеру: "bypass _bbspage:index" выведется страница data/html-(ru\en в зависимости от языка игрока)/scripts/services/community/" + Config.BBS_FOLDER + "/pages/index.htm
Где Config.BBS_FOLDER это конфиг дефолтной папки с вашей комункой.
Далее реплейсы работают так.
Код: html = html.replace("<?cb_name?>", Config.COMMUNITYBOARD_NAME);
html = html.replace("<?cb_header?>", Config.COMMUNITYBOARD_HEADER);
html = html.replace("<?cb_footer?>", Config.COMMUNITYBOARD_FOOTER);
Каждый из данных реплейсов заменяется на значение указанное после запятой, внашем случаи это конфиг.
Пример: <?cb_name?> заменится на значение указанное в конфиге Config.COMMUNITYBOARD_NAME.
В случаи работы реплейса "html = html.replace("%bbs_menu%", HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/bbs_menu.htm", player).toString());" используется преобразование содержимого файла "bbs_menu.htm" в String то есть в текст.
Замечу что все реплейсы указанные в данном случаи будут обробатываться только при вызове байпаса _bbspage, по тому советую вынести обработку реплейсов в общий обработчик скрипта, а лучше написать инкулуды для избежания повторении.
PS: Прям интересно где вы взяли эту коммунку, уж до боли она мне знакома
Сообщений: 702
Тем: 32
Зарегистрирован: Jan 2012
Репутация:
1,926
спалил L2CCCP
Увеличение шрифта - <font hs="12"></font>
Delphi / HTML, CSS, JS / Дизайн / скрипты для Lineage 2, Archeage
Сообщений: 1,053
Тем: 33
Зарегистрирован: Sep 2011
Репутация:
12,172
Skyline Написал:
спалил L2CCCP
Увеличение шрифта - <font hs="12"></font>
что вы этим хотели сказать? :dt:
Сообщений: 901
Тем: 78
Зарегистрирован: Dec 2012
Репутация:
9,514
конечно знакома данный код на 99,99% писали вы)
Но у вас не совмем гуд реализация.
Незнаю почему, но наверное было легче написать класс встроенный в ядро который бы автоматом добавлял в комунку в структуру страниц базовые теги хтмлки <html></html> чтоб сами страницы не заморачиватся и не писать заного.
Но респект вам за ответ. Плюсую!
Но всетаки ответ был не полон тема в силе меня интересует какие шаги нужно сделать хотябы в общих чертах для того чтобы реализовать подобную вещь.
Я набросал примерный шаблон в хтмлке на локалке, но все это хтмл блин а мне надо связать все в ядро все страницы все байпасы все скрипты которые будут потом связать их в гребанную фигню такую... чтоб не писать много кода. Да и для красоты реализации. Пишу все для себя в качестве познания и все)
Сообщений: 1,053
Тем: 33
Зарегистрирован: Sep 2011
Репутация:
12,172
А что вам мешает создать те же самые реплейсы?
Изжопный метод но всё же.
По сути можно создать шаблонизатор как в томже dle.
Создать страницы: header.htm и foother.htm
В обработчик.
html = html.replace("%header%", HtmCache.getInstance().getNotNull("scripts/services/community/header.htm", player).toString());
html = html.replace("%foother%", HtmCache.getInstance().getNotNull("scripts/services/community/foother.htm", player).toString());
В шаблон в начало %header% и в конец %foother%.
Жопный метод, но если я вас понял то вам и так пойдет.
PS: А смысл делать обработку кб автоматом по тега?
Если взять теже саммые реплейсы то они не должны сождержать теги <html> так как они выводятся в самом контенте.
Сообщений: 901
Тем: 78
Зарегистрирован: Dec 2012
Репутация:
9,514
Эхх мне бы человеческим языком) а то я не мего кодер же(
Ладно пробну понять
Сообщений: 1,053
Тем: 33
Зарегистрирован: Sep 2011
Репутация:
12,172
Rattyx Написал:Эхх мне бы человеческим языком) а то я не мего кодер же(
Ладно пробну понять
Я вам уже постом выше обяснил суть работы реплейсов.
Сообщений: 901
Тем: 78
Зарегистрирован: Dec 2012
Репутация:
9,514
ок но что пихать в самих скриптах? И главное КУДА?
Код: String content = HtmCache.getInstance().getNotNull("/scripts/services/community/" + Config.BBS_FOLDER + "/services/communityclassmanager.htm", player);
content = content.replace("%classmaster%", html.toString());
content = content.replace("<?cb_name?>", Config.COMMUNITYBOARD_NAME);
content = content.replace("<?cb_footer?>", Config.COMMUNITYBOARD_FOOTER);
content = content.replace("<?cb_header?>", Config.COMMUNITYBOARD_HEADER);
content = content.replace("%bbs_menu%", HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/bbs_menu.htm", player).toString());
ShowBoard.separateAndSend(content, player);
и что делает ShowBoard.separateAndSend(content, player); ?
Сообщений: 1,053
Тем: 33
Зарегистрирован: Sep 2011
Репутация:
12,172
Rattyx Написал:ок но что пихать в самих скриптах? И главное КУДА? В метод onBypassCommand за всеми проверками на вызов типа байпасов.
Rattyx Написал:и что делает ShowBoard.separateAndSend(content, player); ? Проверяет содержимое и возвращает результат игроку.
|