首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在管理生成器模块中使用组件,是可能的吗?多么?

在管理生成器模块中使用组件,是可能的吗?多么?
EN

Stack Overflow用户
提问于 2013-06-25 15:21:04
回答 2查看 161关注 0票数 0

我需要构建一个像这个图像展示的管理界面。在过去,我使用组件来实现这个目的,但是现在由于这些模块是通过admin-generator生成的,所以我不知道如何做到这一点。我检查了所有这些文档-- 123. --但不知道如何做到这一点。我还在components.class.php文件夹下创建了一个modules/sdriving_empresa/actions,并将该组件包含在视图include_component('sdriving_empresa')中,但得到了以下错误:

sfComponents初始化失败。

有什么帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-26 06:49:17

Tabs和Partials,简单的方法:)

实现这一目的的最佳javascripts之一是Javascript禁忌器。它很容易安装和使用它。您会发现许多其他Javascript和jQuery禁忌,得到一个你最喜欢的。

我建议你学习symfony 1部分的一切,以便轻松地完成这项工作。通常,部分是保存在外部文件中的一段代码,然后在代码的任何部分加载。这就像一个包含大量html和php代码的变量。Partials (外部文件)还允许接收输入变量,因此很容易从相关模块或表中发送ids。

让我们看一个包含两个表、信息和管理以及两个部分的表的示例。

editSuccess.php

代码语言:javascript
复制
$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. 在文件夹中创建/_information/_admin文件夹/_tabs
  3. 在文件夹/_tab/_information中创建文件分部:_information.php
  4. 在文件夹/_tab/_admin中创建文件分部:_admin.php

在这些文件中的每一个,部分写任何你想要的东西。

这些部分将接收左变量表单:数组(‘form’=> $form)。

可以向部分发送多个变量:数组(‘form’=> $form,'variable2‘=> $formnumber2)

在编写部分(例如,部分_information )时,可以轻松地在模板中获得表单对象及其值:

代码语言:javascript
复制
$id = $form->getObject()->getId();

对于普通变量,您不需要调用getObject。

最后,深入研究这两种情况的文档,symfony partials和Javascript禁忌。他们会解决你需要的一切。

后端管理生成器:

管理生成器自动生成缓存文件夹中的所有模板。示例:

代码语言:javascript
复制
cache\backend\prod\modules\autoTbPrueba1Backend\templates
cache\backend\prod\modules\autoTbPrueba1Backend\templates\indexSuccess.php

它的大多数文件已经是部分文件,请注意他们的名字中有_符号的文件,他们是部分。这意味着大部分工作已经为您完成,唯一需要做的就是覆盖一些部分(TbPrueba1Backend/list_header,即文件_list_header.php),甚至覆盖包含所需扩展信息的完整模板(indexSuccess.php)。为了覆盖后端生成的模板和部分,可以将这些文件复制到模块的模板文件夹中:

代码语言:javascript
复制
apps\backend\modules\TbPrueba1Backend\templates
apps\backend\modules\TbPrueba1Backend\templates\indexSuccess.php

设置您需要的任何附加信息,如果您在刷新web时没有看到任何新的信息,请记住清除symfony缓存(symfony cc)。

使用新信息覆盖模板和部分之后,现在唯一需要的是在引导框架创建的div选项卡中写入/添加这些部分,就像我前面描述的那样。

对于管理生成器的一个很好的解释:

Symfony 1.4更改管理生成器操作或模板

http://www.slideshare.net/loalf/symfony-y-admin-generator

4/en/12?orm=Doctrine

票数 1
EN

Stack Overflow用户

发布于 2013-06-26 09:32:51

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

代码语言:javascript
复制
function include_component($moduleName, $componentName, $vars = array())
{
  echo get_component($moduleName, $componentName, $vars);
}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17301242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档