_directory === $directory) { // add year to the list (do not closes li, because // we may have nested elements) $this->_year = $file; $lnk = get_year_link($file); $this->_htmllist [$this->_year] = "
  • 20$file"; return 1; } elseif (is_dir($f)) { $this->_months [] = $file; return 0; } } } function _exitingDir($directory = null, $file = null) { $y = $this->_year; if ($mos = & $this->_months) { sort($mos); $list = ''; $linearlist = array(); foreach ($mos as $mth) { $lnk = get_month_link($y, $mth); $the_month = theme_date_format(mktime(0, 0, 0, $mth, 1, 0), '%B'); $list = "
  • " . $the_month . '
  • ' . $list; $linearlist ["$the_month 20{$this->_year}"] = $lnk; } $list = ''; } $mos = array(); // we close year's li $this->_list [$y] = $linearlist; $this->_htmllist [$y] .= $list . ''; } function getList() { krsort($this->_list); return $this->_list; } function getHtmlList() { krsort($this->_htmllist); return implode($this->_htmllist); } } function plugin_archives_head() { global $PLUGIN_ARCHIVES_MONTHLIST; $PLUGIN_ARCHIVES_MONTHLIST = new plugin_archives_monthlist(); echo "\n\n"; foreach ($PLUGIN_ARCHIVES_MONTHLIST->getList() as $y => $months) { foreach ($months as $ttl => $link) echo "\n"; } echo "\n\n"; } add_filter('wp_head', 'plugin_archives_head'); function plugin_archives_widget() { lang_load('plugin:archives'); global $lang, $PLUGIN_ARCHIVES_MONTHLIST; return array( 'subject' => $lang ['plugin'] ['archives'] ['subject'], 'content' => ($list = $PLUGIN_ARCHIVES_MONTHLIST->getHtmlList()) ? '' : "

    {$lang['plugin']['archives']['no_posts']}

    " ); } register_widget('archives', 'Archives', 'plugin_archives_widget'); ?>