Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Zhelezaka

К моду "Последние темы" дабавить страницы темы

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

03/12/11 09:46 (изменено)

Форум: IPB 2.3.6

 

Мод: "Последние темы", скаченные с сайта

 

Вопрос:

Установил данный мод с небольшими изменениями. Все работает отлично, но хочется чтобы в данном моде с названиями тем выводились и страницы тем, т.е. как выводятся при выводе списка тем.

post-35412-0-41333300-1299923077_thumb.jpg

Не могли бы подсказать где в каком месте (название файла и функции) идет генерация списка страниц тем. Догадываюсь, что скорее всего где-то в файлах: boards.php или forums.php, но сам никак не разберусь что-то.

 

 

Прошу заранее прощения, если тему уже была, но поиск ничего не дал.

 

Код файла, где идет генерация списка последних тем (sources/action_public/Boards.php)

 

$top_data = array();

               $cids = ','.$this->ipsclass->my_getcookie('collapseprefs').',';
               if (strstr($cids, ',top_xx,'))
               {
                       $top_data['fo'] = 'show';
                       $top_data['fc'] = 'none';

               }
               else
               {
                       $top_data['fo'] = 'none';
                       $top_data['fc'] = 'show'; 
               }

	function tt($yer,$veri){
		list($a1,$b1)=@mysql_fetch_row(mysql_query("SELECT prefix, suffix FROM ibf_groups WHERE g_id='$yer'"));
		return "$a1"."$veri"."$b1";
	}
	$this->ipsclass->DB->query("SELECT * FROM ibf_members WHERE `posts` > 0 ORDER BY `posts` DESC LIMIT 0,".$statnum);
	$TPosts="";

	function tt2($vr2){
		list($grp)=@mysql_fetch_row(mysql_query("SELECT mgroup FROM ibf_members WHERE name='$vr2'"));
		list($a2,$b2)=@mysql_fetch_row(mysql_query("SELECT prefix, suffix FROM ibf_groups WHERE g_id='$grp'"));
		return "$a2".$vr2."$b2";
	}

	$this->ipsclass->DB->query("SELECT * FROM ibf_topics ORDER BY views DESC LIMIT 0,".$statnum);
	$TView="";
	while($tview=$this->ipsclass->DB->fetch_row()){
		$TView.="<tr><td width='70%'>";
		$TView.="<img src='http://ipbskins.ru/forum/public/style_images/1/lastpost.gif' border='0' hspace=3 alt='{$this->ipsclass->lang['tt_golast']}'  title='{$this->ipsclass->lang['tt_golast']}'/>";
		$TView.="<b><a href='index.php?act=ST&f={$tview['forum_id']}&t={$tview['tid']}&view=getlastpost'>{$tview['title']}</b></a> [{$this->ipsclass->lang['hits']}: {$tview['views']}]";
		$TView.="</td><td align='right' width='30%'>";
		$vr2=tt2($tview[last_poster_name]);
		$TView.="<a href='index.php?showuser={$tview['last_poster_id']}'>$vr2</a>";
		$TView.="</td></tr>";
	}

	$this->ipsclass->DB->query( "SELECT * FROM ibf_topics ORDER BY last_post DESC LIMIT 0,".$statnum);
	$ToNew="";
	while($tonew=$this->ipsclass->DB->fetch_row()){
		$ToNew.="<tr><td width='70%'>";
		$ToNew.="<img src='style_images/1/newpost.gif' border='0' alt='{$this->ipsclass->lang['tt_gounread']}' title='{$this->ipsclass->lang['tt_gounread']}' hspace=2 />";
		$ToNew.="<b><a href='index.php?act=ST&f={$tonew['forum_id']}&t={$tonew['tid']}&view=getlastpost'>{$tonew['title']}</b></a> [{$this->ipsclass->lang['replies']}: {$tonew['posts']}]";
		$ToNew.=", [".date("d.m.Y, H:i" ,$tonew['last_post'])."]";
		$ToNew.="</td><td align='right' width='30%'>";
		$vr2=tt2($tonew[last_poster_name]);
		$ToNew.="<a href='index.php?showuser={$tonew['last_poster_id']}'>$vr2</a>";
		$ToNew.="</td></tr>";
	}
	$this->output = str_replace( "<!-- STATPANEL -->" , $this->ipsclass->compiled_templates['skin_boards']->Top_XX_Stats($TPosts,$TView,$ToNew,$top_data) , $this->output );

Изменено пользователем Zhelezaka

Поделиться сообщением


Ссылка на сообщение

Предположу что нужное вам находится в файле sources/action_public/forums.php, функция parse_data

 

P.S. код в вашем примере ужасный))

Поделиться сообщением


Ссылка на сообщение
03/12/11 19:59 (изменено)

Пасиба, буду смотреть.

 

Этот код не мой... я же писал

Установил данный мод с небольшими изменениями.

А код и правду ужасный, там только на вывод 15-ти тем 62 запроса - ужас.

после переделки

$top_data = array();

               $cids = ','.$this->ipsclass->my_getcookie('collapseprefs').',';
               if (strstr($cids, ',top_xx,'))
               {
                       $top_data['fo'] = 'show';
                       $top_data['fc'] = 'none';

               }
               else
               {
                       $top_data['fo'] = 'none';
                       $top_data['fc'] = 'show'; 
               }

	$TPosts="";

	$Topics_ar = array();
	$i = 0;
	$this->ipsclass->DB->query("SELECT tid, title, forum_id, posts, views, last_poster_name, last_poster_id FROM ibf_topics ORDER BY last_post DESC LIMIT 0,".$statnum);
	while($tonew=$this->ipsclass->DB->fetch_row()){
		$Topics_ar[$i] .= '<td class="row2">';
		$Topics_ar[$i] .= "<img src='style_images/1/newpost.gif' border='0' alt='{$this->ipsclass->lang['tt_gounread']}' title='{$this->ipsclass->lang['tt_gounread']}' hspace=2 />";
		$Topics_ar[$i] .= "<b><a href='index.php?act=ST&f={$tonew['forum_id']}&t={$tonew['tid']}&view=getlastpost'>{$tonew['title']}</b></a> ";
		$Topics_ar[$i] .= "[".date("d.m.Y, H:i" ,$tonew['last_post'])."]";
		$Topics_ar[$i] .= "</td>";
		$Topics_ar[$i] .= '<td class="row1" align="center">'.$tonew['posts'].'</td>';
		$Topics_ar[$i] .= '<td class="row1" align="center"><a href="index.php?showuser='.$tonew['last_poster_id'].'">'.$tonew['last_poster_name'].'</a></td>';
		$i++;
	}

	$this->ipsclass->DB->query("SELECT tid, title, forum_id, posts, views, last_poster_name, last_poster_id FROM ibf_topics ORDER BY views DESC LIMIT 0,".$statnum);
	while($tonew=$this->ipsclass->DB->fetch_row()){
		$Topics_ar[$i] .= '<td class="row2">';
		$Topics_ar[$i] .= "<img src='style_images/1/newpost.gif' border='0' alt='{$this->ipsclass->lang['tt_gounread']}' title='{$this->ipsclass->lang['tt_gounread']}' hspace=2 />";
		$Topics_ar[$i] .= "<b><a href='index.php?act=ST&f={$tonew['forum_id']}&t={$tonew['tid']}&view=getlastpost'>{$tonew['title']}</b></a> ";
		$Topics_ar[$i] .= "[".date("d.m.Y, H:i" ,$tonew['last_post'])."]";
		$Topics_ar[$i] .= "</td>";
		$Topics_ar[$i] .= '<td class="row1" align="center">'.$tonew['views'].'</td>';
		$Topics_ar[$i] .= '<td class="row1" align="center"><a href="index.php?showuser='.$tonew['last_poster_id'].'">'.$tonew['last_poster_name'].'</a></td>';
		$i++;
	}

	$Topics = '';
	for($i = 0, $j = 0, $k = 10; $i<count($Topics_ar); $i++)
	{
		if(!($i % 2))
		{
			$Topics .= '<tr>'.$Topics_ar[$j];
			$j++;
		}
		else
		{
			$Topics .= $Topics_ar[$k].'</tr>';
			$k++;
		}
	}


	$TView = '';
	$this->output = str_replace( "<!-- STATPANEL -->" , $this->ipsclass->compiled_templates['skin_boards']->Top_XX_Stats($TPosts,$Topics,$top_data) , $this->output );


Изменено пользователем Zhelezaka

Поделиться сообщением


Ссылка на сообщение

Мод уг, что переделанный что не переделанный. :) ТС, ваша переделка пугает ничуть не меньше чем сам оригинал. Особенно сильно отличились с циклом for. Я так понимаю первая часть это новые сообщения, а вторая - просмотры? Нда, хардкоде.

 

Как вариант, собрать массив last_post, views и top_members, и уже в шаблоне foreach'ом перебирать. Все равно быстрее и понятнее будет чем сейчас. И нафига столько запросов когда можно обойтись тремя:

1. 'select' => '*', from => 'topics', 'where' = 'approved=1', 'order' => 'last_post DESC', 'limit' => array( $limit );
2. 'select' => '*', from => 'topics', 'where' = 'approved=1', 'order' => 'views DESC', 'limit' => array( $limit );
3. 'select' => '*', from => 'members', 'order' => 'posts DESC', 'limit' => array( $limit );

 

По сабжу. Нечто подобное делал L-7 с нумерации каждой страницы темы - page titles. Но лучше оставить так как есть. Гкода тут и так хватает.)))

Поделиться сообщением


Ссылка на сообщение
03/12/11 23:48 (изменено)
нафига столько запросов когда можно обойтись тремя:

Ну если внимательно глянуть, то у меня их вообще два ;)

 

Особенно сильно отличились с циклом for.

это для подсчета и расстановки тэгов в нужном порядке

 

Как вариант, собрать массив last_post, views и top_members, и уже в шаблоне foreach'ом перебирать.

гмм.. ну можно передавать просто массив данных, а в шаблон перенести код по формированию самой таблицы

 

Нечто подобное делал L-7 с нумерации каждой страницы темы - page titles.

пасиба за наводку

Изменено пользователем Zhelezaka

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...