2014-12-05 43 views
0

我需要一個幫助程序來更改wordpress中索引頁面的默認視圖。覆蓋WPMVC中的mvc_helper.php以修改WordPress中的默認表格視圖

我的插件是WPMVC生成的,按照WPMVC官方教程中的說明,我創建並加載了幫手,但它不工作。

任何人都可以告訴我正確的方法嗎?

檢查下面的鏈接以獲取屏幕截圖。

http://i.stack.imgur.com/3a1Ao.png

在screeshot,下面記錄的鏈接和按鈕都是由我添加,覆蓋索引文件。

現在,我需要添加一個鏈接附近'編輯|查看|刪除'中的圖片,例如,

編輯|查看|添加規則|刪除

有關如何做到這一點的任何建議?

正如我之前所說的,我創建並加載了助手,但它不起作用。

需要幫助。謝謝。

代碼:

/app/helpers/geozone_helper.php(創建助手):

<?php 
class GeozoneHelper extends MvcHelper { 

public $_redirect_action = ''; 

public function __construct() { 
    if(empty($this->_redirect_action)) { 
     $this->_redirect_action = 'geozone_rules-add'; 
    }  
    parent::__construct(); 
} 

public function admin_actions_cell($controller, $object) { 
    $links = array(); 
    $object_name = empty($object->__name) ? 'Item #'.$object->__id : $object->__name; 
    $encoded_object_name = $this->esc_attr($object_name); 
    $links[] = '<a href="'.MvcRouter::admin_url(array('object' => $object, 'action' => 'edit')).'" title="Edit '.$encoded_object_name.'">Edit</a>'; 
    $links[] = '<a href="'.MvcRouter::public_url(array('object' => $object)).'" title="View '.$encoded_object_name.'">View</a>'; 
    $links[] = '<a href="'.MvcRouter::admin_url(array('object' => $object, 'action' => $this->_redirect_action)).'" title="Edit '.$encoded_object_name.'">Add Rule</a>'; 
    $links[] = '<a href="'.MvcRouter::admin_url(array('object' => $object, 'action' => 'delete')).'" title="Delete '.$encoded_object_name.'" onclick="return confirm(&#039;Are you sure you want to delete '.$encoded_object_name.'?&#039;);">Delete</a>'; 
    $html = implode(' | ', $links); 
    return '<td>'.$html.'</td>'; 
} 
} 

/app/controllers/geozones_controller.php(負載助手):

public function show() { 

    $object = $this->model->find_by_id($this->params['id'], array(
     'includes' => array('Geozone'))); 

    if (!empty($object)) { 
     $this->set('object', $object); 
     $this->render_view('show', array('layout' => 'public')); 
    } 
    $this->load_helper('geozone'); 
    $this->set_object(); 
} 

/app/view/geozones/show.php(鏈接到幫手):

<h2><?php echo $object->__name; ?></h2> 

<p> 
    <?php echo $this->html->link('&#8592; All Geozones', array('controller' => 'geozones')); ?> 
    <?php echo $this->geozone->admin_actions_cell($controller, $object->content); ?> 
</p> 

再次感謝。

回答

0

解決的問題是這樣的:在公共控制器功能

public function show() { 
    $this->load_helper('geozone'); 
    $this->set_object(); 
} 

轉移到管理控制器和函數的名稱更改爲指數()是這樣的:

public function index() { 
    $this->load_helper('geozone'); 
    $this->set_objects(); 
} 

感謝大家誰試圖解決這個問題。