eXed Опубликовано 15 Сентября 2004 Жалоба Поделиться Опубликовано 15 Сентября 2004 Требуется такая фенька - из оперд топика , вытаскиваются первые посты и выводятся на странице форума - можно задачу сравнить с рандомным анегдотом. Технически мне понтяон все, и как запрос написать , но дело в том, что я еще не распарил как IPB работет со скинами и куда мне код вставить, что бы он под велком панелью все это дело красивенько выводилось? пробывал поиск по словам random и tip , может чего не то набирал, но решения задачки не нашел. Помоги плиз, очень нужно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 15 Сентября 2004 Жалоба Поделиться Опубликовано 15 Сентября 2004 куда мне код вставить, что бы он под велком панелью все это дело красивенько выводилось?Boards.php тебе надо. Что-то вроде Page_top, pagetop ищи... это будет тот самый блок, который тебе нужен. Затем можешь либо в найденную функцию передать новую переменную (в которой будет твоя готовая фраза), либо создать свой кусочек в скине и использовать его. Пробуй, спрашивай. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
eXed Опубликовано 16 Сентября 2004 Автор Жалоба Поделиться Опубликовано 16 Сентября 2004 вчера на invisionize.com нашел такую вот штуку Bo Random Topic. Правда она для 1.1 но это не страшно. Даже понял что-то, но вот такой вопрос появился, форум работает в безопасном режиме, т.е. как я понимаю все HTML шаблоны вытягиваются из базы. В мануалке по установке наткнулся на следующие: /-----------------------------------------/ /Step 1: Open Skin/s*/skin_boards.php: /-----------------------------------------/ Search for: function PageTop($lastvisit) { global $ibforums; return <<<EOF <table cellpadding='4' cellspacing='0' border='0' width='<{tbl_width}>' align='center'> <tr> <td align='right' valign='bottom'><!-- IBF.NEWSLINK -->{$ibforums->lang['welcome_back_text']} $lastvisit</td> <td align='right' valign='bottom'> </td> </tr> </table> Underneath Place: <!-- Toprandtopic --> Search for: } ?> above that add: function Toprandtopic($data="") { global $ibforums, $stats; return <<<EOF <p align="center"><br> <b>Random Topic: </b><a href="{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}&act=SF&f={$data['randtopicforum_id']}&t=$data[randtopicid]"><i>{$data['randtopictitle']}</i></a> ( With A Total Of ) <u>( {$data['randtopicreply']} )</u> Replies. EOF; } и тут же вспомнил, что когда я последний раз отключил безопсный режим, вствил мод show/hide обновил все это дело и у меня вышло так, что оформление, которое работало - бралось из базы - заменилось функциями из скиновой папки, т.е. пришлось опять перелапачивать. Как сделать так чтобы этого не происходило, потому что на сколько я понял ручками с админской не загнать новый кусок шаблона вывода. помнится что тогда я решил делать сначала save as скина, на сколько я догадался он формируется из БД. и продолжать работать с ним, но это крайне неудобно. Подскажи пожайлуста как быть, и если я заблуждаюсь, как делать правильно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 17 Сентября 2004 Жалоба Поделиться Опубликовано 17 Сентября 2004 форум работает в безопасном режиме, т.е. как я понимаю все HTML шаблоны вытягиваются из базыДолжны. Проверить просто - папку Skin переименовать во что-нибудь, и если форум будет всё равно грузиться - значит, действительно, всё идёт из базы.вышло так, что оформление, которое работало - бралось из базы - заменилось функциями из скиновой папкиТы имеешь в виду, что у тебя все моды были поставлены сразу на базу, а в скинах продублированы не были? Тогда да. В идеале нужно ставить мод в скиновой файл (если, конечно, скиновой файл есть - а его под Safe Mode может и не быть (для импортированных скинов)), а потом уже делать в админке -> Skins & Templates -> Manage HTML Templates ресинхронизацию скинов...Если же ты привык всё через админку редактировать (т.е. скин прямо в базе изменять), то можешь и сейчас так же сделать. Просто в админке найди в скинах, где располагается функция PageTop... её поправь... и новую там же добавляй. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
eXed Опубликовано 21 Сентября 2004 Автор Жалоба Поделиться Опубликовано 21 Сентября 2004 разобрался я, как работать с скинами, если нужно что-то подправить в функции, но вот этот момент не ясен. Если же ты привык всё через админку редактировать (т.е. скин прямо в базе изменять), то можешь и сейчас так же сделать. Просто в админке найди в скинах, где располагается функция PageTop... её поправь... и новую там же добавляй на админской мы видим, уже существующие функции - т.е. при редактировании, редактируем тело отдельной функции, как добавить новую функцияю? ты говоришь просто там же добавить, но ведь у нее есть аргумент, как оно будет работать? в обще, в safe mode, все шаблоны хранятся в бД, где сохраняются global и все остальное? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 21 Сентября 2004 Жалоба Поделиться Опубликовано 21 Сентября 2004 как добавить новую функцияю?Да, это я поторопился. Привык уже к версии 2.0.0. Но ничего — можем добавить новую функцию руками в базу (при помощи phpMyAdmin или другой аналогичной утилиты). Таблицу ibf_skin_templates смотрим, видим поля:suid set_id group_name section_content func_name func_data updated can_remove suid заполнится по умолчаниюset_id - это номер наборa, для которого мы редактируем шаблоны (set_id для конкретного скина можно посмотреть в таблице ibf_skins)group_name - группа для шаблона, совпадает с именем скинового файла (skin_boards, например)section_content - содержимое функции в формате HTML (формат - как будто один в один выдрано содержимое из функции в скиновом файле)func_name - имя функцииfunc_data - аргументы функции через запятуюupdated - время последнего обновления, можно пропуститьcan_remove - эээ... хз, ставим 0 и всё будет круто. Вот таким SQL-запросом я создал новую функцию в Board Index Section:INSERT INTO `ibf_skin_templates` ( `suid` , `set_id` , `group_name` , `section_content` , `func_name` , `func_data` , `updated` , `can_remove` ) VALUES ( '', '1', 'skin_boards', '<div align="center">HELLO!</div>', 'new_func', '$data', NULL , '0' );В skin_boards.php это было бы:function new_func($data) { global $ibforums; return <<<EOF <div align="center">HELLO!</div> EOF; } Вот. Глобал у них всегда один, вроде - $ibforums. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
eXed Опубликовано 21 Сентября 2004 Автор Жалоба Поделиться Опубликовано 21 Сентября 2004 окэй, на локалке покавыряю, прошлый раз мало чего дошло когда базу просматривал, сейчас с твоей подсказкой попробую разобрать по полочкам. Добавлено в [mergetime]1095768543[/mergetime] offtopic (размышления):все же нехватает во всем этот разбирательстве с IPB , наличая описания его API, как это сделано в проектах OpenS. Например у достаточно крупного движка http://www.xoops.org/misc/api/, может кто-нибдуь займется его составлением, если такового нет - будем первыми. API на русском. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.