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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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