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

Быстрое переключение между пользователями


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

и руки как всегда не доходят.

 

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

 

Это интересно. Например?

 

Есть такой глюк, что если отправляются письма-подтверждения по прилинковке, то отправитель его - якобы юзер с id =1 (только всё равно я это поотключал)

 

С этим проблемы :D. Глюки я не записывала, поэтому сейчас так и не скажу. Вот если только ткнут - вспомню. Ну, да это я исправила, что отправлялось с id=1. Там были еще какие-то. Ну и я перетащила все в языковые файлы тексты. Не люблю лазить по коду, чтобы потом заменить слова, если мне вдруг разонравилось их словосочетание.

 

Да, вот кстати, вспомнилось. То от чего я так и не смогла избавиться. Хотя, может в оригинале для 1.3 там все нормально было. Когда челу приходит письмо, то в его Личных данных при открытии слева пишется все то же число писем, что и было до этого письма. То есть, присланные письма почему-то не учитываются. Ну, может я конечно не там пыталась приплюсовывать значение ;). Может кто подскажет тогда где хранится счетчик писем в папке входящих? Я полагала что в таблице мемберсов.

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

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

Эммм... %) Это изврат как по мне%)) Слишком много времени лишнего будет уходить в пустую. Хотя, может ты и прав. Но факт остается фактом, что ошипка есть, а ее не должно быть, чтобы было все хорошо.

 

Кстати, а ты не решал вопрос относительно голосования? нужно как-то придумать,чтобы слинкованые акки могли голоовать только один раз. А то выходит, что один чел может голосовать сразу несколько раз...

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

А на что время-то? Добавить одну строчку в ibf_mlinks

Про голосовалки - не стоит заморачиваться. Вобще ничего кроме редактирования не нужно :D

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

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

Сделал возможность редактировать и удалять посты своих мультов как свои собственные.

Если мод вобще кому-то интересен, напишите сюда, и заодно в ПМ.

А то просто так писать ленно :D

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

Ага. Ну тогда пойду смотреть как у меня там.

 

===

Надеюсь ничего не забыл. Делайте бек-апы файлов.

 

Moderate.php

 

Найдём

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

После добавим

//MUA
$DB->query("SELECT * FROM ibf_mlinks WHERE mid='".$ibforums->member['id']."'");
while($m = $DB->fetch_row())
{
$nlid[] = "{$m['lid']}"; //массива id мультов юзера
}
//MUA

Далее идёт код

		$DB->query("SELECT pid,attach_file, author_id, attach_id, post_date, new_topic from ibf_posts WHERE forum_id='".$this->forum['id']."' AND topic_id='".$this->topic['tid']."' and pid='".$ibforums->input['p']."'");
	if ( ! $post = $DB->fetch_row() )
	{
		$this->moderate_error();
	}

	$passed = 0;

	if ($ibforums->member['g_is_supmod'] == 1)
	{
		$passed = 1;
	}
	else if ($this->moderator['delete_post'] == 1)
	{
		$passed = 1;
	}
	else if ( ($ibforums->member['g_delete_own_posts'] == 1) and ( $ibforums->member['id'] == $post['author_id'] ) )
	{
		$passed = 1;
	}
	else
	{
		$passed = 0;
	}

Добавим после него

//MUA
if (count($nlid) !== 0) {		
foreach($nlid as $val)
{
if ( ($ibforums->member['g_delete_own_posts'] == 1) and ($val == $post['author_id'] ) )
	{
		$passed = 1;
	}
}
}
//MUA

 

В Topics.php Найдём

		if ( $ibforums->input['t'] < 0  )
	{
		$std->Error( array( LEVEL => 1, MSG => 'missing_files') );
	}


	//-------------------------------------
	// Get the forum info based on the forum ID,
	// get the category name, ID, and get the topic details
	//-------------------------------------

После добавим

$names=""; //переменная массива имён


$names.= "<option value='{$ibforums->member['name']}'> </option>"; //Первое имя - основной акк

$DB->query("SELECT * FROM ibf_mlinks WHERE mid='".$ibforums->member['id']."'");


while($m = $DB->fetch_row())
{
$names.= "<option value='{$m['name']}'>{$m['name']}</option>";
$nlid[] = "{$m['lid']}"; //массива id мультов юзера
}

Похожий текст (без nlid), можно найти ниже, если мульты работают в топике. Теперь он там будет не нужен. Стираем его.

 

Далее, везде где вызывается фун-ция edit_button и delete_button дописываем новый параметр.

У меня это так

Найти

			$row0['edit_button']   = $this->edit_button($row0['pid'], $poster0, $row0['post_date']);

Заменить

$row0['edit_button']   = $this->edit_button($row0['pid'], $poster0, $row0['post_date'], $nlid);

Найти

$row['delete_button'] = $this->delete_button($row['pid'], $poster);

Заменить

$row['delete_button'] = $this->delete_button($row['pid'], $poster, $nlid);

Найти

$row['edit_button']   = $this->edit_button($row['pid'], $poster, $row['post_date']);

Заменить

$row['edit_button']   = $this->edit_button($row['pid'], $poster, $row['post_date'], $nlid);

Найти

$row['edit_button']   = $this->edit_button($row['pid'], $poster, $row['post_date']);

Заменить

$row['edit_button']   = $this->edit_button($row['pid'], $poster, $row['post_date'], $nlid);

Найти

function delete_button($post_id, $poster)

Заменить

function delete_button($post_id, $poster, $nlid)

Найти в этой функции

$button = "<a href=\"java script:delete_post('{$this->base_url}act=Mod&CODE=04&f={$this->forum['id']}&t={$this->topic['tid']}&p={$post_id}&st={$ibforums->input[st]}&auth_key=".$this->md5_check."')\"><{P_DELETE}></a>";

	if ($ibforums->member['g_is_supmod']) return $button;
	if ($this->moderator['delete_post']) return $button;
	if ($poster['id'] == $ibforums->member['id'] and ($ibforums->member['g_delete_own_posts'])) return $button;

 

После добавить

//А теперь кнопки для мультов
	if (count($nlid) !== 0) {
  foreach($nlid as $val)
{
	if ($poster['id'] == $val and ($ibforums->member['g_delete_own_posts'])) return $button;
}
}
//Конец кнопок для мульт

Найти

function edit_button($post_id, $poster, $post_date)

 

Заменить

function edit_button($post_id, $poster, $post_date, $nlid)

В этой функции Найти

	// Have we set a time limit?

		if ($ibforums->member['g_edit_cutoff'] > 0)
		{
			if ( $post_date > ( time() - ( intval($ibforums->member['g_edit_cutoff']) * 60 ) ) )
			{
				return $button;
			}
			else
			{
				return "";
			}
		}
		else
		{
			return $button;
		}
	}

После добавить

 //А теперь кнопки для мультов
	 if (count($nlid) !== 0) {
	 foreach($nlid as $val)
  {
		if ($poster['id'] == $val and ($ibforums->member['g_edit_posts'])) //if2
	{

		// Have we set a time limit?

		if ($ibforums->member['g_edit_cutoff'] > 0) //if1
		{
			if ( $post_date > ( time() - ( intval($ibforums->member['g_edit_cutoff']) * 60 ) ) ) //if3
			{
				return $button;
			}
			else
			{
				return "";
			} //endif3
		}
		else
		{
			return $button;
		} //endif1
	} //endif2
} //Заканчиваем foreach
}
//Заканчиваем кнопки для мультов

 

 

post_edit_post.php

 

Найти

if ( ($this->orig_post['author_id'] == $ibforums->member['id']) and ($ibforums->member['g_edit_posts']) )

Перед этим добавить

//MUA
$DB->query("SELECT * FROM ibf_mlinks WHERE mid='".$ibforums->member['id']."'");
while($m = $DB->fetch_row())
{
$nlid[] = "{$m['lid']}"; //массива id мультов юзера
}

 if (count($nlid) !== 0) {
foreach($nlid as $val)
  {

if ( ($this->orig_post['author_id'] == $val) and ($ibforums->member['g_edit_posts']) )
	{
		// Have we set a time limit?

		if ($ibforums->member['g_edit_cutoff'] > 0)
		{
			if ( $this->orig_post['post_date'] > ( time() - ( intval($ibforums->member['g_edit_cutoff']) * 60 ) ) )
			{
				$can_edit = 1;
			}
		}
		else
		{
			$can_edit = 1;
		}
	}  


}
} //Заканчиваем Foreach и редактирование мультов
//MUA

 

Vakhara

А что у тебя за форум? Глянуть можно?

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

Теперь хотелось бы иметь нормальную админ-функцию, по изменению таблицы ibf_mlinks

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

 

Пока, на случай ядерной войны, оставлена та ф-ия по присоединению через ПМ, что стоит по умолчанию.

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

Да, там где

//Первое имя - основной акк

Чтобы поле по умолчанию не было пустым

 

Заменим

$names.= "<option value='{$ibforums->member['name']}'> </option>";

на

$names.= "<option value='{$ibforums->member['name']}'>{$ibforums->member['name']}' </option>";

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

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

PALADIN+

Можешь для не понимающего меня прояснить пару вопросов?

 

Что ты написал?

Нет я понимаю код

Это адаптация под 2.1.* этого http://mods.invisionize.com/db/index.php/f/1304 мода?

Или под другую версию?

 

Какая именно часть от оригинального инстала здесь указанна?

 

У посмотрел.

Нужно сделать sql запросы и что ещё?

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

Что ты написал?

То что парой постов выше - полезные (скорей даже сверхнеобходимые) дополнения к моду для 1.3 на который ты дал ссылку.

Даёт возможность редактировать, удалять посты своих мультов. Без этого мод практически не имеет смысла.

 

Какая именно часть от оригинального инстала здесь указанна?
Только дополнения.

 

Нужно сделать sql запросы и что ещё?
SQL - мелочь. Просто добавляется 1 маленькая таблица в БД. Достаточно долго нужно редактировать исходники. С разными видами формам быстрого ответа есть свои особенности.

Сейчас и в топик на инвизионаиз их запостю.

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

PALADIN+, о, спасибо большое, буду прикручивать.

Наверное надо будет все же собрать все это в кучу потом и оформить как мод пусть и исправленный по 2.1, но все же.

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

  • 6 месяцев спустя...

Возвращаясь к старой теме. Сейчас как раз сижу занимаюсь сбором всего в кучу для версии 2.2 раз уж ее ставить-то буду. Отсюда сразу выплыл вопрос с фичей о быстрой смене Пользователей, которого в старом моде на основе которого здесь все и обсуждалось/дополнялось, не было.

 

Может быть кто поможет. Была бы очень признательна.

Суть такая.

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

  
CREATE TABLE `ibf_mlinks` (
 `id` int(11) NOT NULL auto_increment,
 `mid` int(11) NOT NULL default '0',
 `lid` int(11) NOT NULL default '0',
 `name` text NOT NULL,
 PRIMARY KEY  (`id`)
) TYPE=MyISAM;

 

На форуме в шапке (т.е. чтоб вводилось на каждой странице форума) формируется чекбокс с выпадающим списокм прилинкованых к данному аккаунту юзеров. значения <options> - это id юзеров.

 

Выбрав нужного юзера из списка, мы нажимаем "Перейти" и происходит смена аккаунта. То есть был Вася, стал Петя без ввода логина и пароля.

 

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

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

Кстати я уже здесь писал, что если поставить мод как есть - любой при желании сможет подделать запрос и писать от чьего угодно имени? :D Там по умолчанию вроде бы не стоит проверка.

 

 

Дополнительные функции было б неплохо реализовать. У меня есть 2 неплохие идеи. Но руки ен доходят.

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

Надо проверить про проверку :D Я не помню. Но кажется таки да. Нет там проверки. Но имхо ее добавить вообще не сложно.
Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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

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