Doctrine orm 使用zf2的模板系统?
我们计划用zf2和orm创建一个CMS 实际上,我们关心的是cms模板 我们希望我们的系统能够与几个模板一起工作,并通过管理员在主题之间轻松地进行更改 对于最终用户和开发人员来说,创建新模板应该很容易 我们需要一个关于如何构建模板系统的建议: 有一个核心模块和许多子模块,它们有自己的phtml 所以在哪里存储1 phtml和在哪里存储2 phtml 有什么建议或建议吗Doctrine orm 使用zf2的模板系统?,doctrine-orm,zend-framework2,php,Doctrine Orm,Zend Framework2,Php,我们计划用zf2和orm创建一个CMS 实际上,我们关心的是cms模板 我们希望我们的系统能够与几个模板一起工作,并通过管理员在主题之间轻松地进行更改 对于最终用户和开发人员来说,创建新模板应该很容易 我们需要一个关于如何构建模板系统的建议: 有一个核心模块和许多子模块,它们有自己的phtml 所以在哪里存储1 phtml和在哪里存储2 phtml 有什么建议或建议吗 谢谢我鼓励大家看一看,它是我迄今为止见过的最好的模板引擎:)学习细枝语法确实需要一些时间,但如果你看看你得到了什么,它是非常值得
谢谢我鼓励大家看一看,它是我迄今为止见过的最好的模板引擎:)学习细枝语法确实需要一些时间,但如果你看看你得到了什么,它是非常值得的:) 我还不能写评论,所以我写这个作为一个answare。 希望这有帮助。相信我,细枝才是前进的方向。Joust查看他的文档,了解更多关于如何使用它的详细信息 编辑: 您试图解决的问题与模板引擎无关。您可以使用任何模板引擎来实现这一点。如果您愿意,甚至可以使用普通PHP来实现 我构建了一个web应用程序,用户可以在其中注册,获得自己的子域,并在那里创建自己的网页。更改主题、编辑文本、添加页面。简单的CMS功能 最简单的方法是使用themes文件夹,您可以在其中存储主题,如下所示:
themes/
- themeBlue
- css/
- images/
- js/
- html or views/
- themeRose
...
现在这是你放置所有主题的地方,每个主题都有自己的包含图像、css、js文件的文件夹
然后你会有用户,每个用户都可以选择和改变主题。
这些信息将存储在数据库中。您需要存储Jack正在使用MeBlue的用户。你想怎么做就怎么做。您可以将此事件放入users表中,就像user_主题列一样
现在,当有人访问该站点时,您首先查询数据库,查看该用户或web创建者使用的主题。然后从当前主题文件夹加载所有这些文件。并使用存储在数据库中的数据填充html文件,就像在任何其他CMS中一样
这是最简单的实现。例如,您可以在数据库中存储css和html文件:)
希望这能回答你的问题。
幸运的是,我几乎疯狂地构建我的系统:)我最终编写了自己的PHP MVC框架,以实现我的目标。我鼓励您看看,这是迄今为止我见过的最好的模板引擎:)学习细枝语法确实需要一些时间,但如果您看看您得到了什么,这是非常值得的:) 我还不能写评论,所以我写这个作为一个answare。 希望这有帮助。相信我,细枝才是前进的方向。Joust查看他的文档,了解更多关于如何使用它的详细信息 编辑: 您试图解决的问题与模板引擎无关。您可以使用任何模板引擎来实现这一点。如果您愿意,甚至可以使用普通PHP来实现 我构建了一个web应用程序,用户可以在其中注册,获得自己的子域,并在那里创建自己的网页。更改主题、编辑文本、添加页面。简单的CMS功能 最简单的方法是使用themes文件夹,您可以在其中存储主题,如下所示:
themes/
- themeBlue
- css/
- images/
- js/
- html or views/
- themeRose
...
现在这是你放置所有主题的地方,每个主题都有自己的包含图像、css、js文件的文件夹
然后你会有用户,每个用户都可以选择和改变主题。
这些信息将存储在数据库中。您需要存储Jack正在使用MeBlue的用户。你想怎么做就怎么做。您可以将此事件放入users表中,就像user_主题列一样
现在,当有人访问该站点时,您首先查询数据库,查看该用户或web创建者使用的主题。然后从当前主题文件夹加载所有这些文件。并使用存储在数据库中的数据填充html文件,就像在任何其他CMS中一样
这是最简单的实现。例如,您可以在数据库中存储css和html文件:)
希望这能回答你的问题。
幸运的是,我几乎疯狂地构建我的系统:)我最终编写了自己的PHP MVC框架,以完成我想要的。如果您激活application.config.PHP中具有相同视图和布局(相同文件夹结构和文件名)的另一个模块它的视图脚本和布局将在核心模块后加载时自动使用 因此,您可以简单地将application.config.php动态化,以加载只包含视图文件夹的活动模板模块。这将是一个简单而有效的解决方案,没有任何其他库
此外,您还可以使用资产管理器(如assetic)在(模板)模块内提供图像、css等。(看一看zf2 assetic模块,我基于assetic编写了自己的assetize模块以满足我的需要…如果您在application.config.php中激活另一个具有相同视图和布局(相同文件夹结构和文件名)的模块,则在核心模块之后加载时将自动使用它的视图脚本和布局 因此,您可以简单地将application.config.php动态化,以加载只包含视图文件夹的活动模板模块。这将是一个简单而有效的解决方案,没有任何其他库 此外,您还可以使用资产管理器(如assetic)在(模板)模块内提供图像、css等。(看一看zf2 assetic模块,我基于assetic编写了自己的assetize模块,以满足我的需要…) 我在我的应用程序->Module.php onBootstrap中这样做
$ss = $serviceManager->get('application_settings_service');
$settings = $ss->loadSettings();
$serviceManager->get('translator');
$templatePathResolver = $serviceManager->get('Zend\View\Resolver\TemplatePathStack');
$templatePathResolver->setPaths(array(__DIR__ . '/view/'.$settings['theme'])); // here is your skin name
$viewModel = $application->getMvcEvent()->getViewModel();
$viewModel->themeurl = 'theme/'.$settings['theme'].'/';
在这种情况下,我的视图文件夹中有这种结构
view/
default/
application/
error/
layout/
zfcuser/
red/
application/
error/
layout/
zfcuser/
上面的$viewmodel在public_html文件夹/theme/red/中为themeurl的布局注入了一个变量,所有资源都为red
访问layout.phtml->themeurl;?>在viewscript布局中()->themeurl;?>
我仍在制定我的动态视图。现在我得了B