이 문제와 관련된 설명서를 검색했습니다. 그러나 아무도 찾지 못했습니다.Prestashop 1.6 : 관리자 컨트롤러를 사용하여 사용자 지정 양식을 만들고 제출하는 방법
admin 컨트롤러를 사용하여 admin 템플릿을로드하는 방법을 알고 있습니다. 내가 여기
<form action="{$link->getModuleLink('pushnotification', 'AdminPushNotification', [], true)|escape:'html'}" method="post">
과 양식을 만들었습니다 "pushnotification는"내 모듈 이름과 "AdminPushNotification는"내 관리 컨트롤러 이름입니다.
나는 그것을 따라서 404 페이지얻을 유효한 URL이 아닙니다 http://example.com/en/module/pushnotification/AdminPushNotification URL로 이동 제출 칠 때 나는 양식을 제출하고 같은 페이지에 있고 싶어.
Admin Controller에서 양식 제출을 제출하고 처리하는 방법을 모르겠습니다. 사전에
감사
내 모듈 파일 구조 : pushnotification 컨트롤러 관리 AdminPushnotification.php 조회수 템플릿 관리자 pushnotificationform.tpl
내 관리 컨트롤러 코드 :
<?php
class AdminPushNotificationController extends ModuleAdminControllerCore
{
public function __construct() {
$this->bootstrap = true;
parent::__construct();
}
public function initContent()
{
parent::initContent();
$smarty = $this->context->smarty;
$this->context->smarty->assign(array(
'msg' => "",
'title' => ""
));
$content = $smarty->fetch(_PS_MODULE_DIR_ . 'pushnotification/views/templates/admin/pushnotificationform.tpl');
$this->context->smarty->assign(array(
'content' => $this->content . $content
));
}
public function postProcess()
{
if (Tools::isSubmit('sendTokenMessage'))
{
$title = Tools::getValue('title');
$msg = Tools::getValue('message');
$content = $this->context->smarty->fetch(_PS_MODULE_DIR_ . 'pushnotification/views/templates/admin/pushnotificationform.tpl');
$this->context->smarty->assign(array(
'content' => $this->content . $content,
'msg' => $msg,
'title' => $title
));
}
}
public function sendMessage($title,$msg)
{
$sql = " Select Token From Token";
$result = DB::getInstance()->execute($sql);
foreach($result as $row) {
$message = array("title" => $title, "text"=> $msg);
$message_status = send_notification($row["token"], $message);
}
return $message_status;
}
}
6,내 pushnotificationform.tpl 코드 :
<div>
{if $msg!=""}
<p>{$msg}</p>
{/if}
</div>
<form action="{$link->getAdminLink('pushnotification', 'AdminPushNotification', [], true)|escape:'html'}" method="post">
<div style="padding-bottom:10px;" class="form-group">
<label for="" class="control-label col-lg-6">Title</label>
<div class="col-lg-6">
<input class="form-control input-lg" type="text" name="title" />
</div>
</div>
<div class="form-group">
<label for="" class="control-label col-lg-6">Message</label>
<div class="col-lg-6">
<textarea name="message" class="form-control" style="min-width: 100%"></textarea>
</div>
</div>
<input type="submit" name="sendTokenMessage" value="send" class="btn btn-default" />
</form>
$ link-> getAdminLink로 변경되었습니다. 이제 404 페이지를 얻습니다. 사실 관리자 컨트롤러에서 양식 제출을 처리하는 방법에 대한 문서를 줄 수 있습니까? –
public function postProcess() { if (Tools :: isSubmit ('sendTokenMessage')) { $ title = Tools :: getValue ('title'); $ msg = Tools :: getValue ('message'); $ content = $ this-> context-> smarty-> fetch (_PS_MODULE_DIR_. 'pushnotification/views/templates/admin/pushnotificationform.tpl'); $ this-> context-> smarty-> assign (배열 ( '콘텐츠'=> $ this-> 콘텐츠. $ 콘텐츠, 'msg'=> $ msg, '제목'=> $ 제목 ) ; } } –
불행히도 [이] (http://blog.belvg.com/how-to-use-the-class-admincontroller-in-prestashop.html) 이외에 다른 것이 있다고 생각하지 않지만 if 전체 컨트롤러 코드를 보여줄 수 있습니다. – TheDrot