2016-11-04 4 views
0

バックオフィスの左側のメニューに新しいリンク/ページを作成します。だから私はコントローラを作成するつもりだった。Prestashopバックオフィスコントローラ

コントローラ/管理/ AdminPageController.php:

<?php 
    class AdminPageController extends AdminController 
    { 
     public function initContent() 
     { 
      parent::initContent(); 
      $smarty = $this->context->smarty; 

      $smarty->assign('testpage', 'testpage'); 

     } 
    } 
?> 

管理\テーマ\デフォルトテンプレート\コントローラ\ \ページ\ content.tpl

$con=mysqli_connect("localhost","root","password","prestashop"); 

// Check connection 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$result = mysqli_query($con,"SELECT * FROM ps_customer"); 

echo "<table border='1'> 
<tr> 
<th>company</th> 
<th>email</th> 
</tr>"; 

while($row = mysqli_fetch_array($result)) 
{ 
echo "<tr>"; 
echo "<td>" . $row['company'] . "</td>"; 
echo "<td>" . $row['email'] . "</td>"; 
echo "</tr>"; 
} 
echo "</table>"; 

mysqli_close($con); 
?> 

のBackOfficeで - >管理 - >メニュー - >私は家を親として持つコントローラにメニューを作成しました。

これによれば、ps_customerテーブルから&電子メールコラムを表示する必要があります。 。「;ながら、($行= mysqli_fetch_array($結果)){エコー ""; "エコー" $行[ '会社

会社の電子メール:私はテストページを開いたときに

はしかし、私はこれを見ます';]; ";"; echo ""。; $ row [' email ']。 "; echo" ";} echo" "; mysqli_close($ con);?>

どのようにテーブルを表示しませんか?私が間違って何をやっている

ありがとう

+1

申し訳ありませんで述べた例1を見てください、それはあなたのアプローチは全く間違っている...読みください。 + a + PrestaShop + Module)と[this](http://doc.prestashop.com/display/PS16/Best+Practices+of+the+Db+Class)の前に:) – sarcom

答えて

0

1)をバックエンドにあるメニューを作成するには:? これは、モジュールのメインファイルのインストール機能でタブオブジェクトを作成することで実現できます。

例:

public function install() 
{    
    // Install Tabs 
    $parent_tab = new Tab(); 
    $parent_tab->name[$this->context->language->id] = $this->l('Main Tab Example'); //Just put the name in the actual language 
    $parent_tab->class_name = 'AdminMainExample'; //Set the class name Your controller 
    $parent_tab->id_parent = 0; // Home tab 
    $parent_tab->module = $this->name; //Set the module from the menu 
    $parent_tab->add(); //Add the tab to the database 
    .... 
} 

同様にあなたがあなたの中にタブを削除する必要がありますが

public function uninstall() 
{ 
    // Uninstall Tabs 
    $tab = new Tab((int)Tab::getIdFromClassName('AdminMainExample')); 
    $tab->delete(); 
    ... 
} 

2方法

をアンインストールする)バックエンドのリストを表示するには:あなたはTPLでPHPコードを使用することはできません をあなたのcontent.tplで行ったのと同じように顧客リストを読み込むには、コントローラ内のヘルパーを使用し、コントローラのコンストラクタ(AdminPageController)にtable_nameとclass_nameを記述する必要があります。 render_listメソッドのフィールドを参照すると、ヘルパーが残りの処理を行います。

[この](http://doc.prestashop.com/display/PS16/Creatingリンクprestashop document