Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#26 2007-03-25 06:56:59

hcs
Гость

Re: Friendly URL by hcs --- дружественные ссылки

Если бы ты толком излагал свою мысль, то тебя было бы проще понять.
Насчет обрезания якоря  согласен, регексп чуточку кривоват и код ведет себя немного неправильно, надо такие урлы, которые в оригинальном движке не могут существовать вообще исключать из обработки,буду думать.
А по остальным твоим вопросом моё мнение такое:
Я сделал мод который без проблем ставится на оригинальный punBB и работает так как от него требуется.
Существуют несколько сот модов, меняющих поведение движка произвольно по своему усмотрению, мне прикажете для каждого из них делать изменения в своём? Кроме того я не считаю, что ссылка вида id= &p= #p правильная, потомучто у разных людей могут быть разные количества сообщений на странице и как следствие эти ссылки будут указывать для разных людей в разные места.
Воля каждого администратора оттачивать любые изменения в коде под свои потребности.

#27 2007-03-25 14:27:34

niikto
Гость

Re: Friendly URL by hcs --- дружественные ссылки

hcs что ты? - проблемы то вообще НЕТУ!

смотри: вот что у меня - после дополнения твоего куска кода (тока viewtopic и viewforum заменены на topic и forum):

///hcs friendly url replacment function  
function convert_forum_url(&$text)
{
    global $db, $pun_config;
    
    function replace($query, $pattern, $text) {
        global $db;
        if (preg_match_all($pattern, $text, $regs, PREG_SET_ORDER)) {
            foreach ($regs as $pid) {
                $result = $db->query($query.$pid[1]) or error('Unable execute query for convert url\'s', __FILE__, __LINE__, $db->error());
                if ($result) {
                    $subject = $db->result($result);
                    $pattern = "/(?<=^|\s)".str_replace("/", "\/", str_replace("?", "\?", str_replace(".", "\.", $pid[0])))."\b/";
//                    $text=preg_replace ($pattern, "[url=.$pid[0].]".$subject."[/url]", $text,1);
//            $text=preg_replace ($pattern, "[url={}.$pid[0].{}]".$subject."[/url]", $text,1);
            $text=preg_replace ($pattern, "[url=$pid[0]]".$subject."[/url]", $text,1);
                } 
            }
        }
        return $text;
    }
    
    // Convert viewtopic
    $url = str_replace("/", "\/", str_replace(".", "\.", $pun_config['o_base_url']."/topic.php\?"));
// http://rr.aa.z/forum/topic.php?id=873#p3400
    $pattern = "/(?<=^|\s)".$url."id=([0-9]+)#p[0-9]+\b/";
    $query='SELECT subject FROM '.$db->prefix.'topics WHERE id=';
    $text = replace($query, $pattern, $text);
// http://rr.aa.z/forum/topic.php?pid=3471#p3471
    $pattern = "/(?<=^|\s)".$url."pid=([0-9]+)#p[0-9]+\b/";
    $query='SELECT t.subject FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id = p.topic_id WHERE p.id=';
    $text = replace($query, $pattern, $text);
// http://rr.aa.z/forum/topic.php?id=43
    $pattern = "/(?<=^|\s)".$url."id=([0-9]+)\b/";
    $query='SELECT subject FROM '.$db->prefix.'topics WHERE id=';
    $text = replace($query, $pattern, $text);
    
    // Convert profile
    $url = str_replace("/", "\/", str_replace(".", "\.", $pun_config['o_base_url']."/profile.php\?"));
    $pattern = "/(?<=^|\s)".$url."id=([0-9]+)\b/";
    $query='SELECT username FROM '.$db->prefix.'users WHERE id=';
    $text = replace($query, $pattern, $text);
    
    // Convert viewforum
    $url = str_replace("/", "\/", str_replace(".", "\.", $pun_config['o_base_url']."/forum.php\?"));
    $pattern = "/(?<=^|\s)".$url."id=([0-9]+)\b/";
    $query='SELECT forum_name FROM '.$db->prefix.'forums WHERE id=';
    $text = replace($query, $pattern, $text);

}

ВСЁ!
ТАК ВСЁ РАБОТАЕТ!
все ТРИ вида ссылок!
и ничто никому не мешает.
если даже не будет мода дулбь-урлов - всё равно будет работать и на стандартном форуме.
а других кстате модов меняющих дублирование страниц не знаю.
мод-реврайт не считаю

Добавлено спустя     1 минуту   13 секунд:
p.s.: спасибо за замечание-  постараюсь после нахождения решения - излагать кратче и понятней

#28 2007-05-24 07:36:14

niikto
Гость

Re: Friendly URL by hcs --- дружественные ссылки

вот в этом посте: "Суперкатегории"  видно, что этот мод не умеет работать с модом "Все на одной странице" """

там после конвертации получается: &action=all не при делах.

#29 2007-05-24 08:13:45

hcs
Гость

Re: Friendly URL by hcs --- дружественные ссылки

спасибо, будем посмотреть

#30 2007-06-06 22:29:14

Anna Li
Гость

Re: Friendly URL by hcs --- дружественные ссылки

Кстати могу предложить продолжение идеи по таким дружественным ссылкам.

Только не уверена что её можно реализовать. теоретически вроде выглядит не сложно. Но точно не уверена.

Смысл заключается в следующем:
Очень часто на форумах даются ссылки на другие сайты. Вот эти-то ссылочки и хорошо бы переделать в их текстовый эквивалент по типу "Friendly URL by hcs".

Теоретически это выглядит так: нужно открыть страницу чужого сайта по данной ссылке, прочитать заголовок этой страницы между тегами <title>Заголовок</title> и подставить этот заголовок вместо ссылки...

Вот что-то типа этого:

$dirname = адрес-ссылки-на-другой-сайт;
$f = "$dirname";
    $fc=file($f);
    $file=join("", $fc);
    if (preg_match("/<title.*>(.*)<\/title.*>/isU", $file, $match))
    {
      $title = trim($match[1]);
    }
echo $title;

Т.е. вроде бы всё получается, единственный вопрос который неизвестен - это переменная "$dirname".
Вот тут что-то у меня не получается, или может быть это вообще не возможно сделать?

#31 2007-06-07 04:11:42

hcs
Гость

Re: Friendly URL by hcs --- дружественные ссылки

Это возможно если пхп имеет разрешение открывать файлы удаленно, т.е. запрашивать страницы со стронних серверов.
Вот пример из справки к пхп:

<?php

$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

Для работы в пхп должен быть включен curl

#32 2007-06-29 20:39:06

Anna Li
Гость

Re: Friendly URL by hcs --- дружественные ссылки

Вот форум обнаружила vBulletin:

http://www.evangelie.ru/forum/t24147.html

Там все ссылки переделываются как я говорила. Надо же... идею спёрли ))))))))))))))

#33 2007-08-28 17:17:13

BrokenBrake
Гость

Re: Friendly URL by hcs --- дружественные ссылки

Anna Li пишет:

Там все ссылки переделываются как я говорила. Надо же... идею спёрли ))))))))))))))

Идея хорошая, но сильно утопическая smile Благодаря горе-оптимизаторам сейчас можно такие title встретить, что лучше их не надо вставлять...

#34 2007-08-29 06:13:29

artoodetoo
Гость

Re: Friendly URL by hcs --- дружественные ссылки

почитайте про технологии trackback , pingback. там прочитываются чужие странички с указанных ссылок. все это интересно, но требует дополнительных ресурсов. есть еще проблемы со спамерами. вобщем нафиг нужны эти чужаки!

#35 2008-02-22 17:55:26

coordinator
Гость

Re: Friendly URL by hcs --- дружественные ссылки

Dr.Rom пишет:

По моему ошибка здесь: $text=preg_replace ($pattern, "[url={}.$pid[0].{}]".$subject."[/url]", $text,1);

Только сегодня заметил. Исправления работают.

Подвал доски

Под управлением FluxBB. Хостинг Hostens