icon
Avatar
desperados
Post: 251
il teaser in testo semplice è abbastanza limitante

farebbe comodo avere l'editor wysiwyg e poter fare in html anche il testo introduttivo delle news

nel db ho visto che tl_news ha un campo addEnclosure che è un char(1) ( = credo sia un campo attiva / disattiva) e un campo enclosure che è un blob.

a che serve? non si riesce ad usare questo campo? con qualche extension? ho cercato un po' ma non ho trovato niente. nel forum inglese ho trovato questa cosa: http://www.typolight-community.org/viewtopic.php?f=6&t=98&p=192&hilit=enclosure#p192 che vagamente si avvicina al mio problema, ma la soluzione proposta non mi pare granché.

grazie
11/09/2009 10:25
Avatar
PaoloB
Moderatore
Post: 1143
Ciao,
personalmente non l'ho ancora trovata limitante questa impostazione.

Comunque vedo che questo campo accetta codice html, per cui potresti eventualmente scriverlo sotto e copiare il codice.

Una soluzione più pulita è invece toccare le impostazioni delle news
Il file system\modules\news\dca\tl_news.php contiene le informazioni sulla machera di imput delle news.
alla riga 190 trovi le informazioni relative al teaser che puoi indicare essere uguale al campo successivo in questo modo:

iconphp:
'teaser' => array
(
	'label'                   => &$GLOBALS['TL_LANG']['tl_news']['teaser'],
	'exclude'                 => true,
	'search'                  => true,
	'inputType'               => 'textarea',
	'eval'                    => array('rte'=>'tinyMCE', 'helpwizard'=>true),
	'explanation'             => 'insertTags'
),


Poi ad essere precisi potresti anche cambiare il tipo di campo nel db
Qui devi editare il file system\modules\news\config\database.sql
alla riga 24 trovi
iconphp:
  `teaser` text NULL,

che andrei a variare in
iconphp:
  `teaser` mediumtext NULL,

Per aggiornare l'applicazione poi devi eseguire l'install.php che ti proporrà di aggiornare il database.


Questa operazione ha solo una controindicazione... al primo aggiornamento ti verranno sovrascritte queste impostazioni e le dovrai reimpostare. Non mi sembra un grosso problema.

Spero di esserti stato utile :)
Paolo B.
paolob@contaocms.it
11/09/2009 10:53
Avatar
desperados
Post: 251
FANTASTICO !!!
basta modificare 2 righe, con Xoops ci avrei messo mezza giornata!

importate 819 news dal vecchio sito in meno di 2 ore di lavoro.

MI-TI-KO

grazie Paolo! :thumbup:
11/09/2009 11:34
Avatar
PaoloB
Moderatore
Post: 1143
icondesperados:
FANTASTICO !!!
basta modificare 2 righe, con Xoops ci avrei messo mezza giornata!

importate 819 news dal vecchio sito in meno di 2 ore di lavoro.

MI-TI-KO

grazie Paolo! :thumbup:


AHHHHHHHHHHHHHHH
beccato...
ho anche io un vecchio sito amatoriale con xoops che prossimamente vorrei migrare.
Se hai qualcosa di già fatto x migrare le news me le passi?!
:w00t:
Paolo B.
paolob@contaocms.it
11/09/2009 11:49
Avatar
desperados
Post: 251
ecco qua, ho convertito il minimo indispensabile

iconCodice:
<?php

mysql_connect($host, $user, $pass);
mysql_select_db($db);

$sql = "SELECT * FROM proring_stories";
$rst = mysql_query($sql);

$i = 0;

while ($riga = mysql_fetch_array($rst)) {
	// conversione categorie dalle vecchie alle nuove
	switch ($riga['topicid']) {
		case 1:	$pid = 7; break;
		case 2:	$pid = 11; break;
		case 3:	$pid = 12; break;
		case 4:	$pid = 8; break;
		case 5:	$pid = 9; break;
		default: $pid = 7; break;
	}
	// published è la data di pubblicazione
	$time = $riga['published'];
	// il titolo
	$head = addslashes($riga['title']);
	// creo l'alias, con gli underscore al posto degli spazi, togliendo apici e mettendo tutto lowercase
	$alias = (str_replace(" ", "_", $riga['title']));
	$alias = (str_replace("'", "", $alias));
	$alias = (str_replace("\"", "", $alias));
	$alias = strtolower($alias);
	// il teaser, modificato per gestire l'html
	$teaser = addslashes($riga['hometext']);
	// il corpo della news
	$text = addslashes($riga['bodytext']);

	// source serve per il "news reader"
	$ins = "INSERT INTO tl_news (
		pid, tstamp, date, time, headline, alias, teaser, text, featured, published, source
	) VALUES (
		$pid, $time, $time, $time, '$head', '$alias', '$teaser', '$text', 1, 1, 'default'
	)";
	
	// per fare una prova, basta mettere $i++<5 così inserisce solo 5 news
	if ($i++>-1) {
		$result = mysql_query($ins);
		if (!$result) echo "---------------------------------------<p>$ins</p><p>".mysql_error()."</p>";
	}
}

?>
[L'ultima modifica di desperados, 18/09/2009 11:05]
11/09/2009 12:22
Avatar
desperados
Post: 251
PS piccola modifica al codice, gli alias non gradiscono apici e maiuscole :)
18/09/2009 11:05
Avatar
PaoloB
Moderatore
Post: 1143
Grazie mille... non l'ho ancora usato...
Paolo B.
paolob@contaocms.it
18/09/2009 11:09
Avatar
desperados
Post: 251
senti qua che numero.... invece di modificare il file tl_news.php, che poi perdi con un aggiornamento, ti fai una cartella

system/modules/personalizzazioni/dca

e dentro ci metti un file

tl_news.php

con su scritto

iconCodice:
$GLOBALS['TL_DCA']['tl_news']['fields']['teaser'] = array
(
			'label'                   => &$GLOBALS['TL_LANG']['tl_news']['teaser'],
			'exclude'                 => true,
			'search'                  => true,
			'inputType'               => 'textarea',
			'eval'                    => array('rte'=>'tinyMCE', 'helpwizard'=>true),
			'explanation'             => 'insertTags'
);


che sovrascrive la variabile definita in system/modules/news/dca/tl_news.php !
figo no!?!? :)
[L'ultima modifica di desperados, 03/03/2010 15:50]
03/03/2010 15:50
Avatar
PaoloB
Moderatore
Post: 1143
icondesperados:
senti qua che numero....


:) interessante.
In effetti è logico... All'interno di un "modulo" personalizzato che è contenuto nella tua cartella hai ridefinito il teaser delle news.

Bella tecnica... avevo letto di sfuggita qualcosa dell'autore di Catalog che indicava l'ordine in cui i moduli venivano "letti" che se non erro è in ordine alfabetico, per cui se tu avessi creato il modulo apersonalizzazioni questo sarebbe stato elaborato prima e non avrebbe avuto l'effetto desiderato.

Ottimo lavoro
Paolo B.
paolob@contaocms.it
03/03/2010 16:10
icon