Esempio n. 1
0
 function display($params)
 {
     $Log_Model = new Log_Model();
     $options_cache = Option::getAll();
     extract($options_cache);
     $page = isset($params[4]) && $params[4] == 'page' ? abs(intval($params[5])) : 1;
     $tag = isset($params[1]) && $params[1] == 'tag' ? addslashes(urldecode(trim($params[2]))) : '';
     $pageurl = '';
     //page meta
     $site_title = stripslashes($tag) . ' - ' . $site_title;
     $Tag_Model = new Tag_Model();
     $blogIdStr = $Tag_Model->getTagByName($tag);
     if ($blogIdStr === false) {
         show_404_page();
     }
     $sqlSegment = "and gid IN ({$blogIdStr}) order by date desc";
     $lognum = $Log_Model->getLogNum('n', $sqlSegment);
     $total_pages = ceil($lognum / $index_lognum);
     if ($page > $total_pages) {
         $page = $total_pages;
     }
     $pageurl .= Url::tag(urlencode($tag), 'page');
     $logs = $Log_Model->getLogsForHome($sqlSegment, $page, $index_lognum);
     $page_url = pagination($lognum, $index_lognum, $page, $pageurl);
     include View::getView('header');
     include View::getView('log_list');
 }
Esempio n. 2
0
 public static function getInstance()
 {
     if (self::$instance == null) {
         self::$instance = new Tag_Model();
     }
     return self::$instance;
 }
Esempio n. 3
0
<?php

/**
 * 管理文章
 * @copyright (c) Emlog All Rights Reserved
 */
require_once 'globals.php';
$Log_Model = new Log_Model();
//显示文章(草稿)管理页面
if ($action == '') {
    $Tag_Model = new Tag_Model();
    $User_Model = new User_Model();
    $pid = isset($_GET['pid']) ? $_GET['pid'] : '';
    $tagId = isset($_GET['tagid']) ? intval($_GET['tagid']) : '';
    $sid = isset($_GET['sid']) ? intval($_GET['sid']) : '';
    $uid = isset($_GET['uid']) ? intval($_GET['uid']) : '';
    $keyword = isset($_GET['keyword']) ? addslashes($_GET['keyword']) : '';
    $page = isset($_GET['page']) ? intval($_GET['page']) : 1;
    $checked = isset($_GET['checked']) ? addslashes($_GET['checked']) : '';
    $sortView = isset($_GET['sortView']) && $_GET['sortView'] == 'ASC' ? 'DESC' : 'ASC';
    $sortComm = isset($_GET['sortComm']) && $_GET['sortComm'] == 'ASC' ? 'DESC' : 'ASC';
    $sortDate = isset($_GET['sortDate']) && $_GET['sortDate'] == 'DESC' ? 'ASC' : 'DESC';
    $sqlSegment = '';
    if ($tagId) {
        $blogIdStr = $Tag_Model->getTagById($tagId);
        $sqlSegment = "and gid IN ({$blogIdStr})";
    } elseif ($sid) {
        $sqlSegment = "and sortid={$sid}";
    } elseif ($uid) {
        $sqlSegment = "and author={$uid}";
    } elseif ($checked) {
Esempio n. 4
0
if ($action == '') {
    $Tag_Model = new Tag_Model();
    $Sort_Model = new Sort_Model();
    $sorts = $CACHE->readCache('sort');
    $tags = $Tag_Model->getTag();
    $localtime = time() + Option::get('timezone') * 3600;
    $postDate = gmdate('Y-m-d H:i:s', $localtime);
    include View::getView('header');
    require_once View::getView('add_log');
    include View::getView('footer');
    View::output();
}
//显示编辑文章页面
if ($action == 'edit') {
    $Log_Model = new Log_Model();
    $Tag_Model = new Tag_Model();
    $Sort_Model = new Sort_Model();
    $logid = isset($_GET['gid']) ? intval($_GET['gid']) : '';
    $blogData = $Log_Model->getOneLogForAdmin($logid);
    extract($blogData);
    $orig_date = $date - Option::get('timezone') * 3600;
    $sorts = $CACHE->readCache('sort');
    //log tag
    $tags = array();
    foreach ($Tag_Model->getTag($logid) as $val) {
        $tags[] = $val['tagname'];
    }
    $tagStr = implode(',', $tags);
    //old tag
    $tags = $Tag_Model->getTag();
    $is_top = $top == 'y' ? 'checked="checked"' : '';
Esempio n. 5
0
/**
 * 更新文章
 */
function mw_editPost($args)
{
    global $options_cache;
    escape($args);
    $username = $args[1];
    $password = $args[2];
    $user = login($username, $password);
    define('UID', $user['uid']);
    // 接受参数
    $id = intval($args[0]);
    $username = $args[1];
    $password = $args[2];
    $data = $args[3];
    $publish = $args[4];
    $update_data['title'] = $data['title'];
    $update_data['content'] = htmlspecialchars_decode($data['description']);
    $update_data['author'] = UID;
    $update_data['hide'] = $publish == 1 ? 'n' : 'y';
    // 根据分类名称取分类id,注意只取第一个分类
    $sort_name = isset($data['categories']) && isset($data['categories'][0]) ? $data['categories'][0] : '';
    $Sort_Model = new Sort_Model();
    $sorts = $Sort_Model->getSorts();
    unset($Sort_Model);
    $update_data['sortid'] = '-1';
    foreach ($sorts as $sort) {
        if ($sort_name == $sort['sortname']) {
            $update_data['sortid'] = $sort['sid'];
            break;
        }
    }
    // 发布时间
    if (isset($data['dateCreated']) && is_object($data['dateCreated'])) {
        $update_data['date'] = @gmmktime($data['dateCreated']->hour, $data['dateCreated']->minute, $data['dateCreated']->second, $data['dateCreated']->month, $data['dateCreated']->day, $data['dateCreated']->year) - $options_cache['timezone'] * 3600;
    }
    // 更新数据
    $Log_Model = new Log_Model();
    $Log_Model->updateLog($update_data, $id);
    // 更新标签
    if (isset($data['mt_keywords']) && !empty($data['mt_keywords'])) {
        $Tag_Model = new Tag_Model();
        $Tag_Model->updateTag($data['mt_keywords'], $id);
    }
    // 更新缓存
    Cache::getInstance()->updateCache();
    response('<boolean>1</boolean>');
}
Esempio n. 6
0
<?php

/**
 * 保存文章(增加、修改)
 * @copyright (c) Emlog All Rights Reserved
 */
require_once 'globals.php';
$Log_Model = new Log_Model();
$Tag_Model = new Tag_Model();
$title = isset($_POST['title']) ? addslashes(trim($_POST['title'])) : '';
$postDate = isset($_POST['postdate']) ? trim($_POST['postdate']) : '';
$date = isset($_POST['date']) ? addslashes($_POST['date']) : '';
//修改前的文章时间
$sort = isset($_POST['sort']) ? intval($_POST['sort']) : '';
$tagstring = isset($_POST['tag']) ? addslashes(trim($_POST['tag'])) : '';
$content = isset($_POST['content']) ? addslashes(trim($_POST['content'])) : '';
$excerpt = isset($_POST['excerpt']) ? addslashes(trim($_POST['excerpt'])) : '';
$author = isset($_POST['author']) && ROLE == ROLE_ADMIN ? intval(trim($_POST['author'])) : UID;
$blogid = isset($_POST['as_logid']) ? intval(trim($_POST['as_logid'])) : -1;
//如被自动保存为草稿则有blog id号
$alias = isset($_POST['alias']) ? addslashes(trim($_POST['alias'])) : '';
$top = isset($_POST['top']) ? addslashes(trim($_POST['top'])) : 'n';
$sortop = isset($_POST['sortop']) ? addslashes(trim($_POST['sortop'])) : 'n';
$allow_remark = isset($_POST['allow_remark']) ? addslashes(trim($_POST['allow_remark'])) : 'n';
$ishide = isset($_POST['ishide']) && !empty($_POST['ishide']) && !isset($_POST['pubdf']) ? addslashes($_POST['ishide']) : 'n';
$password = isset($_POST['password']) ? addslashes(trim($_POST['password'])) : '';
$postTime = $Log_Model->postDate(Option::get('timezone'), $postDate, $date);
LoginAuth::checkToken();
//check alias
if (!empty($alias)) {
    $logalias_cache = $CACHE->readCache('logalias');
Esempio n. 7
0
 /**
  * 文章标签缓存
  */
 private function mc_logtags()
 {
     $tag_model = new Tag_Model();
     $newlog = $this->readCache("newlog");
     $log_cache_tags = array();
     foreach ($newlog as $each) {
         $gid = $each['gid'];
         $tag_ids = $tag_model->getTagIdsFromBlogId($gid);
         $tag_names = $tag_model->getNamesFromIds($tag_ids);
         $tags = array();
         foreach ($tag_names as $key => $value) {
             $tag = array();
             $tag['tagurl'] = rawurlencode($value);
             $tag['tagname'] = htmlspecialchars($value);
             $tag['tid'] = intval($key);
             $tags[] = $tag;
         }
         $log_cache_tags[$gid] = $tags;
     }
     $cacheData = serialize($log_cache_tags);
     $this->cacheWrite($cacheData, 'logtags');
 }
Esempio n. 8
0
<?php

/**
 * 标签管理
 * @copyright (c) Emlog All Rights Reserved
 */
require_once 'globals.php';
$Tag_Model = new Tag_Model();
if ($action == '') {
    $tags = $Tag_Model->getTag();
    include View::getView('header');
    require_once View::getView('tag');
    include View::getView('footer');
    View::output();
}
if ($action == "mod_tag") {
    $tagId = isset($_GET['tid']) ? intval($_GET['tid']) : '';
    $tag = $Tag_Model->getOneTag($tagId);
    extract($tag);
    include View::getView('header');
    require_once View::getView('tagedit');
    include View::getView('footer');
    View::output();
}
//标签修改
if ($action == 'update_tag') {
    $tagName = isset($_POST['tagname']) ? addslashes($_POST['tagname']) : '';
    $tagId = isset($_POST['tid']) ? intval($_POST['tid']) : '';
    if (empty($tagName)) {
        emDirect("tag.php?action=mod_tag&tid={$tagId}&error_a=1");
    }
Esempio n. 9
0
function blog_tag($blogid)
{
    global $CACHE;
    $tag_model = new Tag_Model();
    $log_cache_tags = $CACHE->readCache('logtags');
    if (!empty($log_cache_tags[$blogid])) {
        $tag = '标签:';
        foreach ($log_cache_tags[$blogid] as $value) {
            $tag .= "\t<a href=\"" . Url::tag($value['tagurl']) . "\">" . $value['tagname'] . '</a>';
        }
        echo $tag;
    } else {
        $tag_ids = $tag_model->getTagIdsFromBlogId($blogid);
        $tag_names = $tag_model->getNamesFromIds($tag_ids);
        if (!empty($tag_names)) {
            $tag = '标签:';
            foreach ($tag_names as $key => $value) {
                $tag .= "\t<a href=\"" . Url::tag(rawurlencode($value)) . "\">" . htmlspecialchars($value) . '</a>';
            }
            echo $tag;
        }
    }
}
Esempio n. 10
0
/**
 * 相关日志插件的功能集合到J3中;related_log插件没有用了 模板中也不再埋入相关日志加载点
 * @param  array $logData 文章显示时的文章数据
 * @return array
 */
function getRelatedLog($logData)
{
    global $CACHE;
    $logid = $logData['logid'];
    $sortid = $logData['sortid'];
    $sortType = _g('related_log_sort_type');
    $sortBy = _g('related_log_sort_by');
    $countNum = _g('related_log_count');
    #DbModel
    $DbModel = Database::getInstance();
    $sql = "SELECT gid,title,date FROM " . DB_PREFIX . "blog WHERE hide='n' AND type='blog'";
    #排序类别的sql拼装
    if ($sortType == 'tags') {
        $log_cache_tags = $CACHE->readCache('logtags');
        // dump($log_cache_tags[$logid]);
        $TagModel = new Tag_Model();
        $log_id_str = '0';
        foreach ($log_cache_tags[$logid] as $key => $val) {
            $log_id_str .= ',' . $TagModel->getTagByName($val['tagname']);
        }
        $log_id_str = implode(',', array_unique(explode(',', ltrim($log_id_str, '0,'))));
        $sql .= " AND gid!={$logid} AND gid IN ({$log_id_str})";
    } else {
        $sql .= " AND gid!={$logid} AND sortid={$sortid}";
    }
    #排序规则
    switch ($sortBy) {
        case 'viewDesc':
            $sql .= " ORDER BY views DESC";
            break;
        case 'viewASC':
            $sql .= " ORDER BY views ASC";
            break;
        case 'comnuDesc':
            $sql .= " ORDER BY comnum DESC";
            break;
        case 'comnuASC':
            $sql .= " ORDER BY comnum ASC";
            break;
        default:
            #按索引键随机降序或升序多读出几行 随后使用php随机处理,不再在mysql中使用rand函数
            if (mt_rand(1, 10) >= 5) {
                $sql .= " ORDER BY gid DESC";
            } else {
                $sql .= " ORDER BY gid ASC";
            }
            break;
    }
    #结果条数限制
    if ($sortBy == 'random') {
        $sliceLen = $countNum;
        $countNum = $countNum * 2;
        #随机的情况多一倍的数据出来
    }
    $sql .= " LIMIT 0,{$countNum}";
    $relatedLogs = array();
    $res = $DbModel->query($sql);
    while ($row = $DbModel->fetch_array($res)) {
        $row['gid'] = intval($row['gid']);
        $row['title'] = htmlspecialchars($row['title']);
        $row['time'] = date('Y-m-d', $row['date']);
        $relatedLogs[] = $row;
    }
    if (!$relatedLogs) {
        return '';
        #没有相关日志数据
    }
    #随机处理
    if ($sortBy == 'random') {
        shuffle($relatedLogs);
        #打乱数组,引用传值函数
        $relatedLogs = array_slice($relatedLogs, 0, $sliceLen);
    }
    // dump($relatedLogs);
    $relatedString = '<div class="article_related"><h3>相关推荐</h3><ul>';
    foreach ($relatedLogs as $key => $val) {
        $relatedString .= '<li><a href="' . Url::log($val['gid']) . '">' . $val['title'] . '</a><time>' . $val['time'] . '</time></li>';
    }
    return $relatedString . '</ul></div>';
}
Esempio n. 11
0
File: tags.php Progetto: anqqa/Anqh
 /**
  * Edit tag
  *
  * @param  integer|string  $tag_id
  * @param  integer|string  $group_id
  */
 public function _tag_edit($tag_id = false, $group_id = false)
 {
     $this->history = false;
     // for authenticated users only
     if (!$this->user) {
         url::redirect('/tags');
     }
     $errors = $form_errors = array();
     $tag = new Tag_Model((int) $tag_id);
     $form_values = $tag->get_defaults();
     // check post
     if (request::method() == 'post') {
         $post = $this->input->post();
         $extra = array('author_id' => $this->user->id);
         if ($tag->validate($post, true, $extra)) {
             url::redirect(url::model($tag));
         } else {
             $form_errors = $post->errors();
         }
         $form_values = arr::overwrite($form_values, $post->as_array());
     }
     // editing old?
     if ($tag_id) {
         $this->page_subtitle = __('Edit tag');
         $this->breadcrumb[] = html::anchor(url::model($tag->tag_group), $tag->tag_group->name);
         $this->breadcrumb[] = html::anchor(url::model($tag), $tag->name);
         if ($this->visitor->logged_in('admin')) {
             $this->page_actions[] = array('link' => url::model($tag) . '/delete', 'text' => __('Delete tag'), 'class' => 'tag-delete');
         }
         if (!$tag->id) {
             $errors = array('tags.error_tag_not_found');
         }
     } else {
         $this->page_subtitle = __('Add tag');
         if ($group_id) {
             $tag_group = new Tag_Group_Model((int) $group_id);
             $this->breadcrumb[] = html::anchor(url::model($tag_group), $tag_group->name);
             $this->breadcrumb[] = html::anchor(url::model($tag_group) . '/add', __('Add tag'));
             if ($tag_group->id) {
                 $form_values['tag_group_id'] = $tag_group->id;
             } else {
                 $errors = array('tags.error_tag_group_not_found');
             }
         }
     }
     // show form
     if (empty($errors)) {
         widget::add('main', View_Mod::factory('tags/tag_edit', array('values' => $form_values, 'errors' => $form_errors)));
     } else {
         $this->_error(Kohana::lang('generic.error'), $errors);
     }
     $this->_side_views();
 }