<?php /** * Tag Manager * ----------- */ Route::accept($config->manager->slug . '/tag', function () use($config, $speak) { $tags = Get::rawTags('ASC', 'id'); Config::set(array('page_title' => $speak->tags . $config->title_separator . $config->manager->title, 'files' => $tags, 'cargo' => DECK . DS . 'workers' . DS . 'cargo.tag.php')); $G = array('data' => $tags); if ($request = Request::post()) { Guardian::checkToken($request['token']); // Check for duplicate ID foreach (array_count_values($request['id']) as $id => $count) { if (trim($id) !== "" && $count > 1) { Notify::error(Config::speak('notify_invalid_duplicate', $speak->id)); break; } } // Check for duplicate slug foreach (array_count_values($request['slug']) as $slug => $count) { if (trim($slug) !== "" && $count > 1) { Notify::error(Config::speak('notify_invalid_duplicate', strtolower($speak->slug))); break; } } if (!Notify::errors()) { $data = array(); $keys = $request['id']; for ($i = 0, $count = count($keys); $i < $count; ++$i) { if (trim($request['name'][$i]) !== "" && trim($request['id'][$i]) !== "" && is_numeric($request['id'][$i])) {
<?php $bucket = array(); $url_base = rtrim($config->url_current, '\\/-.0123456789'); $json_order = strtoupper(Request::get('order', 'DESC')); $json_filter = Request::get('filter', ""); $json_limit = Request::get('limit', 25); if ($pages = Mecha::eat(Get::articles($json_order, $json_filter))->chunk($config->offset, $json_limit)->vomit()) { foreach ($pages as $path) { $bucket[] = Get::articleHeader($path); } } $json = array('meta' => array('generator' => 'Mecha CMS ' . MECHA_VERSION, 'title' => $config->title, 'url' => array('home' => $config->url, 'previous' => $config->offset > 1 ? $url_base . '/' . ($config->offset - 1) : null, 'next' => $config->offset < ceil($config->total_articles / $json_limit) ? $url_base . '/' . ($config->offset + 1) : null), 'description' => $config->description, 'update' => date('c'), 'author' => array('name' => $config->author, 'url' => array('profile' => $config->author_profile_url)), 'offset' => $config->offset, 'total' => $config->total_articles, 'tags' => Get::rawTags()), 'item' => null); if (!empty($bucket)) { $json['item'] = array(); foreach ($bucket as $i => $item) { $json['item'][$i] = array('title' => $item->title, 'url' => $item->url, 'date' => $item->date->W3C, 'update' => Date::format($item->update, 'c'), 'id' => $item->id, 'description' => $item->description, 'kind' => Mecha::A($item->kind)); Weapon::fire('json_item', array(&$json['item'][$i], $item, $i)); } } Weapon::fire('json_meta', array(&$json['meta'])); echo (isset($_GET['callback']) ? $_GET['callback'] . '(' : "") . json_encode($json) . (isset($_GET['callback']) ? ');' : "");