Example #1
0
 public function testRemove()
 {
     $tag = 'iphone';
     $data = array('site_id' => TagSite::getSiteId('ent'), 'news_id' => ArticleTags::genId(1), 'type' => 1, 'time' => util_time(7));
     $tag_id = Tag::model()->fetch($tag)->id;
     $count = TagArticles::model()->count($tag_id);
     $this->assertEquals(2, $count);
     $count = TagArticles::model()->count($tag_id, $data['site_id']);
     $this->assertEquals(1, $count);
     $count = TagArticles::model()->count($tag_id, 0, $data['type']);
     $this->assertEquals(1, $count);
     $count = TagArticles::model()->count($tag_id, $data['site_id'], $data['type']);
     $this->assertEquals(1, $count);
     $result = TagArticles::model()->removeIndex($tag_id, $data);
     //$this->assertTrue($result);
     $count = TagArticles::model()->count($tag_id);
     $this->assertEquals(1, $count);
     $count = TagArticles::model()->count($tag_id, $data['site_id']);
     $this->assertEquals(0, $count);
     $count = TagArticles::model()->count($tag_id, 0, $data['type']);
     $this->assertEquals(0, $count);
     $count = TagArticles::model()->count($tag_id, $data['site_id'], $data['type']);
     $this->assertEquals(0, $count);
     $result = TagArticles::model()->index($tag_id, $data);
     //$this->assertTrue($result);
 }
Example #2
0
<?php

// change the following paths if necessary
require_once 'inc/tags/lib/Loader.class.php';
WF_Loader::registerAutoload();
require_once "inc/tags/TagArticles.inc.php";
require_once "inc/tags/Tag.inc.php";
require_once "inc/tags/ArticleTags.inc.php";
require_once "inc/tags/ArticleMini.inc.php";
require_once "inc/tags/TagsKey.inc.php";
require_once "inc/tags/TagSite.inc.php";
require __DIR__ . '/fixtures/util.func.php';
$conf = (require __DIR__ . '/config/test.conf.php');
define("ROOT_DIR", __DIR__);
WF_Registry::set('logger', new WF_Logger());
$instance = WF_Db::instance($conf['db']);
WF_Registry::set('db', $instance);
unset($instance);
WF_DbTestCase::setBasePath(ROOT_DIR . "/fixtures");
WF_Event::bind('addArticleTag', array(TagArticles::model(), 'onAddArticleTag'));
WF_Event::bind('removeArticleTag', array(TagArticles::model(), 'onRemoveArticleTag'));
$redis = new Redis();
$redis_config = $conf['redis'];
$redis->connect($redis_config['host'], $redis_config['port']);
$redis->flushAll();
WF_Registry::set('cache', $redis);
WF_Registry::set('redis', $redis);
WF_Config::set('tagitem_use_cache', true);
TagSite::refresh(__DIR__ . '/data/sites.dat');
$id = TagSite::getSiteId('news');
Example #3
0
 public function testTagsIndexMobile()
 {
     $tags = array('iphone', 'ipad');
     $site_id = TagSite::getSiteId('news');
     //'news';
     $news_id = util_genId(51);
     $indexer = new TagArticles();
     $tag_id = Tag::fetch('iphone')->id;
     $rows = $indexer->search($tag_id, 0, 0, 'mobile', 1);
     $this->assertEquals(1, count($rows));
     $this->assertEquals($news_id, $rows[0]['news_id']);
     $article = new ArticleTags();
     $article->setAttributes(array('site_id' => $site_id, 'news_id' => $news_id, 'time' => util_time(23), 'type' => 0, 'source' => 'mobile'));
     $result = $article->saveTags($tags);
     $this->assertTrue($result);
     $rows = $indexer->search($tag_id, 0, 0, 'web', 1);
     $this->assertEquals(1, count($rows));
     $this->assertEquals($news_id, $rows[0]['news_id']);
     $rows = $indexer->search($tag_id, 0, 0, 'mobile', 1);
     $this->assertEquals(1, count($rows));
     $this->assertEquals($news_id, $rows[0]['news_id']);
 }
Example #4
0
 protected function onArticleRemoveTag($data)
 {
     $tag = Tag::fetch($data['tag']);
     if ($tag) {
         $tag->increment(-1);
     } else {
         return false;
     }
     unset($data['tag']);
     $item = new TagArticles();
     $item->removeIndex($tag->id, $data);
     return true;
 }
Example #5
0
 public function _listByTag($tag, $site_id = 'all', $page = 1, $len = 20)
 {
     $news_list = array();
     do {
         $record = Tag::fetch($tag);
         if (!$record) {
             break;
         }
         $len = intval($len);
         $page = intval($page) > 0 ? intval($page) : 1;
         $offset = ($page - 1) * $len;
         $rows = TagArticles::model()->search($record->id, $site_id, $len, $offset);
         if (empty($rows)) {
             break;
         }
         $pks = array();
         foreach ($rows as $row) {
             $site = TagsSite::getSite($row['site_id']);
             $pks[] = array($site, $row['news_id']);
         }
         $news_list = ArticleMini::model()->findArticles($pks);
     } while (0);
     return $news_list;
 }