Back to top

Autore Topic: Titolo articolo a capo....  (Letto 1119 volte)

mau_develop

  • Visitatore
Titolo articolo a capo....
« il: 10 Ott 2012, 10:50:22 »
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

Codice: [Seleziona]
<?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.
« Ultima modifica: 10 Ott 2012, 10:52:43 da mau_develop »

 



Web Design Bolzano Kreatif