function afficher_commentaires_recursif($page, $wiki, $premier = true) { $output = ''; $comments = $wiki->LoadComments($page); // display comments themselves if ($comments) { $valcomment = array(); $i = 0; foreach ($comments as $comment) { $valcomment['commentaires'][$i]['tag'] = $comment["tag"]; $valcomment['commentaires'][$i]['body'] = $wiki->Format($comment["body"]); $valcomment['commentaires'][$i]['infos'] = "de " . $wiki->Format($comment["user"]) . ", " . date("\\l d.m.Y &\\a\\g\\r\\av; H:i:s", strtotime($comment["time"])); $valcomment['commentaires'][$i]['actions'] = ''; if ($wiki->HasAccess("comment", $comment['tag'])) { $valcomment['commentaires'][$i]['actions'] .= '<a href="' . $wiki->href('', $comment['tag']) . '" class="repondre_commentaire">Répondre</a> '; } if ($wiki->HasAccess('write', $comment['tag']) || $wiki->UserIsOwner($comment['tag']) || $wiki->UserIsAdmin($comment['tag'])) { $valcomment['commentaires'][$i]['actions'] .= '<a href="' . $wiki->href('edit', $comment['tag']) . '" class="editer_commentaire">Editer</a> '; } if ($wiki->UserIsOwner($comment['tag']) || $wiki->UserIsAdmin()) { $valcomment['commentaires'][$i]['actions'] .= '<a href="' . $wiki->href('deletepage', $comment['tag']) . '" class="supprimer_commentaire">Supprimer</a>' . "\n"; } $valcomment['commentaires'][$i]['reponses'] = afficher_commentaires_recursif($comment['tag'], $wiki, false); $i++; } include_once 'squelettephp.class.php'; $squelcomment = new SquelettePhp('tools/tags/presentation/commentaire_microblog.tpl.html'); $squelcomment->set($valcomment); $output .= $squelcomment->analyser(); } elseif ($premier && $wiki->HasAccess("comment", $page)) { $output .= 'Soyez le premier à écrire un commentaire!' . "\n"; } if ($premier && $wiki->HasAccess("comment", $page)) { // display comment form $output .= "<div class=\"microblogcommentform\">\n"; $output .= $wiki->FormOpen("addcomment", $page) . ' <textarea name="body" class="commentaire_microblog" rows="3" cols="20"></textarea><br /> <input type="button" class="bouton_microblog" value="Ajouter votre commentaire" accesskey="s" />' . $wiki->FormClose(); $output .= "</div>\n"; } return $output; }
<?php if (!defined("WIKINI_VERSION")) { die("accès direct interdit"); } if ($this->UserIsAdmin()) { $sql = 'SELECT tag,time,owner FROM ' . $this->GetConfigValue('table_prefix') . 'pages ' . 'WHERE latest="Y" AND comment_on="" AND tag NOT LIKE "LogDesActionsAdministratives%"' . 'ORDER BY tag'; $pages = $this->LoadAll($sql); include_once 'tools/templates/libs/squelettephp.class.php'; $template_pages = new SquelettePhp('tools/templates/presentation/templates/pages_table.tpl.html'); $template_pages->set(array('pages' => $pages)); // on passe le tableau de pages en parametres $output = $template_pages->analyser(); // affiche les resultats echo $output; } else { echo '<div class="alert alert-danger">' . ' <strong>Action {{adminpages}}</strong> : ' . _t('TEMPLATE_ACTION_FOR_ADMINS_ONLY') . '</div>' . "\n"; }
/** * Affiche la liste des resultats d'une recherche. * * @param $tableau_fiches : tableau de fiches provenant du resultat de la recherche * @param $info_nb : booleen pour afficher ou non le nombre du resultat de la recherche (vrai par defaut) */ function displayResultList($tableau_fiches, $params, $info_nb = true) { // tableau des valeurs "facettables" avec leur nombres $facettevalue = array(); // tableau qui contiendra les fiches $fiches['fiches'] = array(); foreach ($tableau_fiches as $fiche) { $fiche = json_decode($fiche['body'], true); if (TEMPLATES_DEFAULT_CHARSET != 'UTF-8') { $fiche = array_map('utf8_decode', $fiche); } // champs correspondants if (!empty($params['correspondance'])) { $tabcorrespondance = explode('=', trim($params['correspondance'])); if (isset($tabcorrespondance[0])) { if (isset($tabcorrespondance[1]) && isset($fiche[$tabcorrespondance[1]])) { $fiche[$tabcorrespondance[0]] = $fiche[$tabcorrespondance[1]]; } else { $fiche[$tabcorrespondance[0]] = ''; } } else { exit('<div class="alert alert-danger">action bazarliste : parametre correspondance mal rempli : il doit etre de la forme correspondance="identifiant_1=identifiant_2"</div>'); } } $fiche['html_data'] = getHtmlDataAttributes($fiche); $fiche['html'] = baz_voir_fiche(0, $fiche); //permet de voir la fiche $fiche['datastr'] = getHtmlDataAttributes($fiche); // on scanne tous les champs qui pourraient faire des filtres pour les facettes if (count($params['groups']) > 0) { $valform = baz_valeurs_formulaire($fiche['id_typeannonce']); foreach ($fiche as $key => $value) { if (!empty($value)) { $facetteasked = isset($params['groups'][0]) && $params['groups'][0] == 'all' || in_array($key, $params['groups']); if (in_array($key, array('id_typeannonce', 'createur')) && $facetteasked) { // champs génériques des métadonnées if ($key == 'id_typeannonce') { $value = $fiche['id_typeannonce'] . '|' . $valform['bn_label_nature']; } if (isset($facettevalue[$key][$value])) { ++$facettevalue[$key][$value]; } else { $facettevalue[$key][$value] = 1; } } else { // liste, checkbox, listefiche ou checkboxfiche $templatef = $valform['template']; if (is_array($templatef)) { foreach ($templatef as $id => $val) { if ($val[1] === $key || isset($val[6]) && $val[0] . $val[1] . $val[6] === $key) { $islist = in_array($templatef[$id][0], array('checkbox', 'liste', 'scope')); $islistforeign = in_array($templatef[$id][0], array('checkboxfiche', 'listefiche')); if ($islist && $facetteasked) { // liste ou checkbox $tabval = explode(',', $value); foreach ($tabval as $val) { $facettevalue[$key]['type'] = 'liste'; $facettevalue[$key]['source'] = $templatef[$id][1]; if (isset($facettevalue[$key][$val])) { ++$facettevalue[$key][$val]; } else { $facettevalue[$key][$val] = 1; } } } elseif ($islistforeign && $facetteasked) { // listefiche ou checkboxfiche $facettevalue[$key]['type'] = 'fiche'; $facettevalue[$key]['source'] = $templatef[$id][1]; $tabval = explode(',', $value); foreach ($tabval as $val) { if (isset($facettevalue[$key][$val])) { ++$facettevalue[$key][$val]; } else { $facettevalue[$key][$val] = 1; } } } } } } } } } } // tableau qui contient le contenu de toutes les fiches $fiches['fiches'][$fiche['id_fiche']] = $fiche; } // tri des fiches $GLOBALS['ordre'] = $params['ordre']; $GLOBALS['champ'] = $params['champ']; usort($fiches['fiches'], 'champCompare'); // Limite le nombre de résultat au nombre de fiches demandées if ($params['nb'] != '') { $fiches['fiches'] = array_slice($fiches['fiches'], 0, $params['nb']); } if ($info_nb) { $fiches['info_res'] = '<div class="alert alert-info">' . _t('BAZ_IL_Y_A'); $nb_result = count($fiches['fiches']); if ($nb_result <= 1) { $fiches['info_res'] .= $nb_result . ' ' . _t('BAZ_FICHE') . '</div>' . "\n"; } else { $fiches['info_res'] .= $nb_result . ' ' . _t('BAZ_FICHES') . '</div>' . "\n"; } } else { $fiches['info_res'] = ''; } if (!empty($params['pagination'])) { // Mise en place du Pager require_once 'Pager/Pager.php'; $param = array('mode' => BAZ_MODE_DIVISION, 'perPage' => $params['pagination'], 'delta' => BAZ_DELTA, 'httpMethod' => 'GET', 'extraVars' => array_merge($_POST, $_GET), 'altNext' => _t('BAZ_SUIVANT'), 'altPrev' => _t('BAZ_PRECEDENT'), 'nextImg' => _t('BAZ_SUIVANT'), 'prevImg' => _t('BAZ_PRECEDENT'), 'itemData' => $fiches['fiches']); $pager =& Pager::factory($param); $fiches['fiches'] = $pager->getPageData(); $fiches['pager_links'] = '<div class="bazar_numero">' . $pager->links . '</div>' . "\n"; } else { $fiches['pager_links'] = ''; } // affichage des resultats include_once 'tools/bazar/libs/squelettephp.class.php'; // On cherche un template personnalise dans le repertoire themes/tools/bazar/templates $templatetoload = 'themes/tools/bazar/templates/' . $params['template']; if (!is_file($templatetoload)) { $templatetoload = 'tools/bazar/presentation/templates/' . $params['template']; } $squelfacette = new SquelettePhp($templatetoload); $fiches['param'] = $params; $squelfacette->set($fiches); $output = $squelfacette->analyser(); // affichage spécifique pour facette if (count($facettevalue) > 0) { // affichage des resultats et filtres dans une grille $outputfacette = '<div class="facette-container row row-fluid">' . "\n"; // calcul de la largeur de la colonne pour les resultats, en fonction de la taille des filtres $resultcolsize = 12 - intval($params['filtercolsize']); // colonne des resultats $outputresult = '<div class="col-xs-' . $resultcolsize . ' span' . $resultcolsize . '">' . "\n" . '<div class="results">' . "\n" . '<div class="alert alert-info">' . "\n" . _t('BAZ_IL_Y_A') . '<span class="nb-results">' . count($fiches['fiches']) . '</span> ' . _t('BAZ_FICHES_CORRESPONDANTES_FILTRES') . "\n" . '.</div>' . "\n" . $output . "\n" . '</div> <!-- /.results -->' . "\n" . '</div> <!-- /.col-xs-' . $resultcolsize . ' -->'; // colonne des filtres $outputfilter = '<div class="col-xs-' . $params['filtercolsize'] . ' span' . $params['filtercolsize'] . '">' . "\n" . '<div class="filters no-dblclick">' . "\n"; if (isset($facettevalue['id_typeannonce'])) { if (count($facettevalue['id_typeannonce']) > 1) { $outputfilter .= '<div class="filter-box panel panel-default" data-id="id_typeannonce">' . "\n"; $outputfilter .= '<div class="panel-heading">' . _t('BAZ_TYPE_FICHE') . '</div>' . "\n"; $outputfilter .= '<div class="panel-body">' . "\n"; foreach ($facettevalue['id_typeannonce'] as $id => $nb) { $infotypef = explode('|', $id); $outputfilter .= '<div class="checkbox"> <input class="filter-checkbox" type="checkbox" name="id_typeannonce" value="' . htmlspecialchars($infotypef[0]) . '"> <label for="id_typeannonce"> ' . $infotypef[1] . ' (<span class="nb">' . $nb . '</span>)</label> </div>' . "\n"; } $outputfilter .= '</div></div><!-- /.filter-box -->' . "\n"; } unset($facettevalue['id_typeannonce']); } if (isset($facettevalue['createur'])) { if (count($facettevalue['createur']) > 1) { $outputfilter .= '<div class="filter-box panel panel-default" data-id="createur">' . "\n"; $outputfilter .= '<div class="panel-heading">' . _t('BAZ_CREATOR') . '</div>' . "\n"; $outputfilter .= '<div class="panel-body">' . "\n"; foreach ($facettevalue['createur'] as $id => $nb) { $outputfilter .= '<div class="checkbox"> <input class="filter-checkbox" type="checkbox" name="createur" value="' . htmlspecialchars($id) . '"><label for="createur"> ' . $id . ' (<span class="nb">' . $nb . '</span>) </label></div>' . "\n"; } $outputfilter .= '</div></div><!-- /.filter-box -->' . "\n"; } unset($facettevalue['createur']); } $i = 0; $first = true; foreach ($params['groups'] as $id) { // on formatte la liste des resultats en fonction de la source if ($facettevalue[$id]['type'] == 'liste') { $list = baz_valeurs_liste($facettevalue[$id]['source']); } elseif ($facettevalue[$id]['type'] == 'fiche') { $form = baz_valeurs_formulaire($facettevalue[$id]['source']); $list['titre_liste'] = $form['bn_label_nature']; foreach ($facettevalue[$id] as $idfiche => $nb) { if ($idfiche != 'source' && $idfiche != 'type') { $f = baz_valeurs_fiche($idfiche); $list['label'][$idfiche] = $f['bf_titre']; } } } $idkey = htmlspecialchars($id); $outputfilter .= '<div class="filter-box panel panel-default ' . $idkey . '" data-id="' . $idkey . '">' . "\n"; $titlefilterbox = ''; if (isset($params['groupicons'][$i]) && !empty($params['groupicons'][$i])) { $titlefilterbox .= '<i class="' . $params['groupicons'][$i] . '"></i> '; } if (isset($params['titles'][$i]) && !empty($params['titles'][$i])) { $titlefilterbox .= $params['titles'][$i]; } else { $titlefilterbox .= $list['titre_liste']; } $outputfilter .= '<div class="panel-heading'; if (!$first) { $outputfilter .= ' collapsed'; } $outputfilter .= '" data-toggle="collapse" href="#collapse' . $GLOBALS['nbbazarliste'] . '_' . $idkey . '" >' . $titlefilterbox . '</div>' . "\n"; $outputfilter .= '<div id="collapse' . $GLOBALS['nbbazarliste'] . '_' . $idkey . '" class="panel-collapse'; if ($first) { $outputfilter .= ' in'; } $outputfilter .= ' collapse">' . "\n"; $outputfilter .= '<div class="panel-body">' . "\n"; foreach ($list['label'] as $listkey => $label) { if (isset($facettevalue[$id][$listkey]) && !empty($facettevalue[$id][$listkey])) { $outputfilter .= '<div class="checkbox"> <input class="filter-checkbox" type="checkbox" id="' . $idkey . $listkey . '" name="' . $idkey . '" value="' . htmlspecialchars($listkey) . '"> <label for="' . $idkey . $listkey . '"> ' . $label . ' (<span class="nb">' . $facettevalue[$id][$listkey] . '</span>) </label></div>' . "\n"; } } $outputfilter .= '</div></div></div><!-- /.filter-box -->' . "\n"; ++$i; $first = false; } $outputfilter .= '</div> <!-- /.filters -->' . "\n" . '</div> <!-- /.col-xs-3 -->' . "\n"; // disposition des filtres (gauche ou droite) if ($params['filterposition'] == 'right') { $outputfacette .= $outputresult . $outputfilter; } else { $outputfacette .= $outputfilter . $outputresult; } $output = $outputfacette . '</div><!-- /.facette-container.row -->'; } return $output; }
} echo '</div>'; $element = array(); // affichage des resultats foreach ($pages as $page) { $element[$page['tag']]['tagnames'] = ''; $element[$page['tag']]['tagbadges'] = ''; $element[$page['tag']]['body'] = $page['body']; $element[$page['tag']]['owner'] = $page['owner']; $element[$page['tag']]['user'] = $page['user']; $element[$page['tag']]['time'] = $page['time']; $element[$page['tag']]['title'] = get_title_from_body($page); $element[$page['tag']]['image'] = get_image_from_body($page); $this->RegisterInclusion($page['tag']); $element[$page['tag']]['desc'] = tokenTruncate(strip_tags($this->Format($page['body'])), $nbcartrunc); $this->UnregisterLastInclusion(); $pagetags = $this->GetAllTriplesValues($page['tag'], 'http://outils-reseaux.org/_vocabulary/tag', '', ''); foreach ($pagetags as $tag) { $tag['value'] = _convert(stripslashes($tag['value']), 'ISO-8859-1'); $element[$page['tag']]['tagnames'] .= sanitizeEntity($tag['value']) . ' '; $element[$page['tag']]['tagbadges'] .= '<span class="tag-label label label-primary">' . $tag['value'] . '</span> '; } } include_once 'tools/tags/libs/squelettephp.class.php'; $templateelements = new SquelettePhp('tools/tags/presentation/templates/' . $template); $templateelements->set(array('elements' => $element, 'elementwidth' => $elementwidth, 'elementoffset' => $elementoffset)); echo $templateelements->analyser(); // ajout du javascript gerant le filtrage $this->AddJavascriptFile('tools/tags/libs/vendor/imagesloaded.pkgd.min.js'); $this->AddJavascriptFile('tools/tags/libs/vendor/jquery.wookmark.min.js'); $this->AddJavascriptFile('tools/tags/libs/filtertags.js');
if (isset($_GET["commentaire"]) && $_GET["commentaire"] == 1) { $comment = $this->LoadPage($this->tag); $valcomment['commentaires'][0]['tag'] = $comment["tag"]; $valcomment['commentaires'][0]['body'] = $this->Format($comment["body"]); $valcomment['commentaires'][0]['infos'] = "de " . $this->Format($comment["user"]) . ", " . date("\\l d.m.Y &\\a\\g\\r\\av; H:i:s", strtotime($comment["time"])); $valcomment['commentaires'][0]['actions'] = '<a href="' . $this->href('', $comment['tag']) . '" class="repondre_commentaire">Répondre</a> '; if ($this->HasAccess('write', $comment['tag']) || $this->UserIsOwner($comment['tag']) || $this->UserIsAdmin($comment['tag'])) { $valcomment['commentaires'][0]['actions'] .= '<a href="' . $this->href('edit', $comment['tag']) . '" class="editer_commentaire">Editer</a> '; } if ($this->UserIsOwner($comment['tag']) || $this->UserIsAdmin()) { $valcomment['commentaires'][0]['actions'] .= '<a href="' . $this->href('deletepage', $comment['tag']) . '" class="supprimer_commentaire">Supprimer</a>' . "\n"; } include_once 'tools/tags/lib/squelettephp.class.php'; $squelcomment = new SquelettePhp('tools/tags/presentation/commentaire_microblog.tpl.html'); $squelcomment->set($valcomment); echo $_GET['jsonp_callback'] . "(" . json_encode(array("html" => utf8_encode($squelcomment->analyser()))) . ")"; } else { echo $this->format($body); } } // sécurité exit; } // NB.: en cas d'erreur on arrive ici, donc default sera exécuté... // NB.: en cas d'erreur on arrive ici, donc default sera exécuté... default: // display form if (isset($error)) { $output .= "<div class=\"error\">{$error}</div>\n"; } // append a comment?
<?php if (!defined("WIKINI_VERSION")) { die("accès direct interdit"); } // on choisit le template utilisé $template = $this->GetParameter('template'); if (empty($template)) { $template = 'moteurrecherche_basic.tpl.html'; } // on peut ajouter des classes à la classe par défaut .searchform $searchelements['class'] = $this->GetParameter('class') ? 'form-search ' . $this->GetParameter('class') : 'form-search'; $searchelements['btnclass'] = $this->GetParameter('btnclass') ? ' ' . $this->GetParameter('btnclass') : ''; $searchelements['iconclass'] = $this->GetParameter('iconclass') ? ' ' . $this->GetParameter('iconclass') : ''; // on peut changer l'url de recherche $searchelements['url'] = $this->GetParameter('url') ? $this->GetParameter('url') : $this->href("show", "RechercheTexte"); // si une recherche a été effectuée, on garde les mots clés $searchelements['phrase'] = isset($_REQUEST['phrase']) ? $_REQUEST['phrase'] : ""; include_once 'tools/templates/libs/squelettephp.class.php'; $searchtemplate = new SquelettePhp('tools/templates/presentation/templates/' . $template); $searchtemplate->set($searchelements); echo $searchtemplate->analyser();
$paged_data['data'] = $db->queryAll($requete, null, MDB2_FETCHMODE_ASSOC); } $text = ''; foreach ($paged_data['data'] as $microblogpost) { if (!file_exists('tools/tags/presentation/' . $template)) { exit('Le fichier template du formulaire de microblog "tools/tags/presentation/' . $template . '" n\'existe pas. Il doit exister...'); } elseif ($this->tag != $microblogpost['tag']) { include_once 'tools/tags/libs/squelettephp.class.php'; $valtemplate = array(); $squel = new SquelettePhp('tools/tags/presentation/' . $template); $valtemplate['class'] = $class; $valtemplate['lien'] = $this->href('', $microblogpost['tag']); $valtemplate['nompage'] = $microblogpost['tag']; if ($template == 'liste_microblog.tpl.html') { $squel->set($valtemplate); $text .= '<ul>' . $squel->analyser() . '</ul>'; } else { $valtemplate['user'] = $this->Format($microblogpost["user"]); $valtemplate['date'] = date("\\l d.m.Y &\\a\\g\\r\\av; H:i:s", strtotime($microblogpost["time"])); $valtemplate['billet'] = $this->Format($microblogpost["body"]); // load comments for this page include_once 'tools/tags/libs/tags.functions.php'; $valtemplate['commentaire'] = '<strong class="lien_commenter">Commentaires</strong>' . "\n"; $valtemplate['commentaire'] .= "<div class=\"commentaires_billet_microblog\">\n"; $valtemplate['commentaire'] .= afficher_commentaires_recursif($microblogpost['tag'], $this); $valtemplate['commentaire'] .= "</div>\n"; //liens d'actions sur le billet $valtemplate['edition'] = '<a href="' . $this->href('', $microblogpost['tag']) . '" class="voir_billet">Afficher</a> '; if ($this->HasAccess('write', $microblogpost['tag'])) { $valtemplate['edition'] .= '<a href="' . $this->href('edit', $microblogpost['tag']) . '" class="editer_billet">Editer</a> '; }
/** * * crée un diaporama à partir d'une PageWiki * * @param $pagetag : nom de la PageWiki * @param $template : fichier template pour le diaporama * @param $class : classe CSS à ajouter au diaporama * */ function print_diaporama($pagetag, $template = 'diaporama_slide.tpl.html', $class = '') { // On teste si l'utilisateur peut lire la page if (!$GLOBALS['wiki']->HasAccess("read", $pagetag)) { return '<div class="error_box">Vous n\'avez pas le droit d\'accéder à cette page.</div>' . $GLOBALS['wiki']->Format('{{login template="minimal.tpl.html"}}'); } else { // On teste si la page existe if (!($page = $GLOBALS['wiki']->LoadPage($pagetag))) { return '<div class="error_box">Page ' . $pagetag . ' non existante.</div>'; } else { $body_f = $GLOBALS['wiki']->format($page["body"]); $body = preg_split('/(.*<h2>.*<\\/h2>)/', $body_f, -1, PREG_SPLIT_DELIM_CAPTURE); if (!$body) { return '<div class="=error_box">La page ' . $pagetag . ' ne peut pas être découpée en diapositives.</div>'; } else { // préparation des tableaux pour le squelette ------------------------- $i = 0; $slides = array(); $titles = array(); foreach ($body as $slide) { //pour les titres de niveau 2, on les transforme en titre 1 if (preg_match('/^<h2>.*<\\/h2>/', $slide)) { $i++; $titles[$i] = str_replace('h2', 'h1', $slide); } else { //s'il y a un titre de niveau 1 qui commence la diapositive, on la déplace en titre (sert surtout pour la première page) if (preg_match('/^<h1>.*<\\/h1>/', $slide)) { $split = preg_split('/(.*<h1>.*<\\/h1>)/', $slide, -1, PREG_SPLIT_DELIM_CAPTURE); $titles[$i] = $split[1]; $slide = $split[2]; } $html_slide = ''; if ($titles[$i] != "") { $html_slide .= "<div class=\"slide-header\">" . $titles[$i] . "</div>\n"; $titles[$i] = strip_tags($titles[$i]); } $html_slide .= $slide; $slides[] = $html_slide; } } } } $buttons = ''; //si la fonction est appelée par le handler diaporama, on ajoute les liens d'édition et de retour if ($GLOBALS['wiki']->GetMethod() == "diaporama") { $buttons .= '<div class="buttons-action"><a class="button-edit" href="' . $GLOBALS['wiki']->href('edit', $pagetag) . '">Éditer</a>' . "\n"; $buttons .= '<a class="button-quit" href="' . $GLOBALS['wiki']->href('', $pagetag) . '">Quitter</a></div>' . "\n"; } //on affiche le template if (!class_exists('SquelettePhp')) { include_once 'tools/templates/libs/squelettephp.class.php'; } $squel = new SquelettePhp('tools/templates/presentation/templates/' . $template); $squel->set(array("pagetag" => $pagetag, "slides" => $slides, "titles" => $titles, "buttons" => $buttons, "class" => $class)); $output = $squel->analyser(); //on prépare le javascript du diaporama, qui sera ajoutée par l'action footer de template, à la fin du html $GLOBALS['js'] = (isset($GLOBALS['js']) ? $GLOBALS['js'] : '') . '<script> $("#slide_show_' . $pagetag . '").scrollable({mousewheel:false}).navigator({history: true}).data("scrollable"); $("#thumbs_' . $pagetag . ' .navi a[title]").tooltip({position: \'top center\', opacity:0.9, tipClass:\'tooltip-slideshow\', offset:[5, 0]}); </script>' . "\n"; return $output; } }
$facettes['info_res'] .= $nb_result . ' fiche ' . "</div>\n"; } else { $facettes['info_res'] .= $nb_result . ' fiches ' . "</div>\n"; } // Mise en place du Pager require_once 'Pager/Pager.php'; $params = array('mode' => 'Jumping', 'perPage' => $pagination, 'delta' => 12, 'httpMethod' => 'GET', 'extraVars' => array_merge($_POST, $_GET), 'altNext' => '>', 'altPrev' => '<', 'nextImg' => '>', 'prevImg' => '<', 'itemData' => $facettes['fiches']); $pager =& Pager::factory($params); $facettes['fiches'] = $pager->getPageData(); $facettes['pager_links'] = '<div class="bazar_numero">' . $pager->links . '</div>' . "\n"; } else { $facettes['info_res'] = ''; $facettes['pager_links'] = ''; } $squelcomment->set($facettes); echo $squelcomment->analyser(); function ArrayGroupByCount($_array, $sort = false) { $count_array = array(); if (is_array($_array)) { foreach (array_unique($_array) as $value) { $count = 0; foreach ($_array as $element) { if ($element == $value) { $count++; } } $count_array[$value] = $count; } if ($sort == 'desc') { arsort($count_array);
} //recuperation des parametres $listelements['mail'] = $this->GetParameter('mail'); if (empty($listelements['mail'])) { echo '<div class="alert alert-danger"><strong>' . _t('CONTACT_ACTION_DESABONNEMENT') . ' :</strong> ' . _t('CONTACT_MAIL_REQUIRED') . '</div>'; } else { // on utilise une variable globale pour savoir de quel formulaire la demande est envoyee, s'il y en a plusieurs sur la meme page if (isset($GLOBALS['nbactionmail'])) { $GLOBALS['nbactionmail']++; } else { $GLOBALS['nbactionmail'] = 1; } $listelements['nbactionmail'] = $GLOBALS['nbactionmail']; // on choisit le template utilisé $template = $this->GetParameter('template'); if (empty($template)) { $template = 'subscribe-form.tpl.html'; } // on peut ajouter des classes à la classe par défaut $listelements['class'] = $this->GetParameter('class') ? 'form-desabonnement ' . $this->GetParameter('class') : 'form-desabonnement'; // adresse url d'envoi du mail $listelements['mailerurl'] = $this->href('mail'); // type de demande et placeholder $listelements['demand'] = 'desabonnement'; $listelements['placeholder'] = _t('CONTACT_UNSUBSCRIBE'); include_once 'tools/contact/libs/squelettephp.class.php'; $listtemplate = new SquelettePhp('tools/contact/presentation/templates/' . $template); $listtemplate->set($listelements); echo $listtemplate->analyser(); $GLOBALS['js'] = (isset($GLOBALS['js']) ? str_replace(' <script src="tools/contact/libs/contact.js"></script>' . "\n", '', $GLOBALS['js']) : '') . ' <script src="tools/contact/libs/contact.js"></script>' . "\n"; }
//recuperation des parametres $contactelements['mail'] = $this->GetParameter('mail'); if (empty($contactelements['mail'])) { echo '<div class="alert alert-danger"><strong>' . _t('CONTACT_ACTION_CONTACT') . ' :</strong> ' . _t('CONTACT_MAIL_REQUIRED') . '</div>'; } else { // on utilise une variable globale pour savoir de quel formulaire la demande est envoyee, s'il y en a plusieurs sur la meme page if (isset($GLOBALS['nbactionmail'])) { $GLOBALS['nbactionmail']++; } else { $GLOBALS['nbactionmail'] = 1; } $contactelements['nbactionmail'] = $GLOBALS['nbactionmail']; $contactelements['entete'] = $this->GetParameter('entete'); if (empty($contactelements['entete'])) { $contactelements['entete'] = $this->config['wakka_name']; } // on choisit le template utilisé $template = $this->GetParameter('template'); if (empty($template)) { $template = 'complete-contact-form.tpl.html'; } // on peut ajouter des classes à la classe par défaut $contactelements['class'] = $this->GetParameter('class') ? 'form-contact ' . $this->GetParameter('class') : 'form-contact'; // adresse url d'envoi du mail $contactelements['mailerurl'] = $this->href('mail'); include_once 'tools/contact/libs/squelettephp.class.php'; $contacttemplate = new SquelettePhp('tools/contact/presentation/templates/' . $template); $contacttemplate->set($contactelements); echo $contacttemplate->analyser(); $GLOBALS['js'] = (isset($GLOBALS['js']) ? str_replace(' <script src="tools/contact/libs/contact.js"></script>' . "\n", '', $GLOBALS['js']) : '') . ' <script src="tools/contact/libs/contact.js"></script>' . "\n"; }
//$sql = 'SELECT DISTINCT value FROM '.$this->config['table_prefix'].'triples WHERE property="http://outils-reseaux.org/_vocabulary/tag"'; //$tags = $this->LoadAll($sql); if (isset($this->page["metadatas"]["ebook-title"])) { $ebookpagename = $this->GetPageTag(); preg_match_all('/{{include page="(.*)".*}}/Ui', $this->page['body'], $matches); $ebookstart = $matches[1][0]; $last = count($matches[1]) - 1; $ebookend = $matches[1][$last]; unset($matches[1][0]); unset($matches[1][$last]); foreach ($matches[1] as $key => $value) { $pagesfiltre = filter_by_value($pages, 'tag', $value); $selectedpages[] = array_shift($pagesfiltre); $key = array_keys($pagesfiltre); if ($key && isset($pages[$key[0]])) { unset($pages[$key[0]]); } } } else { $ebookpagename = ''; $selectedpages = array(); } include_once 'tools/tags/libs/squelettephp.class.php'; $template_export = new SquelettePhp('tools/tags/presentation/templates/exportpages_table.tpl.html'); // charge le templates $template_export->set(array('pages' => $pages, 'ebookstart' => $ebookstart, 'ebookend' => $ebookend, 'addinstalledpage' => $addinstalledpage, 'installedpages' => $installpagename, 'coverimageurl' => $coverimageurl, 'ebookpagename' => $ebookpagename, 'metadatas' => $this->page["metadatas"], 'selectedpages' => $selectedpages, 'url' => $this->href('', $this->GetPageTag()))); // on passe le tableau de pages en parametres $output .= $template_export->analyser(); // affiche les resultats } echo $output . "\n";
// if owner is current user if ($this->UserIsOwner($page) || $this->UserIsAdmin($page)) { $barreredactionelements['owner'] = _t('TEMPLATE_OWNER') . " : " . _t('TEMPLATE_YOU') . ' - ' . _t('TEMPLATE_PERMISSIONS'); $barreredactionelements['linkacls'] = $this->href("acls", $page); $barreredactionelements['linkdeletepage'] = $this->href("deletepage", $page); } else { if ($owner = $this->GetPageOwner($page)) { $barreredactionelements['owner'] = _t('TEMPLATE_OWNER') . " : " . $owner; if ($this->UserIsAdmin()) { $barreredactionelements['linkacls'] = $this->href("acls", $page); $barreredactionelements['owner'] .= ' - ' . _t('TEMPLATE_PERMISSIONS'); } else { //$barreredactionelements['linkacls'] = $this->href('', $owner); } } else { $barreredactionelements['owner'] = _t('TEMPLATE_NO_OWNER') . ($this->GetUser() ? " - " . _t('TEMPLATE_CLAIM') : ""); if ($this->GetUser()) { $barreredactionelements['linkacls'] = $this->href("claim", $page); } //else $barreredactionelements['linkacls'] = $this->href("claim", $page); } } } $barreredactionelements['linkreferrers'] = $this->href("referrers", $page); $barreredactionelements['linkdiaporama'] = $this->href("diaporama", $page); $barreredactionelements['linkshare'] = $this->href("share", $page); include_once 'tools/templates/libs/squelettephp.class.php'; $barreredactiontemplate = new SquelettePhp('tools/templates/presentation/templates/' . $template); $barreredactiontemplate->set($barreredactionelements); echo $barreredactiontemplate->analyser() . ' <!-- /.footer -->' . "\n"; }
if ($_REQUEST["action"] == "login") { // if user name already exists, check password if ($existingUser = $this->LoadUser($_POST["name"])) { // check password if ($existingUser["password"] == md5($_POST["password"])) { $this->SetUser($existingUser, 0); SetCookie("name", $existingUser["name"], 0, $this->CookiePath); SetCookie("password", $existingUser["password"], 0, $this->CookiePath); $sql = "SELECT bf_id_fiche FROM '.BAZ_PREFIXE.'fiche WHERE bf_ce_nature IN (9,15) AND bf_mail ='" . mysql_escape_string($existingUser['email']) . "' LIMIT 1"; $bazar = $this->LoadSingle($sql); if ($bazar) { $id = $bazar['bf_id_fiche']; } $this->Redirect($urllogin . '&id_fiche=' . $id . '&action=voir_fiche'); } else { $this->SetMessage("Erreur identification : mauvais mot de passe."); $this->Redirect($this->href()); } } else { $this->SetMessage("Erreur identification : NomWiki inconnu."); $this->Redirect($this->href()); } } elseif ($_REQUEST['action'] == 'checklogged') { $this->SetMessage("Erreur identification : vous devez accepter les cookies pour pouvoir vous connecter."); $this->Redirect($this->href()); } include_once 'tools/bazar/libs/squelettephp.class.php'; $squel = new SquelettePhp('tools/bazar/presentation/squelettes/iden_form.tpl.html'); $squel->set(array("urllogin" => $urllogin, "urldepart" => $this->href(), "name" => isset($_POST["name"]) ? $_POST["name"] : '')); echo $squel->analyser(); }
// affichage du formulaire $html_formulaire = ''; $html_formulaire .= $this->FormOpen(); $html_formulaire .= '<input type="hidden" name="FormMicroblog" value="true" />' . "\n"; $html_formulaire .= '<input type="hidden" class="antispam" name="antispam" value="0" />' . "\n"; if (!file_exists('tools/tags/presentation/' . $template_formulaire)) { exit('Le fichier template du formulaire de microblog "tools/tags/presentation/' . $template_formulaire . '" n\'existe pas. Il doit exister...'); } else { include_once 'tools/tags/libs/squelettephp.class.php'; $squel = new SquelettePhp('tools/tags/presentation/' . $template_formulaire); //pour la veille, if (!empty($_GET['microblog'])) { $texte_billet = trim(urldecode($_GET['microblog'])); } $squel->set(array("nb" => $nbcar, "rss" => $html_rss, "billet" => $texte_billet)); $html_formulaire .= $squel->analyser(); } //on récupère tous les tags existants $tab_tous_les_tags = $this->GetAllTags(); $toustags = ''; if (is_array($tab_tous_les_tags)) { foreach ($tab_tous_les_tags as $tab_les_tags) { $toustags .= $tab_les_tags['value'] . ' '; } $toustags = substr($toustags, 0, -1); } $tous_les_tags = split(' ', $toustags); $html_formulaire .= '<script src="tools/tags/libs/GrowingInput.js" type="text/javascript" charset="utf-8"></script> <script src="tools/tags/libs/tags_suggestions.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(document).ready(function() {
if (empty($template)) { $template = 'pages_list.tpl.html'; } $resultat = explode(',', $pages); foreach ($resultat as $page) { $page = $this->LoadPage(trim($page)); $element[$page['tag']]['tagnames'] = ''; $element[$page['tag']]['tagbadges'] = ''; $element[$page['tag']]['body'] = $page['body']; $element[$page['tag']]['owner'] = $page['owner']; $element[$page['tag']]['user'] = $page['user']; $element[$page['tag']]['time'] = $page['time']; $element[$page['tag']]['title'] = get_title_from_body($page); $element[$page['tag']]['image'] = get_image_from_body($page); $element[$page['tag']]['desc'] = tokenTruncate(strip_tags($this->Format($page['body'])), $nbcartrunc); $pagetags = $this->GetAllTriplesValues($page['tag'], 'http://outils-reseaux.org/_vocabulary/tag', '', ''); foreach ($pagetags as $tag) { $element[$page['tag']]['tagnames'] .= sanitizeEntity($tag['value']) . ' '; $element[$page['tag']]['tagbadges'] .= '<span class="label label-info">' . $tag['value'] . '</span> '; } } include_once 'tools/tags/libs/squelettephp.class.php'; $templateelements = new SquelettePhp('tools/tags/presentation/templates/' . $template); $templateelements->set(array('elements' => $element)); $output .= $templateelements->analyser(); } if (empty($class)) { echo $output . "\n"; } else { echo '<div class="' . $class . '">' . "\n" . $output . "\n" . '</div>' . "\n"; }
$element[$page['tag']]['tagbadges'] = ''; $element[$page['tag']]['body'] = $page['body']; $element[$page['tag']]['owner'] = $page['owner']; $element[$page['tag']]['user'] = $page['user']; $element[$page['tag']]['time'] = $page['time']; $element[$page['tag']]['title'] = get_title_from_body($page); $element[$page['tag']]['image'] = get_image_from_body($page); $element[$page['tag']]['desc'] = tokenTruncate(strip_tags($this->Format($page['body'])), $nbcartrunc); $pagetags = $this->GetAllTriplesValues($page['tag'], 'http://outils-reseaux.org/_vocabulary/tag', '', ''); foreach ($pagetags as $tag) { $element[$page['tag']]['tagnames'] .= sanitizeEntity($tag['value']) . ' '; $element[$page['tag']]['tagbadges'] .= '<span class="tag-label label label-primary">' . $tag['value'] . '</span> '; } } $squel->set(array('elements' => $element)); $text .= $squel->analyser(); } else { $nb_total = 0; } $output .= '<div class="alert alert-info">' . "\n"; if ($nb_total > 1) { $output .= 'Un total de ' . $nb_total . ' pages ont été trouvées'; } elseif ($nb_total == 1) { $output .= 'Une page a été trouvée'; } else { $output .= 'Aucune page trouvée'; } $output .= (!empty($tags) ? ' avec le mot clé <span class="tag-label label label-info">' . $tags . '</span>' : '') . '.'; $output .= $this->Format('{{rss tags="' . $tags . '" class="pull-right"}}') . "\n"; $output .= '</div>' . "\n" . $text; echo $this->Header();
/** * * Affiche la liste des resultats d'une recherche * @param $tableau_fiches : tableau de fiches provenant du resultat de la recherche * @param $info_nb : booleen pour afficher ou non le nombre du resultat de la recherche (vrai par defaut) */ function baz_afficher_liste_resultat($tableau_fiches, $info_nb = true) { $res = ''; $fiches['info_res'] = ''; if ($info_nb) { $fiches['info_res'] .= '<div class="info_box">' . BAZ_IL_Y_A; $nb_result = count($tableau_fiches); if ($nb_result <= 1) { $fiches['info_res'] .= $nb_result . ' ' . BAZ_FICHE_CORRESPONDANTE; } else { $fiches['info_res'] .= $nb_result . ' ' . BAZ_FICHES_CORRESPONDANTES; } if ($nb_result >= 1) { $fiches['info_res'] .= '. <div class="view-selector"><label>Vue : </label> <select class="select-view" name="view"> <option value="liste_basique.tpl.html">Liste</option> <option value="liste_accordeon.tpl.html">Accordéon</option> <option value="liste_carte.tpl.html">Carte</option> </select> </div>' . "\n"; } $fiches['info_res'] .= '</div>' . "\n"; } $fiches['fiches'] = array(); foreach ($tableau_fiches as $fiche) { $valeurs_fiche = json_decode($fiche['body'], true); $valeurs_fiche = array_map('utf8_decode', $valeurs_fiche); $valeurs_fiche['html'] = baz_voir_fiche(0, $valeurs_fiche); if (baz_a_le_droit(BAZ_ACTION_SUPPRESSION, isset($valeurs_fiche['createur']) ? $valeurs_fiche['createur'] : '')) { $url = $GLOBALS['wiki']->href('', $GLOBALS['wiki']->GetPageTag(), BAZ_VARIABLE_VOIR . '=' . BAZ_VOIR_SAISIR . '&' . BAZ_VARIABLE_ACTION . '=' . BAZ_ACTION_SUPPRESSION . '&id_fiche=' . $valeurs_fiche['id_fiche']); $valeurs_fiche['lien_suppression'] = '<a href="' . $url . '" class="BAZ_lien_supprimer" onclick="javascript:return confirm(\'' . BAZ_CONFIRM_SUPPRIMER_FICHE . ' ?\');"></a>' . "\n"; } if (baz_a_le_droit(BAZ_ACTION_MODIFIER, isset($valeurs_fiche['createur']) ? $valeurs_fiche['createur'] : '')) { $url = $GLOBALS['wiki']->href('', $GLOBALS['wiki']->GetPageTag(), BAZ_VARIABLE_VOIR . '=' . BAZ_VOIR_SAISIR . '&' . BAZ_VARIABLE_ACTION . '=' . BAZ_ACTION_MODIFIER . '&id_fiche=' . $valeurs_fiche['id_fiche']); $valeurs_fiche['lien_edition'] = '<a href="' . $url . '" class="BAZ_lien_modifier"></a>' . "\n"; } $url = $GLOBALS['wiki']->href('', $GLOBALS['wiki']->GetPageTag(), BAZ_VARIABLE_VOIR . '=' . BAZ_VOIR_CONSULTER . '&' . BAZ_VARIABLE_ACTION . '=' . BAZ_VOIR_FICHE . '&id_fiche=' . $valeurs_fiche['id_fiche']); $valeurs_fiche['lien_voir_titre'] = '<a href="' . $url . '" class="BAZ_lien_voir" title="Voir la fiche">' . stripslashes($valeurs_fiche['bf_titre']) . '</a>' . "\n" . '</li>' . "\n"; $valeurs_fiche['lien_voir'] = '<a href="' . $url . '" class="BAZ_lien_voir" title="Voir la fiche"></a>' . "\n" . '</li>' . "\n"; $fiches['fiches'][] = $valeurs_fiche; } include_once 'tools/bazar/libs/squelettephp.class.php'; $template = isset($_GET['template']) ? $_GET['template'] : BAZ_TEMPLATE_LISTE_DEFAUT; $squelcomment = new SquelettePhp('tools/bazar/presentation/squelettes/' . $template); $squelcomment->set($fiches); $res .= $squelcomment->analyser(); return $res; }
// si pas de pas d'url de profil renseignée, on utilise ParametresUtilisateur if (empty($profileurl)) { $profileurl = $this->href("", "ParametresUtilisateur", ""); } elseif ($profileurl == 'WikiName') { $profileurl = $this->href("edit", $user['name'], ""); } else { if ($this->IsWikiName($profileurl)) { $profileurl = $this->href('', $profileurl); } } } else { // cas d'une personne non connectée $connected = false; // si l'authentification passe mais la session n'est pas créée, on a un problème de cookie if ($_REQUEST['action'] == 'checklogged') { $error = 'Vous devez accepter les cookies pour pouvoir vous connecter.'; } } // on affiche le template if (!class_exists('SquelettePhp')) { include_once 'tools/login/libs/squelettephp.class.php'; } // on cherche un template personnalise dans le repertoire themes/tools/bazar/templates $templatetoload = 'themes/tools/login/templates/' . $template; if (!is_file($templatetoload)) { $templatetoload = 'tools/login/presentation/templates/' . $template; } $squel = new SquelettePhp($templatetoload); $squel->set(array("connected" => $connected, "user" => isset($user["name"]) ? $user["name"] : (isset($_POST["name"]) ? $_POST["name"] : ''), "email" => isset($user["email"]) ? $user["email"] : (isset($_POST["email"]) ? $_POST["email"] : ''), "incomingurl" => $incomingurl, "signupurl" => $signupurl, "profileurl" => $profileurl, "userpage" => $userpage, "PageMenuUser" => $PageMenuUser, "btnclass" => $btnclass, "error" => $error)); $output = !empty($class) ? '<div class="' . $class . '">' . "\n" . $squel->analyser() . "\n" . '</div>' . "\n" : $squel->analyser(); echo $output;
// affiche les résultats } // it's not the first time in the loop so we must close previously opened div $output .= '</div>' . "\n"; $fichescat = ''; } else { $first = false; } $output .= '<h3 class="collapsed yeswiki-list-category" ' . 'data-target="#collapse_' . htmlspecialchars(trim(str_replace('/', '', $fiche[$id]))) . '" data-toggle="collapse"><i class="glyphicon glyphicon-chevron-right"></i> ' . $listvalues['label'][$fiche[$id]] . '</h3> <div id="collapse_' . htmlspecialchars(trim(str_replace('/', '', $fiche[$id]))) . '" class="collapse">'; } $currentlabel = $fiche[$id]; // on rétablit les valeurs multiples if (isset($multiplecheckbox[$fiche['id_fiche']])) { $fiche[$id] = $multiplecheckbox[$fiche['id_fiche']]; } $fichescat['fiches'][] = $fiche; } // last results if (is_array($fichescat) && count($fichescat) > 0) { $squel = new SquelettePhp($templatetoload); $squel->set($fichescat); // on passe le tableau de fiches en parametres $output .= $squel->analyser(); // affiche les résultats } // it's not the first time in the loop so we must close previously opened div $output .= '</div>' . "\n"; echo $output; ${$_GET}['query'] = $query; }
/** * * cree un diaporama a partir d'une PageWiki * * @param $pagetag : nom de la PageWiki * @param $template : fichier template pour le diaporama * @param $class : classe CSS a ajouter au diaporama * */ function print_diaporama($pagetag, $template = 'diaporama_slides.tpl.html', $class = '') { // On teste si l'utilisateur peut lire la page if (!$GLOBALS['wiki']->HasAccess("read", $pagetag)) { return '<div class="alert alert-danger">' . _t('TEMPLATE_NO_ACCESS_TO_PAGE') . '</div>' . $GLOBALS['wiki']->Format('{{login template="minimal.tpl.html"}}'); } else { // On teste si la page existe if (!($page = $GLOBALS['wiki']->LoadPage($pagetag))) { return '<div class="alert alert-danger">' . _t('TEMPLATE_PAGE_DOESNT_EXIST') . ' (' . $pagetag . ').</div>'; } else { $body_f = $GLOBALS['wiki']->Format($page["body"]); // on regarde si on gere la 2d pour reveal //preg_match_all('/<h1>.*<\/h1>/m', $body_f, $titles); preg_match_all('/======.*======/Um', $page["body"], $titles); $istwodimensions = count($titles[0]) > 1; $first = true; // on decoupe pour chaque titre de niveau 1 ou 2, ou chaque fois que background-image est utilisée // $body = preg_split( // '/(.*<h[12]>.*<\/h[12]>)' // .'|(.*<div class="background-image.*">.*<\!-- \/\.background-image -->)/m', // $body_f, // -1, // PREG_SPLIT_DELIM_CAPTURE // ); $body = preg_split('/(\\======.*======)' . '|(=====.*=====)' . '|(\\{\\{backgroundimage.*\\}\\}\\s*.*\\s*\\{\\{endbackgroundimage\\}\\})/Um', $page["body"], -1, PREG_SPLIT_DELIM_CAPTURE); //var_dump($body);break; if (!$body) { return '<div class="=alert alert-danger">' . _t('TEMPLATE_PAGE_CANNOT_BE_SLIDESHOW') . ' (' . $pagetag . ').</div>'; } else { // preparation des tableaux pour le squelette ------------------------- $i = 0; $slides = array(); $titles = array(); $previousistitle = false; foreach ($body as $slide) { $slide = $GLOBALS['wiki']->Format($slide); //var_dump($slide); // s'il a des titres de niveau 1 ou 2 il s'agit des separateurs de diapo if (preg_match('/<h[12]>.*<\\/h[12]>/', $slide)) { // s'il y a un titre de niveau 1 qui commence la diapositive, on la deplace en titre // et on gere l'aspect multidimentionnel if (preg_match('/<h1>.*<\\/h1>/', $slide)) { if ($istwodimensions) { if ($first) { $first = false; } else { $slides[$i]['closesection'] = true; } $slides[$i]['opensection'] = true; } } //pour les titres de niveau 2, on les transforme en titre 1 $titles[$i] = str_replace('<h2', '<h1', $slide); if ($previousistitle) { $slides[$i]['html'] = ''; $i++; } $previousistitle = true; } elseif (!empty($slide) || $previousistitle) { $previousistitle = false; $slides[$i]['html'] = $slide; $slides[$i]['title'] = isset($titles[$i]) ? strip_tags($titles[$i]) : ''; $i++; } } } } $buttons = ''; //si la fonction est appelee par le handler diaporama, on ajoute les liens d'edition et de retour if ($GLOBALS['wiki']->GetMethod() == "diaporama") { $buttons .= '<a class="btn" href="' . $GLOBALS['wiki']->href('', $pagetag) . '">×</a>' . "\n"; } //on affiche le template if (!class_exists('SquelettePhp')) { include_once 'tools/templates/libs/squelettephp.class.php'; } $squel = new SquelettePhp('tools/templates/presentation/templates/' . $template); $squel->set(array("pagetag" => $pagetag, "slides" => $slides, "titles" => $titles, "buttons" => $buttons, "class" => $class)); $output = $squel->analyser(); return $output; } }
function afficher_commentaires_recursif($page, $wiki, $premier = true) { $output = ''; $comments = $wiki->LoadComments($page); $valcomment['tag'] = $page; $valcomment['commentaires'] = array(); // display comments themselves if ($comments) { $valcomment = array(); $i = 0; foreach ($comments as $comment) { $valcomment['commentaires'][$i]['tag'] = $comment["tag"]; $valcomment['commentaires'][$i]['body'] = $wiki->Format($comment["body"]); $valcomment['commentaires'][$i]['infos'] = "de " . $wiki->Format($comment["user"]) . ", " . date("\\l d.m.Y &\\a\\g\\r\\av; H:i:s", strtotime($comment["time"])); $valcomment['commentaires'][$i]['actions'] = ''; if ($wiki->HasAccess("comment", $comment['tag'])) { $valcomment['commentaires'][$i]['actions'] .= '<a href="' . $wiki->href('', $comment['tag']) . '" class="repondre_commentaire">Répondre</a> '; } if ($wiki->HasAccess('write', $comment['tag']) || $wiki->UserIsOwner($comment['tag']) || $wiki->UserIsAdmin($comment['tag'])) { $valcomment['commentaires'][$i]['actions'] .= '<a href="' . $wiki->href('edit', $comment['tag']) . '" class="editer_commentaire">Editer</a> '; } if ($wiki->UserIsOwner($comment['tag']) || $wiki->UserIsAdmin()) { $valcomment['commentaires'][$i]['actions'] .= '<a href="' . $wiki->href('deletepage', $comment['tag']) . '" class="supprimer_commentaire">Supprimer</a>' . "\n"; } $valcomment['commentaires'][$i]['reponses'] = afficher_commentaires_recursif($comment['tag'], $wiki, false); $i++; } } // formulaire d'ajout de commentaire $valcomment['commentform'] = ''; if ($premier && $wiki->HasAccess("comment", $page)) { $valcomment['commentform'] .= "<div class=\"microblog-comment-form\">\n"; $valcomment['commentform'] .= $wiki->FormOpen("addcomment", $page) . ' <textarea name="body" class="comment-microblog" rows="3" placeholder="Ecrire votre commentaire ici..."></textarea> <button class="btn btn-primary btn-microblog" name="action" value="addcomment">Ajouter votre commentaire</button>' . $wiki->FormClose(); $valcomment['commentform'] .= "<div class=\"clear\"></div></div>\n"; } include_once 'squelettephp.class.php'; $squelcomment = new SquelettePhp('tools/tags/presentation/templates/comment_list.tpl.html'); $squelcomment->set($valcomment); $output .= $squelcomment->analyser(); return $output; }