Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

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

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

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

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

Сообщение ostridm »

в тегах разве можно нарисовать красивые зеленые стрелочки наискосок?
Скрытый текст
это примерно как история о семи перпендикулярных красных линиях, часть из которых зеленые либо прозрачные только с тегами и кодом
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11234
Стаж: 14 лет 2 месяца
Откуда: fotovideoforum.ru
Благодарил (а): 1782 раза
Поблагодарили: 1340 раз
Контактная информация:

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

Сообщение Пчелкин »

Скрытый текст
................=
...............=
..............=
.............=
............=
...........=
..........=
.........=
........=
.......=
......=
.....=
....=
...=
Зеленые, зеленые... крокодилы... :lol:
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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

Сообщение rxu »

ostridm, никакого плана расстановки событий не может быть в природе, т.к. они должны быть там, где они нужны расширениям, а не там, где их поставят.
Запрос ясен, постараюсь сделать PR.
Изображение
2PiK
phpBB 1.4.2
Сообщения: 69
Стаж: 15 лет 7 месяцев
Благодарил (а): 10 раз
Поблагодарили: 12 раз
Контактная информация:

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

Сообщение 2PiK »

Нужны события в 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
Стаж: 15 лет 7 месяцев
Благодарил (а): 10 раз
Поблагодарили: 12 раз
Контактная информация:

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

Сообщение 2PiK »

Товарищ Sheer, очень большая просьба не править текст сообщения без надобности, код был в бб-кодах, и под спойлерами, зачем нужно менять конфиг на конфигурационный, объединять текст без использования запятых, вы делаете из меня неграмотного человека :cry:
Последний раз редактировалось 2PiK 06.08.2015 13:42, всего редактировалось 1 раз.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

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

Сообщение Sheer »

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

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

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

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

Сообщение 2PiK »

Вас понял, товарищ Sheer.
Только в первом случае не
нужно событие.
После этого добавить
а
нужно событие после этого.
Добавить
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

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

Сообщение Sheer »

Fix
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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

Сообщение rxu »

ostridm писал(а): от тут viewforum_body.html
https://tracker.phpbb.com/browse/PHPBB3-14080
https://github.com/phpbb/phpbb/pull/3820
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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

Сообщение rxu »

2PiK писал(а): // show_results should not change after this 
а может, после $found_more_search_matches = false; нормально будет?
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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

Сообщение rxu »

ostridm писал(а): $sort_by_sql , $sort_key
Надо уточнить - sort_key, или всё-таки s_sort_key, как в core.search_get_posts_data?
Изображение
ostridm
phpBB 2.0.7
Сообщения: 552
Стаж: 11 лет 11 месяцев
Благодарил (а): 20 раз
Поблагодарили: 62 раза

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

Сообщение ostridm »

$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
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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

Сообщение rxu »

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
Изображение
Ответить

Вернуться в «Для разработчиков»