Decoda is a lightweight class that extracts and parses a custom markup language; based on the concept of BB code. Decoda supports all the basic HTML tags and manages special features for making links and emails auto-clickable, using shorthand emails and links, and finally allowing the user to add their own code tags.
Download and unpack source into protected/extensions/ folder.
Set component in config
'components'=>array( 'decoda' => array( 'class' => 'ext.decoda.YiiDecoda', 'defaults' => true, ),
Parsing string
$string = '[b]BB Code[/b]'; $parsedString = Yii::app()->decoda->parse($string); echo $parsedString; // <b>BB Code</b>
You can use DecodaValidator or filter for your model
public function rules() { return array( // DecodaValidator array('content', 'ext.decoda.DecodaValidator', 'errorTypes' => array(Decoda::ERROR_NESTING, Decoda::ERROR_SCOPE), 'useParsed' => true), //filter array('content', 'filter', 'filter' => array(Yii::app()->decoda, 'parse')),
Configuration example with all available properties (values are initialized in the order in which they are listed here)
'components'=>array( 'decoda' => array( 'class' => 'ext.decoda.YiiDecoda', 'vendorPath' => 'ext.decoda.vendors.decoda', 'defaults' => true, 'addFilters' => array('Code', 'Default', 'List', 'Quote'), 'removeFilters' => array('Code', 'Default'), 'disableFilters' => false, 'addHooks' => array('Emoticon', 'Clickable'), 'removeHooks' => array('Censor'), 'disableHooks' => false, 'brackets' => array('{', '}'), 'locale' => 'en-us', 'shorthandLinks' => true, 'useXHTML' => false, 'whitelistTags' => array('code', 'b'), 'convertWhitespaces' => true, 'disableParsing' => false, ),
1.1
- update decoda, version 3.3.1
- removed "useTextHighlighterForCode" property
- added "convertWhitespaces" property
1.0
- initial version
Total 2 comments
in 5.3 environment i had to change from
to
for autoloader in YiiDecoda.php.
it does not work for me, In EmotionHook.php
but count($matches) is 1 for matched icon.
so emoticon is not diplayed.
i had to change
im using php 5.4
Leave a comment
Please login to leave your comment.