这篇文章更多的是为了获得建议和想法,而不是解决问题。这有点难以解释,但我会尽力的。
我有一个文档存储库,它由一个带有PDF的唯一目录组成,这些文档必须在"虚拟"文件夹中显示给最终用户,因为它们必须在其中许多文件夹中可见。我所说的虚拟文件夹是文件系统中目录的正常层次结构,但最终文档必须取自前面提到的PDF存储库。
示例:
repo/{dozens of PDF}
rootfolder/sub-folder1/sub-folder11/contracts1.php
/sub-folder2/contracts1.php
/sub_folder3/sub-folder31/contracts2.php
/sub_folder4/sub-folder41/sub-folder42/sub-folder43/contracts3.php
/sub-folder5/contracts5.php
这是一个我老板希望很快准备好的项目,所以现在,我一直在使用php文件树,它生成了一种很好的树状方式来浏览文件夹,每个文件夹中的结束文件都是一个带有PDF列表的php文件。它工作得很好,但每次更改,我都需要编辑那些php文件,将来这项任务应该由其他人(不懂HTML/php编辑的办公室用户)以简单的方式完成。
你们会推荐我什么?
两件重要的事情是:
PDF必须在一个单独的位置,单目录
最终用户必须看到树状页面
谢谢。
fabien
免责声明:这可能有点多,但可能无论如何都有用。
他们用我的方式:
-
将ExtJs与Ext.tree.Panel一起使用(其中一棵树是您的pdf源,第二棵树是虚拟目录)
-
将最终的树存储在数据库或xml文件中
-
为办公室用户构建一个迷你管理gui
-
为最终用户构建一个视图,只显示带有pdf的虚拟目录树。
我会让一个目录树真正成为虚拟的,也就是说,我会在DB中创建它,而不是在文件系统中创建它。文件列表也将在DB中(即,DB中的文件名,文件系统上的文件)。另一个DB表将用于将文件链接到目录。
create table file (
id integer primary key,
name varchar(64) not null
) engine = InnoDB;
create table directory (
id integer primary key,
parent_id integer,
name varchar(64) not null
) engine = InnoDB;
create table file_in_directory (
file_id integer not null,
directory_id integer not null,
primary key (file_id, directory_id)
) engine = InnoDB;
insert into directory (id, parent_id, name) values
(1, null, 'rootfolder'),
(2, 1, 'sub-folder1'),
(3, 1, 'sub-folder2'),
(4, 1, 'sub-folder3'),
(5, 1, 'sub-folder4'),
(6, 1, 'sub-folder5'),
(7, 2, 'sub-folder11'),
(8, 4, 'sub-folder31'),
(9, 5, 'sub-folder41'),
(10, 9, 'sub-folder42'),
(11, 10, 'sub-folder43');
insert into file (id, name) values
(1, 'contracts1.php'),
(2, 'contracts2.php'),
(3, 'contracts3.php'),
(4, 'contracts5.php');
insert into file_in_directory (file_id, directory_id) values
(1, 7), -- rootfolder/sub-folder1/sub-folder11/contracts1.php
(1, 3), -- rootfolder/sub-folder2/contracts1.php
(2, 8), -- rootfolder/sub_folder3/sub-folder31/contracts2.php
(3, 11), -- rootfolder/sub_folder4/sub-folder41/sub-folder42/sub-folder43/contracts3.php
(4, 6); -- rootfolder/sub-folder5/contracts5.php