Php 使用管理部分进行块定位

Php 使用管理部分进行块定位,php,Php,在我的管理部分,我有一个块生成器。 区块非常简单,区块标题,区块内容 在管理部分显示/确定主题布局的最简单方法是什么,以便用户可以定位块 一个想法是使用数字,因此,1=块区域1,2=块区域2等 前端中的函数可能如下所示: function showBlocksForArea(1) { // Return blocks Array where block_area=1 } 在主题/模板中呈现为: echo'<div id="block_area_one">'; foreac

在我的管理部分,我有一个块生成器。 区块非常简单,区块标题,区块内容

在管理部分显示/确定主题布局的最简单方法是什么,以便用户可以定位块

一个想法是使用数字,因此,1=块区域1,2=块区域2等

前端中的函数可能如下所示:

function showBlocksForArea(1) {
    // Return blocks Array where block_area=1 
}
在主题/模板中呈现为:

echo'<div id="block_area_one">';
foreach($view->showBlocksForArea(1) as $row) {
    echo '
    <div class="block_wrap">
    <div class="block_title">'.$row['block_title'].'</div>
    <div class="block_body">'.$row['block_body'].'</div>
    </div>
    ';
}
echo '</div>';
echo';
foreach($view->showBlocksForArea(1)作为$row){
回声'
“.$row['block_title']”
“.$row[“块体”]。”
';
}
回声';
这很好,如果用户不看主题就不知道这些区域在哪里,请接受。

管理部分

如果我能抓取布局的HTML,这样的东西将是完美的:


有更简单的方法吗?

以下是基于此处发生的聊天的答案:

以下是我对您的目标的理解:

  • 您正在创建一种用于创建网站的CMS应用程序
  • 这些网站是模块化的,允许管理员轻松定制其网站和内容的外观和感觉,而无需广泛的代码知识
  • 为了实现这一点,您已经创建了一个模板和内容系统,可以通过各种方式组合这些模板和内容来创建这些主题页面。这主要是由一组PHP函数驱动的,这些函数从数据库中提取模板和块数据
  • 随着新主题的创建,管理员可以在不做任何修改的情况下“正常工作”,因为这些函数可以拉入任何主题,并且可以与任何模板组合
  • 模板必须有一个通用的命名结构,这样CSS就可以很容易地替换掉
鉴于这些信息,我将采取以下措施:

数据库模式 我会设置一个数据库结构,类似于我创建的模式:

这里的想法是,
模板
记录可以有任意数量的“槽”。DB对于插槽在页面上的位置是不可知的(这是主题的责任),但是
TemplateSlots
用于为内容(
)的放置位置提供“占位符”

每次用户创建一个新的
页面
,都会添加一条页面记录,该页面与一个
模板
相关联,该模板中还包含有关插槽的信息。
模板
还定义了一个文件(最有可能是一个PHP文件),用于指定插槽所在的占位符。该页面从与其关联的
站点
获取
主题
信息。每个
主题
可以有一组
主题内容
(多个CSS文件、js文件、图像等)

可以创建为其分配内容的块。这些块最初独立于
模板
,DB可以预先填充公共构建“块”。通过创建
PageBlock
记录,将块分配给
页面后,这些块可以与
模板关联,并分配
TemplateSlot

DB结论 这种结构允许很大的灵活性,并允许数据库处理许多潜在的复杂用户场景。通过将模板和插槽分割为单独的表,您可以动态创建各种形状和大小的模板,而无需进行任何代码更改

PHP管理员 对于管理员,您可以使用任何您喜欢的机制从数据库中提取数据。但用户工作流程将如下所示:

  • 登录到管理员
  • 选择操作(a->新建,b->更新现有)
  • 选择页面模板
  • 将内容块指定给模板插槽
  • 预演
  • 编译更改(a->保存新页面,b->更新现有页面)