我只是想知道这里的人们的意见,也许还有一些关于如何最好地实施某些事情的指导。
我拥有的是一个非常基本的内部网,仅用于提供公司范围的文档和文件。它在页面顶部有一个基本菜单栏,它有一个顶级项目,然后是子菜单/项目。显然,菜单可以级联很多级别,并且是一个简单的javascript,我有动态驱动器,它变成了一个html< li>结构进入菜单。
基本理念是:
<li><a href='#'>Top Level 1</a>
<ul>
<li><a href='#'>Item 1</a></li>
<li><a href='#'>Item 2</a></li>
<li><a href='#'>Sub menu 1</a>
<ul>
<li><a href='#'>Sub Item 1</a></li>
</ul>
</li>
</ul>
</li>
所以这用于创建菜单。每次你开始一个新的&lt; ul&gt;元素,它将创建一个子菜单。
这样做很好,但是有点痛苦,因为每当网站上的文档发生变化时,我必须手动进入创建新链接,删除旧链接等。
我要做的是将此结构移动到我的数据库中,这样我就可以使用基本的html表单和PHP脚本来在需要时插入,更新和删除链接。
如果我无法上传新文件,它还可以让管理员上传新文件。
我已经快速发挥了这个作用,并找到了一种可行的选择,但是有点笨拙,可能会很难保持前进。
基本上,我会有一个包含下列列的表格:
我可以做的是,有一个唯一的ID供参考,输入文件名和文件路径,它们可以一起用于指向文件位置的href链接。 然后,我可以使用菜单和3个子菜单字段来告诉它将该项目放在菜单结构中的位置。标签只是为链接命名,open in告诉页面打开文档的位置,即_new,frame,ifram等。
然后,PHP可以使用mysql查询来查找菜单中的所有项目并将其回显。问题是,我需要对每个菜单和子菜单进行单独的MySQL查询,这意味着整个菜单最终可能会充满MySQL查询。
有人可以建议更好的解决方案,或者帮助PHP尽可能简单灵活吗?
非常感谢
编
编辑:
如果需要,可以提供PHP的一些示例,但它们非常大。
答案 0 :(得分:2)
我知道的最佳实践是嵌套树结构,逻辑有两个词:
表必填字段: id,parent_id,left,right
然后,在添加第一行时,您获得了此值
1, 0, 1, 2
接下来将改进左右字段,如:
2, 0, 3, 4
3, 0, 5, 6
如果我们需要为第一个项目创建子目录,那么完整的结构将是:
1, 0, 1, 4
2, 0, 5, 6
3, 0, 7, 8
4, 1, 2, 3
这样你就可以轻松地获取左边所有的树,然后检查每一行的父级别值,如果存在parrent,则计算自己的级别。
答案 1 :(得分:0)
我开发了这个“Git”菜单,因为我找不到MySQL驱动的任何东西。 https://github.com/jgarbe/DDrop_Menu我希望有人可以使用它!