0

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

sfComponents 初始化失败。

有什么帮助吗?

4

2 回答 2

1

标签和部分,简单的方法:)

为此目的,最好的 javascript 之一是Javascript Tabifier。它易于安装和使用。你会发现很多其他的 Javascript 和 jQuery Tabbers,选择你最喜欢的。

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

让我们看一个带有两个选项卡的 Tabifier 示例,信息和管理以及两个部分

编辑成功.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 中创建文件部分:_information.php
  4. 在文件夹 /_tabs/_admin 中创建文件部分:_admin.php

在这些文件中的每一个中,partials 都可以写入您想要的任何内容。
这些部分将接收左侧变量形式:array('form' => $form)。
您可以向部分发送多个变量: array('form' => $form, 'variable2' => $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 更改管理生成器操作或模板
http://www.slideshare.net/loalf/symfony-y-admin-generator
http://symfony.com/legacy/doc/jobeet/ 1_4/en/12?orm=教义

于 2013-06-26T06:49:17.740 回答
0

你需要 moduleName 和 componentName 在你的 include_component()

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

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

于 2013-06-26T09:32:51.267 回答