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 7 comments
Decoda 6.01 is already released http://milesj.me/code/php/decoda
It should be nice to update this extension.
How to skip parsing blocks of code to be able to include some additional code or scripts, i.e. youtube videos or google maps?
links doesn't work, bbcode tags removing and that's all. removeFilters doesn't help.
Hi! Is any possibility to disable links parsing, to prevent converting
to:
Update! To disable filter for parsing URLs in decoda config we need add:
v1.1 zip doesn't have a decoda folder at the root.
You have to create it manually in extensions then extract into it.
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.