2012-03-19 8 views
1

私は、ニュースセクションのOpenCartのための完全な新しいページを作成しようとしていますが、私はすべての適切なファイルを作成し、ページをレンダリングしていますが、フッターファイン)。私は何を取りこぼしたか?!? index.php?route=common/news&news_id=A_NUMBER新しいページOpenCartのため

表ダンプ:

CREATE TABLE IF NOT EXISTS `news` (
    `id` int(255) NOT NULL AUTO_INCREMENT, 
    `user_id` int(255) NOT NULL, 
    `title` varchar(255) NOT NULL, 
    `body` longtext NOT NULL, 
    `added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `views` int(255) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ; 

言語(news.php):

<?php 
// Text 
$_['heading_title'] = '%s'; 
?> 

コントローラ(news.php):

<?php 
class ControllerCommonNews extends Controller { 
    private $error = array(); 

    public function index() { 
     $this->language->load('common/news'); 

     $this->data['heading_title'] = $this->language->get('heading_title'); 

     $this->data['breadcrumbs'] = array(); 

     $this->data['breadcrumbs'][] = array(
      'text'  => $this->language->get('text_home'), 
      'href'  => $this->url->link('common/home'),   
      'separator' => false 
     ); 

     $news_id = $_REQUEST['news_id']; 

     $this->load->model('common/news'); 

       $news_info = $this->model_common_news->getNews($news_id); 

       if ($news_info) { 
        $this->data['breadcrumbs'][] = array(
         'title'  => $news_info['title'], 
         'body'  => $news_info['body'] 
        ); 
       } 

     if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/news.tpl')) { 
      $this->template = $this->config->get('config_template') . '/template/common/news.tpl'; 
     } else { 
      $this->template = 'default/template/common/news.tpl'; 
     }  

     $this->children = array(
      'common/column_left', 
      'common/column_right', 
      'common/content_top', 
      'common/content_bottom', 
      'common/footer', 
      'common/header' 
     ); 

      $this->response->setOutput($this->render()); 
     } 
    } 
?> 
ページをヒットする

リンク

M odel(news.php):

<?php 
class ModelCommonNews extends Model { 

    public function getNews($news_id) { 
     $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "news WHERE id = '" . (int)$news_id . "'"); 

     return $query->row; 
    } 

} 
?> 

ビュー(news.tpl):

<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?> 
<div id="content"><?php echo $content_top; ?> 
<h1 style="display: none;"><?php echo $heading_title; ?></h1> 
<?php echo $content_bottom; ?> 
</div> 
<?php echo $footer; ?> 

の詳細情報が必要な場合は、離れて聞いて!どんな助けでも大歓迎です。

答えて

2

コントローラ内の$ this->データ配列にいくつかの値を割り当てる必要があります。また、これらの変数をビューに追加する必要があります。

コントローラ

if ($news_info) { 
    $this->data['breadcrumbs'][] = array(
     'title'  => $news_info['title'], 
     'body'  => $news_info['body'] 
    ); 
    $this->data['news_title'] = $news_info['news_title']; 
    $this->data['news_text'] = $news_info['news_text'];     
} 

ビューのようなものが動作するはず

<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?> 
<div id="content"><?php echo $content_top; ?> 
<h1 style="display: none;"><?php echo $heading_title; ?></h1> 
<h2><?php echo $news_title; ?></h2> 
<div><?php echo $news_text; ?></div> 
<?php echo $content_bottom; ?> 
</div> 
<?php echo $footer; ?> 

  • 免責事項。私はOpenCartを使った経験がありません。私はソースをダウンロードし、いくつかのコントローラーとビューを見て、これは彼らがそれをやっている方法が表示されます。
  • +0

    ええと、私は製品コントローラを見て始めました。私はこれらの行を追加するのを忘れていましたが、今度は左と右の列がそのページのモジュールをロードしていないという唯一の問題が残っています。 – rackemup420

    関連する問題