admin new controller 中的 Cs cart 报错
Cs cart in admin new controller gives an error
我想在 CSCART 的管理面板中开发一个新页面。我制作了一个控制器 pincode.php 和模式 'add' 并创建了一个 tpl add.tpl 在 views.when 中调用 'admin.php?dispatch=pincode.add'。它给出了一个 http 错误。
控制器(cscart\app\controllers\backend\pincode.php)
<?php
use Tygh\Registry;
if (!defined('BOOTSTRAP')) { die('Access denied'); }
if ($mode == 'add') {
Registry::get('view')->display('views/pincode/add.tpl');
}
?>
视图(cscart\design\backend\templates\views\pincode\add.tpl):
<form action="" method="post" name="add_form">
<input type="text" name="pincode" />
<input type="text" name="city" />
<input type="text" name="state" />
</form>
当我将 echo die 放入控制器时,它会显示 echo 内容。
最好创建一个名为 pincode 的新插件(您可以生成一个 here),这样您就可以升级了;)
添加控制器文件
cscart/app/addons/pincode/controllers/backend/pincode.php
有内容
<?php
/*
* © 2015 Hungryweb
*
* @website: www.hungryweb.net
* @support: support@hungryweb.net
*
*/
if ( !defined('BOOTSTRAP') ) { die('Access denied'); }
use Tygh\Registry;
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
fn_trusted_vars (
'pincode'
);
if ($mode == 'update') {
if (isset($_REQUEST['pincode'])) {
#add your code
print_r($_REQUEST['pincode']);
exit;
}
}
}
if ($mode == 'update') {
$pincode = array();
$pincode['pin'] = '';
$pincode['city'] = '';
$pincode['state'] = '';
Registry::get('view')->assign('pincode', $pincode);
}
添加tpl文件
cscart/design/backend/templates/addons/pincode/views/pincode/update.tpl
有内容(更新模式比添加更好)
{capture name="mainbox"}
<form action="{""|fn_url}" method="post" name="pincode_update_form" class="form-horizontal form-edit">
{include file="common/subheader.tpl" title=__("information") target="#pincode_information_setting"}
<div id="pincode_information_setting" class="in collapse">
<fieldset>
<div class="control-group">
<label for="elm_pincode" class="control-label cm-required">{__("pincode_field")}:</label>
<div class="controls">
<input type="text" name="pincode[pin]" id="elm_pincode" size="55" value="{$pincode.pin}" class="input-large" />
</div>
</div>
<div class="control-group">
<label for="elm_city" class="control-label cm-required">{__("city")}:</label>
<div class="controls">
<input type="text" name="pincode[city]" id="elm_city" size="55" value="{$pincode.city}" class="input-large" />
</div>
</div>
<div class="control-group">
<label for="elm_state" class="control-label cm-required">{__("state")}:</label>
<div class="controls">
<input type="text" name="pincode[state]" id="elm_state" size="55" value="{$pincode.state}" class="input-large" />
</div>
</div>
</fieldset>
</div>
{capture name="buttons"}
{assign var="hide_first_button" value=false}
{assign var="hide_second_button" value=true}
{include file="buttons/save_cancel.tpl" but_name="dispatch[pincode.update]" hide_first_button=$hide_first_button hide_second_button=$hide_second_button but_target_form="pincode_update_form"}
{/capture}
</form>
{/capture}
{capture name="sidebar"}
<div class="sidebar-row">
<h6>{__("pages")}</h6>
<div class="nested-tree">
Maybe you need ;)
</div>
</div>
{/capture}
{include file="common/mainbox.tpl" title=__('pincode_update') sidebar=$smarty.capture.sidebar sidebar_position="right" content=$smarty.capture.mainbox buttons=$smarty.capture.buttons adv_buttons=$smarty.capture.adv_buttons}
带有此 CS-Cart 附加组件的 zip 存档可以从 here
下载
希望对您有所帮助,
只需将 add.tpl 重命名为 update.tpl。
fn.control.php文件中有一段代码:
if ($mode == 'add') {
$tpl = 'update.tpl';
} elseif (strpos($mode, 'add_') === 0) {
$tpl = str_replace('add_', 'update_', $mode) . '.tpl';
} else {
$tpl = $mode . '.tpl';
}
我想在 CSCART 的管理面板中开发一个新页面。我制作了一个控制器 pincode.php 和模式 'add' 并创建了一个 tpl add.tpl 在 views.when 中调用 'admin.php?dispatch=pincode.add'。它给出了一个 http 错误。
控制器(cscart\app\controllers\backend\pincode.php)
<?php
use Tygh\Registry;
if (!defined('BOOTSTRAP')) { die('Access denied'); }
if ($mode == 'add') {
Registry::get('view')->display('views/pincode/add.tpl');
}
?>
视图(cscart\design\backend\templates\views\pincode\add.tpl):
<form action="" method="post" name="add_form">
<input type="text" name="pincode" />
<input type="text" name="city" />
<input type="text" name="state" />
</form>
当我将 echo die 放入控制器时,它会显示 echo 内容。
最好创建一个名为 pincode 的新插件(您可以生成一个 here),这样您就可以升级了;)
添加控制器文件
cscart/app/addons/pincode/controllers/backend/pincode.php
有内容
<?php
/*
* © 2015 Hungryweb
*
* @website: www.hungryweb.net
* @support: support@hungryweb.net
*
*/
if ( !defined('BOOTSTRAP') ) { die('Access denied'); }
use Tygh\Registry;
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
fn_trusted_vars (
'pincode'
);
if ($mode == 'update') {
if (isset($_REQUEST['pincode'])) {
#add your code
print_r($_REQUEST['pincode']);
exit;
}
}
}
if ($mode == 'update') {
$pincode = array();
$pincode['pin'] = '';
$pincode['city'] = '';
$pincode['state'] = '';
Registry::get('view')->assign('pincode', $pincode);
}
添加tpl文件
cscart/design/backend/templates/addons/pincode/views/pincode/update.tpl
有内容(更新模式比添加更好)
{capture name="mainbox"}
<form action="{""|fn_url}" method="post" name="pincode_update_form" class="form-horizontal form-edit">
{include file="common/subheader.tpl" title=__("information") target="#pincode_information_setting"}
<div id="pincode_information_setting" class="in collapse">
<fieldset>
<div class="control-group">
<label for="elm_pincode" class="control-label cm-required">{__("pincode_field")}:</label>
<div class="controls">
<input type="text" name="pincode[pin]" id="elm_pincode" size="55" value="{$pincode.pin}" class="input-large" />
</div>
</div>
<div class="control-group">
<label for="elm_city" class="control-label cm-required">{__("city")}:</label>
<div class="controls">
<input type="text" name="pincode[city]" id="elm_city" size="55" value="{$pincode.city}" class="input-large" />
</div>
</div>
<div class="control-group">
<label for="elm_state" class="control-label cm-required">{__("state")}:</label>
<div class="controls">
<input type="text" name="pincode[state]" id="elm_state" size="55" value="{$pincode.state}" class="input-large" />
</div>
</div>
</fieldset>
</div>
{capture name="buttons"}
{assign var="hide_first_button" value=false}
{assign var="hide_second_button" value=true}
{include file="buttons/save_cancel.tpl" but_name="dispatch[pincode.update]" hide_first_button=$hide_first_button hide_second_button=$hide_second_button but_target_form="pincode_update_form"}
{/capture}
</form>
{/capture}
{capture name="sidebar"}
<div class="sidebar-row">
<h6>{__("pages")}</h6>
<div class="nested-tree">
Maybe you need ;)
</div>
</div>
{/capture}
{include file="common/mainbox.tpl" title=__('pincode_update') sidebar=$smarty.capture.sidebar sidebar_position="right" content=$smarty.capture.mainbox buttons=$smarty.capture.buttons adv_buttons=$smarty.capture.adv_buttons}
带有此 CS-Cart 附加组件的 zip 存档可以从 here
下载希望对您有所帮助,
只需将 add.tpl 重命名为 update.tpl。
fn.control.php文件中有一段代码:
if ($mode == 'add') {
$tpl = 'update.tpl';
} elseif (strpos($mode, 'add_') === 0) {
$tpl = str_replace('add_', 'update_', $mode) . '.tpl';
} else {
$tpl = $mode . '.tpl';
}