Перейти к контенту

Рекомендуемые сообщения

Требуется такая фенька - из оперд топика , вытаскиваются первые посты и выводятся на странице форума - можно задачу сравнить с рандомным анегдотом. Технически мне понтяон все, и как запрос написать , но дело в том, что я еще не распарил как IPB работет со скинами и куда мне код вставить, что бы он под велком панелью все это дело красивенько выводилось? пробывал поиск по словам random и tip , может чего не то набирал, но решения задачки не нашел.

Помоги плиз, очень нужно.

Ссылка на комментарий
Поделиться на других сайтах

куда мне код вставить, что бы он под велком панелью все это дело красивенько выводилось?

Boards.php тебе надо. Что-то вроде Page_top, pagetop ищи... это будет тот самый блок, который тебе нужен. Затем можешь либо в найденную функцию передать новую переменную (в которой будет твоя готовая фраза), либо создать свой кусочек в скине и использовать его. Пробуй, спрашивай. :D

Ссылка на комментарий
Поделиться на других сайтах

вчера на 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 скина, на сколько я догадался он формируется из БД. и продолжать работать с ним, но это крайне неудобно. Подскажи пожайлуста как быть, и если я заблуждаюсь, как делать правильно.

Ссылка на комментарий
Поделиться на других сайтах

форум работает в безопасном режиме, т.е. как я понимаю все HTML шаблоны вытягиваются из базы

Должны. Проверить просто - папку Skin переименовать во что-нибудь, и если форум будет всё равно грузиться - значит, действительно, всё идёт из базы.

вышло так, что оформление, которое работало - бралось из базы - заменилось функциями из скиновой папки

Ты имеешь в виду, что у тебя все моды были поставлены сразу на базу, а в скинах продублированы не были? Тогда да. В идеале нужно ставить мод в скиновой файл (если, конечно, скиновой файл есть - а его под Safe Mode может и не быть (для импортированных скинов)), а потом уже делать в админке -> Skins & Templates -> Manage HTML Templates ресинхронизацию скинов...

Если же ты привык всё через админку редактировать (т.е. скин прямо в базе изменять), то можешь и сейчас так же сделать. Просто в админке найди в скинах, где располагается функция PageTop... её поправь... и новую там же добавляй.

Ссылка на комментарий
Поделиться на других сайтах

разобрался я, как работать с скинами, если нужно что-то подправить в функции, но вот этот момент не ясен.

 

Если же ты привык всё через админку редактировать (т.е. скин прямо в базе изменять), то можешь и сейчас так же сделать. Просто в админке найди в скинах, где располагается функция PageTop... её поправь... и новую там же добавляй

 

на админской мы видим, уже существующие функции - т.е. при редактировании, редактируем тело отдельной функции, как добавить новую функцияю?

 

ты говоришь просто там же добавить, но ведь у нее есть аргумент, как оно будет работать? в обще, в safe mode, все шаблоны хранятся в бД, где сохраняются global и все остальное?

Ссылка на комментарий
Поделиться на других сайтах

как добавить новую функцияю?

Да, это я поторопился. :D Привык уже к версии 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.

Ссылка на комментарий
Поделиться на других сайтах

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

Добавлено в [mergetime]1095768543[/mergetime]

offtopic (размышления):

все же нехватает во всем этот разбирательстве с IPB , наличая описания его API, как это сделано в проектах OpenS. Например у достаточно крупного движка http://www.xoops.org/misc/api/, может кто-нибдуь займется его составлением, если такового нет - будем первыми. API на русском.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.