芝麻web文件管理V1.00
编辑当前文件:/home/prismawe/clients/canaldegap.fr_old/modules/Glossary/action.default.sonya.php
cms->db; if (isset($params['tid']) || isset($_REQUEST['tid'])) { if (isset($params['tid'])) { $tid = $params['tid']; } else { $tid = $_REQUEST['tid']; } } if (isset($params['term']) || isset($_REQUEST['term'])) { if (isset($params['term'])) { $term = $params['term']; } else { $term = $_REQUEST['term']; } } $spining_chars = $this->GetPreference('spining_chars','5') + 1; $entryarray = array(); if (isset($params['cat']) || isset($_REQUEST['cat'])) { $cat = isset($params['cat'])?$params['cat']:$_REQUEST['cat']; $query = "SELECT t.term_id, t.term, t.definition FROM ".cms_db_prefix(). 'module_glossary_term t, '.cms_db_prefix().'module_glossary_cat c, '. cms_db_prefix().'module_glossary_term_cat tc WHERE '. 'c.name = ? and c.category_id = tc.category_id and t.term_id = tc.term_id '. 'ORDER by term'; $dbresult = $db->Execute($query, array($cat)); } elseif (isset($params['catid']) || isset($_REQUEST['catid'])) { $catid = isset($params['cat'])?$params['cat']:$_REQUEST['cat']; $query = "SELECT t.term_id, t.term, t.definition FROM ".cms_db_prefix(). 'module_glossary_term t, ' . cms_db_prefix().'module_glossary_term_cat tc WHERE '. 'tc.category_id=? and t.term_id = tc.term_id '. 'ORDER by term'; $dbresult = $db->Execute($query, array($catid)); } else { $query = "SELECT term_id, term, definition FROM ".cms_db_prefix(). 'module_glossary_term ORDER by term'; $dbresult = $db->Execute($query); } $prms = array(); if (isset($cat)) { $prms['cat']=$cat; } $selectedTerm = -1; $count = 0; while ($dbresult !== false && $row = $dbresult->FetchRow()) { $onerow = array(); $onerow['id'] = $row['term_id']; $onerow['name'] = $row['term']; $onerow['safeterm'] = preg_replace('/[^a-zA-Z]/',"",$row['term']); $prms['tid'] = $row['term_id']; $prettyurl = ''; if( $this->GetPreference('disable_prettyurls',0) == 0 ) { $prettyurl = 'glossary/'.$row['term'].'/'.$returnid; } $onerow['term'] = $this->CreateLink($id, 'show', $returnid, $row['term'], $prms, '', false, false, '', false, $prettyurl); $onerow['definition'] = $row['definition']; $onerow['showdef'] = 0; if (isset($tid) && $tid == $row['term_id']) { $onerow['showdef'] = 1; $selectedTerm = $count; } if (isset($term) && $term == $row['term']) { $onerow['showdef'] = 1; $selectedTerm = $count; } array_push($entryarray, $onerow); $count++; } $maxSize = $this->GetPreference('number_show',20); if ($selectedTerm > -1) { $start = ((integer)($selectedTerm / $maxSize)) * $maxSize; } else if (isset($params['start'])) { $start = $params['start']; } else { $start = 0; } if ($start > 0) { $prms = array(); $prms['start'] = max($start-$maxSize,0); $prettyurl = ''; if( $this->GetPreference('disable_prettyurls',0) == 0 ) { $prettyurl = 'glossarynv/'.$prms['start']; if (isset($cat)) { $prms['cat']=$cat; $prettyurl .= '/'.$cat; } $prettyurl .= '/'.$returnid; } $this->smarty->assign('navprev', $this->CreateLink($id, 'show', $returnid, $this->Lang('prev'), $prms, '', false, false, '', false, $prettyurl)); } else { $this->smarty->assign('prev', ''); } $count = count($entryarray); $starts = array(); $links = array(); if ($count > $maxSize) { // pass 1: load edge words into array for ($i=0;$i<$count;$i+=$maxSize) { array_push($starts,mb_ucfirst(mb_strtolower($entryarray[$i]['name'],$config['default_encoding']))); array_push($links, ($i+1)); if ($i+$maxSize-1 < $count) { array_push($starts,mb_ucfirst(mb_strtolower($entryarray[$i+$maxSize-1]['name'],$config['default_encoding']))); array_push($links, ($i+1)); } } if (($count % $maxSize) > 1) { array_push($starts,mb_ucfirst(mb_strtolower($entryarray[$count-1]['name'],$config['default_encoding']))); array_push($links, ($count-1)); } } else if ($count > 1) { array_push($starts,mb_ucfirst(mb_strtolower($entryarray[0]['name'],$config['default_encoding']))); array_push($links, 1); array_push($starts,mb_ucfirst(mb_strtolower($entryarray[$count-1]['name'],$config['default_encoding']))); array_push($links, $count); } // pass 2: make 'em minimum difference $entrySize = count($starts); for ($i=0;$i<$entrySize;$i++) { if ($i > 0 && $i % 2 ==0) { if ($difLen > 1) { $difLen--; } } else { $difLen = 1; } $flet = ''; $llet = ''; while ($flet == $llet && $difLen < $spining_chars) { if (mb_strlen($starts[$i]) >= $difLen) { $flet = mb_substr($starts[$i],0,$difLen,$config['default_encoding']); } if ($i + 1 < $entrySize && mb_strlen($starts[min($i+1, $entrySize-1)],$config['default_encoding']) >= $difLen) { $llet = mb_substr($starts[min($i+1, $entrySize-1)],0,$difLen,$config['default_encoding']); } $difLen++; } $starts[$i] = mb_substr($starts[$i],0,$difLen - 1,$config['default_encoding']); } $navElements = array(); for ($i=0;$i<$entrySize;$i+=2) { $thisElement = array(); $thisElement['name'] = $starts[$i]; if ($i < $entrySize - 1) { $thisElement['name'].= '-'.$starts[$i+1]; } if ($start >= $links[$i] && $start < $i+$maxSize) { $thisElement['link'] = ''; } else { $prms = array(); $prms['start']=$links[$i]-1; $prettyurl = ''; if( $this->GetPreference('disable_prettyurls',0) == 0 ) { $prettyurl = 'glossarynv/'.$prms['start']; if (isset($cat)) { $prms['cat']=$cat; $prettyurl .= '/'.$cat; } $prettyurl .= '/'.$returnid; } $thisElement['link'] = $this->CreateLink($id, 'show', $returnid, '', $prms,'',true, false, '', false, $prettyurl); } array_push($navElements, $thisElement); } if ($start + $maxSize < $count) { $prms = array(); $prms['start']=($start+$maxSize); $prettyurl = ''; if( $this->GetPreference('disable_prettyurls',0) == 0 ) { $prettyurl = 'glossarynv/'.$prms['start']; if (isset($cat)) { $prms['cat']=$cat; $prettyurl .= '/'.$cat; } $prettyurl .= '/'.$returnid; } $this->smarty->assign('navnext', $this->CreateLink($id, 'show', $returnid, $this->Lang('next'), $prms, '', false, false, '', false, $prettyurl)); } else { $this->smarty->assign('navnext',''); } $entryarray = array_splice($entryarray, $start, $maxSize); $this->smarty->assign_by_ref('items', $entryarray); $this->smarty->assign('itemcount', count($entryarray)); $this->smarty->assign('navarray', $navElements); $this->smarty->assign('title_section', $this->Lang('title_term_list')); if (isset($cat)) { $this->smarty->assign('cat',$cat); } // Display the populated template if (isset($params['template'])) { if (! is_numeric($params['template'])) { $query = "SELECT template_id FROM ".cms_db_prefix(). 'module_glossary_template WHERE name=?'; $dbresult = $db->Execute($query,array($params['template'])); if ($dbresult !== false && $row = $dbresult->FetchRow()) { $params['template'] = $row['template_id']; } } $str = 'glossary_'.$params['template']; echo $this->ProcessTemplateFromDatabase($str); } else { $defaultTemplate = $this->GetPreference('default_template',''); echo $this->ProcessTemplateFromDatabase('glossary_'.$defaultTemplate); } # EOF ?>