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

Все темы пользователя


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

Добрый день! :)

У меня есть план для одной модификации ;) , но я не знаю как ее осуществить в полной мере :) ! У меня лишь одни наброски :) (((( Может мне кто-то поможет? :D

Мод подразумевается под 1.3 Final

Смысл:

1) В профиле пользователей в Мемберлисте будет показываться сколько тем создал этот юзер

2) В профиле рядом со ссылкой Найти все сообщения этого пользователя сделать ссылку Найти все темы этого пользователя

3) В мемберлисте добавить ф-цию сортировки пользователей по кол-ву тем

4) Если возможно сделать Лучших авторов по количеству тем , на подобие Лучшие 10 авторов

 

3 пункт у меня сделан:

======================

Открыть lang/*/lang_profile.php

======================

 

Искать:

 

 <?php

$lang = array (

 

 

 

Добавить после:

 

'find_all_topics_start'  => "Найти все темы этого пользователя",

 

============================================

Открыть skin/*/skin_profile.php:

============================================

Искать:

 

<a href='{$info['base_url']}&act=Search&CODE=getalluser&mid={$info['mid']}'>{$ibforums->lang['find_posts']}</a> |

 

Добавить после:

 

<a href='{$info['base_url']}&act=Search&CODE=getalluser3&mid={$info['mid']}'>{$ibforums->lang['find_all_topics_start']}</a> |

 

======================

Открыть /sources/Search.php

======================

Искать:

 

case 'getalluser':
  $this->get_all_user();
  break;

 

Добавить после:

 

case 'getalluser3':
  $this->get_all_user3();
  break;

 

Искать:

 

function get_new_posts()

 

Добавить выше:

 

   function get_all_user3() {
global $ibforums, $DB, $std, $HTTP_POST_VARS, $print;

//------------------------------------
// Do we have flood control enabled?
//------------------------------------

if ($ibforums->member['g_search_flood'] > 0)
{
 $flood_time = time() - $ibforums->member['g_search_flood'];

 // Get any old search results..

 $DB->query("SELECT id FROM ibf_search_results WHERE (member_id='".$ibforums->member['id']."' OR ip_address='".$ibforums->input['IP_ADDRESS']."') AND search_date > '$flood_time'");

 if ( $DB->get_num_rows() )
 {
  $std->Error( array( 'LEVEL' => 1, 'MSG' => 'search_flood', 'EXTRA' => $ibforums->member['g_search_flood']) );
 }
}

$ibforums->input['forums'] = 'all';

   $ibforums->input['nav']	= 'lv';

$forums = $this->get_searchable_forums();

$mid	= intval($ibforums->input['mid']);

//------------------------------------
// Do we have any forums to search in?
//------------------------------------

if ($forums == "")
{
 $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_search_forum') );
}

if ($mid == "")
{
 $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_search_results' ) );
}

//------------------------------------------------
// Get the topic ID's son store dat shit
//------------------------------------------------

$DB->query("SELECT tid FROM ibf_topics WHERE approved <> 0 AND forum_id IN($forums) AND starter_id=$mid");

$max_hits = $DB->get_num_rows();

$topics  = "";

while ($row = $DB->fetch_row() )
{
 $topics .= $row['tid'].",";
}

$DB->free_result();

$topics  = preg_replace( "/,$/", "", $topics );

//------------------------------------------------
// Do we have any results?
//------------------------------------------------

  if ($topics == "")
{
 $std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_search_results' ) );
}

//------------------------------------------------
// If we are still here, store the data into the database...
//------------------------------------------------

$unique_id = md5(uniqid(microtime(),1));

$str = $DB->compile_db_insert_string( array (
		 'id'		 => $unique_id,
		 'search_date'=> time(),
		 'topic_id'   => $topics,
		 'topic_max'  => $max_hits,
		 'sort_key'   => $this->sort_key,
		 'sort_order' => $this->sort_order,
		 'member_id'  => $ibforums->member['id'],
		 'ip_address' => $ibforums->input['IP_ADDRESS'],
		 )		);

$DB->query("INSERT INTO ibf_search_results ({$str['FIELD_NAMES']}) VALUES ({$str['FIELD_VALUES']})");

$print->redirect_screen( $ibforums->lang['search_redirect'] , "act=Search&nav=gr&CODE=show&searchid=$unique_id&search_in=posts&result_type=topics" );
exit();

}

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

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

$DB->query("SELECT tid FROM ibf_topics WHERE approved <> 0 AND forum_id IN($forums) AND starter_id=$mid");

 

Ну так вот, так делать НЕЛЬЗЯ, хотя это и работает. Слишком уж афигенская нагрузка идёт на сервер, следует отКЭШировать результаты в отдельную таблицу (или отдельные поля в ibf_members), КЭШ соответсвенно обновлять при соответствующих действиях пользователя (например создание темы) или модератора (например удаление сообщения).

 

Что, касается того, что я "зажрался" - я правда перевожу порядка 800Кб информации вручную с одного движка на другой, попутно правля грамматику и мне неясно, почему я должен сделать что-либо для Вам бесплатно, отвлёкшись от своего портала.

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

Destruction

Я вам не хамил, я просто высказал свое мнение! ;) За что хочу извиниться публично, так сказать!

И еще вы тут много слов сказали но ничего на деле не показали... Раз вы так хорошо в этом понимаете, то почему вы просто не дадите то на что это скорректировать надо и все! :D

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

Никто за Вас делать кажется не собирается.

 

Ну чтож, если, что я впринципе всегда готов помочь советом - пишите, будут проблемы - спрашивайте, я подскажу.

 

И главное - КЭШируйте результат !

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

  • 2 недели спустя...

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

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

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

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

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

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

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

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

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

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

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