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

function attach_get_perms - где искать?


Vakhara

Вопрос

Есть такой мод Private Topic by ID, но он под 2.1 версию. Я попыталась перетащить его в 2.3 вроде как относительно даже работает. Тока некоторые косяки бы выловить. Один из них: в файле ./sources/sql/mysql_queries.php нет больше

	function attach_get_perms( $a )
{
	return "SELECT p.pid, p.topic_id, t.forum_id
				FROM ".SQL_PREFIX."posts p
				  LEFT JOIN ".SQL_PREFIX."topics t ON ( p.topic_id=t.tid )
				WHERE p.pid={$a['apid']}";
}

Следовательно выполнить пункт

Open: ./sources/sql/mysql_queries.php

Find: [ In function attach_get_perms( $a ) ]

return "SELECT p.pid, p.topic_id, t.forum_id

Add after:

, t.starter_id, t.topic_read_perms

Не могу :D

 

Знаю, что переписан способ работы с атачами, но мне к сожалению это ничего не говорит :)

Скажите, плиз, где искать сей запрос ;)

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

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

  • 0

посмотри, что-то очень похожее нахожу просматривая процесс обработки файла вплоть до

./sources/classes/attach/plugin_post.php

		$this->ipsclass->DB->build_query( array( 'select'   => 'a.*',
											 'from'	 => array( 'attachments' => 'a' ),
											 'where'	=> "a.attach_rel_module='".$this->module."' AND a.attach_id=".$attach_id,
											 'add_join' => array( 0 => array( 'select' => 'p.pid, p.topic_id, p.queued',
																			  'from'   => array( 'posts' => 'p' ),
																			  'where'  => "p.pid=a.attach_rel_id",
																			  'type'   => 'left' ),
																  1 => array( 'select' => 't.forum_id',
																			  'from'   => array( 'topics' => 't' ),
																			  'where'  => "t.tid=p.topic_id",
																			  'type'   => 'left' ) )

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

 

потом, то что предлагается сделать

Open: ./sources/action_public/misc/attach.php

 

Find: [ In function show_topic_attachments() ]

 

надо делать в ./sources/classes/attach/class_attach.php

 

после

		//-----------------------------------------
	// Got a reply?
	//-----------------------------------------

	if ( $attach === FALSE OR ! is_array( $attach ) )
	{
		$this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'no_permission' ) );
	}

пробовать делать

		if( $attach['topic_read_perms'] && $attach['topic_read_perms'] != '*' )
	{
		if( ( $this->ipsclass->member['id'] != $attach['starter_id'] ) && ! preg_match("/(^|,)".$this->ipsclass->member['id']."(,|$)/", $attach['topic_read_perms']) )
		{
			$this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'no_permission' ) );
		}
	}

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

  • 0

Спасибо большое. По крайней мере ошибка с атачами устранена :D

 

Все остальное вроде как прописывается в те места, куда и указано. Правда, не работает почему-то во время создания новой темы сохранение значений (вводимые номера), а вот при редактировании работает.

 

Буду искать. Если не найду опять пристану %).

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

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

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

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

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

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

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

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

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

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

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

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