How to modify product page title in VirtueMart 1.1.9, Joomla 1.5.23

Function $document->setTitle($title) is called from “administrator/components/com_virtuemart/classes/mainframe.class.php”:

function setPageTitle( $title ) {
    global $mainframe;
    $title = strip_tags(str_replace(' ',' ', $title));
    $title = trim($title);
    if( defined( '_VM_IS_BACKEND')) {
        echo vmCommonHTML::scriptTag('', "//<![CDATA[
        var vm_page_title=\"".str_replace('"', '\"', $title )."\";
        try{ parent.document.title = vm_page_title; } catch(e) { document.title =vm_page_title; } 
        //]]>
        ");
        
    }
    elseif( vmIsJoomla('1.5') ) {
        $document=& JFactory::getDocument();
        $document->setTitle($title);
    } else {
        $mainframe->setPageTitle( $title );
    }
}

To change product fly-page title we can simply modify $page_title variable used in “administrator/components/com_virtuemart/html/shop.product_details.php”:

// Set Dynamic Page Title
if( function_exists('mb_substr')) {
	$page_title = mb_substr($product_name . " add something here", 0, 64, vmGetCharset() );
} else {
	$page_title = substr($product_name, 0, 64 );
	
}
$vm_mainframe->setPageTitle( @html_entity_decode( $page_title, ENT_QUOTES, vmGetCharset() ));

Personally, I did the following changes:

//$page_title = $product_name;

require_once (JPATH_LIBRARIES.DS.'user'.DS.'product_parser.php');

$page_title = GetProductTitle($product_id);

//}dmitriano

// Set Dynamic Page Title
if( function_exists('mb_substr')) {
	$page_title = mb_substr($page_title, 0, 64, vmGetCharset() );
} else {
	$page_title = substr($page_title, 0, 64 );
	
}
$vm_mainframe->setPageTitle( @html_entity_decode( $page_title, ENT_QUOTES, vmGetCharset() ));

where GetProductTitle($product_id) is some function that returns specific product title by given $product_id.

Also I think that the size of 64 symbols is too small for page title, I decided to increase it to 128:

if( function_exists('mb_substr')) {
	$page_title = mb_substr($page_title, 0, 128, vmGetCharset() );
} else {
	$page_title = substr($page_title, 0, 128 );

1 Response to How to modify product page title in VirtueMart 1.1.9, Joomla 1.5.23

  1. michalis on January 8, 2013 at 9:27 PM:

    Thank you very much!!!!

Leave a Reply

Your email address will not be published. Required fields are marked *