<?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');
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); }
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; }