【问题标题】:Creating dynamic fields in Powermail 2.x在 Powermail 2.x 中创建动态字段
【发布时间】:2014-12-19 16:34:16
【问题描述】:

我对 powermail 2.x 扩展有疑问。

我的实际要求是,我有一个表单(自定义扩展名),通过它我可以使用邮政编码搜索一些地方。因此,一旦用户提交了值(例如邮政编码),网站将被重定向到我列出该邮政编码下所有可用位置作为链接的页面。当用户单击该链接时,网站将被重定向到我配置了 powermail 2.x 扩展名的另一个页面。我想要实现的是,基于点击的链接(我将通过链接传递place_id,每个地方都有一些会员类型)。我想在单选按钮中显示一组会员类型(使用从另一个表中获取来自 url 的参数)。并且这些项目也应该在预览和邮件中。

我们可以在 powermail 1.6 中使用 $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['powermail']['PM_FieldHook'] 来实现相同的功能?

我们如何在 powermail 2.x 中实现相同的功能??

任何帮助都会被占用?

【问题讨论】:

    标签: typo3 typoscript extbase


    【解决方案1】:

    终于我自己解决了。

    你所要做的就是,

    在 powermial 表单中添加一个新的复选框字段,在扩展选项卡中,您可以分配一个打字稿变量,例如 lib.products。

    lib.products = CONTENT
    lib.products {
    table = pages
    select {
      pidInList = xxx
    }
    renderObj = COA
    renderObj {
      10 = COA
      10 {
        10 = TEXT
        10.dataWrap = {field:title}[\n]
      }
    }
    }
    

    以上代码将在前端生成动态单选按钮。如果您希望在 powermail 字段中创建自定义字段类型,请再次强调。

    tx_powermail.flexForm.type.addFieldOptions.new = Name of the field
    tx_powermail.flexForm.type.addFieldOptions.new.dataType = 1 (If it is an array)
    

    然后添加下面的排版代码

    plugin.tx_powermail.view {
     partialRootPath >
     partialRootPaths {
        10 = EXT:powermail/Resources/Private/Partials/
        20 = EXT:extension/Resources/Private/Partials/
       }
     }
    

    并创建一个模板文件EXT:extension/Resources/Private/Partials/New.html。在该文件中,您可以包含字段(复选框单选按钮或选择框)。

    之后

    $signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\SignalSlot\Dispatcher');
    $signalSlotDispatcher->connect(
      'In2code\Powermail\Controller\FormController',
      'formActionBeforeRenderView',
      'HEV\Extension\Controller\FormController',
      'customfucntion',
       FALSE
    );
    

    我们必须实现 powermail 2.X 中可用的信号槽

    而在

    /**
     * @param \In2code\Powermail\Domain\Model\Form $form
     * @param \In2code\Powermail\Controller\FormController $pObj
     */
    public function manipulateMailObjectOnCreate($form, $pObj) {
        $sectionNr      = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP("SID");
        if ( !isset( $sectionNr ))
        return ;
        foreach ( $form as $forms ){
            foreach( $forms->getPages() as $key => $pages){
                foreach ( $pages->getFields() as $fields ){
                    switch ( $fields->getType() ){
                        case "new":
                            $fields->setMandatory(TRUE);
                            $fields->setCreateFromTyposcript('lib.products');
                        break;
                    }
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2021-06-07
      • 2011-08-26
      • 2013-03-03
      • 2014-03-27
      相关资源
      最近更新 更多