你如何解决PHP中的“非结构化”导航?

你如何解决PHP中的“非结构化”导航?,第1张

概述我有一个基于PHP的大型CMS来管理网页.所有项目都以树形结构组织.当我编辑项目时,“后退”按钮通常指向其父项.因此,通常的工作流程是在树中导航.现在,时不时地需要一种“跳转”到其他项目而不考虑结构的工作流程.例如,当用户正在编辑网页时,他们可能想要打开页面附加到的模板(完全不同的分支中的另一个项目),在那里进行更改,并且当单击“保存”时,期望返回到他们正在

我有一个基于PHP的大型CMS来管理网页.
所有项目都以树形结构组织.
当我编辑项目时,“后退”按钮通常指向其父项.
因此,通常的工作流程是在树中导航.

现在,时不时地需要一种“跳转”到其他项目而不考虑结构的工作流程.

例如,当用户正在编辑网页时,他们可能想要打开页面附加到的模板(完全不同的分支中的另一个项目),在那里进行更改,并且当单击“保存”时,期望返回到他们正在编辑的页面.

目前,我用这个来解决这个问题

domain.com/admin/template/edit?from=/frontpage/edit

其中“from”变量确定“保存”和“取消”按钮的目标URL.

当路径变得太长且太复杂时,这可以达到某一点.例如,如果用户怎么办

>编辑页面
>打开附加的模板
>在前端视图中预览该模板
>然后期望无缝地回到他们正在编辑的页面?

现在,“历史”在最后一项结束,因此当用户从前端视图返回时,到原始页面的链接将丢失,并且他们必须手动搜索.

另一个可能很快发生的问题是包含所有“from”值的GET URL变得太长或完全混乱:

domain.com/admin/template/edit?from=/frontpage/edit&from=/somepage/edit&from=/template/prevIEw&/from=template/edit&/from=template_prevIEw ...

(你得到漂移)

我过去通过打开单独的窗口来优雅地解决了这个问题,但我真的想实现一个普遍适用的无缝单窗口工作流程,主要是因为多个窗口往往会混淆用户.

你是如何解决这个问题的?

你有没有实现一个强大的“非结构化”导航,适用于打开多个窗口(=一个用户使用不同的导航路径做多个不同的事情)?

你如何在用户界面上解决这个问题?

我能想到的最好的方法是传递一个“from”值,该值指向数据库或会话中的临时记录.该记录包含有关当前路径的所有信息,因此可以始终提供正确的“返回页面x”值.

我最想听到的是那些成功实现这一点的人的经历,以及他们是如何做到的.

最佳答案只是几个建议

预览问题:在iframe中预览,所以历史不会丢失?

杂乱的URL问题:如果每个页面都有某种键,而不是URL路径

(i.e. /frontpage/edit = 952,/frontpage/edit&from=/somepage/edit = 763,/template/prevIEw = 651,template/edit = 612,template_prevIEw = 866 etc.)

你可以在PATH_INFO中将它们串在一起,如下所示:

domain.com/admin/template/edit/952/763/651/612/866
总结

以上是内存溢出为你收集整理的你如何解决PHP中的“非结构化”导航?全部内容,希望文章能够帮你解决你如何解决PHP中的“非结构化”导航?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1119751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存