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

[+] 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

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

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

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

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

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

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

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

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

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

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

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

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