Page 1 of 1
Modifica a Rencently Updated
Posted: Mon Jul 28, 2008 1:53 pm
by Paulin
Ho creato un UDT Recently updated (modificato dalla versione di JW se ricordo bene) e l'ho applicato alla mia pagina.
In sostanza tramite il CSS ottengo una lista delle ultime 8 (Content & link) pagine modificate.
La lista indica il titolo e come proprietà Hover del link si espande visualizzando del testo. Per il momento sono riuscito a visualizzare il [metadata] che però devo ricordarmi di inserire sempre in tutte le pagina altimenti mi rimane un quadro bianco vuoto.
Quello che vorrei fare è inserire in automatico al posto del [metadata] le prime righe (o un TOT di caratteri) della pagina in questione.
le ipotesi che mi sono fatto sono:
a) recuperare il contenuto della pagina, e troncarlo alla fine del paragrafo (cercare il punto e troncare lì) e comunque non superare TOT caratteri che è la dimensione massima che la mia finestrella Hover può contenere.
oppure... (e sarebbe più flessibile)
b) modificare se possibile la pagina di inserimento (quella in admin - Contenuto - pagine -aggiungi contenuto... per intenderci) in modo che si presenti simile a quella delle news con un blocco sommario (che apparirà nell'Hover) e un blocco contenuto.
Secondo voi qual'è la strada più semplice e come farla? Si accettano altri suggerimenti.

Re: Modifica a Rencently Updated
Posted: Wed Jul 30, 2008 7:59 pm
by alby
Paulin wrote:
b) modificare se possibile la pagina di inserimento (quella in admin - Contenuto - pagine -aggiungi contenuto... per intenderci) in modo che si presenti simile a quella delle news con un blocco sommario (che apparirà nell'Hover) e un blocco contenuto.
Secondo voi qual'è la strada più semplice e come farla? Si accettano altri suggerimenti.
Perchè non aggiungi un secondo blocco al tuo template {content block="meta"}
Alby
Re: Modifica a Rencently Updated
Posted: Fri Aug 01, 2008 1:31 pm
by Paulin
Grazie Alby per il suggerimento,
il problema è che volevo evitare di utilizzare il metadata perchè poi mi servirà per le parole chiave da far ciucciare ai motori di ricerca. Se metto una lista di parole chiave poi mi appaiono nel recent update. o sbaglio?
Oltretutto quando sono di fretta, spesso mi dimentico di completare il metadata... percui mi rimane un bel quadro bianco quando passo sopra alla lista recent upd!!!!
PS: hai una soluzione anche per l'altro mio problema?
http://forum.cmsmadesimple.org/index.ph ... 159.0.html
Re: Modifica a Rencently Updated
Posted: Tue Aug 05, 2008 10:05 am
by Paulin
Sono riuscito parzialmente a risolvere questo problema... mi manca solo un unltimo step... ma sono incartato col PHP
Il content della Pagina modificata non lo trovavo perchè è in un altra tabella, quindi lo recupero con una query.
Code: Select all
$output .= '<h3>Ultimi aggiornamenti</h3>';
$output .= '<ul id="gallery">';
global $gCms;
$hm =& $gCms->GetHierarchyManager();
$db = &$gCms->db;
$db2 = &$gCms->db; // aggiunto da me
// Get list of 10 most recently updated pages excluding the home page
$q = "SELECT * FROM ".cms_db_prefix()."content WHERE (type='content' OR type='link')
AND default_content != 1 AND active = 1 AND show_in_menu = 1
ORDER BY modified_date DESC LIMIT 8";
$dbresult = $db->Execute( $q );
if( !$dbresult )
{
echo 'DB error: '. $db->ErrorMsg()."<br/>";
}
while ($dbresult && $updated_page = $dbresult->FetchRow())
{
$curnode =& $hm->getNodeById($updated_page['content_id']);
$curcontent =& $curnode->GetContent();
///// Aggiunto da Paulin //////////////////////////////////////////
$w = "SELECT * FROM ".cms_db_prefix()."content_props WHERE (content_id=$updated_page[content_id])";
$dbresult2 = $db2->Execute( $w );
$contenuto = $dbresult2->FetchRow();
///// Fine modifica ////////////////////////////
$output .= '<li>';
$output .= '<a href="'.$curcontent->GetURL().'"><b>'.$updated_page['content_name'];
$output .= '</b><br />';
$output .= '<span class="spacer"> </span><br />';
//////////////////// VECCHIA RIGA //////////////////////
// $output .= '<span ="text-align: justify;">'.$updated_page['metadata'].'<i>...[Leggi]...</i></span></a>';
///////////////////////////////////////////////////////////
$output .= '<span ="text-align: justify;">'.$contenuto['content'].'<i>...[Leggi]...</i></span></a>';
$output .= '</li>';
}
$output .= '</ul>';
echo $output;
In questo modo funziona ma mi spara tutto il contenuto comprese etc...
Avrei bisogno di modificare la mia $contenuto['content] con uno Strip_tags e un Truncate:xx... ho provato con l'eval ma probailmente sbaglio la sintassi perchè mi da errore.
Re: Modifica a Rencently Updated
Posted: Tue Aug 05, 2008 11:56 am
by alby
Paulin wrote:
In questo modo funziona ma mi spara tutto il contenuto comprese etc...
Avrei bisogno di modificare la mia $contenuto['content] con uno Strip_tags e un Truncate:xx... ho provato con l'eval ma probailmente sbaglio la sintassi perchè mi da errore.
E' chiaro che stai sparando fuori html, il content è html
Comunque vuoi applicare delle funzioni smarty a php?
Non devi fare eval, sei già in PHP e devi utilizzare le funzioni PHP
Alby
Re: Modifica a Rencently Updated
Posted: Tue Aug 05, 2008 12:26 pm
by Paulin
quindi un semplice:
$smarty->assign('content_stripped',{$contenuto['content']|strip_tags};
$cont_str_trunc = substr($content_stripped, 1 [,lunghezza]);
?
è giusta la sintassi?
Re: Modifica a Rencently Updated
Posted: Tue Aug 05, 2008 1:09 pm
by alby
Paulin wrote:
quindi un semplice:
$smarty->assign('content_stripped',{$contenuto['content']|strip_tags};
$cont_str_trunc = substr($content_stripped, 1 [,lunghezza]);
?
è giusta la sintassi?
E dai ancora

stai usando un mix di sintassi smarty/PHP
$content = strip_tags($contenuto['content']);
if (strlen($content) > $lunghezza)
{
$content = substr($content, 0, $lunghezza) . '...[Leggi]...;
}
Alby