[TYPO3-UG Italy] R: R: extending news

Riccardo De Contardi erredeco at gmail.com
Wed May 28 21:27:19 CEST 2014


Silly me!

ho scritto txBhofferid4niewsOfferid anzichè getTxBhofferid4niewsOfferid 
eccetera!
Ora funziona... che fatica però...



--------------------------------------------
Riccardo De Contardi – TYPO3 Certified Integrator
B Human Srl - www.bhuman.it <http://www.bhuman.it>
Corso di Porta Nuova, 46 - 20121 - Milano
TEL +39-02-20.23.271 - FAX +39-02-20.240.561
--------------------------------------------

Il 28/05/14 16:38, Ivano Luberti ha scritto:
> Ciao Riccardo mi sembra che la naming convention del getter e del setter
> non segua quella di extbase.
> Leggi qui:
>
> http://docs.typo3.org/typo3cms/ExtbaseFluidBook/4-FirstExtension/3-create-the-domain-model.html
>
> Il 28/05/2014 15:17, De Contardi Riccardo ha scritto:
>> Ciao e grazie ancora per l'aiuto. Mi pare di intuire che è meglio lasciar perdere extension builder
>> e, almeno in questo caso, rivolgersi al buon vecchio kickstarter :)
>> Accantono il progetto iniziale e tramite kickstarter creo una nuova estensione chiamata bhofferid4niews
>> I file creati inizialmente sono:
>>
>> ChangeLog		
>> ext_emconf.php		
>> ext_tables.sql
>> README.txt		
>> ext_icon.gif		
>> locallang_db.xml
>> \doc			
>> ext_tables.php
>>
>> il contenuto di ext_tables.php è:
>>
>> <?php
>> if (!defined('TYPO3_MODE')) {
>> 	die ('Access denied.');
>> }
>> $tempColumns = array(
>> 	'tx_bhofferid4niews_offerid' => array(		
>> 		'exclude' => 1,		
>> 		'label' => 'LLL:EXT:bhofferid4niews/locallang_db.xml:tx_news_domain_model_news.tx_bhofferid4niews_offerid',		
>> 		'config' => array(
>> 			'type' => 'input',	
>> 			'size' => '30',
>> 		)
>> 	),
>> );
>> t3lib_div::loadTCA('tx_news_domain_model_news');
>> t3lib_extMgm::addTCAcolumns('tx_news_domain_model_news',$tempColumns,1);
>> t3lib_extMgm::addToAllTCAtypes('tx_news_domain_model_news','tx_bhofferid4niews_offerid;;;;1-1-1');
>> ?>
>>
>> a questo punto:
>> 1. creo il file
>>
>> /Resources/Private/extend-news.txt che contiene la riga: Domain/Model/News
>>
>> 2. creo il file /Classes/Domain/Model/News.php che contiene:
>>
>> <?php
>>          class Tx_Bhofferid4niews_Domain_Model_News extends Tx_News_Domain_Model_News {
>>                  /**
>>                  * @var string
>>                  */
>>                  protected $txBhofferid4niewsOfferid ;
>>                  public function txBhofferid4niewsOfferid() {
>>                          return $this->txBhofferid4niewsOfferid;
>>                  }
>>                  public function Bhofferid4niewsOfferid() {
>>                          return $this->txBhofferid4niewsOfferid;
>>                  }
>>          }
>>
>> ?>
>>
>> Alla fine Ottengo questo errore nella list view:
>>
>> Could not determine the child object type.
>>
>> E nella detail view:
>>
>> Exception while property mapping at property path "":Could not determine the child object type.
>>
>> Su Google ho trovato questo simpatico baco: http://forge.typo3.org/issues/56603
>> ho cancellato i record dalla tabella cf_extbase_reflection, ed ora errori non ne da più, ma
>> il campo {newsItem.txBhofferid4niewsOfferid} (oppure {newsItem.Bhofferid4niewsOfferid}) nel template non viene mostrato
>> Mi manca ancora qualcosa??? E se sì, cosa?
>>
>>
>> --------------------------------------------
>> Riccardo De Contardi - Web Developer
>> B Human Srl - www.bhuman.it
>> Riccardo.decontardi at bhuman.it
>> Corso di Porta Nuova, 46 - 20121 Milano
>> TEL +39-02-20.23.271 - FAX +39-02-20.240.561
>> --------------------------------------------
>>
>>
>> -----Messaggio originale-----
>> Da: typo3-ug-italy-bounces at lists.typo3.org [mailto:typo3-ug-italy-bounces at lists.typo3.org] Per conto di Cristian Buja (InteRa s.r.l.)
>> Inviato: mercoledì 28 maggio 2014 09:32
>> A: typo3-ug-italy at lists.typo3.org
>> Oggetto: Re: [TYPO3-UG Italy] R: extending news
>>
>> Ha dimenticavo, se il campo e' stato aggiunto al TCA ma non lo vedi nel Backend, vedi se ti ha aggiunto qualcosa tipo 'tx_extbase_type', Questo perche' quando aggiungi un campo a una tabella con extensionbuilder viene creato un nuovo 'tipo' di modello, mentre ne tuo caso hai la necessita' di usare lo stesso 'tipo' modello, per indendersi nelle news hai 3 tipi, news, internal ed external.
>> In questo caso devi intervenire nell'ext_tables.php.
>>
>>
>> Cristian Buja
>> cristian.buja at intera.it <mailto:cristian.buja at intera.it>
>>
>> Intera - Web, grafica, comunicazione
>>
>> Intera
>> Web, grafica, comunicazione
>> via Fratelli Lumiere, 46/a
>> 48124 Fornace Zarattini (Ra), Italia
>> T: +39 0544 462628
>> F: +39 0544 467457
>> www.intera.it <http://www.intera.it>
>> intera at intera.it <mailto:intera at intera.it>
>>
>>
>> Il 27/05/2014 18:52, Cristian Buja (InteRa s.r.l.) ha scritto:
>>> Ciao Riccardo.
>>> Allora l'extension builder non crea di per se estensioni funzionanti,
>>> ma ti aiuta a ottenere una prima struttura sulla quale poi intervenire.
>>> In secondo luogo le news sfruttano un meccanismo 'non convenzionale'
>>> per essere estese. Ed in fine, sempre le news, non usano (almeno non
>>> ancora
>>> completamente) i namespace che invece usa typo3 6.2.
>>>
>>> Detto questo, per estendere di un solo campo le news ti occorre nella
>>> tua estensione una struttura con questi file:
>>>
>>> -ext_emconf.php
>>> -ext_icon.gif
>>> -ext_tables.sql
>>> -ext_tables.php
>>> -Classes/Domain/Model/News.php
>>> -Resources/Language/locallang_db.xlf
>>> -Resources/Private/extend-news.txt
>>>
>>>
>>> a parte extend-news.txt
>>> (che deve contenere la sola riga di testo 'Domain/Model/News') il
>>> resto dovrebbe averlo creato l'extension builder, anzi ti avra crato
>>> molto di piu' e anche qualcosa di nocivo per le news nel typoscript
>>> sempre per via del 'non convenzionale meccanismo di estensione delle news'
>>>
>>>
>>> fatto questo potrai utilizzare il nuovo campo delle news inserendolo
>>> nei relativi template (a tal proposito puoi copiare i template delle
>>> news nella tua estensione e modificarli li, oppure portare tutto fuori
>>> in
>>> fileadmin)
>>>
>>> E' sicuramente un po molto complicato le prime volte ma dopo un po ci
>>> si fa l'abitudine :P
>>>
>>> Buon divertimento
>>>
>>> ----------------------
>>>
>>> Cristian Buja
>>> cristian.buja at intera.it
>>>
>>>
>>> Il 27/05/2014 10:57, De Contardi Riccardo ha scritto:
>>>> Ciao ti ringrazio per la disponibilità e scusa se non mi sono fatto
>>>> vivo prima.
>>>>
>>>> Allora... parto dal principio: desidero aggiungere un campo che
>>>> chiamo "offerid" (stringa semplice, niente di che) alla tabella
>>>> "tx_news_domain_model_news", e per farlo in TYPO3 6.2.x ho deciso di
>>>> usare extensionbuilder (mai usato prima) 1. Extension builder:
>>>>
>>>> utilizzo le seguenti informazioni nell'estensione:
>>>>
>>>> Name: Offer ID for News
>>>> Vendor name: Bhuman
>>>> Key: bhofferidnews
>>>> Descr.: Extends news and adds offerid field
>>>> category: frontend plugin
>>>> version: 0.0.0
>>>> state: alpha
>>>> Disable versioning: no
>>>> Disable localization: no
>>>> Source language for xliff file: en
>>>> Target Version: 6.2
>>>>
>>>> 2. nel riquadro faccio Drag & Drop di "New model Object" e inizio a
>>>> editarne le proprietà e qui iniziano i casini:
>>>>> Domanda N°1: che nome deve avere? Ho notato che se lo chiamo ad es.
>>>>> Offerid, nella folder
>>>> /Classes/Domain/Model/ compare il file Offerid.php, mentre mi pare di
>>>> capire dal tutorial che deve chiamarsi News.php. O mi sbaglio?
>>>>
>>>> 2.1 Ammesso di chiamarlo "News", l'ho riempito con le seguenti info:
>>>>
>>>> Domain object settings
>>>>     Object type: Entity
>>>>     > Domanda N°2: meglio entity o value object? Che differenza c'è?
>>>>     Is aggregate root? No
>>>>     Enable Sorting: Yes
>>>>     Add deleted field: Yes
>>>>     Add hidden field: Yes
>>>>     Add starttime/endtime fields: Yes
>>>>     Enable Categorization: No
>>>>     Description: Offer ID
>>>>     Map to existing table: tx_news_domain_model_news
>>>>     Extends existing model class:
>>>>
>>>> Default Actions: non l'ho toccato
>>>> Properties:Add
>>>>     Mi pare di capire che questi sono i campi che vado ad aggiungere:
>>>>     Property name: offerid
>>>>     String
>>>>     Description: Offer ID
>>>>     Is required? No
>>>>     Is exclude field: Yes
>>>>
>>>>    a questo punto salvo il tutto e l'estensione viene creata.
>>>>    Ora... cosa fare esattamente perchè funzioni? Installandola non
>>>> vedo nulla!
>>>>    Il campo è stato aggiunto alla TCA, ma nell'interfaccia non vedo nulla!
>>>>    occorre modificare il ext_tables.php in qualche modo??
>>>>
>>>>
>>>>    Inoltre il file /Classes/Domain/Model/News.php è:
>>>>
>>>>    /**
>>>>    * Offer ID
>>>>    */
>>>> class News extends \Tx_News_Domain_Model_News {
>>>>
>>>>      /**
>>>>       * Offer ID
>>>>       *
>>>>       * @var string
>>>>       */
>>>>      protected $offerid = '';
>>>>
>>>>      /**
>>>>       * Returns the offerid
>>>>       *
>>>>       * @return string $offerid
>>>>       */
>>>>      public function getOfferid() {
>>>>          return $this->offerid;
>>>>      }
>>>>
>>>>      /**
>>>>       * Sets the offerid
>>>>       *
>>>>       * @param string $offerid
>>>>       * @return void
>>>>       */
>>>>      public function setOfferid($offerid) {
>>>>          $this->offerid = $offerid;
>>>>      }
>>>>
>>>> }
>>>>
>>>> che mi sembra diverso da quello dell'esempio. Va modificato? E come?
>>>> Sto sbagliando o dimenticando qualcosa?
>>>>
>>>> Grazie per le risposte
>>>>
>>>>
>>>> --------------------------------------------
>>>> Riccardo De Contardi - Web Developer
>>>> B Human Srl - www.bhuman.it
>>>> Riccardo.decontardi at bhuman.it
>>>> Corso di Porta Nuova, 46 - 20121 Milano TEL +39-02-20.23.271 - FAX
>>>> +39-02-20.240.561
>>>> --------------------------------------------
>>>>
>>>> -----Messaggio originale-----
>>>> Da: typo3-ug-italy-bounces at lists.typo3.org
>>>> [mailto:typo3-ug-italy-bounces at lists.typo3.org] Per conto di Cristian
>>>> Buja (InteRa s.r.l.)
>>>> Inviato: lunedì 26 maggio 2014 09:14
>>>> A: typo3-ug-italy at lists.typo3.org
>>>> Oggetto: Re: [TYPO3-UG Italy] extending news
>>>>
>>>> Posso darti qualche suggerimento io se trovo dei buchi nell'arco
>>>> della giornata, ma dovresti dirmi cosa ti funziona e cosa no,
>>>> altrimenti potrebbe essere un po troppo lunga la questione.
>>>>
>>>>
>>>> Cristian Buja
>>>> cristian.buja at intera.it <mailto:cristian.buja at intera.it>
>>>>
>>>> Intera - Web, grafica, comunicazione
>>>>
>>>> Intera
>>>> Web, grafica, comunicazione
>>>> via Fratelli Lumiere, 46/a
>>>> 48124 Fornace Zarattini (Ra), Italia
>>>> T: +39 0544 462628
>>>> F: +39 0544 467457
>>>> www.intera.it <http://www.intera.it>
>>>> intera at intera.it <mailto:intera at intera.it>
>>>>
>>>>
>>>> Il 24/05/2014 20:06, Riccardo De Contardi ha scritto:
>>>>> CIao a tutti
>>>>>
>>>>> Qualcuno mi spiega come si aggiunge un campo all'estensione news?
>>>>> Sto seguendo il tutorial
>>>>> http://docs.typo3.org/typo3cms/extensions/news/Main/Tutorial/Extendi
>>>>> ng News/Index.html con scarsissime fortune (non funziona un tubo)
>>>>>
>>>>> Sto usando TYPO3 6.2.3 e (per la prima volta) l'estensione extension
>>>>> builder... ho come l'impressione che il tutorial di cui sopra sia
>>>>> stato scritto per kickstarter... qualcuno ne conosce un'altro? O sa
>>>>> darmi qualche dritta?
>>>>>
>>>>> Grazie in anticipo
>>>>>
>>>> _______________________________________________
>>>> TYPO3-UG-Italy mailing list
>>>> TYPO3-UG-Italy at lists.typo3.org
>>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-italy
>>>>
>>>> **************************************************
>>>>
>>>> Chi riceve il presente messaggio e' tenuto a verificare se lo stesso
>>>> non gli sia pervenuto per errore. In tal caso e' pregato di avvisare
>>>> immediatamente il mittente e, tenuto conto delle responsabilita
>>>> connesse all'indebito utilizzo e/o divulgazione del messaggio e/o
>>>> delle informazioni in esso contenute, voglia cancellare l'originale e
>>>> distruggere le varie copie o stampe.
>>>>
>>>> The receiver of this message is required to check if he/she has
>>>> received it erroneously. If so, the receiver is requested to
>>>> immediately inform the sender and - in consideration of the
>>>> responsibilities arising from undue use and/or disclosure of the
>>>> message and/or the information contained therein - destroy the
>>>> original message and any copy or printout thereof.
>>>>
>>>>
>> _______________________________________________
>> TYPO3-UG-Italy mailing list
>> TYPO3-UG-Italy at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-italy
>> _______________________________________________
>> TYPO3-UG-Italy mailing list
>> TYPO3-UG-Italy at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-italy
>>
>


More information about the TYPO3-UG-Italy mailing list