我试图用extbase创建一些东西,但是我得到的错误信息并不是很有帮助.我将blog_example扩展作为指南.一个(可能)重要的区别是:我没有数据库表,因为我想编写一个通过REST连接到外部服务器的自定义域存储库.
实际的错误消息(显示在插件上方,而不是异常消息):
尝试调用Tx_MyExt_Controller_SubscriptionController-> createAction()时发生错误
Classes/Controller/SubscriptionController:
 
剥离重要部分.
class Tx_MyExt_Controller_SubscriptionController extends Tx_Extbase_MVC_Controller_ActionController 
{
    /**
     * @var Tx_MyExt_Domain_Repository_SubscriberRepository
     */
    protected $subscriberRepository;
    /**
     * @return void
     */
    public function initializeAction()
    {
        $this->subscriberRepository = t3lib_div::makeInstance('Tx_MyExt_Domain_Repository_SubscriberRepository');
    }
    /**
     * @param Tx_MyExt_Domain_Model_Subscriber $subscriber
     * @dontvalidate $subscriber
     * @return  string      The rendered view
     */
    public function newAction(Tx_MyExt_Domain_Model_Subscriber $subscriber = null)
    {
            $this->view->assign('subscriber', $subscriber);
    }
    /**
     * @param Tx_MyExt_Domain_Model_Subscriber $subscriber
     * @return  string      The rendered view
     */
    public function createAction(Tx_MyExt_Domain_Model_Subscriber $subscriber)
    { }
}
类/域/型号/用户
class Tx_MyExt_Domain_Model_Subscriber extends Tx_Extbase_DomainObject_AbstractEntity …在我的TCA配置中,我有以下代码:
'image' => array(
    'exclude' => 0,
    'label' => 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xml:tx_myext_domain_model_modelname.image',
    'config' => array(
        'type' => 'group',
        'internal_type' => 'file',
        'uploadfolder' => 'uploads/tx_myext',
        'show_thumbs' => 1,
        'size' => 5,
        'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],
        'disallowed' => '',
        'eval' => 'required'
    ),
),
我添加了'eval' => 'required'(最后一行),但图像仍然不是必需的.
在文本'eval' => 'required'作品等其他元素上:
'homepage' => array(
    'exclude' => 0,
    'label' => 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xml:tx_myext_domain_model_modelname.homepage',
    'config' => array(
        'type' => 'input',
        'size' => 30,
        'eval' => 'trim,required'
    ),
),
最后一个问题:如何制作图像?
在做新东西之前,我希望我的scheduler-Task从数据库中删除所有条目,execute-function看起来像这样:
public function execute() {
  $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');
  $jobRepository = $objectManager->get('\TYPO3\MyExtension\Domain\Repository\JobRepository');
  //clear DB
  $jobRepository->removeAll();
  (...)//insert new entries to DB
  $objectManager->get('TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface')->persistAll();
  return true;
}
将新条目插入数据库工作正常,但清除数据库根本不起作用.我究竟做错了什么?
在我的分机 我自动生成一个密码,该密码转换为加密密码并存储在数据库中.密码的生成是使用saltedpassword ext中提供的方法完成的.
在我的申请注册过程结束时,我想以纯文本显示密码.据我所知,盐渍密码扩展中没有可用于将密码转换回纯文本的方法.
我怎样才能做到这一点?
TNX
我目前正在开发一个在文本文件中处理XML的项目.我想提取内容,我想将它添加到表tt_content.我的问题是我应该在哪里放置所有函数(upload-file,extract-content,insert-tt_content)?
我在Typo3 6.2中扩展了扩展构建器,extbase和fluid.
我想在前端添加一个时间戳.
我在网上找到了一个.js文件,并希望在扩展处于活动状态时包含它,因为我经常需要它.
我把这个文件放在这里:EXT:/Resources/Public/JS/timepicker.js.
我看到了一个解决方案这个文章,但增加  
page.includeJS.tx_myExtension = EXT:/Resources/Public/JS/timepicker.js
在我的setup.txt底部不起作用.
我没有定义page那里,所以我认为这可能是原因,但我真的不知道 - 这是我的setup.txt(自动生成)在/ typo3conf/ext // Configuration/TypoScript /:
plugin.tx_myext_test {
    view {
        templateRootPath = {$plugin.tx_myext_test.view.templateRootPath}
        partialRootPath = {$plugin.tx_myext_test.view.partialRootPath}
        layoutRootPath = {$plugin.tx_myext_test.view.layoutRootPath}
    }
    persistence {
        storagePid = {$plugin.tx_myext_test.persistence.storagePid}
    }
}
最终我希望我的前端函数能够与datepicker一起工作,因为我在我的根模板中包含了jQuery.但我不想在那里加入时间戳,只是为了扩展.
<script>
    $(function () {
        $('.lc-datepicker').datepicker();
        $('.lc-timepicker').timepicker();
    });
</script>
我正在使用auth类型的服务来添加基于API的登录.我尝试通过Extbase添加一个带有FrontendUserRepository的用户@inject.但这不起作用.
我做错了什么,或者是否要尽早使用依赖注入?
PS:我知道我可以通过以下方式使用存储库:
$objectManager = GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');
$this->frontendUserRepository = $objectManager->get('TYPO3\\CMS\\Extbase\\Domain\\Repository\\FrontendUserRepository');
我注意到在我的一些TYPO3 7.6扩展中,一个动作似乎被调用两次,例如listAction.如果我放置一个vardump或一个回声,它会输出两次,但模板显示正确一次.我无法在代码中发现任何错误.奇怪的是在另一个网站上它不会发生相同的扩展.
可能是什么原因以及如何调试?
从特定对象获取表名的最佳方法是什么?是否有类似的东西:
$tableName = Utility::doSomeMagic($object);
这样您就可以从Vendor \ Extkey \ Domain \ Model \ MyObject中获得tx_extkey_domain_model_myobject。
有没有办法通过Typoscript替换/覆盖扩展名的默认de.locallang.xlf?我想以一种可以在更新后保存的方式更改mindshape_cookie_hint的文本。
extbase ×10
typo3 ×10
typo3-7.6.x ×3
fluid ×1
javascript ×1
jquery ×1
localization ×1
php ×1
scheduler ×1
translation ×1
typo3-8.x ×1
typoscript ×1