Get an account!     Login


Main menu

Who's Online

27 user(s) are online (1 user(s) are browsing Hacks and Tips)

Members: 0
Guests: 27


Get Xoops

Support Xuups Project

Themes :  Customizing the look of individuals blocks
Tags: block   smarty   theme  
A few of you may saw my way of customizing the look of individuals blocks by giving them a custom title (posted here: http://www.xoops.org/modules/newbb/vi ... id=265122#forumpost265122 )

With this method I can name (title) blocks like
green-block + whatever title needed
red-block + whatever title needed
blue-block + whatever title needed

And those 3 blocks will look completely different (just by giving them a few characters in the begining of their title) ... via CSS and/or HTML each of those block can look different (so you can make a few "reusable blocks types" and use them whenever needed in your site blocks )

Well - this method won't work with UTF-8 (default in 2.3.x) since the smarty "truncate" is not working with UTF-8

I use this method a lot to give a few of my front-page blocks a unique look
( breaking the XOOPS look a bit )

There is a way to do it in UTF-8 too ( adding a smarty plugin to /xoops/class/smarty/plugins/ )

make a new file ( /class/smarty/plugins/modifier.mb_truncate.php ) with this code:
 * Smarty plugin
 * @package Smarty
 * @subpackage plugins

 * Smarty truncate modifier plugin
 * Type:     modifier<br>
 * Name:     mb_truncate<br>
 * Purpose:  Truncate a string to a certain length if necessary,
 *           optionally splitting in the middle of a word, and
 *           appending the $etc string or inserting $etc into the middle.
 *           This version also supports multibyte strings.
 * @link http://smarty.php.net/manual/en/language.modifier.truncate.php
 *          truncate (Smarty online manual)
 * @author   Guy Rutenberg <[email protected]> based on the original
 *           truncate by Monte Ohrt <monte at ohrt dot com>
 * @param string
 * @param integer
 * @param string
 * @param string
 * @param boolean
 * @param boolean
 * @return string
function smarty_modifier_mb_truncate($string$length 80$etc '...'$charset='UTF-8',
$break_words false$middle false)
    if (
$length == 0)

    if (
strlen($string) > $length) {
$length -= min($lengthstrlen($etc));
        if (!
$break_words && !$middle) {
$string preg_replace('/s+?(S+)?$/'''mb_substr($string0$length+1$charset));
$middle) {
mb_substr($string0$length$charset) . $etc;
        } else {
mb_substr($string0$length/2$charset) . $etc mb_substr($string, -$length/2$charset);
    } else {

/* vim: set expandtab: */

now ..... in your theme.html you can use it like this:

lets say we deal with the 'center-center block'

we can use it in our theme like this:

<div style="padding: 5px;">
$block.title|mb_truncate:11:"":'UTF-8' == "green-block"}>
$block.title|mb_truncate:9:"":'UTF-8' == "red-block"}>
div class="bl"><div class="br"><div class="tl"><div class="tr">
$block.title != ""}>
div class="bl"><div class="br"><div class="ttl"><div class="ttr">
div style="font-size: 16px; color:#4b5676; font-weight: bold; vertical-align: middle; line-height: 34px; height:36px; background-image : url(<{xoImgUrl pix/divHeader.gif}>);"><img align="right" src="<{xoImgUrl pix/arrHeader.gif}>" width="13" height="35" alt="" hspace="12" border="0"><{$block.title}></div>
div class="blockContent"><{$block.content}></div>
div class="clear">&nbsp;</div>

and it works like this
mb_truncate:9 (the number 9 here tels smarty to see if the 9 first chars of your block title equals to "red-block" and if it does - in the sample above it won't write the title, and will start the block with:

<div class="bl"><div class="br"><div class="tl"><div class="tr">

beginning your block title with "green-block" will simply give nothing (to block-title and no html) and so on ...

Gifts45.com - Gifts & Shopping Directory
Trance.co.iL - New Vibes in the Underground Culture
inTHEtube.TV - The ultimate video experience

This was posted originally here
Author Tzvook
News by the same authorMore stories
Author rssAuthor rss
Date 2008/12/6 6:08:58
Views 3553
Favorites 1
Send this Story to a FriendSend
Printer Friendly PagePrint
Create a PDF from the articleCreate a pdf
Customizing the look of individuals blocks
Customizing the look of individuals blocks
The comments are owned by the poster. We aren't responsible for their content.
Poster Thread




Remember me

Lost Password?

Register now!

Ajax Search

Advanced Search

Sub menu

Last comments