Cakephp短代码动态调用函数和元素

时间:2012-05-14 14:30:37

标签: function cakephp view

我的帖子有正文,在这个文本中我把短代码像[gallery = 2],现在我可以在我的文本中找到2个参数(图库和2)我想在我的视图中动态调用一个函数(图库)它正在调用一个元素(gallery id = 2):

应用程序/视图/帖/ index.ctp

findshortcode($posts[Post][Body]); // this function find short code and call his name like gallery(2) 

//my problem is :

function gallery($id = null){
    $this->element('gallery', array('galleryid' => $id), array('plugin' => 'gallerys'));  
}

1 个答案:

答案 0 :(得分:0)

你所拥有的东西并没有多大意义,而你所描述的方式并不是Cakish或MVC的做事方式。但我认为我得到了你的问题并会向你解释你想要的方式。

你需要做的是......从控制器内部做所有逻辑......然后将所有已完成的变量发送到视图中进行显示......

class PostsController extends AppController {

var $shortCodeTypes = array('gallery');

function view($id){
    $post = $this->Post->find(null, $id);
    $post = $this->_insertShortCodes($post);
    $this->set(compact('post'));
}

function _insertShortCodes($post){

    foreach($this->shortCodeTypes as $shortCodeType){
        // Do logic to find shortcodes and insert data into post body
    }
    return $post
}