OpenCart 2.0.3.1
问题#1:在管理员中,尝试编辑多个标签中的多个项目通常会导致错误消息“无效的令牌会话,请重新登录”。
问题#2:此错误消息似乎是以随机间隔发生的;我似乎无法确定“超时”。
问题#3:单击“保存”后出现错误消息,表示所有更改都丢失。我有许多标签打开了复杂的变化,我想知道是否有可能以某种方式将令牌会话“恢复”到URL中,所以我实际上可以保存它们。
答案 0 :(得分:1)
我写了一个vQmod脚本,让我在管理标签打开时登录。随意使用它。 :)
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<id>Keep Admin Users Logged In - Opencart 2.x</id>
<version>1.0</version>
<vqmver>2.5.1</vqmver>
<author>Tibor Besze</author>
<file name="admin/controller/user/user.php">
<operation error="skip">
<search position="after"><![CDATA[class ControllerUserUser extends Controller {]]></search>
<add trim="true"><![CDATA[
public function pingUser() {
$this->response->addHeader('Content-Type: application/json');
$this->response->setOutput(json_encode(1));
}
]]></add>
</operation>
</file>
<file name="admin/controller/common/footer.php">
<operation error="skip">
<search position="before"><![CDATA[return $this->load->view('common/footer.tpl', $data);]]></search>
<add trim="true"><![CDATA[
if (isset($this->session->data['token'])) {
$data['token'] = $this->session->data['token'];
}
]]></add>
</operation>
</file>
<file name="admin/view/template/common/footer.tpl">
<operation error="skip">
<search position="before"><![CDATA[</body>]]></search>
<add trim="true"><![CDATA[
<?php if (isset($token)) { ?>
<script type="text/javascript">
$(document).ready(function() {
setInterval(function() {
$.ajax({
type: "POST",
url: "index.php?route=user/user/pingUser&token=<?php echo $token; ?>",
dataType: "json",
timeout: 10000
});
}, 15000);
});
</script>
<?php } ?>
]]></add>
</operation>
</file>
</modification>