Exemple #1
0
echo '<link>' . $config->url . '/</link>';
echo '<description>' . $config->description . '</description>';
echo '<lastBuildDate>' . Date::format(time(), 'r') . '</lastBuildDate>';
echo '<atom:link rel="self" href="' . $config->url_current . '"/>';
echo $config->offset > 1 ? '<atom:link rel="previous" href="' . $url_base . '/' . ($config->offset - 1) . '"/>' : "";
echo $config->offset < ceil($config->total_articles / $rss_limit) ? '<atom:link rel="next" href="' . $url_base . '/' . ($config->offset + 1) . '"/>' : "";
Weapon::fire('rss_meta');
if (!empty($bucket)) {
    foreach ($bucket as $i => $item) {
        $title = Text::parse(str_replace(array_values($str_replace), array_keys($str_replace), strip_tags($item->title)), '->encoded_html');
        $description = Text::parse(str_replace(array_values($str_replace), array_keys($str_replace), $item->description), '->encoded_html');
        $kind = Mecha::A($item->kind);
        echo '<item>';
        echo '<title>' . $title . '</title>';
        echo '<link>' . $item->url . '</link>';
        echo '<description>' . $description . '</description>';
        echo '<pubDate>' . Date::format($item->time, 'r') . '</pubDate>';
        echo '<guid>' . $item->url . '</guid>';
        if (!empty($kind)) {
            foreach ($kind as $k) {
                $tag = Get::rawTag($k);
                echo '<category domain="' . $config->url . '/' . $config->tag->slug . '/' . $tag['slug'] . '">' . $tag['name'] . '</category>';
            }
        }
        echo '<source url="' . $item->url . '">' . $config->title . ': ' . $title . '</source>';
        Weapon::fire('rss_item', array($item, $i));
        echo '</item>';
    }
}
echo '</channel>';
echo '</rss>';
Exemple #2
0
 /**
  * Widget Tag
  * ----------
  *
  * [1]. Widget::tag('LIST');
  * [2]. Widget::tag('LIST', 'ASC');
  * [3]. Widget::tag('CLOUD', 'ASC', 'count');
  * [4]. Widget::tag('CLOUD', 'ASC', 'name', 7);
  *
  */
 public static function tag($type = 'LIST', $order = 'ASC', $sorter = 'name', $max_level = 6)
 {
     $T1 = TAB;
     $T2 = str_repeat($T1, 2);
     $config = Config::get();
     $speak = Config::speak();
     $counters = array();
     $tags = array();
     if (!($files = Get::articles())) {
         return O_BEGIN . '<div class="widget widget-tag">' . Config::speak('notify_empty', strtolower($speak->posts)) . '</div>' . O_END;
     }
     foreach ($files as $file) {
         list($_time, $_kind, $_name) = explode('_', File::B($file), 3);
         foreach (explode(',', $_kind) as $kind) {
             $counters[] = (int) $kind;
         }
     }
     $i = 0;
     foreach (array_count_values($counters) as $id => $count) {
         $tag = Get::rawTag($id);
         if ($tag && $id !== 0) {
             $tags[$i] = array('id' => $id, 'name' => $tag['name'], 'slug' => $tag['slug'], 'count' => $count);
             $i++;
         }
     }
     if (empty($tags)) {
         return O_BEGIN . '<div class="widget widget-tag">' . Config::speak('notify_empty', strtolower($speak->tags)) . '</div>' . O_END;
     }
     $tags = Mecha::eat($tags)->order($order, $sorter)->vomit();
     if ($type === 'LIST') {
         $html = O_BEGIN . '<div class="widget widget-tag widget-tag-list" id="widget-tag-list-' . self::$id['tag_list'] . '">' . NL;
         self::$id['tag_list']++;
         $html .= $T1 . '<ul>' . NL;
         foreach ($tags as $tag) {
             $html .= $T2 . '<li' . ($config->tag_query === $tag['slug'] ? ' class="selected"' : "") . '><a href="' . $config->url . '/' . $config->tag->slug . '/' . $tag['slug'] . '" rel="tag">' . $tag['name'] . '</a> <span class="counter">' . $tag['count'] . '</span></li>' . NL;
         }
         $html .= $T1 . '</ul>' . NL;
         $html .= '</div>' . O_END;
         $html = Filter::apply('widget', $html);
         return Filter::apply('widget:tag.list', Filter::apply('widget:tag', $html));
     }
     if ($type === 'CLOUD') {
         $tags_counter = array();
         foreach ($tags as $tag) {
             $tags_counter[] = $tag['count'];
         }
         $highest_count = max($tags_counter);
         $html = O_BEGIN . '<div class="widget widget-tag widget-tag-cloud" id="widget-tag-cloud-' . self::$id['tag_cloud'] . '">' . NL . TAB;
         self::$id['tag_cloud']++;
         $_html = array();
         foreach ($tags as $tag) {
             $size = ceil($tag['count'] / $highest_count * $max_level);
             $_html[] = '<span class="size size-' . $size . ($config->tag_query === $tag['slug'] ? ' selected' : "") . '"><a href="' . $config->url . '/' . $config->tag->slug . '/' . $tag['slug'] . '" rel="tag">' . $tag['name'] . '</a> <span class="counter">' . $tag['count'] . '</span></span>';
         }
         $html .= implode(' ', $_html) . NL . '</div>' . O_END;
         $html = Filter::apply('widget', $html);
         return Filter::apply('widget:tag.cloud', Filter::apply('widget:tag', $html));
     }
     if ($type === 'DROPDOWN') {
         $html = O_BEGIN . '<div class="widget widget-tag widget-tag-dropdown" id="widget-tag-dropdown-' . self::$id['tag_dropdown'] . '">' . NL;
         self::$id['tag_dropdown']++;
         $html .= $T1 . '<select>' . NL . ($config->tag_query === "" ? $T2 . '<option disabled selected>' . $speak->select . '&hellip;</option>' . NL : "");
         foreach ($tags as $tag) {
             $html .= $T2 . '<option value="' . $config->url . '/' . $config->tag->slug . '/' . $tag['slug'] . '"' . ($config->tag_query === $tag['slug'] ? ' selected' : "") . '>' . $tag['name'] . ' (' . $tag['count'] . ')</option>' . NL;
         }
         $html .= $T1 . '</select>' . NL;
         $html .= '</div>' . O_END;
         $html = Filter::apply('widget', $html);
         return Filter::apply('widget:tag.dropdown', Filter::apply('widget:tag', $html));
     }
 }