예제 #1
0
<?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])) {
예제 #2
0
<?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']) ? ');' : "");