Страница 1 из 2

[DEV] PMRead

Добавлено: 17.01.2015 17:03
deadromeo
Название расширения: PMRead
Описание расширения: Расширение позволит администраторам читать личные сообщения пользователей в админпанели.
Язык: ru
pmread.rar

Re: Расширения - это просто!

Добавлено: 17.01.2015 17:08
rxu
Если делаете так global ....., $pagination; то откуда вызов $this->pagination->? Тогда уж просто $pagination->.

Re: Расширения - это просто!

Добавлено: 17.01.2015 17:17
deadromeo
Упс, не до конца код привел, после глобала идет строка

Код: Выделить всё

$this->pagination = $pagination;
Хотел просто с этим моментом разобраться чтоб не тупить впредь, но потратил кучу времени и вариантов и всегда выкидывает указанную выше ошибку

Re: Расширения - это просто!

Добавлено: 17.01.2015 17:20
rxu
deadromeo писал(а):Упс, не до конца код привел
Давайте-ка в отдельную тему, и ссылку на весь код.

Re: Расширения - это просто!

Добавлено: 17.01.2015 17:21
Shredder

Код: Выделить всё

$this->pagination = $phpbb_container->get('pagination');
У меня так.

Re: Расширения - это просто!

Добавлено: 17.01.2015 17:26
Sheer
deadromeo
Смотри как сделано тут https://github.com/AlexSheer/phpbb3.1-K ... module.php

Re: Расширения - это просто!

Добавлено: 17.01.2015 17:28
deadromeo
Ребят, прошу в другую тему, полный код тут - [BETA]PMRead

Добавлено спустя 1 минуту 41 секунду:
Sheer, спасибо, буду глядеть, перелопатил кучу расширений, а вот на ваше не наткнулся

[DEV] PMRead

Добавлено: 17.01.2015 17:26
deadromeo
При выходе стабильной версии сообщение перепишется в нормальный вид, а пока что ....
Вообщем разрабатываю расширения для возможности администраторам читать ЛС пользователей, моральные аспекты так же не трогаем, само расширение имеет только одну отдельную страницу в админке на вкладке Настройки расширений, возникла проблема с пагинацией, конкретно ошибка

Код: Выделить всё

...... mod_fcgid: stderr: PHP Fatal error:  Call to a member function generate_template_pagination() on a non-object in ......./phpbbworld/pmread/acp/pmread_module.php on line 58, referer: ......
Полный код pmread_module.php

Код: Выделить всё

<?php


namespace phpbbworld\pmread\acp;

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
    exit;
}

/**
* @package acp
*/
class pmread_module
{
	protected $request;
	
	protected $config;
	
	protected $pagination;
	
	protected $db;
	
	protected $template;
	
	protected $user;
	
	protected $phpbb_root_path;	

	 public function main($id, $mode)
	{
	global $request, $config, $pagination, $db, $template, $user, $phpbb_root_path;
		$this->request = $request;
		$this->config = $config;
		$this->pagination = $pagination;
		$this->db = $db;
		$this->template = $template;
		$this->user = $user;
		$this->phpbb_root_path = $phpbb_root_path;	
		$this->user->add_lang('acp/common');
		$this->tpl_name = 'acp_pmread';
		$this->page_title = $this->user->lang('PMR');
		$start = $this->request->variable('start', 0);
		$total_count	= 0;
		$per_page		= 10;
		$sql = 'SELECT COUNT(msg_id) as total
			FROM ' . PRIVMSGS_TABLE . '';
		$result = $this->db->sql_query($sql);
		$row = $this->db->sql_fetchrow($result);
		$total_count = $row['total'];
		$this->db->sql_freeresult($result);
		$pagination_url = append_sid("{$this->phpbb_root_path}pmread");
		$this->pagination->generate_template_pagination($pagination_url, 'pagination', 'start', $total_count, $per_page, $start);

		$sql = 'SELECT msg_id, message_subject, message_text, message_time 
			FROM ' . PRIVMSGS_TABLE . '';			
		$result = $this->db->sql_query_limit($sql, $per_page, $start);
		while ($row = $this->db->sql_fetchrow($result))
		{
			$this->template->assign_block_vars('message', array(
			'MSG_ID' => $row['msg_id'],
			'SBJ' => $row['message_subject'],
			'MSGT' => $row['message_text'],
			'DATE' => $user->format_date($row['message_time']),
		));
		}
		
		$template->assign_vars(array(
		    'PMREAD_VERSION'			=> isset($this->config['pmread_version']) ? $this->config['pmread_version'] : '',
			'TOTAL_ITEMS'		=> $this->user->lang('TOTAL_ITEMS', (int) $total_count),
		));
	}
}
?>
Помощи прошу только по пагинации, не нужно прочих комментариев, с этим буду сам разбираться :oops:

Добавлено спустя 7 минут 55 секунд:
Вопрос снят, спасибо Sheer за подсказку, буду дальше доделывать

Re: [DEV] PMRead

Добавлено: 17.01.2015 20:47
deadromeo
Переписал первый пост, прошу вашей критики

Re: [DEV] PMRead

Добавлено: 17.01.2015 20:52
Sumanai
deadromeo писал(а):При просмотре через мобильник в исходном коде появляется <dfn style="display: none;">ID сообщения</dfn>, что это и как оно появляется я не в силах обьяснить (позор мне, может это очевидная вещь)
Очевидно, это добавляет яваскрипт admin.js, строчки

Код: Выделить всё

				if ((text.length && text !== '-') || cell.children().length) {
					if (headers[column] != '') {
						cell.prepend('<dfn style="display: none;">' + headers[column] + '</dfn>');
					}
Нужно для адаптивных таблиц, или типа того. Проблемы тут никакой нету.

Re: [DEV] PMRead

Добавлено: 17.01.2015 21:22
Anvar
Немного не в тему, но всё-же.

Ссылки вида [del] в будущем могут стать битыми.

Не лучше было бы размещать ссылки на страницу, где доступны последние версии?

Re: [DEV] PMRead

Добавлено: 17.01.2015 22:38
deadromeo
Anvar, я слежу за ссылками, меняю их если перезаливаю архивы, при надобности буду размещать ссылки на темы если администрация будет непротив
Sumanai писал(а):Проблемы тут никакой нету.
Дублируется надпись ID сообщения, некрасиво, попробую найти решения

Re: [DEV] PMRead

Добавлено: 17.01.2015 23:00
Sheer
deadromeo
Размещай свое творчество на github, так проще отслеживать изменения, и можно посмотреть код каждого отдельно взятого файла, а не скачивать весь архив целиком.

Re: [DEV] PMRead

Добавлено: 18.01.2015 2:27
xisp
deadromeo писал(а):Дублируется надпись ID сообщения, некрасиво, попробую найти решения
Стилями скрывайте.

Re: [DEV] PMRead

Добавлено: 16.03.2015 17:50
Sergiocharm
Я поставил себе. все нормально, но не хватает фильтрации, каждый раз приодится искать последние сообщения. Сделайте фильтрацию по дате. Спасибо!