When you make large content articles inside Mambo, you can paginate them, which means that you can divide them automatically into many pages with automatic generation of page numbers and links to those pages with a table of contents too!
You use a mambot called 'mospaging' for this purpose and this comes installed by default. YOu ust have to type {mospagebreak} wherever you want the page break to appear.
Under each page, you will have two links, one to the previous page and one to the next page. Many people have asked me how to turn these links into image links rather than text links. I have done this on my site
http://www.medspan.info. You can check it there.
Here is the code to do that conversion.
You need to replace the contents of the file - 'mospaging.php' in the /mambots/content/ folder of the Mambo folder.
Here goes the code:
CODE
<?php
/**
* @version $Id: mospaging.php,v 1.6 2005/02/04 21:13:48 saka Exp $
* @package Mambo
* @copyright (C) 2000 - 2005 Miro International Pty Ltd
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* Mambo is Free Software
*/
/** ensure this file is being included by a parent file */
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
$_MAMBOTS->registerFunction( 'onPrepareContent', 'botMosPaging' );
/**
* Page break mambot
*
* <b>Usage:</b>
* <code>{mospagebreak}</code>
* <code>{mospagebreak title=The page title}</code>
* or
* <code>{mospagebreak heading=The first page}</code>
* or
* <code>{mospagebreak title=The page title&heading=The first page}</code>
* or
* <code>{mospagebreak heading=The first page&title=The page title}</code>
*
*/
function botMosPaging( $published, &$row, &$params, $page=0 ) {
global $mainframe, $Itemid, $database;
// expression to search for
$regex = '/{(mospagebreak)\s*(.*?)}/i';
if (!$published || $params->get( 'intro_only' )|| $params->get( 'popup' )) {
$row->text = preg_replace( $regex, '', $row->text );
return;
}
// find all instances of mambot and put in $matches
$matches = array();
preg_match_all( $regex, $row->text, $matches, PREG_SET_ORDER );
// split the text around the mambot
$text = preg_split( $regex, $row->text );
// count the number of pages
$n = count( $text );
// we have found at least one mambot, therefore at least 2 pages
if ($n > 1) {
// load mambot params info
$query = "SELECT id FROM #__mambots WHERE element = 'mospaging' AND folder = 'content'";
$database->setQuery( $query );
$id = $database->loadResult();
$mambot = new mosMambot( $database );
$mambot->load( $id );
$params =& new mosParameters( $mambot->params );
$title = $params->def( 'title', 1 );
// adds heading or title to <site> Title
if ( $title ) {
$page_text = $page + 1;
$row->page_title = _PN_PAGE .' '. $page_text;
if ( !$page ) {
// processing for first page
parse_str( $matches[0][2], $args );
if ( @$args['heading'] ) {
$row->page_title = $args['heading'];
} else {
$row->page_title = '';
}
} else if ( $matches[$page-1][2] ) {
parse_str( $matches[$page-1][2], $args );
if ( @$args['title'] ) {
$row->page_title = $args['title'];
}
}
}
// reset the text, we already hold it in the $text array
$row->text = '';
$hasToc = $mainframe->getCfg( 'multipage_toc' );
if ( $hasToc ) {
// display TOC
createTOC( $row, $matches, $page );
} else {
$row->toc = '';
}
// traditional mos page navigation
require_once( $GLOBALS['mosConfig_absolute_path'] . '/includes/pageNavigation.php' );
$pageNav = new mosPageNav( $n, $page, 1 );
// page counter
$row->text .= '<div class="pagenavcounter">';
$row->text .= $pageNav->writeLeafsCounter();
$row->text .= '</div>';
// page text
$row->text .= $text[$page];
$row->text .= '<br />';
$row->text .= '<div class="pagenavbar">';
// adds navigation between pages to bottom of text
if ( $hasToc ) {
createNavigation( $row, $page, $n );
}
// page links shown at bottom of page if TOC disabled
if (!$hasToc) {
$row->text .= $pageNav->writePagesLinks( 'index.php?option=com_content&task=view&id='. $row->id .'&Itemid='. $Itemid );
}
$row->text .= '</div><br />';
}
return true;
}
function createTOC( &$row, &$matches, &$page ) {
global $Itemid;
$nonseflink = 'index.php?option=com_content&task=view&id='. $row->id .'&Itemid='. $Itemid;
$link = 'index.php?option=com_content&task=view&id='. $row->id .'&Itemid='. $Itemid;
$link = sefRelToAbs( $link );
$heading = $row->title;
// allows customization of first page title by checking for `heading` attribute in first bot
if ( @$matches[0][2] ) {
parse_str( $matches[0][2], $args );
if ( @$args['heading'] ) {
$heading = $args['heading'];
}
}
// TOC Header
$row->toc = '
<table cellpadding="0" cellspacing="0" class="contenttoc" align="right">
<tr>
<th>'
. _TOC_JUMPTO .
'</th>
</tr>
';
// TOC First Page link
$row->toc .= '
<tr>
<td>
<a href="'. $link .'" class="toclink">'
. $heading .
'</a>
</td>
</tr>
';
$i = 2;
$args2 = array();
foreach ( $matches as $bot ) {
$link = $nonseflink .'&limit=1&limitstart='. ($i-1);
$link = sefRelToAbs( $link );
if ( @$bot[2] ) {
parse_str( str_replace( '&', '&', $bot[2] ), $args2 );
if ( @$args2['title'] ) {
$row->toc .= '
<tr>
<td>
<a href="'. $link .'" class="toclink">'
. $args2['title'] .
'</a>
</td>
</tr>
';
} else {
$row->toc .= '
<tr>
<td>
<a href="'. $link .'" class="toclink">'
. _PN_PAGE .' '. $i .
'</a>
</td>
</tr>
';
}
} else {
$row->toc .= '
<tr>
<td>
<a href="'. $link .'" class="toclink">'
. _PN_PAGE .' '. $i .
'</a>
</td>
</tr>
';
}
$i++;
}
$row->toc .= '</table>';
}
function createNavigation( &$row, $page, $n ) {
global $Itemid;
$link = 'index.php?option=com_content&task=view&id='. $row->id .'&Itemid='. $Itemid;
if ( $page < $n-1 ) {
$link_next = $link .'&limit=1&limitstart='. ( $page + 1 );
$link_next = sefRelToAbs( $link_next );
$next = '<a href="'. $link_next .'" title="Next Page">' . '<img src="images/next.gif" border="0">' .'</a>';
} else {
$next = '<img src="images/next_disabled.gif" border="0">';
}
if ( $page > 0 ) {
$link_prev = $link .'&limit=1&limitstart='. ( $page - 1 );
$link_prev = sefRelToAbs( $link_prev );
$prev = '<a href="'. $link_prev .'" title="Previous Page">'. '<img src="images/previous.gif" border="0">' .'</a>';
} else {
$prev = '<img src="images/previous_disabled.gif" border="0">';
}
$row->text .= '<table width=70% border="0" cellspacing="0" cellpadding="0" bgcolor="#ffffff"><tr height="50" valign="middle"><td width=40; align=right>' . $prev . '</td><td align="center">Page Navigation</td><td width=40; align=left>' . $next .'</td></tr></table>';
}
?>
You will also need 4 images as mentioned in the codes.
1. next.gif
2. previous.gif
3. next_disabled.gif
4. previous_disabled.gif
All these 4 images need to be placed in the /images folder of the root mambo folder.
If you make any changes to the file names or the image folder location, be sure that you have also edited the above file accordingly!

I have made this change in code myself with whatever little php knowledge that I have.
So enjoy!
Googlue
Comment/Reply (w/o sign-up)