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

Ivano Luberti luberti at archicoop.it
Wed May 28 16:38:28 CEST 2014


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
>

-- 
==================================================
dott. Ivano Mario Luberti
Archimede Informatica societa' cooperativa a r. l.
Sede Operativa
Via Gereschi 36 - 56126- Pisa
tel.: +39-050- 580959
tel/fax: +39-050-9711344
web: www.archicoop.it
==================================================



More information about the TYPO3-UG-Italy mailing list