quick & dirty!
In generale,
si può risolvere con plugin ma bisognerebbe complicare un po' le cose per definire dove si e dove no....
si può risolvere aggiungendo fields al com_content....
si può giocare ancora più sporchi e aggiungere a manina un br nel titolo....
ma non mi risolveva il problema, io ho un override per la view "featured e lì, solo li voglio questa cosa!
Stufo di diventare matto a cercare soluzioni "Joomla style" ho implementato una classe nel template. Non è molto elastica, ovvero non stabilisce dinamicamente alla tot lunghezza vai a capo, ma imposta un "ragionamento" su quando farlo (molto primordiale, mi bastava)
Nell'override, il titolo lo fai passare dal metodo che:
- dopo una certa lunghezza manda a capo ma senza spezzare la parola
- se la lunghezza viene superata dalla continuazione della riga però la linea si spezza con un artilcolo o una preposizione, forza acapo.
- siccome mi interessava un solo acapo ho messo un "trigger" $next che evita successive acapature.
Potete modificarla come vi pare, basterà includerla nel vostro override content
<?php
/**
* Description of mwctemplate
*
* @author ts
*/
abstract class mwctemplate {
public static function newLineTitleRule($phrase='', $num=0){
if($num > 0){
if(strlen($phrase) > $num){
$force = array('in','con','su','per','tra','fra','e','ed','i','il','non',
'del','sul','nel','col');
$awords = explode(' ', $phrase);
$nwds = count($awords);
$row=array();
$row []= $awords[0];
$i=1;
$next = true;
for($i=1; $i<$nwds; $i++){
if($next){
$proglen = strlen(implode(' ', $row));
$currlen = strlen($awords[$i]);
if($proglen+$currlen > $num){
$row[] = '*';
$row[] = $awords[$i];
$next = false;
} elseif(array_key_exists($i+1, $awords)){
if($proglen+$currlen+strlen($awords[$i+1]) > $num && in_array($awords[$i], $force)){
$row[] = '*';
$row[] = $awords[$i];
$next = false;
} else {
$row[] = $awords[$i];
}
} else {
$row[] = $awords[$i];
}
} else {
$row[] = $awords[$i];
}
}
}
}
$title = implode(' ', $row);
return str_replace(' * ', '<br />',$title);
}
}
?>
M.