【发布时间】:2016-06-21 04:59:15
【问题描述】:
所以我一直致力于将 OpenCart 集成到 UserFrosting (http://www.userfrosting.com/)。基本上,我通过使用.load 将页面注入到我自己的html 页面上的div 来使所有管理仪表板页面加载到UserFrosting 仪表板中。我几乎完成了,但还有最后一个工作没有留在 UF 仪表板中。
我将以目录/类别页面为例来说明我在做什么:
这是我的类别 html 文件,名为 cata-categories.html
<!DOCTYPE html>
<html lang="en">
{% include 'components/head.html' %}
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<body>
<div id="wrapper">
{% include 'components/nav-account.html' %}
<div id="page-wrapper">
{% include 'components/alerts.html' %}
<ol id="categories"></ol>
<script>
$( "#categories" ).load( "../solutions/admin/index.php?route=catalog/category" );
</script>
<br>
{% include 'components/footer.html' %}
</div>
</div></div>
</body>
</html>
这是通过 UserFrosting 的侧边栏访问的,在 sidebar.html 中使用以下代码:
{% if checkAccess('uri_manage_groups') %}
<li>
<a href="{{site.uri.public}}/cata-categories/"><i class="fa fa-tags fa-fw"></i>Categories</a>
</li>
{% endif %}
页面是通过 public/index.php 中的以下代码为 UserFrosting 呈现的:
$app->get('/cata-categories/?', function () use ($app) {
$app->render('cata-categories.html', [
'page' => [
'author' => $app->site->author,
'title' => "Catagories",
'description' => "Catalogue Catagories.",
'alerts' => $app->alerts->getAndClearMessages()
]
]);
});
为了保持 OpenCart 页面上的所有链接都被点击,我将以下脚本放在每个主要 .tpl 的底部(例如 category_list.tpl):
<script>
$("#categories").on("click", "a", function (e) {
$("#categories").load($(this).attr("href"));
e.preventDefault();
});
</script>
然后,为了在提交表单时将内容保持在同一页面上,我将控制器中的重定向(例如 category.php)更改为以下内容:
$this->response->redirect('../../portal/cata-categories');
一切都很好,现在唯一的问题是表单提交或过滤结果中的错误。例如,如果有人尝试添加新类别但未填写任何信息并单击保存,它将重定向到 /admin/index.php?route=catalog/category/add,但不在 UserFrosting 仪表板内。
我希望它保留在我的仪表板中,并且需要朝着正确的方向推动在控制器中修改的内容以使其执行此操作,我假设某种 AJAX 强制它不重新加载页面并只显示错误。与过滤器按钮相同,它显然需要向 URL 添加过滤器,因此不会在仪表板中加载 - 需要一种无需刷新即可过滤的方法。
非常感谢有修改 OpenCart 经验的人提供的任何帮助,如果您需要有关我正在做什么的更多信息,请随时询问。
【问题讨论】:
-
我已经召见皇上来协助你。
-
@r3wt 我感觉到源中有干扰。
-
@WintersWolf 是
/admin/index.php?route=catalog/category/addOpenCart 的路线之一吗? OpenCart 有自己的内部路由器吗?
标签: php jquery ajax opencart userfrosting