Страница 3 из 6
Опыты чайника с экстами
Добавлено: 27 окт 2014, 18:53
Anvar
Надо бы тему соответствующую создать, с полезными извращениями
Как накопится поболее интересных моментов, поделюсь..
Опыты чайника с экстами
Добавлено: 11 ноя 2014, 00:20
Алг
как правильно задать redirect?
Дано
находится в шапке форума сабмит может быть с любой страницы.
В листенере пробую так
Код: Выделить всё
$this->template->assign_var('U_REDIRECT', build_url());
и так
Код: Выделить всё
$this->template->assign_var('U_REDIRECT', urlencode(build_url()));
в обоих случаях получайю искаженный url типа
Есть где-то пример как правильно делать?
п.с. и пожалуй подобную тему надо создать на гуру в разделе для авторов
Опыты чайника с экстами
Добавлено: 11 ноя 2014, 04:57
rxu
Алг писал(а):QR_BBPOST как правильно задать redirect?
В includes/functions.php есть функция redirect(), и есть meta_refresh() для отложенного редиректа.
В склейке постов используется
https://github.com/rxu/posts_merging/bl ... r.php#L191
https://github.com/rxu/posts_merging/bl ... r.php#L227
Опыты чайника с экстами
Добавлено: 11 ноя 2014, 08:18
Алг
rxu писал(а):QR_BBPOST В includes/functions.php есть функция redirect(), и есть meta_refresh() для отложенного редиректа
это нерелевантно для моего вопроса обе функции принимают параметр $path которфй я и хочу сформировать.
по обеим ссылкам вы уходите всегда на viewtopic а аттрибуты командной строки вы имеете в массиве datа. Далее
ловкость рук и никакого мошенствадело техники. Так же точно и я формирую во всех экстах. Тут проблема в том, что мы не знаем куда возврашаться, код стоит в overall_header и активировать его можно с любой страницы, в том числе и кастомной. И мы должны вернуться обязательно в это самое место. То есть все нужные параметы мы извлекаем из $this->user->page, как я поняла, а ф-ция build_url() берёт их и делает конкатенацию. вот только при этом мусорит в командной строке, и опять же из-за обшего вида задачи не знаю, как правильно убирать этот мусор.
Поищу в экстах типа быстрого логина, наверное, должно быть похожее
Отправлено спустя 32 минуты 24 секунды:
возможно тут ответ на мой вопрос
http://www.phpbbguru.net/community/topi ... 5.html#top
Опыты чайника с экстами
Добавлено: 11 ноя 2014, 12:06
Алг
есть экст PayBas/QuickStyle, где автор решает совершенно аналогичную задачу. Есть у него
Код: Выделить всё
<form action="{S_QUICK_STYLE_ACTION}" method="post">
в overall_header и, когда юзер меняет стиль, происходит сабмит и по идее юзер должен возвратиться на ту же страницу, перерисованную в другом стиле.
Код: Выделить всё
$redirect = 'redirect=' . urlencode(str_replace(array('&', '../'), array('&', ''), build_url('style'))); // Build redirect URL
$action = append_sid("{$this->root_path}ucp.$this->phpEx", 'i=prefs&mode=personal&' . $redirect); // Build form submit URL + redirect
$action = preg_replace('/(?:&|(\?))style=[^&]*(?(1)&|)?/i', "$1", $action); // Remove style= param if it exists
$this->template->assign_var('S_QUICK_STYLE_ACTION', $action);
по мне это какие-то танцы с бубном. Прежде всего непонятно зачем перенаправлять на ucp.$this->phpEx, если надо сделать апдейт только одного поля, для чего сначала формировать $redirect с параметром 'style', а потом регулярным выражением убирать параметр 'style' и два перенаправления. Может, я чего не учитываю?
Опыты чайника с экстами
Добавлено: 12 ноя 2014, 00:45
Алг
написала простую функцию без всяких правок ядра. Пока вроде со всех станиц форума и стандартных и кастомных возвращает в то же место
Код: Выделить всё
private function set_back_url()
{
$page = $this->user->page;
if ($page['page_name'] == 'viewforum.php' || $page['page_name'] == 'index.php' ||$page['page_name'] == 'search.php' )
{
return str_replace('&', '&', $this->user->page['page']);
}
if ($page['page_name'] == 'viewtopic.php')
{
$url = str_replace('&', '&', $this->user->page['page']);
return str_replace('amp%3B', '', $url);
}
// Remove 'app.php/' from the page, when rewrite is enabled
if ($this->config['enable_mod_rewrite'] && strpos($page['page_name'] , 'app.' . $this->php_ext . '/') === 0)
{
return str_replace('app.' . $php_ext . '/', '', $this->user->page['page']);
}
return str_replace('&', '&', $this->user->page['page']);
}
возможно, не все варианты учла, в процессе выяснится
а у PayBas/QuickStyle пока можно вернуться только в index.php и viewforum.php, ни с топика, ни с кастомной страницы правильная ссылка не формируется
Опыты чайника с экстами
Добавлено: 16 ноя 2014, 19:24
Алг
У меня снова вопрос об относительных путях. Не знаю баг ли это, но формирование пути в листенере и в контролере даёт разные результаты
Пример: и там и там я формирую одинаковую строку для формирования пути к профилю
Код: Выделить всё
$url = append_sid("{$this->phpbb_root_path}memberlist.$this->php_ext", 'mode=viewprofile&u=' . $user_id);
Разница только в user_id. Оба значения передаются на клиент. Результат можно посмотреть тут
http://chugunok.net/forum_test_3_1/index.php (логин tester, пароль 12345), откройте живой поиск по юзеру, выберите юзера и получите алерт с двумя путяти. Разными. Я понимаю, что это из-за перенаправления, но что-то с этим надо делать? Или просто никогда нельзя будет определять относительные пути на кастомных страницах?
Опыты чайника с экстами
Добавлено: 16 ноя 2014, 19:43
rxu
Алг писал(а):QR_BBPOST откройте живой поиск по юзеру, выберите юзера и получите алерт с двумя путяти.
У меня там живпоиск в Опере вообще не пашет.
Опыты чайника с экстами
Добавлено: 16 ноя 2014, 20:20
Алг
опера 12.16 и опера некст 26.0.1656.8 работает все
какая у вас?
Отправлено спустя 6 минут 57 секунд:
и как именно не пашет?
Опыты чайника с экстами
Добавлено: 17 ноя 2014, 16:44
rxu
Opera 25.0.1614.68, не пашет просто - набираю текст в поле, ничего не происходит.