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; }
// 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;