コード例 #1
0
ファイル: blog.blogSetting.php プロジェクト: ragi79/Textcube
function setBlogLanguage($blogid, $language, $blogLanguage)
{
    $ctx = Model_Context::getInstance();
    if ($language == $ctx->getProperty('blog.language') && $blogLanguage == $ctx->getProperty('blog.blogLanguage')) {
        return true;
    }
    $language = Utils_Unicode::lessenAsEncoding($language, 5);
    $blogLanguage = Utils_Unicode::lessenAsEncoding($blogLanguage, 5);
    if (Setting::setBlogSettingGlobal('language', $language) && Setting::setBlogSettingGlobal('blogLanguage', $blogLanguage)) {
        $ctx->setProperty('blog.language', $language);
        $ctx->setProperty('blog.blogLanguage', $blogLanguage);
        requireModel('blog.feed');
        clearFeed();
        return true;
    } else {
        return false;
    }
}
コード例 #2
0
ファイル: index.php プロジェクト: ni5am/Textcube
<?php

/// Copyright (c) 2004-2015, Needlworks  / Tatter Network Foundation
/// All rights reserved. Licensed under the GPL.
/// See the GNU General Public License for more details. (/documents/LICENSE, /documents/COPYRIGHT)
$IV = array('POST' => array('publishWholeOnRSS' => array('int', 0, 1, 'default' => 0), 'publishEolinSyncOnRSS' => array('int', 0, 1, 'default' => 0), 'entriesOnRSS' => array('int', 'default' => 5), 'commentsOnRSS' => array('int', 'default' => 5), 'useFeedViewOnCategory' => array('int', 0, 1, 'default' => 1), 'rssURL' => array('url', 'mandatory' => false), 'atomURL' => array('url', 'mandatory' => false)));
require ROOT . '/library/preprocessor.php';
requireStrictRoute();
setCommentsOnRSS($blogid, $_POST['commentsOnRSS']);
setEntriesOnRSS($blogid, $_POST['entriesOnRSS']);
// Feed range
Setting::setBlogSettingGlobal('publishWholeOnRSS', $_POST['publishWholeOnRSS']);
Setting::setBlogSettingGlobal('publishEolinSyncOnRSS', $_POST['publishEolinSyncOnRSS']);
// Category Feed
Setting::setBlogSettingGlobal('useFeedViewOnCategory', $_POST['useFeedViewOnCategory']);
Setting::setBlogSettingGlobal('atomURL', $_POST['atomURL']);
Setting::setBlogSettingGlobal('rssURL', $_POST['rssURL']);
clearFeed();
CacheControl::flushSkin();
Respond::ResultPage(0);
コード例 #3
0
ファイル: blog.entry.php プロジェクト: hinablue/TextCube
function setEntryVisibility($id, $visibility)
{
    global $database;
    requireModel("blog.feed");
    requireModel("blog.category");
    requireComponent('Needlworks.Cache.PageCache');
    $blogid = getBlogId();
    if ($visibility < 0 || $visibility > 3) {
        return false;
    }
    list($oldVisibility, $category) = POD::queryRow("SELECT visibility, category FROM {$database['prefix']}Entries WHERE blogid = {$blogid} AND id = {$id} AND draft = 0");
    if ($category < 0) {
        if ($visibility == 1) {
            $visibility = 0;
        }
        if ($visibility == 3) {
            $visibility = 2;
        }
    }
    if ($oldVisibility === null) {
        return false;
    }
    if ($visibility == $oldVisibility) {
        return true;
    }
    if ($oldVisibility == 3) {
        syndicateEntry($id, 'delete');
    } else {
        if ($visibility == 3) {
            if (!syndicateEntry($id, 'create')) {
                POD::query("UPDATE {$database['prefix']}Entries \n\t\t\t\tSET visibility = {$oldVisibility}, \n\t\t\t\t\tmodified = UNIX_TIMESTAMP() \n\t\t\t\tWHERE blogid = {$blogid} AND id = {$id}");
                return false;
            }
        }
    }
    $result = POD::queryCount("UPDATE {$database['prefix']}Entries \n\t\tSET visibility = {$visibility}, \n\t\t\tmodified = UNIX_TIMESTAMP() \n\t\tWHERE blogid = {$blogid} AND id = {$id}");
    if (!$result) {
        // Error.
        return false;
    }
    if ($result == 0) {
        // Not changed.
        return true;
    }
    if ($category >= 0) {
        if ($oldVisibility >= 2 && $visibility < 2 || $oldVisibility < 2 && $visibility >= 2) {
            clearFeed();
        }
        if ($oldVisibility == 3 && $visibility <= 2 || $oldVisibility <= 2 && $visibility == 3) {
            clearFeed();
        }
        if ($category > 0) {
            updateCategoryByEntryId($blogid, $id, 'update', $parameters = array('visibility' => array($oldVisibility, $visibility)));
        }
        //			updateEntriesOfCategory($blogid, $category);
    }
    CacheControl::flushEntry($id);
    CacheControl::flushDBCache('entry');
    CacheControl::flushDBCache('comment');
    CacheControl::flushDBCache('trackback');
    fireEvent('ChangeVisibility', $visibility, $id);
    return true;
}
コード例 #4
0
ファイル: blog.category.php プロジェクト: ragi79/Textcube
function setCategoryVisibility($blogid, $id, $visibility)
{
    requireModel('blog.feed');
    if ($id == 0) {
        return false;
    }
    $parentVisibility = getParentCategoryVisibility($blogid, $id);
    if ($parentVisibility !== false && $parentVisibility < 2) {
        return false;
    }
    // return without changing if parent category is set to hidden.
    $pool = DBModel::getInstance();
    $pool->reset('Categories');
    $pool->setAttribute('visibility', $visibility);
    $pool->setQualifier('blogid', 'eq', $blogid);
    $pool->setQualifier('id', 'eq', $id);
    $result = $pool->update();
    if ($result && $visibility == 1) {
        $result = setChildCategoryVisibility($blogid, $id, $visibility);
    }
    if ($result) {
        clearFeed();
    }
    updateEntriesOfCategory($blogid);
    CacheControl::flushCategory($id);
    return $result ? $visibility : false;
}
コード例 #5
0
ファイル: blog.category.php プロジェクト: hinablue/TextCube
function setCategoryVisibility($blogid, $id, $visibility)
{
    global $database;
    requireModel('blog.feed');
    if ($id == 0) {
        return false;
    }
    $parentVisibility = getParentCategoryVisibility($blogid, $id);
    if ($parentVisibility !== false && $parentVisibility < 2) {
        return false;
    }
    // return without changing if parent category is set to hidden.
    $result = POD::query("UPDATE {$database['prefix']}Categories\n\t\tSET visibility = {$visibility}\n\t\tWHERE blogid = {$blogid}\n\t\t\tAND id = {$id}");
    if ($result && $visibility == 1) {
        $result = setChildCategoryVisibility($blogid, $id, $visibility);
    }
    if ($result) {
        clearFeed();
    }
    updateEntriesOfCategory($blogid);
    CacheControl::flushCategory($id);
    return $result ? $visibility : false;
}
コード例 #6
0
function setBlogLanguage($blogid, $language, $blogLanguage)
{
    global $blog;
    requireModel('blog.feed');
    if ($language == $blog['language'] && $blogLanguage == $blog['blogLanguage']) {
        return true;
    }
    $language = UTF8::lessenAsEncoding($language, 5);
    $blogLanguage = UTF8::lessenAsEncoding($blogLanguage, 5);
    if (Setting::setBlogSettingGlobal('language', $language) && Setting::setBlogSettingGlobal('blogLanguage', $blogLanguage)) {
        $blog['language'] = $language;
        $blog['blogLanguage'] = $blogLanguage;
        clearFeed();
        return true;
    } else {
        return false;
    }
}
コード例 #7
0
ファイル: entry.php プロジェクト: ni5am/Textcube
function setEntryVisibility($id, $visibility)
{
    importlib("model.blog.feed");
    importlib("model.blog.category");
    $blogid = getBlogId();
    if ($visibility < 0 || $visibility > 3) {
        return false;
    }
    $pool = DBModel::getInstance();
    $pool->init("Entries");
    $pool->setQualifier("blogid", "eq", $blogid);
    $pool->setQualifier("id", "eq", $id);
    $pool->setQualifier("draft", "eq", 0);
    list($category, $oldVisibility) = $pool->getRow("category, visibility");
    if ($category < 0) {
        if ($visibility == 1) {
            $visibility = 0;
        }
        if ($visibility == 3) {
            $visibility = 2;
        }
    }
    if ($oldVisibility === null) {
        return false;
    }
    if ($visibility == $oldVisibility) {
        return true;
    }
    if ($oldVisibility == 3) {
        syndicateEntry($id, 'delete');
    } else {
        if ($visibility == 3) {
            if (!syndicateEntry($id, 'create')) {
                $pool->init("Entries");
                $pool->setQualifier("blogid", "eq", $blogid);
                $pool->setQualifier("id", "eq", $id);
                $pool->setAttribute("visibility", $oldVisibility);
                $pool->setAttribute("modified", Timestamp::getUNIXtime());
                $pool->update();
                return false;
            }
        }
    }
    $pool->init("Entries");
    $pool->setQualifier("blogid", "eq", $blogid);
    $pool->setQualifier("id", "eq", $id);
    $pool->setAttribute("visibility", $visibility);
    $pool->setAttribute("modified", Timestamp::getUNIXtime());
    $result = $pool->update();
    if (!$result) {
        return false;
    }
    if ($result == 0) {
        return true;
    }
    if ($category >= 0) {
        if ($oldVisibility >= 2 && $visibility < 2 || $oldVisibility < 2 && $visibility >= 2) {
            clearFeed();
        }
        if ($oldVisibility == 3 && $visibility <= 2 || $oldVisibility <= 2 && $visibility == 3) {
            clearFeed();
        }
        if ($category > 0) {
            updateCategoryByEntryId($blogid, $id, 'update', $parameters = array('visibility' => array($oldVisibility, $visibility)));
        }
        //			updateEntriesOfCategory($blogid, $category);
    }
    CacheControl::flushEntry($id);
    CacheControl::flushDBCache('entry');
    CacheControl::flushDBCache('comment');
    CacheControl::flushDBCache('trackback');
    fireEvent('ChangeVisibility', $visibility, $id);
    return true;
}
コード例 #8
0
ファイル: attachment.php プロジェクト: Avantians/Textcube
function setEnclosure($name, $order)
{
    importlib('model.blog.feed');
    importlib('model.blog.attachment');
    $pool = DBModel::getInstance();
    $blogid = getBlogId();
    $pool->reset('Attachments');
    $pool->setQualifier('blogid', 'eq', $blogid);
    $pool->setQualifier('name', 'eq', $name, true);
    $parent = $pool->getCell('parent');
    if ($parent !== null) {
        $pool->setAttribute('enclosure', 0);
        $pool->setQualifier('parent', 'eq', $parent);
        $pool->unsetQualifier('name');
        $pool->update();
        if ($order) {
            clearFeed();
            $pool->setAttribute('enclosure', 1);
            $pool->unsetQualifier('parent');
            $pool->setQualifier('name', 'eq', $name, true);
            return $pool->update();
        } else {
            return 0;
        }
    } else {
        return 3;
    }
}