[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