Friday, November 22, 2013

Re: Loading element on-the-fly in article/posts with bbcode

Small update, I did some coding here, not sure if I am moving in the right direction.. Suggestions on how to return the element????

Shortcodehelper.php:
App::import('Helper', 'Html', 'Router');
class ShortcodeHelper extends AppHelper {
public $shortcodes = array( 
'slideshow' => '/(\[slideshow=)(.+?)(\])(.+?)(\[\/slideshow\])/'
); 
public $returncodes = array( 
//'slideshow' => $this->render('/elements/slideshow', array('id'=>'\\2'))
'slideshow' => '<strong rel="\\2">\\4</strong>' 
); 
 
public function render($content, $render=null) {
$shortcodes = $this->shortcodes;
$returncodes = $this->returncodes;
if(isset($render)) {
$temp_shortcodes = array(); 
                $temp_returncodes = array(); 
                foreach ($render as $key => $value) { 
                    $temp_shortcodes[$key] = $shortcodes[$value]; 
                    $temp_returncodes[$key] = $returncodes[$value]; 
                } 
                $returncodes = $temp_returncodes; 
                $shortcodes = $temp_shortcodes; 
}
$return = preg_replace($shortcodes, $returncodes,  $content); 
        return $this->output($return); 
}
}

view.ctp:
<?php echo $this->Shortcode->render($page['Page']['body']); ?>

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
 
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.

No comments: