2013-06-25 30 views
0

我需要构建一个像这样的image显示的管理界面。在过去,我使用组件来达到这个目的,但是现在因为模块生成低谷admin-generator我不知道如何完成这个任务。我检查了所有这些文档1,2, 3,但没有任何线索如何做到这一点。我还创建modules/sdriving_empresa/actions文件夹下的components.class.php并在视图中包括include_component('sdriving_empresa')的成分,但得到这个错误:在管理生成器模块中使用组件,有可能吗?怎么样?

sfComponents initialization failed.

任何帮助吗?

+0

include_component('sdriving_empresa','actionName')也许? –

+0

哪个组件是? – Reynier

+0

好你想要的!看到Ixark的答案,这基本上与我的相同。 –

回答

1

标签和局部模板,最简单的方式:)

一个用于这一目的的最佳可能的JavaScript的是Javascript Tabifier。它很容易 安装和使用它。你会发现很多其他的Javascript和jQuery Tabbers,得到你最喜欢的那个。

我会建议你学习关于symfony 1 partials的一切,以便轻松完成工作。通常,partials是一段保存在外部文件中的代码,稍后将在代码的任何部分加载。它就像一个有很多html和php代码的变量。部分(外部文件)也允许接收输入变量,所以它很容易从相关模块或表格发送它们。

让我们看看与Tabifier的例子有两个标签,信息和管理两个谐音

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> 

轻松地设置它:

  1. 在您的模块模板文件夹中,创建折叠ER:/_tabs
  2. 里面的文件夹/ _tabs创建文件夹/_information/_admin
  3. 里面的文件夹/ _tabs/_information创建该文件的部分:_information.php
  4. 文件夹/ _tabs内/ _admin创建文件部分:_admin.php

在这些文件的每一个里面,部分写入任何你想要的东西。
这些partials会收到左变量的形式:array('form'=> $ form)。
可以发送到泛音多于一个变量:阵列(“形式” => $形式,“变量2” => $ formnumber2)

当写部分,例如在部分_information,可以轻松获取模板中的表单对象及其值:

$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

+0

很好的解释,但对我没用,为什么?因为我主要使用'doctrine:generate-admin'任务模块。我的意思是我使用这个任务来生成模块,在这种情况下,部分将如何适应?我使用Twitter Bootstrap作为CSS框架,所以我使用他们的标签,这不是一个问题,因为我很了解他们 – Reynier

+0

添加了关于管理生成器的信息,它是如何工作的,如何覆盖模板并将它们添加到div选项卡的引导。 – xtrm

0

你需要在你的include_component的模块名和组件名

function include_component($moduleName, $componentName, $vars = array()) 
{ 
    echo get_component($moduleName, $componentName, $vars); 
} 

或者,也许你模块在错误的应用程序中。在这种情况下,你可能会考虑将它移动到一个插件中。

相关问题