예제 #1
0
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&eacute;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 &agrave; &eacute;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;
}
예제 #2
0
}
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>&nbsp;';
    }
}
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');
예제 #3
0
             $this->ClearLinkTable();
             // retour HTML pour ajax
             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&eacute;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";
                    // 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;
}
예제 #5
0
<?php

if (!defined("WIKINI_VERSION")) {
    die("acc&egrave;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();
예제 #6
0
    require_once 'tools/tags/libs/Pager/Pager_Wrapper.php';
    //this file
    $pagerOptions = array('mode' => 'Sliding', 'delta' => 2, 'perPage' => $nb);
    $paged_data = Pager_Wrapper_MDB2($db, $requete, $pagerOptions);
    //$paged_data['page_numbers']; //array('current', 'total');
} else {
    $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);
예제 #7
0
//recuperation des parametres
$contactelements['mail'] = $this->GetParameter('mail');
if (empty($contactelements['mail'])) {
    echo '<div class="alert alert-danger"><strong>' . _t('CONTACT_ACTION_CONTACT') . ' :</strong>&nbsp;' . _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";
}
예제 #8
0
} else {
    if ($this->GetMethod() != 'xml') {
        //on affiche le lien vers le flux RSS
        $html_rss = '<div class="liens_rss">';
        $html_rss .= $this->Format('{{rss type="microblog" tags="' . $tags . '" notags="' . $notags . '" titrerss="' . $titrerss . '"}}');
        $html_rss .= '</div>';
        // 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);
예제 #9
0
    //$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";
예제 #10
0
}
//recuperation des parametres
$listelements['mail'] = $this->GetParameter('mail');
if (empty($listelements['mail'])) {
    echo '<div class="alert alert-danger"><strong>' . _t('CONTACT_ACTION_DESABONNEMENT') . ' :</strong>&nbsp;' . _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";
}
예제 #11
0
        // 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";
}
예제 #12
0
    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();
}
예제 #13
0
    }
    // Mise en place du Pager
    require_once 'Pager/Pager.php';
    $params = array('mode' => BAZ_MODE_DIVISION, 'perPage' => $pagination, 'delta' => BAZ_DELTA, 'httpMethod' => 'GET', 'extraVars' => array_merge($_POST, $_GET), 'altNext' => BAZ_SUIVANT, 'altPrev' => BAZ_PRECEDENT, 'nextImg' => BAZ_SUIVANT, 'prevImg' => BAZ_PRECEDENT, 'itemData' => $tableau_resultat);
    $pager =& Pager::factory($params);
    $tableau_resultat = $pager->getPageData();
    $fiches['pager_links'] = '<div class="bazar_numero">' . $pager->links . '</div>' . "\n";
} else {
    $fiches['info_res'] = '';
    $fiches['pager_links'] = '';
}
$fiches['fiches'] = array();
foreach ($tableau_resultat as $fiche) {
    $valeurs_fiche = json_decode($fiche[0], true);
    $valeurs_fiche = array_map('utf8_decode', $valeurs_fiche);
    $valeurs_fiche['html'] = baz_voir_fiche(0, $valeurs_fiche);
    if (baz_a_le_droit('saisir_fiche', $valeurs_fiche['createur'])) {
        $valeurs_fiche['lien_suppression'] = '<a class="BAZ_lien_supprimer" href="' . $this->href('deletepage', $valeurs_fiche['id_fiche']) . '"></a>' . "\n";
        $valeurs_fiche['lien_edition'] = '<a class="BAZ_lien_modifier" href="' . $this->href('edit', $valeurs_fiche['id_fiche']) . '"></a>' . "\n";
    }
    $valeurs_fiche['lien_voir_titre'] = '<a class="BAZ_lien_voir" href="' . $this->href('', $valeurs_fiche['id_fiche']) . '" title="Voir la fiche">' . $valeurs_fiche['bf_titre'] . '</a>' . "\n";
    $valeurs_fiche['lien_voir'] = '<a class="BAZ_lien_voir" href="' . $this->href('', $valeurs_fiche['id_fiche']) . '" title="Voir la fiche"></a>' . "\n";
    $fiches['fiches'][] = $valeurs_fiche;
    //réinitialisation de l'url
    $GLOBALS['_BAZAR_']['url']->removeQueryString(BAZ_VARIABLE_VOIR);
    $GLOBALS['_BAZAR_']['url']->removeQueryString(BAZ_VARIABLE_ACTION);
}
include_once 'tools/bazar/libs/squelettephp.class.php';
$squelcomment = new SquelettePhp('tools/bazar/presentation/squelettes/' . $template);
$squelcomment->set($fiches);
echo $squelcomment->analyser();
예제 #14
0
/**
 * 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;
}
/**
 * 
 * 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&eacute;der &agrave; 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 &ecirc;tre d&eacute;coup&eacute;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) . '">&Eacute;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;
    }
}
예제 #16
0
<?php

if (!defined("WIKINI_VERSION")) {
    die("acc&egrave;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";
}
예제 #17
0
        $somme_par_groupe[$group] = ArrayGroupByCount($comptage_groupe[$group]);
    } else {
        // C'est une liste !
        foreach ($grouplist[$group] as $valeur_grouplist) {
            // on compte tous les elements de la liste
            $somme_par_groupe[$group][$valeur_grouplist] = ArrayGroupByCount($comptage_groupe[$group][$valeur_grouplist]);
        }
    }
}
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/' . $template;
if (!is_file($templatetoload)) {
    $templatetoload = 'tools/bazar/presentation/templates/' . $template;
}
$squelcomment = new SquelettePhp($templatetoload);
// Affiche Selecteurs
$facettes = array();
$checkboxes = array();
$titles_html = array();
$facettes['open'] = $this->Formopen('', '', 'get');
foreach ($groups as $kg => $group) {
    $group = preg_replace('/\\*/', '', $group);
    // liste utilise plusieurs fois
    $checkboxes[$group][] = array('title' => $titles[$kg]);
    if (!$grouplist[$group]) {
        foreach ($somme_par_groupe[$group] as $key_somme_par_groupe => $valeur_somme_par_groupe) {
            if ($key_somme_par_groupe != '') {
                $facettes['filters'][$group][$key_somme_par_groupe] = $valeur_somme_par_groupe;
                if (in_arrayi($key_somme_par_groupe, $selections[$group])) {
                    $checkboxes[$group][] = array('content' => '<input checked="yes"  name="' . $group . '[]" value="' . $key_somme_par_groupe . '" type="checkbox"/> ' . $key_somme_par_groupe . " (" . $valeur_somme_par_groupe . ")" . '<br />');
예제 #18
0
$type = isset($_GET['type']) ? $_GET['type'] : '';
$lienedit = isset($_GET['lienedit']) ? $_GET['lienedit'] : '';
$class = isset($_GET['class']) ? $_GET['class'] : 'liste';
$nb = isset($_GET['nb']) ? $_GET['nb'] : '';
$tri = isset($_GET['tri']) ? $_GET['tri'] : '';
$nbcartrunc = 200;
$template = isset($_GET['template']) ? $_GET['template'] : 'pages_accordion.tpl.html';
$valtemplate = array();
if (!file_exists('themes/tools/tags/presentation/templates/' . $template)) {
    if (!file_exists('tools/tags/presentation/templates/' . $template)) {
        exit('Le fichier template du formulaire de microblog "tools/tags/presentation/templates/' . $template . '" n\'existe pas. Il doit exister...');
    } else {
        $squel = new SquelettePhp('tools/tags/presentation/templates/' . $template);
    }
} else {
    $squel = new SquelettePhp('themes/tools/tags/presentation/templates/' . $template);
}
$output = '';
// creation de la liste des mots cles a filtrer
$this->AddJavascriptFile('tools/tags/libs/tag.js');
$tab_selected_tags = explode(',', $tags);
$selectiontags = ' AND value IN ("' . implode(",", $tab_selected_tags) . '")';
// on recupere tous les tags existants
$sql = 'SELECT DISTINCT value FROM ' . $this->config['table_prefix'] . 'triples WHERE property="http://outils-reseaux.org/_vocabulary/tag" ORDER BY value ASC';
$tab_tous_les_tags = $this->LoadAll($sql);
if (is_array($tab_tous_les_tags)) {
    foreach ($tab_tous_les_tags as $tag) {
        $tag['value'] = _convert(stripslashes($tag['value']), 'ISO-8859-1');
        if (in_array($tag['value'], $tab_selected_tags)) {
            $tab_tag[] = '&nbsp;<a class="tag-label label label-primary label-active" href="' . $this->href('listpages', $this->GetPageTag(), 'tags=' . urlencode($tag['value'])) . '">' . $tag['value'] . '</a>' . "\n";
        } else {
예제 #19
0
    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>&nbsp;';
        }
    }
    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";
}
예제 #20
0
    // 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;
예제 #21
0
/**
 *
 * 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&eacute;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 . '&amp;' . BAZ_VARIABLE_ACTION . '=' . BAZ_ACTION_SUPPRESSION . '&amp;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 . '&amp;' . BAZ_VARIABLE_ACTION . '=' . BAZ_ACTION_MODIFIER . '&amp;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 . '&amp;' . BAZ_VARIABLE_ACTION . '=' . BAZ_VOIR_FICHE . '&amp;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;
}
/**
 *
 * 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) . '">&times;</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;
    }
}
예제 #23
0
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&eacute;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;
}