public function render($datas)
 {
     global $opac_notices_format;
     global $opac_etagere_order;
     // on gère l'ordre des étagères, id asc par défaut
     $critere = "id";
     $dir = "asc";
     if ($opac_etagere_order) {
         $etagere_order = explode(" ", trim($opac_etagere_order));
         if (trim($etagere_order[0]) == 'name' || trim($etagere_order[0]) == 'comment') {
             $critere = trim($etagere_order[0]);
         }
         if (isset($etagere_order[1])) {
             $dir = strtolower(trim($etagere_order[1]));
         }
     }
     $order = array();
     foreach ($datas['shelves'] as $shelf) {
         $order[] = $shelf[$critere];
     }
     if ($dir == 'desc') {
         array_multisort($order, SORT_DESC, $datas['shelves']);
     } else {
         array_multisort($order, SORT_ASC, $datas['shelves']);
     }
     //on gère l'affichage des notices
     foreach ($datas["shelves"] as $i => $shelve) {
         $datas['shelves'][$i]['records'] = contenu_etagere($shelve['id'], $this->parameters["nb_notices"], $opac_notices_format, "", 1, './index.php?lvl=etagere_see&id=!!id!!');
     }
     //on rappelle le tout...
     return parent::render($datas);
 }
function show_infopages($infopagesid = "")
{
    if (!$infopagesid) {
        return "";
    }
    $retaff = "";
    $t_infopagesid = explode(",", $infopagesid);
    $t_infopageslues = array();
    $requete = "select id_infopage, content_infopage, restrict_infopage from infopages where id_infopage in({$infopagesid}) and valid_infopage=1";
    $resultat = pmb_mysql_query($requete);
    while ($res = pmb_mysql_fetch_object($resultat)) {
        //seulement si l'infopage est accessible...
        if (!$res->restrict_infopage || $res->restrict_infopage && $_SESSION['id_empr_session']) {
            $t_infopageslues[$res->id_infopage] = $res->content_infopage;
        }
        $lu = $t_infopageslues[$res->id_infopage];
        // modif pour inclusion etagere dans infopages
        //  syntaxe : !!etagere_seeN,B,M,D,I!!
        //         N = id etagere
        //         B = nomBre maxi de notices à afficher, mettre 99999 pour illimiter
        //         M = 1,2,4 ou 8 mode d'affichage, comme dans le paramètre opac_etagere_notices_format
        //         D = 0 ou 1 pour affichage dépliable ou pas
        //         I = 0 ou  1 pour insérer le lien ... si nb notices > nb max notices
        $oldpos = 0;
        while (($pos = strpos($lu, "!!etagere_see", $oldpos)) > 0) {
            // demande aff etagere trouvée
            $pos_fin = strpos($lu, "!!", $pos + 2);
            $info_etagere_str = substr($lu, $pos + 13, $pos_fin - $pos - 13);
            $info_etagere = array();
            $info_etagere = explode(",", $info_etagere_str);
            // $info_etagere[0] = id
            // $info_etagere[1] = nb max notices affichées
            // $info_etagere[2] = mode d'affichage
            // $info_etagere[3] = dépliable ou pas
            // $info_etagere[4] = lien ou pas quand plus de notices que NB max
            // paramètres :
            //	$idetagere : l'id de l'étagère
            //	$aff_notices_nb : nombres de notices affichées : toutes = 0
            //	$mode_aff_notice : mode d'affichage des notices, REDUIT (titre+auteur principal) ou ISBD ou PMB ou les deux : dans ce cas : (titre + auteur) en entête du truc, à faire dans notice_display.class.php
            //	$depliable : affichage des notices une par ligne avec le bouton de dépliable
            //	$link_to_etagere : 0 ou 1
            //  $link : lien pour afficher le contenu de l'étagère "./index.php?lvl=etagere_see&id=!!id!!"
            $etagere = contenu_etagere($info_etagere[0], $info_etagere[1], $info_etagere[2], $info_etagere[3], $info_etagere[4], "./index.php?lvl=etagere_see&id=!!id!!");
            $lu = str_replace("!!etagere_see" . $info_etagere_str . "!!", $etagere, $lu);
            $oldpos = $pos + strlen($etagere);
        }
        $t_infopageslues[$res->id_infopage] = $lu;
    }
    for ($i = 0; $i < count($t_infopagesid); $i++) {
        if ($t_infopageslues[$t_infopagesid[$i]]) {
            $retaff .= $t_infopageslues[$t_infopagesid[$i]];
        }
    }
    return $retaff;
}
Example #3
0
            //         M = 1,2,4 ou 8 mode d'affichage, comme dans le paramètre opac_etagere_notices_format
            //         D = 0 ou 1 pour affichage dépliable ou pas
            //         I = 0 ou  1 pour insérer le lien ... si nb notices > nb max notices
            $oldpos = 0;
            while (($pos = strpos($lu, "!!etagere_see", $oldpos)) > 0) {
                // demande aff etagere trouvée
                $pos_fin = strpos($lu, "!!", $pos + 2);
                $info_etagere_str = substr($lu, $pos + 13, $pos_fin - $pos - 13);
                $info_etagere = array();
                $info_etagere = explode(",", $info_etagere_str);
                // $info_etagere[0] = id
                // $info_etagere[1] = nb max notices affichées
                // $info_etagere[2] = mode d'affichage
                // $info_etagere[3] = dépliable ou pas
                // $info_etagere[4] = lien ou pas quand plus de notices que NB max
                // paramètres :
                //	$idetagere : l'id de l'étagère
                //	$aff_notices_nb : nombres de notices affichées : toutes = 0
                //	$mode_aff_notice : mode d'affichage des notices, REDUIT (titre+auteur principal) ou ISBD ou PMB ou les deux : dans ce cas : (titre + auteur) en entête du truc, à faire dans notice_display.class.php
                //	$depliable : affichage des notices une par ligne avec le bouton de dépliable
                //	$link_to_etagere : 0 ou 1
                //  $link : lien pour afficher le contenu de l'étagère "./index.php?lvl=etagere_see&id=!!id!!"
                $etagere = contenu_etagere($info_etagere[0], $info_etagere[1], $info_etagere[2], $info_etagere[3], $info_etagere[4], "./index.php?lvl=etagere_see&id=!!id!!");
                $lu = str_replace("!!etagere_see" . $info_etagere_str . "!!", $etagere, $lu);
                $oldpos = $pos + strlen($etagere);
            }
            $retaff .= $lu;
        }
    }
}
print $retaff;