Chr*_*ith 0 typo3 tx-news typo3-8.x
我在为typo3 8.7.20 添加 3 个自定义字段到 tx_news 扩展时遇到了问题。
\n\n我已经使用过本教程: http://keinerweiss.de/525-die-extbase-extension-news-um-ein-feld-erweitern.html
\n\n但我无法让它工作。
\n\n在后端,我可以看到新字段(lat、lng、reciever),我可以用内容填充它们,当我保存它们时,它们位于数据库中。所以效果很好。
\n\n在前端它不起作用。如果我没有登录 Typo3,我现在甚至看不到该页面。
\n\n如果我已登录:在流体调试器中,我可以看到 3 个变量,但它们始终为空(即使我已在这些新字段中保存了带有某些内容的新闻记录)
\n\n这是我的域模型:
\n\n<?php\nnamespace Newsextend\\Newsextend\\Domain\\Model;\n\n/**\n * News model for default news\n *\n * @package TYPO3 \n * @subpackage tx_news\n */\nclass NewsDefault extends \\GeorgRinger\\News\\Domain\\Model\\News {\n/**\n * @var string\n */\nprotected $ext_lat;\n/**\n * @var string\n */\nprotected $ext_lng;\n/**\n * @var string\n */\nprotected $ext_reciever;\n\n/**\n * Get lat\n *\n * @return string\n */\npublic function getExt_lat()\n{\n return $this->ext_lat;\n}\npublic function setExt_lat($ext_lat)\n{\n $this->ext_lat = $ext_lat;\n}\n\n/**\n * Get lng\n *\n * @return string\n */\npublic function getExt_lng()\n{\n return $this->ext_lng;\n}\npublic function setExt_lng($ext_lng)\n{\n $this->ext_lng = $ext_lng;\n}\n\n/**\n * Get reciever\n *\n * @return string\n */\npublic function getExt_reciever()\n{\n // return "teststring";\n return $this->ext_reciever;\n}\npublic function setExt_reciever($ext_reciever)\n{\n // return "teststring";\n $this->ext_reciever = $ext_reciever;\n}\n\n/**\n * Set title\n *\n * @param string $subtitle subtitle\n * @return void\n */\npublic function setSubtitle($subtitle)\n{\n $this->subtitle = $subtitle;\n}\n}\nRun Code Online (Sandbox Code Playgroud)\n\n这是我的 Typescript setup.txt:
\n\n plugin.tx_news {\n persistence {\n classes {\n GeorgRinger\\News\\Domain\\Model\\News {\n subclasses {\n # three different classes are used for each news type\n # 0 == default news\n 0 = Newsextend\\Newsextend\\Domain\\Model\\NewsDefault\n }\n }\n Newsextend\\Newsextend\\Domain\\Model\\NewsDefault {\n mapping {\n recordType = 0\n tableName = tx_news_domain_model_news\n }\n }\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n还有我的 ext_tables.php
\n\n <?php\ndefined(\'TYPO3_MODE\') || die(\'Access denied.\');\n\ncall_user_func(\n function()\n {\n\n \\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::addStaticFile(\'newsextend\', \'Configuration/TypoScript\', \'news_extend\');\n \\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::addStaticFile($_EXTKEY, \'Configuration/TypoScript\', \'news_extend\');\n }\n);\n\n// define new fields\n$tempColumns = array(\n \'ext_lat\' => array(\n \'exclude\' => 0,\n \'label\' => \'LAT\',\n \'config\' => array(\n \'type\' => \'input\',\n \'size\' => 30,\n \'eval\' => \'trim\'\n ),\n ),\n \'ext_lng\' => array(\n \'exclude\' => 0,\n \'label\' => \'LONG\',\n \'config\' => array(\n \'type\' => \'input\',\n \'size\' => 30,\n \'eval\' => \'trim\'\n ),\n ),\n \'ext_reciever\' => array(\n \'exclude\' => 0,\n \'label\' => \'F\xc3\xb6rderungsempf\xc3\xa4nger\',\n \'config\' => array(\n \'type\' => \'input\',\n \'size\' => 30,\n \'eval\' => \'trim\'\n ),\n ),\n);\n\n// add field to tca\n\\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::addTCAcolumns(\n \'tx_news_domain_model_news\',\n $tempColumns,\n 1\n);\n\n// add new field subtitle after title\n\\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::addToAllTCAtypes("tx_news_domain_model_news", \'ext_lat\', \'\', \'after:title\');\n\\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::addToAllTCAtypes("tx_news_domain_model_news", \'ext_lng\', \'\', \'after:ext_lat\');\n\\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::addToAllTCAtypes("tx_news_domain_model_news", \'ext_reciever\', \'\', \'after:ext_lng\');\nRun Code Online (Sandbox Code Playgroud)\n\n谁能看到我的问题吗?\n谢谢\n克里斯托弗·史密斯
\n在 extbase 中下划线转换为大写。因此,如果数据库中的字段是ext_lat,那么属性必须是$extLat,并且 getter 和 setter 也必须根据该字段进行更改。
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |