Пожелания дополнений Event List

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
ostridm
phpBB 2.0.7
Сообщения: 551
Зарегистрирован: 30.03.2012 21:52
Благодарил (а): 20 раз
Поблагодарили: 62 раза

Re: Пожелания дополнений Event List

Сообщение ostridm » 06.08.2015 8:02

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

Аватара пользователя
Пчелкин
phpBB 3.1.9
Сообщения: 9933
Зарегистрирован: 15.01.2010 13:57
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 1313 раз
Поблагодарили: 1289 раз
Контактная информация:

Re: Пожелания дополнений Event List

Сообщение Пчелкин » 06.08.2015 8:31

Скрытый текст
................=
...............=
..............=
.............=
............=
...........=
..........=
.........=
........=
.......=
......=
.....=
....=
...=
Зеленые, зеленые... крокодилы... :lol:
Чеканутый на phpBB до 3.0.Х. HTML - есс, CSS - пол есс, php - чой-то дажеть дедукция не помогла - нуль.

ostridm
phpBB 2.0.7
Сообщения: 551
Зарегистрирован: 30.03.2012 21:52
Благодарил (а): 20 раз
Поблагодарили: 62 раза

Re: Пожелания дополнений Event List

Сообщение ostridm » 06.08.2015 9:07

победил, да.

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14194
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 338 раз
Поблагодарили: 1461 раз
Контактная информация:

Re: Пожелания дополнений Event List

Сообщение rxu » 06.08.2015 9:59

ostridm, никакого плана расстановки событий не может быть в природе, т.к. они должны быть там, где они нужны расширениям, а не там, где их поставят.
Запрос ясен, постараюсь сделать PR.
Изображение

ostridm
phpBB 2.0.7
Сообщения: 551
Зарегистрирован: 30.03.2012 21:52
Благодарил (а): 20 раз
Поблагодарили: 62 раза

Re: Пожелания дополнений Event List

Сообщение ostridm » 06.08.2015 10:07

спасибо

2PiK
phpBB 1.4.2
Сообщения: 69
Зарегистрирован: 06.08.2008 9:18
Благодарил (а): 10 раз
Поблагодарили: 12 раз
Контактная информация:

Re: Пожелания дополнений Event List

Сообщение 2PiK » 06.08.2015 11:24

Нужны события в php файлах, часть 2:

1. В файле search.php есть событие search_modify_param_before перед созданием sql запроса и его параметров для предопределённых вариантов поиска active_topics, unanswered, unreadposts, newposts, egosearch, нужно событие после этого.
Добавить

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

$vars = array('sql', 'search_id', 'show_results', 'l_search_title');
    extract($phpbb_dispatcher->trigger_event('core.search_modify_param_after', compact($vars))); 
перед

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

    // show_results should not change after this       
все параметры, которые участвуют в поиске, передаются по ссылке (например при постраничной навигации), если я использую свои параметры, их так же нужно передавать по ссылке, события для этого нет.
Добавить

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

    $vars = array('u_search');
    extract($phpbb_dispatcher->trigger_event('core.search_modify_search_link', compact($vars))); 
после

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

    $u_search .= ($return_chars != 300) ? '&ch=' . $return_chars : ''; 
2. В файлах /phpbb/search/fulltext_mysql.php, /phpbb/search/fulltext_native.php, /phpbb/search/fulltext_postgres.php в функциях keyword_search, author_search при поиске используется кеширование, в переменную $search_key сохраняется md5 сумма всех параметров поиска, если я использую свои параметры, форум будет выдавать результат только по тем параметрам, которые там были учтены, т.е. мой поиск не будет иметь никакого эффекта, нужно добавить возможность определять свои параметры в этой переменной.
Заменить в 3 файлах, в 2 функциях

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

$search_key = md5(implode('#', array( 
на

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

        $additional_keys=array();
        $vars = array('additional_keys');
        extract($phpbb_dispatcher->trigger_event('core.соответствующее_имя_события', compact($vars)));
        $search_key = md5(implode('#', array(
            serialize($additional_keys), 
sphinx, в файле /phpbb/search/fulltext_sphinx.php немного по другому, при определённых условиях нужна возможность изменения конфигурационного файла сфинкса (т.е. там, где в адм. разделе генерируется его конфигурационный файл) и передачи ему своих параметров при поиске.
Событие для изменения конфигурационного файла - добавить

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

        $vars = array('config_data');
        extract($phpbb_dispatcher->trigger_event('core.search_sphinx_modify_config_data', compact($vars)));
перед

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

        $non_unique = array('sql_query_pre' => true, 'sql_attr_uint' => true, 'sql_attr_timestamp' => true, 'sql_attr_str2ordinal' => true, 'sql_attr_bool' => true); 
для передачи своих параметров добавить

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

        $additional_filters=array();
        $vars = array('type', 'additional_filters');
        extract($phpbb_dispatcher->trigger_event('core.search_sphinx_keywords_main_query_before', compact($vars)));
        if($additional_filters)
        {
            foreach($additional_filters as $field => $value)
            {
                $this->sphinx->SetFilter($field, array($value));
            }
        } 
перед

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

        $search_query_prefix = ''; 
Последний раз редактировалось Sheer 06.08.2015 12:19, всего редактировалось 3 раза.

2PiK
phpBB 1.4.2
Сообщения: 69
Зарегистрирован: 06.08.2008 9:18
Благодарил (а): 10 раз
Поблагодарили: 12 раз
Контактная информация:

Re: Пожелания дополнений Event List

Сообщение 2PiK » 06.08.2015 13:11

Товарищ Sheer, очень большая просьба не править текст сообщения без надобности, код был в бб-кодах, и под спойлерами, зачем нужно менять конфиг на конфигурационный, объединять текст без использования запятых, вы делаете из меня неграмотного человека :cry:
Последний раз редактировалось 2PiK 06.08.2015 13:42, всего редактировалось 1 раз.

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11294
Зарегистрирован: 18.02.2007 19:01
Откуда: Рига, Латвия (страна-недоразумение)
Благодарил (а): 49 раз
Поблагодарили: 2509 раз
Контактная информация:

Re: Пожелания дополнений Event List

Сообщение Sheer » 06.08.2015 13:33

Товарищ 2PiK, спойлеры убирал не я, хотя согласен, что они там ни к чему. Большая просьба использовать bb-код

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

[/b] при размещении php-кода. Использовать конструкции
[icode]Найти - Добавить после - Добавить перед - Заменить на[/icode], как это было принято в стандарте MODX.
[quote="2PiK"][post]468295[/post] товарищ Sheer[/quote]
[off]Предложения начинаются с заглавной, будьте грамотны.[/off]
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

2PiK
phpBB 1.4.2
Сообщения: 69
Зарегистрирован: 06.08.2008 9:18
Благодарил (а): 10 раз
Поблагодарили: 12 раз
Контактная информация:

Re: Пожелания дополнений Event List

Сообщение 2PiK » 06.08.2015 13:41

Вас понял, товарищ Sheer.
Только в первом случае не
нужно событие.
После этого добавить
а
нужно событие после этого.
Добавить

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11294
Зарегистрирован: 18.02.2007 19:01
Откуда: Рига, Латвия (страна-недоразумение)
Благодарил (а): 49 раз
Поблагодарили: 2509 раз
Контактная информация:

Re: Пожелания дополнений Event List

Сообщение Sheer » 06.08.2015 13:52

Fix
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14194
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 338 раз
Поблагодарили: 1461 раз
Контактная информация:

Re: Пожелания дополнений Event List

Сообщение rxu » 08.08.2015 20:34

ostridm писал(а): от тут viewforum_body.html
https://tracker.phpbb.com/browse/PHPBB3-14080
https://github.com/phpbb/phpbb/pull/3820
Изображение

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14194
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 338 раз
Поблагодарили: 1461 раз
Контактная информация:

Re: Пожелания дополнений Event List

Сообщение rxu » 08.08.2015 21:30

2PiK писал(а): // show_results should not change after this 
а может, после $found_more_search_matches = false; нормально будет?
Изображение

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14194
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 338 раз
Поблагодарили: 1461 раз
Контактная информация:

Re: Пожелания дополнений Event List

Сообщение rxu » 08.08.2015 21:48

ostridm писал(а): $sort_by_sql , $sort_key
Надо уточнить - sort_key, или всё-таки s_sort_key, как в core.search_get_posts_data?
Изображение

ostridm
phpBB 2.0.7
Сообщения: 551
Зарегистрирован: 30.03.2012 21:52
Благодарил (а): 20 раз
Поблагодарили: 62 раза

Re: Пожелания дополнений Event List

Сообщение ostridm » 08.08.2015 22:15

$sort_by_sql
$sort_key
$sort_dir

мне нужно иметь возможность исправить ORDER BY clause
$sql .= ' ORDER BY ' . $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC');

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

	
	
			/**
			* Event to modify the SQL query before the topic data is retrieved
			*
			* @event core.search_get_topic_data
			* @var	string	sql_select		The SQL SELECT string used by search to get topic data
			* @var	string	sql_from		The SQL FROM string used by search to get topic data
			* @var	string	sql_where		The SQL WHERE string used by search to get topic data
			* @var	int		total_match_count	The total number of search matches
			* @since 3.1.0-a1
			* @changed 3.1.0-RC5 Added total_match_count
			*/
			$vars = array('sql_select', 'sql_from', 'sql_where', 'total_match_count');
			extract($phpbb_dispatcher->trigger_event('core.search_get_topic_data', compact($vars)));

			$sql = "SELECT $sql_select
				FROM $sql_from
				WHERE $sql_where";
			$sql .= ' ORDER BY ' . $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC');	
	

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14194
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 338 раз
Поблагодарили: 1461 раз
Контактная информация:

Re: Пожелания дополнений Event List

Сообщение rxu » 10.08.2015 23:18

ostridm писал(а): search.php
два события, цель - модификация sql запроса а именно order by clause
2PiK писал(а): Нужны события в php файлах, часть 2:
Из четырех запросов два события фактически дублировались, одно заменялось добавлением новых переменных в старое. В итоге 2 новых добавляем, 1 старое дополняем.

https://tracker.phpbb.com/browse/PHPBB3-14088
https://github.com/phpbb/phpbb/pull/3824
Изображение

Ответить

Вернуться в «Для авторов»