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

[+] 2.0pb7 - Меняем Логин на Отображаемое имя


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

Хак Меняем Логин на Отображаемое имя для IPB 2.1.х И выше

 

Открываем: /modules/ipb_member_sync.php

Находим в функции on_name_change

// mJournal mod start
	$this->ipsclass->DB->query("SELECT id FROM ibf_jmembers WHERE id='".$id."'");
	$row = $this->ipsclass->DB->fetch_row();
	if ($row['id'] == $id)
	{
		$this->ipsclass->DB->query("UPDATE ibf_jmembers SET name='".$new_name."' WHERE id='".$id."'");
	}
// mJournal mod end

Заменяем на (т.е. закоментируем его)

// mJournal mod start
	/*$this->ipsclass->DB->query("SELECT id FROM ibf_jmembers WHERE id='".$id."'");
	$row = $this->ipsclass->DB->fetch_row();
	if ($row['id'] == $id)
	{
		$this->ipsclass->DB->query("UPDATE ibf_jmembers SET name='".$new_name."' WHERE id='".$id."'");
	}*/
// mJournal mod end

 

Добвить после функции on_name_change

	function on_name_display_change( $id, $new_name )
{
	global $DB, $std, $ibforums;

	//---- START

// mJournal mod start
	$this->ipsclass->DB->query("SELECT id FROM ibf_jmembers WHERE id='".$id."'");
	$row = $this->ipsclass->DB->fetch_row();
	if ($row['id'] == $id)
	{
		$this->ipsclass->DB->query("UPDATE ibf_jmembers SET name='".$new_name."' WHERE id='".$id."'");
	}
// mJournal mod end

	//---- END
}

 

Открываем: /sources/action_admin/member.php

Находим

$this->ipsclass->admin->save_log("Changed Member's Display Name '{$member['members_display_name']}' to '$display_name'");

 

Добавляем ниже

		if ( USE_MODULES == 1 )
	{
		$this->modules->register_class($this);
		$this->modules->on_name_display_change($mid, $display_name );
	}

 

Открываем: /sources/admin/ad_journal_misc.php

Находим

$this->base->DB->query("SELECT id, name, mgroup FROM ibf_members ORDER BY id LIMIT ".$start_user.", ".$pergo);

Заменяем на

$this->base->DB->query("SELECT id, members_display_name as name, mgroup FROM ibf_members ORDER BY id LIMIT ".$start_user.", ".$pergo);

 

Если Вы ставили хак Arhar изменяющий порядок создания Дневников для пользователей, то вам этот шаг делать не надо.

 

Открываем: /journal/journal.php

Находим

$DB->query("SELECT id, name, mgroup FROM ibf_members WHERE id='".$ibforums->input['user']."' LIMIT 1");

Заменяем на

$DB->query("SELECT id, members_display_name as name, mgroup FROM ibf_members WHERE id='".$ibforums->input['user']."' LIMIT 1");

 

В админке форума SQL Management->SQL Toolbox (или из phpMyAdmin) выполняем SQL-запрос:

update ibf_jmembers a SET name = (SELECT b.members_display_name FROM ibf_members b where a.id=b.id)

Этим запросом мы заменим всем пользователям Дневников Ники в Дневника на Отображаемый Ник на Форуме

 

 

 

Дальше шаги для тех кто ставил хак [+] 2.0pb7 - Друзья-Враги на основе всех участников форума

 

Открываем: /journal/dosetup.php

Находим в функции add_friends

		$DB->query("SELECT name, id FROM ibf_members WHERE ".$query);
	$memb = $DB->fetch_row();

Заменям на это

		$DB->query("SELECT members_display_name as name, id FROM ibf_members WHERE ".$query);
	$memb = $DB->fetch_row();

 

Находим в функции add_enemy

		$DB->query("SELECT name, id FROM ibf_members WHERE ".$query);
	$memb = $DB->fetch_row();

Заменям на это

		$DB->query("SELECT members_display_name as name, id FROM ibf_members WHERE ".$query);
	$memb = $DB->fetch_row();

 

Открываем: /journal/journal.php

Находим в функции get_user_friends

			$DB->query("SELECT i.friend_id as id, i.is_super_friend, m.name
					FROM ibf_jfriends i
					LEFT JOIN ibf_members m ON (m.id = i.friend_id)
					WHERE i.member_id='".$this->users['id']."' AND i.is_friend='1'");

Заменям на это

			$DB->query("SELECT i.friend_id as id, i.is_super_friend, m.members_display_name as name
					FROM ibf_jfriends i
					LEFT JOIN ibf_members m ON (m.id = i.friend_id)
					WHERE i.member_id='".$this->users['id']."' AND i.is_friend='1'");

 

Находим в функции get_user_ufriends

			$DB->query("SELECT i.member_id as id, m.name
					FROM ibf_jfriends i
					LEFT JOIN ibf_members m ON (m.id=i.member_id)
					WHERE i.friend_id='".$this->users['id']."' AND i.is_friend='1'");

Заменям на это

			$DB->query("SELECT i.member_id as id, m.members_display_name as name
					FROM ibf_jfriends i
					LEFT JOIN ibf_members m ON (m.id=i.member_id)
					WHERE i.friend_id='".$this->users['id']."' AND i.is_friend='1'");

 

Открываем: /journal/setup.php

Находим в функции page_friends

			$DB->query("SELECT m.id as f_id, m.name as member_name, z.j_title, z.j_access, z.j_comments, z.j_posts FROM ibf_members m LEFT JOIN ibf_jmembers z ON (m.id = z.id) WHERE m.id IN (".implode(', ',array_keys($journal->_cache['u_friends'])).") ORDER BY m.name ASC");

Заменям на это

			$DB->query("SELECT m.id as f_id, m.members_display_name as member_name, z.j_title, z.j_access, z.j_comments, z.j_posts FROM ibf_members m LEFT JOIN ibf_jmembers z ON (m.id = z.id) WHERE m.id IN (".implode(', ',array_keys($journal->_cache['u_friends'])).") ORDER BY m.name ASC");

 

Находим в функции page_enemy

		$DB->query("SELECT j.friend_id as f_id, m.name as member_name, z.j_title, z.j_access, z.j_comments, z.j_posts
				FROM ibf_jfriends j
				LEFT JOIN ibf_members m ON (m.id=j.friend_id) LEFT JOIN ibf_jmembers z ON (m.id = z.id)
				WHERE j.member_id='".$journal->users['id']."' AND j.is_friend='0' ORDER BY m.name ASC");

Заменям на это

		$DB->query("SELECT j.friend_id as f_id, m.members_display_name as member_name, z.j_title, z.j_access, z.j_comments, z.j_posts
				FROM ibf_jfriends j
				LEFT JOIN ibf_members m ON (m.id=j.friend_id) LEFT JOIN ibf_jmembers z ON (m.id = z.id)
				WHERE j.member_id='".$journal->users['id']."' AND j.is_friend='0' ORDER BY m.name ASC");

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

Lera,

// mJournal mod start
	$this->ipsclass->DB->query("SELECT id FROM ibf_jmembers WHERE id='".$id."'");
	$row = $this->ipsclass->DB->fetch_row();
	if ($row['id'] == $id)
	{
		$this->ipsclass->DB->query("UPDATE ibf_jmembers SET name='".$new_name."' WHERE id='".$id."'");
	}
// mJournal mod end

— заменить на:

// mJournal mod start
	/*$this->ipsclass->DB->query("SELECT id FROM ibf_jmembers WHERE id='".$id."'");
	$row = $this->ipsclass->DB->fetch_row();
	if ($row['id'] == $id)
	{
		$this->ipsclass->DB->query("UPDATE ibf_jmembers SET name='".$new_name."' WHERE id='".$id."'");
	}*/
// mJournal mod end

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

  • 1 месяц спустя...

Все получилось.

Правда для отображения собственного "отображаемого имени" в верху страницы(Там где "Привет, ....!")

пришлось поменять в скине журнала (Global--member_bar)

name на members_display_name...

Но если менял било ошибку. Пришлось поменять в skin_global.php, а потом "Загрузить шаблоны из PHP"

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

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

Дополнение к хаку Меняем Логин на Отображаемое имя для того чтобы друзей/врагов можно было заносить как по логину так и по отображаемому имени (касается только тех ктоставил хак [+] 2.0pb7 - Друзья-Враги на основе всех участников форума)

 

Открываем: /journal/dosetup.php

Находим в функции add_friends

$query = "name='".$ibforums->input['mem_name']."'";

Заменям на это

$query = "name='".$ibforums->input['mem_name']."' or members_display_name='".$ibforums->input['mem_name']."'";

 

Находим в функции add_enemy

$query = "name='".$ibforums->input['mem_name']."'";

Заменям на это

$query = "name='".$ibforums->input['mem_name']."' or members_display_name='".$ibforums->input['mem_name']."'";

 

Теперь я думаю вопрос закрыт :D

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

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

А что с версией для 2.3.1? Пытаюсь сделал как тут - файла /journal/journal.php нет, да и

$DB->query("SELECT id, name, mgroup FROM ibf_members WHERE id='".$ibforums->input['user']."' LIMIT 1");

находится в journal/includes/class_journal.php

Дальше для тех кто ставил друзей-врагов, но в этой версии в настройках есть списки друзей и врагов, надо делать дальшейшую инструкцию?

 

ЗЫ: Еще в комментариях ставится отображаемое имя... обновите инструкцию пжаалста...

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

А что с версией для 2.3.1? Пытаюсь сделал как тут - файла /journal/journal.php нет, да и

$DB->query("SELECT id, name, mgroup FROM ibf_members WHERE id='".$ibforums->input['user']."' LIMIT 1");

находится в journal/includes/class_journal.php

Дальше для тех кто ставил друзей-врагов, но в этой версии в настройках есть списки друзей и врагов, надо делать дальшейшую инструкцию?

 

ЗЫ: Еще в комментариях ставится отображаемое имя... обновите инструкцию пжаалста...

/journal/journal.php и journal/includes/class_journal.php - одно и то же. :D

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

А что с версией для 2.3.1? Пытаюсь сделал как тут - файла /journal/journal.php нет, да и

$DB->query("SELECT id, name, mgroup FROM ibf_members WHERE id='".$ibforums->input['user']."' LIMIT 1");

находится в journal/includes/class_journal.php

Дальше для тех кто ставил друзей-врагов, но в этой версии в настройках есть списки друзей и врагов, надо делать дальшейшую инструкцию?

Я же ясно написал что имеется ввиду хак:

[+] 2.0pb7 - Друзья-Враги на основе всех участников форума

ты его ставил? если да, то делай что дальше написано.

 

ЗЫ: Еще в комментариях ставится отображаемое имя... обновите инструкцию пжаалста...

Значит ты не выполнил вот этот sql-запрос

В админке форума SQL Management->SQL Toolbox (или из phpMyAdmin) выполняем SQL-запрос:

SQL
update ibf_jmembers a SET name = (SELECT b.members_display_name FROM ibf_members b where a.id=b.id)

 

Этим запросом мы заменим всем пользователям Дневников Ники в Дневника на Отображаемый Ник на Форуме

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

Выполнил. И в таблице ibf_jmembers содержатся именно отображаемые имена. Но при оставлении комментария упорно пишется логин. Где еще можно рыть?
Ссылка на комментарий
Поделиться на других сайтах

CiD, насколько я понял это поменяет уже существующие каменты. Но новые-то все равно создаются с логином!
Ссылка на комментарий
Поделиться на других сайтах

Форум 2.3.1. Может кому пригодится.

 

После установки мода невозможно выйти - белая страница. Дальнейшие коряги смотреть не стал, похоже форум вообще неадекватно себя ведет.

 

Докладываю, что вот это делать не надо:

Открываем: /modules/ipb_member_sync.php

Находим в функции on_name_change

Код

// mJournal mod start

$this->ipsclass->DB->query("SELECT id FROM ibf_jmembers WHERE id='".$id."'");

$row = $this->ipsclass->DB->fetch_row();

if ($row['id'] == $id)

{

$this->ipsclass->DB->query("UPDATE ibf_jmembers SET name='".$new_name."' WHERE id='".$id."'");

}

// mJournal mod end

 

Заменяем на (т.е. закоментируем его)

Код

 

// mJournal mod start

/*$this->ipsclass->DB->query("SELECT id FROM ibf_jmembers WHERE id='".$id."'");

$row = $this->ipsclass->DB->fetch_row();

if ($row['id'] == $id)

{

$this->ipsclass->DB->query("UPDATE ibf_jmembers SET name='".$new_name."' WHERE id='".$id."'");

}*/

// mJournal mod end

 

 

Добвить после функции on_name_change

Код

function on_name_display_change( $id, $new_name )

{

global $DB, $std, $ibforums;

 

//---- START

 

// mJournal mod start

$this->ipsclass->DB->query("SELECT id FROM ibf_jmembers WHERE id='".$id."'");

$row = $this->ipsclass->DB->fetch_row();

if ($row['id'] == $id)

{

$this->ipsclass->DB->query("UPDATE ibf_jmembers SET name='".$new_name."' WHERE id='".$id."'");

}

// mJournal mod end

 

//---- END

}

 

Автору - решпект, работает как из пушки...

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

  • 1 месяц спустя...

* Не большой фикс связан с тем что когда пользователи сами себе меняют отображаемое имя, то имя журнала не менялось.

 

Открываем: /sources/action_public/usercp.php

Находим

//-----------------------------------------

// Recache forums

//-----------------------------------------

 

$this->ipsclass->update_forum_cache();

 

//-----------------------------------------

// Bounce back

//-----------------------------------------

 

$this->display_name_change( "", $this->ipsclass->lang['dname_change_ok'] );

Добавляем ниже

if ( USE_MODULES == 1 )

{

$this->modules->register_class($this);

$this->modules->on_name_display_change($this->ipsclass->member['id'], $display_name );

}

 

* Небольшой фикс чтобы в кто он-лайн у дневника отображалось верное название (т.е. отображаемое имя пользователя)

 

Открываем: /sources/action_public/online.php

Находим

$this->ipsclass->DB->query("SELECT id, name FROM ibf_members WHERE id IN ($j_string)");

Заменяем на

$this->ipsclass->DB->query("SELECT id, members_display_name as name FROM ibf_members WHERE id IN ($j_string)");
Ссылка на комментарий
Поделиться на других сайтах

Ну вот, допетрил...

берем

/journal/misc/comment_new.php

ищем

$rpost['author_name'] = $ibforums->member['id'] ? $ibforums->member['name'] : $ibforums->input['UserName'];

меняем на

$rpost['author_name'] = $ibforums->member['id'] ? $ibforums->member['members_display_name'] : $ibforums->input['UserName'];

Все, новые комментарии идут с отображаемым именем.

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

Для тех, кто ставил мод Кто читал дневник

 

Файл ./journal/misc/user_blocks.php

найти

$member = $journal->txt_truncate($row['name'],13);

замнить на

$member = $journal->txt_truncate($row['members_display_name'],13);

 

Файл ./journal/misc/list_vizitors.php

найти

		$DB->query("SELECT v.*, m.id, m.name, jm.j_posts, jm.j_title
				FROM ibf_jvizitors

заменить на

		$DB->query("SELECT v.*, m.id, m.members_display_name as name, jm.j_posts, jm.j_title
				FROM ibf_jvizitors

 

Типо всё. =)

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

  • 2 месяца спустя...

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

journal/journal.php

 

Найти

$DB->query("INSERT INTO ibf_jmembers (id,name,mgroup) VALUES ('".$r['id']."','".$r['name']."','".$r['mgroup']."')");

 

и заменить на

$DB->query("INSERT INTO ibf_jmembers (id,name,mgroup) VALUES ('".$r['id']."','".$r['members_display_name']."','".$r['mgroup']."')");

 

 

Чтобы поменять ранее записанные имена нужно выполнить следующий запрос:

update ibf_jmembers a SET name = (SELECT b.members_display_name FROM ibf_members b where a.id=b.id)
Ссылка на комментарий
Поделиться на других сайтах

Помогите, пожалуйста!!!

 

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

 

Картинку прилагаю...

 

Как это подправить???

post-38720-1201774144_thumb.png

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

Saechka

Версии форума IPB и модуля mJournal какие?

 

Это у одного человека так случилось или еще у кого-то так же? Что у него за ник?

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

Да, что-то стормозила сразу написать, прошу прощения!

 

Русская версия IP.Board 2.3.3, поставлен mJournal 2.1 Public Beta 1

 

Ник англ. буквами: Murzilka

 

Насчет остальных проверила - нет, имена видны. Но у участника Murzilka журнал закрыт для просмотра, т.е. его вижу вообще только я, получается... Но имя-то, по идее, все равно ж писаться должно...

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

При попытке выйти из аккаунта со страницы журнала

 

У вас нет доступа к этой странице или функции. Если вы не авторизованы, можете сделать это, используя форму ниже, а затем попробовать снова.

с форума нормально с лог-аутом...

 

тот способ, что описан выше (на первой странице) не дает результата...

версия форума 2.3.1

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

  • 2 недели спустя...
Да, что-то стормозила сразу написать, прошу прощения!

 

Русская версия IP.Board 2.3.3, поставлен mJournal 2.1 Public Beta 1

 

Ник англ. буквами: Murzilka

 

Насчет остальных проверила - нет, имена видны. Но у участника Murzilka журнал закрыт для просмотра, т.е. его вижу вообще только я, получается... Но имя-то, по идее, все равно ж писаться должно...

 

И снова я и снова с той же проблемой...

Помогите, плз!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :D

 

У меня множатся "безниковые" ;)

Опять англ. ник - Jennifer

post-38720-1203342801_thumb.png

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

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

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

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

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

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

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

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

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

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

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

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