使用管理生成器模块中的组件,可能吗?怎么样?

时间:2013-06-25 15:21:04

标签: symfony1 symfony-1.4 admin-generator

我需要建立一个像image这样的管理界面。在过去,我为此目的使用组件,但现在因为模块是通过admin-generator生成的,我不知道如何完成这项工作。我检查了所有这些文档123,但没有任何关于如何执行此操作的线索。我还在components.class.php文件夹下创建了modules/sdriving_empresa/actions,并在视图include_component('sdriving_empresa')中包含该组件,但收到此错误:

  

sfComponents初始化失败。

任何帮助?

2 个答案:

答案 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>

轻松设置:

  1. 在模块模板文件夹中,创建文件夹: /_tabs
  2. 在文件夹/ _tabs内创建文件夹 /_information /_admin
  3. 在文件夹/ _tabs / _information内创建文件partial: _information.php
  4. 在文件夹/ _tabs / _admin内创建文件partial: _admin.php
  5. 在每个文件中,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和componentName
function include_component($moduleName, $componentName, $vars = array())
{
  echo get_component($moduleName, $componentName, $vars);
}

或者您的模块可能是错误的应用程序。在这种情况下,您可以考虑在插件中移动它