【问题标题】:TYPO3 tx_news problem by adding custom fieldTYPO3 tx_news 问题通过添加自定义字段
【发布时间】:2018-11-28 11:32:54
【问题描述】:

我在为typo3 8.7.20 的 tx_news 扩展中添加 3 个自定义字段时遇到了问题。

我已经学习过本教程:http://keinerweiss.de/525-die-extbase-extension-news-um-ein-feld-erweitern.html

但我无法让它工作。

在后端我可以看到新的字段(lat、lng、reciever),我可以用内容填充它们,当我保存它们时,它们就在数据库中。所以效果很好。

在前端它不起作用。如果我没有登录 Typo3,我现在什至看不到页面。

如果我已登录:在流体调试器中,我可以看到 3 个变量,但它们始终为空(即使我已在这些新字段中保存了带有一些内容的新闻记录)

这是我的领域模型:

<?php
namespace Newsextend\Newsextend\Domain\Model;

/**
 * News model for default news
 *
 * @package TYPO3   
 * @subpackage tx_news
 */
class NewsDefault extends \GeorgRinger\News\Domain\Model\News {
/**
 * @var string
 */
protected $ext_lat;
/**
 * @var string
 */
protected $ext_lng;
/**
 * @var string
 */
protected $ext_reciever;

/**
 * Get lat
 *
 * @return string
 */
public function getExt_lat()
{
    return $this->ext_lat;
}
public function setExt_lat($ext_lat)
{
    $this->ext_lat = $ext_lat;
}

/**
 * Get lng
 *
 * @return string
 */
public function getExt_lng()
{
    return $this->ext_lng;
}
public function setExt_lng($ext_lng)
{
    $this->ext_lng = $ext_lng;
}

/**
 * Get reciever
 *
 * @return string
 */
public function getExt_reciever()
{
    // return "teststring";
    return $this->ext_reciever;
}
public function setExt_reciever($ext_reciever)
{
    // return "teststring";
    $this->ext_reciever = $ext_reciever;
}

/**
 * Set title
 *
 * @param string $subtitle subtitle
 * @return void
 */
public function setSubtitle($subtitle)
{
    $this->subtitle = $subtitle;
}
}

这是我的 Typescript setup.txt:

    plugin.tx_news {
    persistence {
        classes {
            GeorgRinger\News\Domain\Model\News {
                subclasses {
                    # three different classes are used for each news type
                    # 0 == default news
                    0 = Newsextend\Newsextend\Domain\Model\NewsDefault
                }
            }
            Newsextend\Newsextend\Domain\Model\NewsDefault {
                mapping {
                    recordType = 0
                    tableName = tx_news_domain_model_news
                }
            }
        }
    }
}

还有我的 ext_tables.php

    <?php
defined('TYPO3_MODE') || die('Access denied.');

call_user_func(
    function()
    {

        \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('newsextend', 'Configuration/TypoScript', 'news_extend');
        \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'news_extend');
    }
);

// define new fields
$tempColumns = array(
    'ext_lat' => array(
        'exclude' => 0,
        'label' => 'LAT',
        'config' => array(
            'type' => 'input',
            'size' => 30,
            'eval' => 'trim'
        ),
    ),
    'ext_lng' => array(
        'exclude' => 0,
        'label' => 'LONG',
        'config' => array(
            'type' => 'input',
            'size' => 30,
            'eval' => 'trim'
        ),
    ),
    'ext_reciever' => array(
        'exclude' => 0,
        'label' => 'Förderungsempfänger',
        'config' => array(
            'type' => 'input',
            'size' => 30,
            'eval' => 'trim'
        ),
    ),
);

// add field to tca
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
    'tx_news_domain_model_news',
    $tempColumns,
    1
);

// add new field subtitle after title
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes("tx_news_domain_model_news", 'ext_lat', '', 'after:title');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes("tx_news_domain_model_news", 'ext_lng', '', 'after:ext_lat');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes("tx_news_domain_model_news", 'ext_reciever', '', 'after:ext_lng');

谁能看到我的问题? 谢谢 克里斯托弗·史密斯

【问题讨论】:

  • 检查你的模型你的 CamelCase ;) 不是 $ext_reciever -> $extReciever

标签: typo3 typo3-8.x tx-news


【解决方案1】:

在 extbase 中,下划线被转换为大写。因此,如果您在 DB 中的字段是 ext_lat,那么属性必须是 $extLat,并且 getter 和 setter 也必须根据它进行更改。

【讨论】:

  • 好的,我现在已将每个 var 从 ext_xxx 更改为 extXxx,即使在数据库等中也是如此……仍然是同样的问题。我无法访问前端的数据
  • 在 db 中它必须保留下划线,或者删除下划线并且属性到处都是小写
  • 啊,好的,谢谢。现在登录就可以了。但是为什么当我是普通的页面访问者时,新闻详情页面上的页面内容会消失? stiftung-wald-wild.webseiten.cc/news-details/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
相关资源
最近更新 更多