/**
  * sort metapages by a meta
  *
  * @access public
  * @param string|null $meta meta name. 
  * @param boolean $reverse sort in reverse order
  * @version $Id: v 1.2 2008-06-10 07:23:17Z sonots $
  */
 function sort_by($meta, $reverse = false)
 {
     switch ($meta) {
         case 'name':
             $metas = $this->get_metas('relname');
             sonots::natcasesort_filenames($metas);
             break;
         case 'date':
             $metas = $this->get_metas('timestamp');
             arsort($metas, SORT_NUMERIC);
             break;
         case 'reading':
             $metas = $this->get_metas('reading');
             sonots::natcasesort_filenames($metas);
             break;
         case 'popular':
             $metas = $this->get_metas('popular');
             arsort($metas, SORT_NUMERIC);
             break;
         case 'title':
             $metas = $this->get_metas('title');
             $metas = array_map('make_link', $metas);
             $metas = array_map('strip_tags', $metas);
             $metas = array_map('trim', $metas);
             asort($metas, SORT_STRING);
             break;
         default:
             $metas = $this->get_metas($meta);
             asort($metas, SORT_STRING);
             break;
     }
     if ($reverse) {
         $metas = array_reverse($metas, true);
     }
     sonots::array_asort_key($this->metapages, $metas);
 }