<< Indietro
Messaggi di questa discussione
Mittente Testo dei messaggi
Lambedue Natalino

Avatar
Post fatti : 60
> Profilo
Scritto il : 26/01/2007 21:38 ( più di un mese )
Oggetto : Docebo 3.0.3 - ordinamento lista documenti
Salve a tutti.
Ho avuto la necessità di presentare liste di documenti (contenute in blocchi documenti) con ordinamento invertito rispetto a quello “naturale” proposto dalla piattaforma.

Ho apportato, quindi, alcune modifiche che mi permettono di impostare a seconda dei casi un ordine invertito della lista documenti.

Graficamente questa possibilità appare come una checkbox su cui cliccare per impostare l'ordinamento invertito (vedi grafico).
aggiunta checkbox
Per poter far questo ho agito su due file:

util.docs.php in ..\doceboCms\admin\modules\block_docs\
functions.php in ..\doceboCms\modules\docs\


Modifiche in util.docs.php

1° modifica (dopo 60esima riga circa)

if ((isset($opt["recurse"])) && ($opt["recurse"])) $chk=true; else $chk=false;
$out->add($form->getCheckBox($lang->def("_DOCS_RECOURSE"), "recurse", "recurse", "1", $chk));
$out->add($form->getTextfield($lang->def("_DOCS_NUMBER").":", "number", "number", 3, $opt["number"]));
// -------------- inizio 1° aggiunta
if ((isset($opt["sort"])) && ($opt["sort"])) $chk=true; else $chk=false;
$out->add($form->getCheckBox($lang->def("_DOCS_SORT"), "sort", "sort", "1", $chk));
//--------------- fine 2° aggiunta

2° modifica (dopo 80esima riga circa)

saveParam($block_id, "number", (int)$_POST["number"]);
saveParam($block_id, "use_comments", (int)$_POST["use_comments"]);

// ------------ inizio 2° aggiunta
saveParam($block_id, "sort", (int)$_POST["sort"]);
// ------------ fine 2° aggiunta

3° modifica (dopo 90esima riga circa)

saveParam($block_id, "css", 1);
saveParam($block_id, "path", "/");
saveParam($block_id, "recurse", 1);
saveParam($block_id, "number", 10);
saveParam($block_id, "use_comments", 0);

//-------------inizio 3° aggiunta
saveParam($block_id, "sort", 0);
//-------------fine 3° aggiunta

4° modifica (dopo 185 riga circa)

if ($opt["showclick"]) $chk=" checked=\"checked\""; else $chk="";
echo("<br /><br />\n");
echo("<input type=\"checkbox\" id=\"showclick\" name=\"showclick\" value=\"1\"$chk />\n");
echo("<b>"._DOCS_SHOWCLICK."</b>\n");
echo("<br /><br /><b>"._DOCS_NUMBER.":</b>\n");
echo("<input type=\"text\" id=\"number\" name=\"number\" size=\"3\" value=\"".$opt["number"]."\" /><br />\n");

//------------------inizio 4° aggiunta
if ($opt["sort"]) $chk=" checked=\"checked\""; else $chk="";
echo("<br /><br />\n");
echo("<input type=\"checkbox\" id=\"sort\" name=\"sort\" value=\"1\"$chk />\n");
echo("<b>"._DOCS_SORT."</b>\n");
//------------------fine 4° aggiunta

5° modifica (dopo 235esima riga circa)

saveParam($idBlock, "ov_pub", (int)$_POST["ov_pub"]);
saveParam($idBlock, "ov_exp", (int)$_POST["ov_exp"]);
saveParam($idBlock, "recurse", $_POST["recurse"]);
//--------------inizio 5° aggiunta
saveParam($idBlock, "sort", $_POST["sort"]);
//--------------fine 5° aggiunta

Modifiche in functions.php

1° modifica (dopo 160esima riga circa)

check_docs_perm($pb);
$opt=loadBlockOption($pb);

$sel_lang=getLanguage();
//inizio 1° aggiunta
if ($opt["sort"] !=1) {
$ordina="ASC";
} else { $ordina="DESC";
}
//fine 1° aggiunta

2° modifica (dopo 200esima riga circa)

$qtxt ="SELECT $sel_q FROM $t1 as t1 ";
$qtxt.="LEFT JOIN $t2 as t2 ON (t2.idd=t1.idDocs AND t2.lang='$sel_lang') ";
$qtxt.="LEFT JOIN ".$GLOBALS["prefix_cms"]."_sysforum as t3 ON (t3.key1='docs_comment' AND t3.key2=t1.idDocs) ";
$qtxt.=$t4_join;

//------------ inizio riga modificata
$qtxt.="WHERE $path_q AND t1.publish='1' GROUP BY t1.fname $ordina";
 //------------ fine riga modificata

Dopo queste modifiche è necessario generare la chiave _DOCS_SORT nella gestione lingua selezionando la piattaforma CMS nel modulo admin_manpage. Nel campo di testo in corrispondenza di “ traduci” e italian ho inserito la frase “Ordinamento inverso”.

Ho fatto alcune prove e tutto sembra funzionare ... se ci sono controindicazioni, miglioramenti o suggerimenti ...


Natalino Lambedue

Messaggio modificato da : lambedue il : 27/01/2007 16:14
Quando si trova e si corregge un errore, si vedrà che andava meglio prima. Quando si capisce che la correzione era sbagliata, sarà troppo tardi per tornare indietro.
 
carmine

Avatar
Post fatti : 328
> Profilo
Scritto il : 26/01/2007 21:53 ( più di un mese )
Oggetto : Re: Docebo 3.0.3 - ordinamento lista documenti

Bravo Natalino

vedo che cominci a smanettarci di brutto

non so dirti se ci sono controindicazioni (non credo).... ma la funzione può tornare utile ... e credo anche tu....

Carmine

PS forse il 3d andava meglio in feedback e suggerimenti

Messaggio modificato da : carmine il : 26/01/2007 21:56
chi sa fare fa ...chi non sa fare insegna!!
 
<< Indietro