allora, vi aggiorno con le novità di oggi
sono riuscito a capire quali sono le zone di codice che si occupano della creazione dei nodi dell'organigramma
-doceboCore/modules/org_chart/tree.og_chart.php: functio addFolderById richiama il metodo addFolder(idParent, path, level) della classe padre TreeDb (doceboCore/lib/lib.treedb.php).
Ragionando sulla presenza o meno dello 0 nella variabile idParent ho fatto una cosa del genere
if($idParent==0){
$query="insert into ".$this->table."( ".$this->listFields.") values (NULL, NULL, '".$path."', '".(int)$level."')";
}
else{
$query="insert into ".$this->table."( ".$this->listFields.") values (NULL, '".(int)$idParent."', '".$path."', '".(int)$level."')";
}
Procedendo in questa maniera, partendo da un albero completamente vuotoio creo correttamente nodi con possibili nodi figli.
Altro file interessante che ho scoperto mentre girovagavo nelle directory di Docebo è stato il metodo addFolderByIdTranslation del file tree.org_chart.php nella directory doceboCore/modules/org_chart. Questo metodo si occupa di inserire le traduzioni del ramo nelle varie lingue impostate sulla piattaforma.
Ora, diciamo che per questa parte sono a metà dell'opera, mi servirebbe qualche indicazione su file/funzioni/metodi che si occupano di costruire a video l'organigramma.
Ho implementato esternamente alla piattaforma un file basato su una funzione ricorsiva ramo($idramo) che funziona all'incirca così:
function ramo($idramo){
echo"<ul>";
echo"<li>".$idramo."</li>";
$sql="select idorg from core_org_chart_tree where idparent=".$idramo;
$res=mysql_query($sql);
if(mysql_num_rows($res)>0){
while($riga=mysql_fetch_array($res)){
ramo($riga['idorg']);
}
}
echo"</ul>";
}
Come mi consigliate di procedere? In che file devo guardare se voglio rifare/sistemare la costruzione dell'organigramma?
Grazie a tutti, 'notte