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

Как и где определяется какой скин используется


ike333

Вопрос

Приветствую! ;)

 

Помогите разобраться как сделать, чтобы при запросе топика скин сет по которому он выводится посетителю определялся не по номеру форума в запросе (/index.php?act=ST&f=2&t=2), а по номеру форума из таблицы topics базы данных (по номеру топика).

 

Раньше, на все форумы был один скин и я урезал запрос до /topic2.html mod_rewrite'ом переводя его в /index.php?&act=ST&f=999&t=2, а теперь когда для топиков форума 2 требуется использовать другой скин ничего не получается - он видит, что форума 999 не существует и использует основной скин. :)

 

Извините если путано, второй день мучаюсь методом научного тыка :D

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

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

  • 0
всё до чего я додумался это попробовать вставить в /sources/functions.php в function load_skin()
if ($ibforums->input['f'] == (string) '999')
{
 $DB->query("SELECT forum_id FROM ibf_topics WHERE tid='". (int) $ibforums->input['t']."'");
 $ibforums->input['f'] = (string) $DB->fetch_row();
};

перед:

if ($ibforums->input['f'] and $ibforums->input['act'] != 'UserCP')
{
        if ( $ibforums->vars[ 'forum_skin_'.$ibforums->input['f'] ] != "" )
        {
                $id = $ibforums->vars[ 'forum_skin_'.$ibforums->input['f'] ];
                
                $skin_set = 1;
        }
}

но это ровным счетом ничего не поменяло ;) Впрочем, и не удивительно, учитывая, что php я не знаю и придумал это облазив php.net вдоль и поперёк :D (не говоря уже о непонимании работы движка инвижена :))

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

  • 0

ike333, ты правильно додумался. :D

if ($ibforums->input['f'] == '999')
{
 $DB->query("SELECT forum_id FROM ibf_topics WHERE tid='". intval( $ibforums->input['t'] )."'");
 $row = $DB->fetch_row(); 
 $ibforums->input['f'] = $row['forum_id'];
};

Вот так должно работать.

(string) '999' - у тебя лишнее (ты строку переводишь в строку ;))

(int) $ibforums->input['t'] - в принципе, должно работать, я просто по привычке заменил на intval()

$ibforums->input['f'] = (string) $DB->fetch_row(); - тут неверно, ты пытаешься массив перевести в строку. Сначала получи массив, а потом уже тебе нужно одно значение из него.

 

PHP Manual. Chapter 6. Types

Arrays are always converted to the string "Array", so you cannot dump out the contents of an array with echo() or print() to see what is inside them. To view one element, you'd do something like echo $arr['foo']. See below for tips on dumping/viewing the entire contents.
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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