[TYPO3-dev] New Extension does not show anything
Dirk Ho
dirk_studivz at web.de
Tue Jul 1 14:07:16 CEST 2014
For the second question I found the solution, after I put away the
Laptop and got some distance I remembered I have to instantiate the
DateTime class like that:
$dateTime = new \DateTime();
I'm still searching for a solution, how to set the page id to save my
categories...
Thanks and best wishes,
Dirk
Am 30.06.2014 19:38, schrieb Dirk Ho:
> Hi again,
>
> I'm sorry for disturbing again.
>
> I added Anjas hint ot my CategoryController class. The template is also
> added to my root template.
>
> What I do not have, yet, is the TypoScript I (seem to) need. In my book,
> they do not show, how this TypoScript should look like for the folder,
> the Category objects are stored in. In the books example the new
> generated elements can be found on the same page as the Extension (the
> one I call in the frontend, in my case the "Forum" page).
>
> But when I use "List" view in the Backend (Typo3 6.2) they do not seem
> to be stored. Calling the "Forum" page I get an error
>
> "Found an invalid element type declaration in %s. A type "''" does not
> exist."
>
> Perhaps the problem is, that these objects are not stored anywhere?!
>
> Can you help me with the TypoScript for the folder I store my Objects in?
>
> Another problem is, if I want to use php objects or methods like
> DateTime or now() I get the message, that it cannot be found in
> DH\Forum\Controller\DateTime - of course. If I try to put an annotation
> above the variable like
> /**
> * @var \DateTime
> */
> $data = new DateTime();
>
> Nevertheless I cannot use the DateTime object.
>
> How do I have to use php objects/methods?
>
> Thanks and best wishes,
>
> Dirk
>
> Am 29.06.2014 22:47, schrieb Anja Leichsenring:
>> Hi Dirk,
>>
>> I take your code as a example for usage, otherwise I would need to write
>> a book now.
>>
>> First of all, you need a TypoScript Template, what the extension_builder
>> should have generated for you. This you need to add to your root
>> template, and set at least the PID in setup or constants, where your
>> records are stored and looked for.
>>
>> In your list action, you create a new instance, but you never add it to
>> the repository, so no call to the persistence manager will do any good.
>> I add the missing line in your code below.
>>
>> After this, you should see your categories.
>>
>> Hope this helps.
>> Kind regards
>> Anja
>>
>> On 29.06.2014 21:59, Dirk Ho wrote:
>>> Hi all,
>>>
>>> I tried to create a new extension with the Extension Builder extension.
>>>
>>> Aggregate Root is a Model called "Category", having a n:1 relation to
>>> "Forum" ("Forum has a n:1 relation to "Topic", "Topic" has a n:1
>>> relation to "Post").
>>>
>>> I added the extension "Forumlisting" to a page named "Forum". When I now
>>> call "Forum" nothing is shown (except the page's template). I already
>>> cleared Cache,... but it didn't work.
>>>
>>> Any idea, what I do wrong? When i put file_put_contents to
>>> CategoryController's list method this file is not written.
>>> /var/log/apache2/error.log does not show any error.
>>>
>>> Beneath I posted some code/config information. Do you need additional
>>> information?
>>>
>>> Thanks and best wishes,
>>>
>>> Dirk
>>>
>>> My ext_localconf.php looks like that:
>>> <?php
>>> if (!defined('TYPO3_MODE')) {
>>> die('Access denied.');
>>> }
>>>
>>> \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
>>> 'DH.' . $_EXTKEY,
>>> 'Forumlisting',
>>> array(
>>> 'Category' => 'list',
>>>
>>> ),
>>> // non-cacheable actions
>>> array(
>>> 'Category' => 'list',
>>>
>>> )
>>> );
>>>
>>> My Category Controller looks like:
>>>
>>> <?php
>>> namespace DH\Forum\Controller;
>>> /**
>>> * CategoryController
>>> */
>>> class CategoryController extends
>>> \TYPO3\CMS\Extbase\Mvc\Controller\ActionContro$
>>>
>>> /**
>>> * categoryRepository
>>> *
>>> * @var \DH\Forum\Domain\Repository\CategoryRepository
>>> * @inject
>>> */
>>>
>>> /**
>>> * @var
>>> \TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager
>>> * @inject
>>> */
>>> protected $persistenceManager;
>>>
>>>
>>> /**
>>> * action list
>>> *
>>> * @return void
>>> */
>>> public function listAction() {
>>>
>>> file_put_contents('/var/www/supporters-karlsruhe.de/log.log', 'TEST');
>>>
>>> for ($i = 0; $i <= 3; $i++) {
>>> $category =
>>> $this->objectManager->get('\\DH\\Forum\\Domain\\Model\\Category');
>>> $category->setTitle('A'.$i);
>>> $category->setDescription('A');
>>> $category->setOrderId($i);
>>> $category->setCreatedAt(now());
>>
>> $this->categoryRepository->add($category);
>>
>>> }
>>>
>>> $this->persistenceManager->persistAll();
>>>
>>> $categories = $this->categoryRepository->findAll();
>>> $this->view->assign('categories', $categories);
>>> }
>>> }
>>>
>>>
>>> My Resources\Private\Template\Category\List.html looks like
>>> <ul class="category-list">
>>> <f:for each="{categories}" as="category}>
>>
>> here is a " missing, right after category
>>
>>> <li>{category.title}</li>
>>> </f:for>
>>> </ul>
>>
>
More information about the TYPO3-dev
mailing list