Luk*_*ery 5 php oop structure gallery content-management-system
所以我通过面向对象的PHP制作CMS,一个图库脚本.不管怎么说,现在的问题是,我有对象的地方,我需要开始组建点的基本布局和这样的,我难倒如何做到这一点.
我所拥有的基本上是导航,数据,图库和模块类.模块代表页面,类别等.问题是Gallery输出图像,模块为页面提供数据,导航创建(你猜它)导航.你得到了照片.
在索引页面上,我最终基本上做了这个(这将改变,但它是我开始设置它的说明):
$navigation = new Navigation();
$navigation->top();
$page = new Module();
$page->basicPage($_GET['m']);
Run Code Online (Sandbox Code Playgroud)
basicPage()做了一些事情,但主要是这个问题:
$gallery = new Gallery();
$gallery->setGallery($id);
$gallery->thumbGallery();
Run Code Online (Sandbox Code Playgroud)
所以就这样.
出现的问题是,如果我调用basicPage(),那么设计师或任何对选择几乎无法控制的人.如你所见,它是thumbGallery,并且不允许完整的图像,它甚至不允许你设置缩略图的大小(我让他们这样做,只有他们可以自己调用那个函数) .
所以我想到了一些问题的解决方案.我没有这些基本页面,但我让设计人员像wordpress一样构建模板.我不喜欢这个解决方案,因为它使设计过程变得复杂,尽管很彻底.我不想让一切都得到控制,而且是一种方式.当然,你可以"显示:无"作为设计师和其他一些技巧,但我希望他们能够做很多事情,而没有Wordpress的复杂方式.
我的问题是如何在简单和灵活性之间取得平衡?
任何帮助,甚至想法都赞赏.谢谢.
编辑:我忘了提.问题是只是让索引拥有所有这些数据,否则我将不得不做很多if/else等等,而且我真的不想让这个程序程序,只是一个你可以基本上只是plop东西,我们很好.请参阅,模块代表图库和页面.大多数页面都没有附加图像,类别将包含图像,但并不总是文本.如果我调用thumbGallery它会导致错误,它只是一个信息页面,如果我调用一个信息页面并且它是一个类别,它将不会显示图像(以避免错误).我可以,并且已经开始在所谓的基本页面中一起构建它,但是我之前提到过的问题是它限制了设计者有多少自由而不必乱用PHP,而且大多数设计师在它到来时非常愚蠢不幸的是,到PHP.特别是OOP(没有冒犯.我也是设计师,但我也是一个程序).
如果不查看其余代码,就很难知道考虑到您已有的最佳解决方案。在过去的 9 年里,我从头开始开发了自己的定制 CMS 应用程序框架,我很高兴为您提供一些提示。
我假设您将所有 CMS 内容存储在数据库中。将图库设置的配置存储在数据库中可能是一种可能的解决方案。理论上,您应该有不同的视图(遵循 MVC 模式)以不同的方式显示图库。一个用于显示多个图像缩略图的列表视图,一个用于显示单个图像的列表视图,也许还有一个用于列出类别的视图。
因此,在数据库中,您可以定义页面 X 应显示缩略图视图而不是类别视图。
不确定这是否能解决您遇到的问题,但这是我过去在 CMS 中如何完成此操作的一个非常简单的示例。