- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以我正在制作一个 CMS,一个通过面向对象的 PHP 编写的画廊脚本。不管怎样,现在的问题是我已经有了对象的基本布局,所以我需要开始将它们放在一起,但我不知道该怎么做。
我拥有的本质上是导航、数据、图库和模块类。模块代表页面、类别等。问题是图库输出图像,模块提供页面数据,导航创建(你猜对了)导航。你明白了。
在索引页上,我最终基本上做了这个(这会改变,但它说明了我是如何开始设置它的):
$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 那样采用复杂的方式。
我的问题是如何在简单性和灵 active 之间取得平衡?
任何帮助,甚至想法都会受到赞赏。谢谢。
编辑:我忘了说。问题在于让索引拥有所有这些数据,否则我将不得不做很多 if/else 之类的事情,我真的不想把它变成一个程序程序,只是一个你基本上可以扑通一声的程序东西下来,我们很好。看,模块代表图库和页面。大多数页面不会附加图像,类别会有图像,但不总是文本。如果我调用 thumbGallery 并且它只是一个信息页面,它将导致错误,如果我调用一个信息页面并且它是一个类别,它将不会显示图像(以避免错误)。我可以,并且已经开始在所谓的基本页面中一起构建它,但是我之前提到的问题是它限制了设计者在不必搞乱 php 的情况下拥有的自由度,而且大多数设计者在它出现时都非常愚蠢PHP,不幸的是。特别是 OOP(无意冒犯。我也是一名设计师,但碰巧我也是编程人员)。
最佳答案
如果不查看您的其余代码,就您已有的内容而言,很难知道最佳解决方案。在过去的 9 年里,我从零开始开发了自己的自定义 CMS 应用程序框架,我很乐意为您提供一些提示。
我假设您将所有 CMS 内容存储在数据库中。将图库设置的配置存储在数据库中可能是一种可能的解决方案。从理论上讲,您应该有不同的 View (遵循 MVC 模式)以不同的方式显示画廊。一个用于显示多个图像缩略图的 ListView ,一个用于显示单个图像的 ListView ,以及一个可能用于列出类别的 View 。
因此,在数据库中您可以定义页面 X 应显示缩略图 View 而不是类别 View 。
不确定这是否是您所遇到问题的解决方案,但这是我过去在 CMS 中如何完成的一个非常简单的示例。
关于php - 如何构建 CMS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6462212/
Episerver CMS,我想使用 CMS 发布一个简单的通知模式。我不熟悉 CMS。是否有一些网站可以指导我了解 Episerver CMS 的工作原理。向移动网站发布新内容和新模式 最佳答案 您
我喜欢 Drupal 中的分类法,并考虑在其上为一个已经上线多年的网站构建一个 CMS。我想保留数据库原样(它是 mySQL),以确保旧的 CMS 也能正常工作 - 一些使用它的人不愿意学习新东西。相
我正在使用 DjnagoCMS 3,但所有编辑弹出窗口都有烦人的问题。当页面内容大于(高于)浏览器窗口时会发生这种情况。当我尝试编辑文本或任何 cms 插件(双击内容)时,它会显示弹出窗口,但它的高度
我正在按照官方 Introductory Tutorial 创建一个带有 Django-Cms 的网站。我在前端的编辑模式上遇到了一些问题。首先,顶部横幅没有显示,占位符上的编辑菜单全部损坏。 我做的
我按照说明在我的 Mac 上安装了 Django CMS。当我运行“manage.py cms check”时,一切正常,只是它说找不到 template_1.html。当我进入管理员创建页面时,模板
我是 Django 的新手....经过几个小时的努力,我设法在虚拟环境中安装了 django cms。创建一些模板并将一些页面添加到我的 cms。现在我正在尝试添加一些 css....我已经创建了一个
运行 django-cms 2.4.0-RC1、django 1.5.1 和 python 2.7 的全新安装。我正在尝试使用单个字段创建一个非常简单的自定义插件。该插件在管理员中注册并且工作正常。它
我意识到 django-cms 的重点是没有内容类型并将所有内容都视为页面,但暂时忽略这一点,我将如何将它们添加到 django-cms 中?通过“内容类型”,我的意思是一些行为很像 Page 对象的
我按照说明在我的 Mac 上安装了 Django CMS。当我运行“manage.py cms check”时,一切正常,只是它说找不到 template_1.html。当我进入管理员创建页面时,模板
我正在为客户创建一个 django-cms 站点。我想做类似的事情: 想要的效果是有一个地方,CMS 的用户可以为页面选择背景图像。理想情况下,他们会选择使用类似 Filer 的现有图片。 . 有没
我们在 Django-CMS 中构建了一个网站,并开发了一个带有替代 CSS 的移动版本以适应较小的查看区域。除了通常的导航栏外,我们还希望在每个页面的底部包含下一页和上一页链接。 我知道如何使用这段
这是我在管理模式下尝试更改页面的高级设置时遇到的错误: TypeError at /admin/cms/page/5/advanced-settings/ __str__ returned non-s
我有一个 Orchard CMS 应用程序。我想在主页之外创建多个页面。我想在其他页面上显示一个菜单。用户登录时,应根据其角色显示菜单。有人可以给我解决方案吗? 最佳答案 您可以通过选择 在管理仪表板
如何在 Bolt 中列出分类法中的所有术语?不是应用于记录的术语而是所有现有术语(如标签云或类别列表侧边菜单)? 最佳答案 直接在模板中,可以这样做: {% for category in app.c
我正在构建一个非常简单的网络托管服务,以满足 ma 和 pa 类型的小型企业的需求。 现在我的两难选择是我应该从头开始构建它还是使用现有的 CMS。 CMS 需要可定制,因为我希望构建自己的客户端。我
我有文档类型产品,字段为:图像和文本。我想使用 CMS 转发器将 webpart 添加到 kentico,显示所有文档产品,但我想只显示包含图像的文档(不需要字段图像)。我添加了一行 WhereCon
我目前正在为我的个人项目开发一个非常基础的 CMS。这对我自己的教育和任何事情一样重要。我的一个问题是如何在没有文件扩展名的情况下实现 url/永久链接。我了解使用获取变量从数据库中提取数据,但是如何
Piranha 和 Vue 非常新,但不是 .Net Core。试图让我了解如何创建自定义块。我创建了一个新块,试图将 HtmlBlock 和 ImageBlock 结合起来: using Piran
我有两对不同的 CMS 和 CDS。一个在本地网络上,一个在公共(public)域上。我正在向本地网络上的 CMS 添加新的目标类型。此新目标类型的属性包含位于公共(public)域中的 CDS 的
我想使用一些基于 ASP.NET 的 CMS 来创建我的网站,但不知道该选择哪个... 我在 Sitefinity 中开始它,但是很难按照您想要的方式管理代码...并且它会生成 ASP.NET Web
我是一名优秀的程序员,十分优秀!