Перейти к содержимому


Фотография

Отображение ников удаленных пользователе

Форумы IBResource

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11
Yad86
  • Участники
  • Cообщений: 6

Отправлено

Сиутация:

Был форум на 2.1.7, его закрыли. 

Нам предоставили контент форума - таблицы posts, forums, topics.

Таблицы развернули на 2.3.6, пользователей немногочисленных, восстанавливаем руками через замену ID.

НО. Те кто не вернулся и вряд-ли вернется во всех постах отображаются пустыми учетками, ни ника, ничего.

Можно как-нибудь сделать отображение их ник как у гостей к примеру?

 



bifidokk
  • Участники
  • Cообщений: 91

Отправлено

нужно в выводе топиков в пхпскрипте просто добавить условие, если имени нет, то выводить "гость"



FatCat
  • Клиенты
  • Cообщений: 3 349
  • http://pharm-forum.ru
  • Город:Москва

Отправлено

В таблице ibf_posts есть и айдишник и имя пользователя. В запросе джойнится ibf_members и по айдишнику берется имя пользователя из этой таблицы.

Можно сделать вывод по условию, что если нет айдишника (пользователь удален), выодить имя из таблицы ibf_posts с приставкой "Гость_".

У меня 1.3, там всё решается 1 строчкой кода:

if(!$row['name'])$row['name'] = "Гость_".$row['author_name'];

Сообщение отредактировал FatCat: 15 Август 2017 - 21:32


Yad86
  • Участники
  • Cообщений: 6

Отправлено

В таблице ibf_posts есть и айдишник и имя пользователя. В запросе джойнится ibf_members и по айдишнику берется имя пользователя из этой таблицы.

Можно сделать вывод по условию, что если нет айдишника (пользователь удален), выодить имя из таблицы ibf_posts с приставкой "Гость_".

Беда в том, что IDшник там есть. Нам просто не выгрузили базу пользователей, просто к этому IDшнику никто не привязан. Почистить их нельзя никак, так как постепенно возвращается старый народ и руками вяжем их к старым постам, меняя новый ИД на старый. 



FatCat
  • Клиенты
  • Cообщений: 3 349
  • http://pharm-forum.ru
  • Город:Москва

Отправлено

Отредактировал строчку кода, чтобы имя бралось не по айдишнику, а по отсутствию имени в таблице ibf_members. ЕМНИП: в двушках эти таблицы имеют такое же строение, что и в однушках.



Yad86
  • Участники
  • Cообщений: 6

Отправлено

Отредактировал строчку кода, чтобы имя бралось не по айдишнику, а по отсутствию имени в таблице ibf_members. ЕМНИП: в двушках эти таблицы имеют такое же строение, что и в однушках.

Спасибо) И вдвойне спасибо, если вкратце укажете как это использовать и куда подставить? Я, увы, не программист, а скромный эникей-админ)) 


Сообщение отредактировал Yad86: 19 Август 2017 - 04:23


FatCat
  • Клиенты
  • Cообщений: 3 349
  • http://pharm-forum.ru
  • Город:Москва

Отправлено

У меня другая версия; не могу указать точное место и точный синтаксис вставки в вашей версии движка.

Для вывода сообщение топика делается запрос к таблице ibf_posts; в самом начале обработки результатов запроса и нужно делать вставку кода.


Сообщение отредактировал FatCat: 19 Август 2017 - 20:58


Yad86
  • Участники
  • Cообщений: 6

Отправлено

У меня другая версия; не могу указать точное место и точный синтаксис вставки в вашей версии движка.

Для вывода сообщение топика делается запрос к таблице ibf_posts; в самом начале обработки результатов запроса и нужно делать вставку кода.

А код куда ставим? В шаблон вывода постов?
 



FatCat
  • Клиенты
  • Cообщений: 3 349
  • http://pharm-forum.ru
  • Город:Москва

Отправлено

Нет, не в шаблон. Там, где запрос к БД. У меня в "единичке" это файл Topic.php



Yad86
  • Участники
  • Cообщений: 6

Отправлено

Нет, не в шаблон. Там, где запрос к БД. У меня в "единичке" это файл Topic.php

В двойке также. Я так понимаю, код нужно размещать где-то тут:

else
		{
			//-----------------------------------------
			// It's definitely a guest...
			//-----------------------------------------
			$poster = $this->ipsclass->set_up_guest( $row['author_name'] );
	    	$poster['members_display_name'] = $this->ipsclass->vars['guest_name_pre'] . $row['author_name'] . $this->ipsclass->vars['guest_name_suf'];
			$poster['_members_display_name'] = $this->ipsclass->vars['guest_name_pre'] . $row['author_name'] . $this->ipsclass->vars['guest_name_suf'];
			$poster['custom_fields']		= "";
			$poster['warn_text']			= "";
			$poster['warn_minus']			= "";
			$poster['warn_img']				= "";
			$poster['warn_add']				= "";
			$poster['addresscard']			= "";
			$poster['message_icon']			= "";
			$poster['email_icon']			= "";
			$row['name_css']                = 'unreg';
		}

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


Сообщение отредактировал Yad86: 31 Август 2017 - 00:41


FatCat
  • Клиенты
  • Cообщений: 3 349
  • http://pharm-forum.ru
  • Город:Москва

Отправлено

$poster = $this->ipsclass->set_up_guest( $row['author_name'] );

Перед этой строчкой нужно добавлять условие:

if(!$row['author_name'])$row['author_name'] = $row['name'];

Если это не сработает, нужно искать в каком поле содержится имя удаленного пользователя. Можно посмотреть таким кодом:

if(!$row['author_name']){echo("<pre>");print_r($row);echo("</pre>");die();};

И правильный ключ вставить вместо  'name'. 


Сообщение отредактировал FatCat: 31 Август 2017 - 20:20


Yad86
  • Участники
  • Cообщений: 6

Отправлено

 

$poster = $this->ipsclass->set_up_guest( $row['author_name'] );

Перед этой строчкой нужно добавлять условие:

if(!$row['author_name'])$row['author_name'] = $row['name'];

Если это не сработает, нужно искать в каком поле содержится имя удаленного пользователя. Можно посмотреть таким кодом:

if(!$row['author_name']){echo("<pre>");print_r($row);echo("</pre>");die();};

И правильный ключ вставить вместо  'name'. 

 

Вставка не помогла. Увы, это за гранью моего понимания)) передам все нами тут наговоренное более опытным товарищам.

Спасибо за помощь! 






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных