Powered by MediaWiki
Personal tools

Pretty url

From b2evolution manual

Jump to: navigation, search

This manual page is outdated. NEW PAGE: Pretty URL in b2evolution v5+.

Let's assume you have a default installation of b2evolution:

  • Blog All can be accessed through index.php?blog=1
  • Blog A can be accessed through index.php?blog=2
  • Blog B can be accessed through index.php?blog=3
  • The Linkblog can be accessed through index.php?blog=4

[edit] Let's start with Blog A

Let's start with blog A, because it is the easiest. b2evolution ships with an alternative file to call blog A! In your URL, try replacing the end index.php?blog=2 with a_stub.php. You should access the exact same page. That's because b2evolution ships with the file a_stub.php which is preconfigured for acting as if index.php was called with parameter blog=2.

However, if you now click on an internal link on this page, say "Last comments", you will notice that b2evo throws you back to index.php?blog=2 !

That's because b2evo doesn't know (yet) that you want to use a_stub.php instead of index.php?blog=2. You must set this up in the admin, under blogs then Blog A. Under "Preferred access type:", you must select "Explicit reference to stub file (Advanced)" and then name the stub file name in "Stub name:"; here you should enter a_stub.php. Validate your changes.

Now, you can refresh the blog page and click on some links. You will notice that you now stay on a_stub.php and no longer get redirected to index.php?blog=2.

[edit] Now with Blog B

Try the same operations as above on blog B (blog number 3) and try to associate it with a stub file named b_stub.php. You will notice that you get a "404 Page not found" error from your webserver!

That is because b2evolution does *not* ship with a file named b_stub.php !

Now try to duplicate the file a_stub.php as b_stub.php on your webserver.

What happens if you acces this page? You will notice that you no longer get an error, *but* b_stub.php displays Blog A just as a_stub.php did! This is not what you wanted!

This happens because b_stub.php contains preset parameters so that you don't have to pass these on the URL. In this case, it contains a hardcoding for blog=2 and blog #2 is blog A, not blog B. (You can see the blog numbers in the admin, under Blogs).

To correct that, you must open the file b_stub.php with a text editor and find the following line: $blog = 2; // 2 is for "demo blog A" or your upgraded blog (depends on your install)

Replace this line with: $blog = 3;

Take special care not to forget the $ sign in front of $blog, as well as the semi column ( ; ) at the end of the line. The white space and the comment after // can be omitted.

Save the file (and upload it to your webserver if necessary).

Calling b_stub.php should now work as expected. :)

The file b_stub.php is what we call a Stub File. You may have noticed that it also lets you set other parameters than just the blog number. For more information on this, see StubFiles.

[edit] In short, this is how a stub-file looks like

<?php
$blog = 2;   	
$show_statuses = array();
$linkblog_cat = '';
$linkblog_catsel = array( );
$timestamp_min = '';
$timestamp_max = 'now';
require_once dirname(__FILE__).'/conf/_config.php';
require $inc_path.'_blog_main.inc.php';
?>