Домашн » Концы Blog

Как извлечь форум и keyword темы от url bbpress

Я пытался серия softwares форума (вокруг 5 до теперь) от последней пятницы и испытывал BBPRESS вчера. Новое version9.x имеет серию улучшения над своим вариантом 8.x но одной вещью, котор я нашел общее в both of them

  • Keyword «форума» был приложен когда вы accesss любая форум-директория http://sitename.com/ форума< например>/форум/<кусок металла форума>
  • keyword «темы» также был приложен для каждого сделанного столба например форум-директорией< http://sitename.com>/тема/<фактическ кусок металла темы>

Теперь я понимаю почему оба keywords reqired но снова от пункта SEO, котор он не имеет никакую смысль если кто-нибудь не побежать форум на теме «форумов». Следующей вещью, котор я сделал был взгляд вокруг для hack и удачливейше на этом столбе было разрешение , только фактическое plugin было поддержано. Я скопировал Кодего, котор дали там и испытанные вокруг и был успешно.

Прежде чем я начинаю, я как раз испытывал вокруг при Кодий, котор дали memebers over there. Так испытайте его прежде чем вы используете его. И сверх того я не поддерживаю его по мере того как я не сделал его и cant делает его то.

Я сделал plugin от взаимны уступки Кодего Кодий re-write для архивов .htaccess. Здесь будет как они смотрят

PLUGIN: (Принято от соединения форума)

<? php
/*
Plugin имя: Извлекайте форум темы
Plugin URI: http://bbpress.org/
Описание: Позволяет для того чтобы извлечь форум и слово темы в url
Автор: Ashish Mohta
Вариант: 1.0
Автор URI: http://www.technospot.net/blogs/
*/

my_get_forum_link_filter функции ($link, $forum_id = 0) {
//retrieve предмет форума
$forum = get_forum (get_forum_id ($forum_id));

//check для rewrite
$rewrite = bb_get_option (mod_rewrite `');
если ($rewrite) {, то
rewrite //what вроде там? колонка «forum_slug» пользы куска металла, еще колонка будет «forum_id»
$column = (===' куски металла' $rewrite)? (' forum_slug'): (' forum_id');

// измените /forum/pets-discussions в /pets-discussions
// эта работа только если модуль rewrite, то modded!
// и эта работа только если slugged имя, то не будет НИКОГДА
// будьте reserved словом как «rss» или «bb-изображения»
// and this is achieved by a filter on bb_slug_sanitize
$link = str_replace(’forum/’ . $forum->$column , $forum->$column, $link);
}
return $link.”/”; // Very important line! // Added extra slash :Ashish
}

add_filter( ‘get_forum_link’, ‘my_get_forum_link_filter’ );

function my_get_topic_link_filter( $link, $topic_id = 0) {
//retrieve the topic object
$topic = get_topic( get_topic_id( $topic_id ));

//retrieve the forum object that is the topic container
$forum = get_forum( get_forum_id( $topic->forum_id ));

//check for rewrite
$rewrite = bb_get_option( ‘mod_rewrite’ );
if ( $rewrite ) {
//what kind of rewrite there is? slug use “forum_slug” column, else the column is “forum_id”
$column = ($rewrite === ’slugs’)?(’forum_slug’):(’forum_id’);

//create the “forum/pets-discussions” chunk to show the hierarchical relation forum->topic
$forum_nice_uri = “forum/” . $forum->$column . “/”;

//attach the hierarchical chunk to the link
$link = str_replace(bb_get_option(’uri’), bb_get_option(’uri’) . $forum_nice_uri, $link);

// change /forum/pets-discussions/topic/my-sweet-dog in /pets-discussions/my-sweet-dog
// this work only if the rewrite module is modded!
// and this work only if the slugged name will NEVER
// be a reserved word like “rss” or “bb-images”
// and this is achieved by a filter on bb_slug_sanitize
$link = str_replace(’forum/’ . $forum->$column , $forum->$column, $link);
$link = str_replace(’topic/’ . $topic->$column , $topic->$column, $link);
}

return $link.”/” ; // Very important line! // Added Extra Slash :Ashish
}

add_filter( ‘get_topic_link’, ‘my_get_topic_link_filter’ );

function my_bb_slug_sanitize_filter( $text_slug, $text_original = ”, $length = 0 ) {
// add “r-” by regex when the string begins with “bb-” or “my-” or is a reserved word
return preg_replace(’/^(my-.*|bb-.*|rss|tags|view|profiles)$/’, ‘r-$1′, $text_slug);
}

add_filter( ‘bb_slug_sanitize’, ‘my_bb_slug_sanitize_filter’ );

?>

.htcaccess file:

( Taken from one same forum link and modified a little. You will need to remove the MULTIVIEW from your existing .htaccess file )

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /forums

Options +FollowSymlinks

RewriteRule ^tags/([^/]+)/page/([0-9]+)/?$ tags.php?tag=$1&page=$2 [L,QSA]
RewriteRule ^tags/([^/]+)/?$ tags.php?tag=$1 [L,QSA]
RewriteRule ^tags/?$ tags.php [L,QSA]
RewriteRule ^profile/([^/]+)/page/([0-9]+)/?$ profile.php?id=$1&page=$2 [L,QSA]
RewriteRule ^profile/([^/]+)/([^/]+)/?$ profile.php?id=$1&tab=$2 [L,QSA]
RewriteRule ^profile/([^/]+)/([^/]+)/page/([0-9]+)/?$ profile.php?id=$1&tab=$2&page=$3 [L,QSA]
RewriteRule ^profile/([^/]+)/?$ profile.php?id=$1 [L,QSA]
RewriteRule ^view/([^/]+)/page/([0-9]+)/?$ view.php?view=$1&page=$2 [L,QSA]
RewriteRule ^view/([^/]+)/?$ view.php?view=$1 [L,QSA]
RewriteRule ^rss/?$ rss.php [L,QSA]
RewriteRule ^rss/forum/([^/]+)/?$ rss.php?forum=$1 [L,QSA]
RewriteRule ^rss/topic/([^/]+)/?$ rss.php?topic=$1 [L,QSA]
RewriteRule ^rss/tags/([^/]+)/?$ rss.php?tag=$1 [L,QSA]
RewriteRule ^rss/profile/([^/]+)/?$ rss.php?profile=$1 [L,QSA]

RewriteRule ^([^.]+)/([^.]+)/page/([0-9]+)/?$ topic.php?id=$2&page=$3 [L,QSA]
RewriteRule ^([^/.]+)/([^.]+)/?$ topic.php?id=$2 [L,QSA]

RewriteRule ^([^/.]+)/page/([0-9]+)/?$ forum.php?id=$1&page=$2 [L,QSA]
RewriteRule ^([^/.]+)/?$ forum.php?id=$1 [L,QSA]
</IfModule>

Place the plugin file in my-plugin directory and .htaccess file in bbpress root directory. Active the plugin. and it should work fine.

The Problem I find with this.

  • The Link to BBpress admin board link does not work from main site. It redirects to home page. You will need to manually type the link to go inside.
  • In case you type something which does not exists as http://sitename.com/<bbpress-directory>/sdaksda it returns http://sitename.com/<bbpress-directory>// . An extra slash.

Except these 2 there is no problem I see so far but Its not easy to predict as I dont have lot of posts or users. So if you want to try it out download the files here . You can give your feedback here if you can improve it. And If somebody wants they can support the plugin and enhance it. You can see demo of this on the forum I tested on but You wont be able to register and anyways it just a test forum

Tagged with: | Need more help ? Ask your Questions at our Support Center
SMS subscribe Print This Post

Translate to EnglishÜbersetzen Sie zum Deutsch/GermanΜεταφράστε στα ελληνικά/GreekПереведите к русскому/RussianOversetter til Norsk/NorwegianÖversätta till Svensk/Swedishहिन्दी अनुवाद करने के लिए/Hindi
Tradueix al català/CatalanTulkot uz latviešu/LatvianPreložiť do slovenčiny/SlovakVertaal aan het Nederlands/Dutchترجمة الى العربية/ArabicTraduzca al Español/SpanishTraduisez au Français/French
Traduca ad Italiano/ItalianTraduza ao Português/Portuguese日本語に翻訳しなさい /Japanese한국어에게 번역하십시오/Korean中文翻译/Chinese Simplified中文翻译/Chinese TraditionalПереклад на українську/Ukrainian

Posted on 4th April 2008 by Ashish Mohta , A tech blogger who writes about solving day to day problems of people who use computer. He also writes on How to use the applications like Office, PC tips, Online tools,Browsers and more. All posts by Ashish Mohta | Connect with me @ Twitter | Linkedin | Facebook | Stumble

One Comment »

  • Tommie said:

    Thanks! It works wonders. Running it now on the community site Callofduty.se. Your sh*t is the only EASY solution to this problem – thanks again!

    (Running it with bbPress 1.01 if anyone would like to know)

Leave your response!

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>