* ------------------------------------------------------------- * CHANGES: 2002.09.25 - created * * example: * code: * <{pagerabc posvar="abc" class_num="dl" class_numon="header" separator=" *  -  " names="A,B;C,D;E,F;G,H;I,J;K,L;M,N,O;P,Q,R;S,T;U,V,W,X,Y,Z"}> * * result * * A,B *  -  C,D *  -  E,F *  -  G,H *  -  I,J *  -  K,L *  -  M,N,O *  -  P,Q,R *  -  S,T *  -  U,V,W,X,Y,Z

* * */ function smarty_function_pagerabc($params, &$smarty) { /* Parameters $posvar - name of the php variable that contains the position data ($_REQUEST) $forwardvars - comma separated list of php variablenames to forward in the links $class_num - class for the page numbers tag! $class_numon - class for the aktive page! $separator - tags to print between the letters (eg: - ) $lang - language $names - values to select from (array or csv) $values - values to select from (array or csv) $skin - use predefined values (hu - hungarian ABC) */ extract($params); if (empty($posvar)) { die('unset variable posvar in smarty func pagerabc'); } if (!empty($names)) { if (!is_array($names)) { $names = explode(';', $names); } if (!empty($values)) { if (!is_array($values)) { $values = explode(';', $values); } } else { $values = $names; } } else { // predefined abc if ($skin == 'hu') { $names = array('A','Á','B','C','D','E','É','F','G','H','I','Í','J','K','L','M','N','O','Ó','Ö','Õ','P','Q','R','S','T','U','Ú','Ü','Û','V','W','X','Y','Z'); $values = array('A','Á','B','C','D','E','É','F','G','H','I','Í','J','K','L','M','N','O','Ó','Ö','Õ','P','Q','R','S','T','U','Ú','Ü','Û','V','W','X','Y','Z'); //$names = array('A' ,'B','C','D','E' ,'F','G','H','I','J','K','L','M','N','O' ,'P','Q','R','S','T','U' ,'V','W','X','Y','Z'); //$values = array('A,Á','B','C','D','E,É','F','G','H','I,Í','J','K','L','M','N','O,Ó,Ö,Õ','P','Q','R','S','T','U,Ú,Ü,Û','V','W','X','Y','Z'); } else { $names = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U' ,'V','W','X','Y','Z'); $values = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); } } $pos = $_REQUEST[$posvar]; if (!is_array($forwardvars)) { $forwardvars = preg_split('/[,;]/', $forwardvars); } $url = $_SERVER['SCRIPT_NAME'].'?'; foreach ((array)$forwardvars as $tmp) { if (!empty($tmp) AND (!empty($_REQUEST[$tmp]))) $url .= '&'.$tmp.'='.$_REQUEST[$tmp]; } if ($printempty == TRUE) { print '-'.$separator; } if (!empty($class_num)) { $tmp = ' class="'.$class_num.'"'; } foreach($names as $i=>$nam) { if (!empty($class_numon)) { if ($_REQUEST[$posvar] == $values[$i]) { $tmp = ' class="'.$class_numon.'"'; } elseif (!empty($class_num)) { $tmp = ' class="'.$class_num.'"'; } } if ($i > 0) { print $separator; } print ''.$nam.''; } } ?>