e107inc/e107

View on GitHub
e107_core/bbcodes/bb_h.php

Summary

Maintainability
A
0 mins
Test Coverage
F
42%
<?php
/**
 * Copyright (C) e107 Inc (e107.org), Licensed under GNU GPL (http://www.gnu.org/licenses/gpl.txt)
 * $Id$
 * 
 * Heading bb code
 */

if (!defined('e107_INIT')) { exit; }

/**
 * Basic usage [h=2]text[/h] // this will break things. 
 * The same [h]text[/h] as heading number defaults to '2' // this won't. 
 * Advanced usage [h=2|class=className&id=element-id&style=some: style; and: moresStyle]text[/h]
 * 'class' defaults to 'bbcode' (if left empty)
 */
class bb_h extends e_bb_base
{
    /**
     * Called prior to save
     * Sanitize and re-assemble the bbcode
     */
    function toDB($code_text, $parm)
    {
        $code_text = trim($code_text);
        if(empty($code_text)) return '';

        $bparms = eHelper::scDualParams($parm);
        
        $h = $bparms[1] ? intval($bparms[1]) : 2;
        $parms = $bparms[2];
        unset($bparms);
        
        if(!empty($parms['class']))
        {
            $safe['class'] = eHelper::secureClassAttr($parms['class']);
        }
        if(!empty($parms['id']))
        {
            $safe['id'] = eHelper::secureIdAttr($parms['id']);
        }
        if(!empty($parms['style']))
        {
            $safe['style'] = eHelper::secureStyleAttr($parms['style']);
        }
        if($safe)
        {
            return '[h='.$h.'|'.eHelper::buildAttr($safe).']'.$code_text.'[/h]';
        }
        return '[h='.$h.']'.$code_text.'[/h]';
    }



    /**
     *    Translate to <h*> tag
     */
    function toHTML($code_text, $parm)
    {
        $code_text = trim($code_text);
        if(empty($code_text)) return '';
        $bparms = eHelper::scDualParams($parm);
        
        $h = 'h'.($bparms[1] ? intval($bparms[1]) : 2);
        $parms = $bparms[2];
        unset($bparms);

        $class = " class='".e107::getBB()->getClass($h)."'"; // consistent classes across all themes. 
        
        $id = vartrue($parms['id']) ? ' id='.eHelper::secureIdAttr($parms['id']) : '';
        $style = vartrue($parms['style']) ? ' style="'.eHelper::secureStyleAttr($parms['style']).'"' : '';
                
        return "<{$h}{$id}{$class}{$style}>".$code_text."</{$h}>";
    }
}