forked from GNUsocial/gnu-social
normalizing tags for status_network
This commit is contained in:
@@ -27,7 +27,8 @@ class Status_network extends Safe_DataObject
|
||||
/* the code below is auto generated do not remove the above tag */
|
||||
|
||||
public $__table = 'status_network'; // table name
|
||||
public $nickname; // varchar(64) primary_key not_null
|
||||
public $site_id; // int(4) primary_key not_null
|
||||
public $nickname; // varchar(64) unique_key not_null
|
||||
public $hostname; // varchar(255) unique_key
|
||||
public $pathname; // varchar(255) unique_key
|
||||
public $dbhost; // varchar(255)
|
||||
@@ -39,7 +40,6 @@ class Status_network extends Safe_DataObject
|
||||
public $logo; // varchar(255)
|
||||
public $created; // datetime() not_null
|
||||
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
||||
public $tags; // text
|
||||
|
||||
/* Static get */
|
||||
function staticGet($k,$v=NULL) {
|
||||
@@ -308,9 +308,55 @@ class Status_network extends Safe_DataObject
|
||||
*/
|
||||
function getTags()
|
||||
{
|
||||
return array_filter(explode("|", strval($this->tags)));
|
||||
$result = array();
|
||||
|
||||
$tags = new Status_network_tag();
|
||||
$tags->site_id = $this->site_id;
|
||||
if ($tags->find()) {
|
||||
while ($tags->fetch()) {
|
||||
$result[] = $tags->tag;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save a given set of tags
|
||||
* @param array tags
|
||||
*/
|
||||
function setTags($tags)
|
||||
{
|
||||
$this->clearTags();
|
||||
foreach ($tags as $tag) {
|
||||
$snt = new Status_network_tag();
|
||||
$snt->site_id = $this->site_id;
|
||||
$snt->tag = $tag;
|
||||
$snt->created = common_sql_now();
|
||||
|
||||
$id = $snt->insert();
|
||||
if (!$id) {
|
||||
throw new Exception(_("Unable to save tag."));
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function clearTags()
|
||||
{
|
||||
$tag = new Status_network_tag();
|
||||
$tag->site_id = $this->site_id;
|
||||
|
||||
if ($tag->find()) {
|
||||
while($tag->fetch()) {
|
||||
$tag->delete();
|
||||
}
|
||||
}
|
||||
|
||||
$tag->free();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if this site record has a particular meta-info tag attached.
|
||||
* @param string $tag
|
||||
|
69
classes/Status_network_tag.php
Normal file
69
classes/Status_network_tag.php
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
/*
|
||||
* StatusNet - the distributed open-source microblogging tool
|
||||
* Copyright (C) 2008, 2009, 2010 StatusNet, Inc.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
if (!defined('STATUSNET')) { exit(1); }
|
||||
|
||||
class Status_network_tag extends Safe_DataObject
|
||||
{
|
||||
###START_AUTOCODE
|
||||
/* the code below is auto generated do not remove the above tag */
|
||||
|
||||
public $__table = 'status_network_tag'; // table name
|
||||
public $site_id; // int(4) primary_key not_null
|
||||
public $tag; // varchar(64) primary_key not_null
|
||||
public $created; // datetime() not_null
|
||||
|
||||
|
||||
function __construct()
|
||||
{
|
||||
global $config;
|
||||
global $_DB_DATAOBJECT;
|
||||
|
||||
$sn = new Status_network();
|
||||
$sn->_connect();
|
||||
|
||||
$config['db']['table_'. $this->__table] = $sn->_database;
|
||||
|
||||
$this->_connect();
|
||||
}
|
||||
|
||||
|
||||
/* Static get */
|
||||
function staticGet($k,$v=null)
|
||||
{
|
||||
$i = DB_DataObject::staticGet('Status_network_tag',$k,$v);
|
||||
|
||||
// Don't use local process cache; if we're fetching multiple
|
||||
// times it's because we're reloading it in a long-running
|
||||
// process; we need a fresh copy!
|
||||
global $_DB_DATAOBJECT;
|
||||
unset($_DB_DATAOBJECT['CACHE']['status_network_tag']);
|
||||
return $i;
|
||||
}
|
||||
|
||||
/* the code above is auto generated do not remove the tag below */
|
||||
###END_AUTOCODE
|
||||
|
||||
|
||||
|
||||
function pkeyGet($kv)
|
||||
{
|
||||
return Memcached_DataObject::pkeyGet('Status_network_tag', $kv);
|
||||
}
|
||||
}
|
@@ -1,4 +1,5 @@
|
||||
[status_network]
|
||||
side_id = 129
|
||||
nickname = 130
|
||||
hostname = 2
|
||||
pathname = 2
|
||||
@@ -11,9 +12,19 @@ theme = 2
|
||||
logo = 2
|
||||
created = 142
|
||||
modified = 384
|
||||
tags = 34
|
||||
|
||||
[status_network__keys]
|
||||
nickname = K
|
||||
site_id = K
|
||||
nickname = U
|
||||
hostname = U
|
||||
pathname = U
|
||||
|
||||
[status_network_tag]
|
||||
site_id = 129
|
||||
tag = 130
|
||||
created = 142
|
||||
|
||||
[status_network_tag__keys]
|
||||
site_id = K
|
||||
tag = K
|
||||
|
||||
|
Reference in New Issue
Block a user