我需要建立一个像image这样的管理界面。在过去,我为此目的使用组件,但现在因为模块是通过admin-generator
生成的,我不知道如何完成这项工作。我检查了所有这些文档1,2,3,但没有任何关于如何执行此操作的线索。我还在components.class.php
文件夹下创建了modules/sdriving_empresa/actions
,并在视图include_component('sdriving_empresa')
中包含该组件,但收到此错误:
sfComponents初始化失败。
任何帮助?
答案 0 :(得分:1)
标签和偏好,简单方法:)
为此目的,最好的javascripts之一是Javascript Tabifier。这很简单 安装和使用它。你会发现很多其他的Javascript和jQuery Tabbers,得到你最喜欢的。
我建议你学习symfony 1 partials的所有内容,以便轻松完成工作。通常,partials是一段保存在外部文件中的代码,稍后会在代码的任何部分加载。它就像一个带有大量html和php代码的变量。部分(外部文件)也允许接收输入变量,因此很容易从相关模块或表中发送它们。
让我们看一下Tabifier的示例,其中包含两个Tabs,信息和Admin以及两个partials
<强> editSuccess.php 强>
$sModuleName = sfContext::getInstance()->getModuleName();
$sbasepathtabs = $sModuleName . '/tabs';
<div class='tabber' id='tabberglobal1'>
<div class='tabbertab' title='Information' >
<?php
include_partial($sbasepathtabs . '/_information/_information', array('form' => $form));
?>
</div>
<div class="tabbertab" title="Admin" >
<?php
include_partial($sbasepathtabs . '/_admin/_admin', array('form' => $form));
?>
</div>
</div>
轻松设置:
/_tabs
/_information
和 /_admin
_information.php
_admin.php
在每个文件中,partials会写下你想要的任何内容。
那些部分将接收左变量形式:array('form'=&gt; $ form)。
您可以向partials发送多个变量:array('form'=&gt; $ form,'variable2'=&gt; $ formnumber2)
当你编写局部的部分信息时,你可以轻松地在模板中获取表格对象及其值:
$id = $form->getObject()->getId();
对于普通变量,您不需要调用getObject。
最后,深入研究两者的文档,symfony partials和Javascript Tabifier。他们会为您解决任何需要的事情。
后端管理员生成器:
管理生成器自动生成缓存文件夹中的所有模板。例如:
cache\backend\prod\modules\autoTbPrueba1Backend\templates
cache\backend\prod\modules\autoTbPrueba1Backend\templates\indexSuccess.php
它的大多数文件已经是部分文件,请注意名称中包含_符号的文件,它们是部分文件。这意味着大部分工作已经为您完成,您唯一需要做的就是覆盖一些部分(TbPrueba1Backend / list_header,即文件_list_header.php)甚至是完整模板(indexSuccess.php) )您需要的扩展信息。 要覆盖后端生成的模板和部分,您可以将这些文件复制到模块的模板文件夹中:
apps\backend\modules\TbPrueba1Backend\templates
apps\backend\modules\TbPrueba1Backend\templates\indexSuccess.php
设置您需要的任何其他信息,如果您在刷新网页时没有看到任何新内容,请记得清除symfony缓存(symfony cc)。
使用新信息覆盖模板和部分后,您现在唯一需要的是在我的引导框架创建的div选项卡中编写/添加这些部分,如上所述。
有关管理生成器的详细说明:
Symfony 1.4 change admin generator actions or templates
http://www.slideshare.net/loalf/symfony-y-admin-generator
http://symfony.com/legacy/doc/jobeet/1_4/en/12?orm=Doctrine
答案 1 :(得分:0)
您需要include_component()
中的moduleName和componentNamefunction include_component($moduleName, $componentName, $vars = array())
{
echo get_component($moduleName, $componentName, $vars);
}
或者您的模块可能是错误的应用程序。在这种情况下,您可以考虑在插件中移动它