Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
kanv1s

IPS Converters - Links - phpBB - разные ссылки [IPB 3.4.6]

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

Добрый день.

 

Ситуация следующая:

После слияния форума на phpbb 3.0.9 c действующим форумов на ipb 3.4.6 никак не получается перенастроить ссылки с ipb форума на phpbb

 

Есть такая ссылка: /forum/viewtopic.php?f=37&t=1852

Тема на ipb доступна по ссылке: /topic/9131

 

В файле viewtopic.php ссылка явно другого формата:

	$row = $DB->buildAndFetch( array( 'select' => 'ipb_id', 'from' => 'conv_link_posts', 'where' => "foreign_id=".intval(ipsRegistry::$request['p'])." AND type='posts' AND app='".$app['app_id']."'" ) );
$topic = $DB->buildAndFetch( array( 'select' => 'topic_id', 'from' => 'posts', 'where' => "pid='".$row['ipb_id']."'" ) );

$registry->getClass('output')->silentRedirect(IPB_URL.'/index.php?showtopic='.$topic['topic_id'].'&view=findpost&p='.$row['ipb_id'], '', TRUE);

 

Были предположения, что дяденькам писавшим это виднее, а всему виной url'ы самого форума (/index.html - IP Content, а сам форум доступен по адресу /index), но стандартизация не помогла.

 

Можете что нибудь посоветовать?

Поделиться сообщением


Ссылка на сообщение

В файле viewtopic.php ссылка явно другого формата:

Это редирект на пост. Для простых ссылок тем редирект находится выше.

А что конкретно не получается настроить? Если старый форум находился в папке /forum/ а прежний находится в корне домена, то нужно:

- либо создать папку /forum/ и закинуть туда файлы,

- либо загрузить файлы в корне форума и в .htaccess после RewriteEngine On добавить реврайт:

 

RewriteRule ^forum/(memberlist|viewforum|viewtopic)\.php $1.php [L]

Поделиться сообщением


Ссылка на сообщение

Ошибка 500.

 

/forum/viewtopic.php?f=37&t=7183 - переходит по такой, а нужно что бы переходил по /viewtopic.php?f=37&t=7183

в htaccess тыкался, не получалось, ошибка 500

Поделиться сообщением


Ссылка на сообщение
в htaccess тыкался, не получалось, ошибка 500

Реврайт немного подправил. Попробуйте еще раз.

 

 

/forum/viewtopic.php?f=37&t=7183 - переходит по такой, а нужно что бы переходил по /viewtopic.php?f=37&t=7183

Так по какой, с /форумом/ или без? Если без форума, тогда ничего добавлять в htaccess не нужно, просто закиньте файлы в корень форума и настройте config.php

Поделиться сообщением


Ссылка на сообщение

Работает. Большое спасибо!!

Поделиться сообщением


Ссылка на сообщение

Обнаружились ссылки на посты вида /viewtopic.php?p=XXXXX#XXXXX - очевидно, для какой-то старой phpBB это было.

 

Но как эта ссылка должна выглядеть для IPB 3.4.x ?

 

/index.php?showtopic=YYYYY&p=XXXXX - не подходит поскольку YYYYY взять негде.

 

phpBB очевидно умела находить топик по одному только посту из него.

А вот как для IPB сделать такую же ссылку - чтобы она вывела топик с постом, не зная номер топика?

Поделиться сообщением


Ссылка на сообщение
01/14/17 23:00 (изменено)
А вот как для IPB сделать такую же ссылку - чтобы она вывела топик с постом, не зная номер топика?

В IPB 3 в стандартном ЧПУ для вывода ссылок на посты в теме используются ссылки вида:

 

forum.ru/topic/1-tema/?p=22

Где 1 - ид темы, tema - транслитное название темы, 22 - ид сообщения.

Изменено пользователем Strategius

Поделиться сообщением


Ссылка на сообщение
Где 1 - ид темы,
Ну вот про это и вопрос - умеет ли IPB находить ID темы самостоятельно?

Ведь по идее ID постов уникальны…

Поделиться сообщением


Ссылка на сообщение

В смысле сам умеет? Ссылку на пост можно получить, нажав на кнопку Поделиться в углу поста. Вид ЧПУ также при желании можно поменять.

Поделиться сообщением


Ссылка на сообщение
Ссылку на пост можно получить, нажав на кнопку Поделиться в углу поста.
Ну а найти то как этот самый пост???

Вот есть у меня только номер поста. Номера топика - нету!

Как мне написать в адресной строке браузера номер поста, чтобы IPBoard вывел топик и этот пост?

Поделиться сообщением


Ссылка на сообщение
Как мне написать в адресной строке браузера номер поста, чтобы IPBoard вывел топик и этот пост?

Никак, и не понимаю, зачем это нужно. Можно упростить вид ЧПУ, чтобы ссылка на тему приняла вид forum.ru/topic/ID

 

admin/applications/forum/extensions/furlTemplates.php

 

Найти

 

'out'           => array( '#showtopic=(.+?)(\#|&|$)#i', 'topic/$1-#{__title__}/$2' ),
'in'            => array( 'regex'   => '#^/topic/(\d+?)-#i',

Заменить на

 

'out'           => array( '#showtopic=(.+?)(\#|&|$)#i', 'topic/$1/$2' ),
'in'            => array( 'regex'   => '#^/topic/(\d+?)(/|$)#i',

Обновить кеш FURL.

Поделиться сообщением


Ссылка на сообщение
Никак, и не понимаю, зачем это нужно.
Это нужно затем что ссылки с внешних ресурсов были сделаны во времена когда у нас было phpBB.

phpBB спокойно сама находит и раздел и топик по одному только ID поста.

Можно вот написать /viewtopic.php?p=XXXXX - и всё будет отлично.

Хотя обычно пишут полную запись - /viewtopic.php?t=YYY&p=XXXXX, но это не обязательно.

 

IPB ведь тоже как и phpBB использует уникальные ID постов для всей базы.

Руками покопавшись в базе - можно узнать по номеру поста - номер топика: SELECT `topic_id` FROM `ibf_posts` WHERE `pid` = XXXXX;

Можно в принципе написать PHP-скрипт для поиска номера топика и формирования команды showtopic…

Но может есть уже готовая возможность???

Поделиться сообщением


Ссылка на сообщение
01/15/17 13:50 (изменено)
Но может есть уже готовая возможность???

Не встречал, но вообще идея интересная.

Изменено пользователем Strategius

Поделиться сообщением


Ссылка на сообщение

Написал вот php-скрипт для имитации /viewtopic.php?p=XXXXX

Но всё-же у меня такое чувство что должен быть какой-то штатный ключ для адресной строки в IPB.

 

<?php

// wrapper viewtopic2showtopic v1.0 © f2065
// Выводит топик с постом по номеру указанного поста.
// 
// Это надо для случаев когда номер поста известен, а номер топика - нет.
// Например для работы со старыми ссылками от phpBB, viewtopic.php?p=XXXXX (без номеров топика).
//
// По сути - скрипт ссылку вида /viewtopic.php?p=XXXXX перенаправляет в /index.php?showtopic=YYYYY&p=XXXXX

include("conf_global.php");

$pid = (int)$_GET['p'];

$dbconn = mysql_connect($INFO['sql_host'], $INFO['sql_user'], $INFO['sql_pass']);
$db = mysql_select_db($INFO['sql_database']);
$object_tid = mysql_query('SELECT topic_id FROM '.$INFO['sql_tbl_prefix'].'posts WHERE pid = '.$pid);
$tid = mysql_result($object_tid, 0);
mysql_close($dbconn);

if (!$tid)
{
header('Content-type: text/html; charset=UTF-8');
echo "Post ID ".$pid." not found in database (or other error).<br>";
echo "<a href='javascript:history.back();'>Return to back page</a>, <a href='index.php'>Goto main page</a>";
}
else
{
header("Location: index.php?showtopic=".$tid."&p=".$pid);
}
exit;

?>

Поделиться сообщением


Ссылка на сообщение
А вот как для IPB сделать такую же ссылку - чтобы она вывела топик с постом, не зная номер топика?

/index.php?app=forums&module=forums&section=findpost&pid=PID

Пример

http://ipbskins.ru/forum/index.php?app=forums&module=forums&section=findpost&pid=100856

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...