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