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

De Contardi Riccardo Riccardo.DeContardi at bhuman.it
Wed May 28 15:17:11 CEST 2014


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


More information about the TYPO3-UG-Italy mailing list