文档存储库(PHP)



这篇文章更多的是为了获得建议和想法,而不是解决问题。这有点难以解释,但我会尽力的。

我有一个文档存储库,它由一个带有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编辑的办公室用户)以简单的方式完成。

你们会推荐我什么?

两件重要的事情是:

  1. PDF必须在一个单独的位置,单目录

  2. 最终用户必须看到树状页面

谢谢。

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

相关内容

  • 没有找到相关文章

最新更新