2016-11-04 87 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 - >管理 - >菜单 - >我用Home创建了我的控制器菜单作为父项。

根据这个,它应该显示公司&电子邮件列从ps_customer表。

然而,当我打开该测试页,我看到:

公司的电子邮件“;而($行= mysqli_fetch_array($结果)){回声 “” 回声 “” $行['公司。 ';; echo“”。$ row ['email']。“”; echo“”;} echo“”; mysqli_close($ con);?>

它怎么不显示表?难道我做错了什么

感谢名单

+1

对不起的例1,但它是完全错误的你的方法...请阅读[这](http://doc.prestashop.com/display/PS16/Creating + 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中的字段,助手将完成剩下的工作。

看看在链接中提到prestashop document