function getJsonTags(){ if ( (empty($this->idchannel) || $this->idchannel<=0) ) { if (isset($_GET['channel']) && !empty($_GET['channel'])) { require_once("class/Channel.php"); $tmp = new Channel(); $tmp->setUrlname($_GET['channel']); $this->idchannel=$tmp->getId(); if (empty($this->idchannel)) $this->idchannel=-1; } } if ($this->listType=='cloneUFLast') $query = Topic::cloneUFLast($this->qtd, $this->lastorderid, $this->idchannel); elseif ($this->listType=='cloneFollowed') $query = Topic::cloneFollowed($this->qtd, $this->lastorderid, $this->idchannel); elseif ($this->listType=='cloneSearch') $query = Topic::cloneSearch($this->search, $this->qtd, $this->orderid); elseif ($this->listType=='cloneUpdated') $query = Topic::cloneUpdated($this->ids, $this->counters, $this->qtd, $this->orderid, $this->idchannel); elseif ($this->listType=='cloneNew') $query = Topic::cloneNew($this->lastid, $this->qtd, $this->orderid, $this->idchannel); elseif ($this->listType=='cloneByUser') $query = Topic::cloneByUser($this->user, $this->qtd, $this->orderid, $this->sorting, $this->idchannel); elseif ($this->listType=='cloneByUserPost') $query = Topic::cloneByUserPost($this->user, $this->qtd, $this->orderid, $this->sorting, $this->idchannel); elseif ($this->listType=='cloneByDate') $query = Topic::cloneByDate($this->user, $this->year, $this->month, $this->day); elseif ($this->listType=='cloneChannelFollowed') $query = Topic::cloneChannelFollowed($this->qtd, $this->orderid, $this->lastorderid, $this->sorting); else $query = Topic::cloneLast($this->qtd, $this->orderid, $this->sorting, $this->idchannel); $result = array(); if ($query!=null){ global $CONF; if ($this->with_posts){ require_once('template/TListPost.php'); foreach ($query as $topic){ $tlistpost = new TListPost(); $tlistpost->setTopic($topic); $ttopic = new TTopic(); $ttopic->setTopic($topic); array_push($result, array('topic'=>$ttopic->getJsonTags(), "posts"=>$tlistpost->getJsonTags()) ); } } else { foreach ($query as $topic){ $tmp=$topic->getJsonTags(); if ($this->onlysubsumed) unset($tmp['msg']); array_push($result, $tmp); } } } return $result; }
public function save(){ //Salva o objeto no BD (se ja foi salvo faz update) $this->_new=false; $db = clone $GLOBALS['maindb']; if (empty($this->subject)) return 'error null subject'; if (empty($this->msg)) return 'error null message'; $isanon=$this->getUser()->isAnon(); if (!($isanon)) $isanon = 'FALSE'; else $isanon = 'TRUE'; if (!isset($this->id) || ($this->id==null)){ //Insert $db->query("SELECT nextval('topic_id_seq') as id;"); $_gotid_req = $db->fetch(); $_gotid = $_gotid_req['id']; $lang = $this->getLang(); if (empty($lang)){ $this->lang = $this->getUser()->getLang(); } if (!empty($this->channel)) $_channelid=$this->channel->getId(); elseif (isset($_GET['channel'])){ require_once('class/Channel.php'); $tmpchannel=new Channel(); $tmpchannel->setUrlname($_GET['channel']); $tmpchannel->load(); $_channelid = $tmpchannel->getId(); } else $_channelid = 'null'; if (empty($_channelid)) $_channelid = 'null'; $db->query("INSERT INTO topic(id,subject,msg,anon,userid,lang, channelid) VALUES('{$_gotid}','{$this->getSubject()}','{$this->getMsg()}','$isanon', '{$this->getUser()->getId()}', '{$this->getLang()}', {$_channelid});"); $row = $db->fetch(); $this->id = $_gotid; } else { //Update $_alsoupdate=''; if ($this->_update_subject==true) $_alsoupdate.=",subject='{$this->getSubject()}'"; $db->query("UPDATE topic set msg='{$this->getMsg()}',anon='$isanon', userid='{$this->getUser()->getId()}' {$_alsoupdate} WHERE id='{$this->id}';"); $row = $db->fetch(); } $this->_flush=true; return "ok"; }
function add_channel() { global $CONF; global $LANGALL; $user = $_SESSION['user']; if ($user->getBanned()>0){ return array('ok'=>false, 'error'=>'banned '.$user->getBanned()); } if (isset($_SESSION['channel_last_flood_time'])){ if ((time() - $_SESSION['channel_last_flood_time']) < $CONF['channel_time_to_wait_flood']){ $time_to_wait = $CONF['channel_time_to_wait_flood'] - (time() - $_SESSION['channel_last_flood_time']); //return array('ok'=>false, 'error'=>'flood '.$time_to_wait); } } $_SESSION['channel_last_flood_time']=time(); $user = $_SESSION['user']; if ($user->isAnon()) return array('ok'=>false, 'error'=>'anonymous cannot create channel'); $channel = new Channel(); $channel->setUser($user); $name = strip_tags($_POST['name']); if (strlen(str_replace(' ', '', $name)) < $CONF['channel_min_name']) return array('ok'=>false, 'error'=>'too short name'); $channel->setName($name); $description = $_POST['description']; $description = strip_tags($description, $CONF['permitted_tags_msg']); $description = text_linkify($description); $description = str_replace(' ',' ',$description); $channel->setDescription($description); if (isset($_POST['lang']) && !empty($_POST['lang'])) $channel->setLang($_POST['lang']); if (!isset($_POST['urlname'])) $channel->setUrlname( Channel::prettyUrlAvailable($_POST['name']) ); else { if ($_POST['urlname']!=Channel::prettyUrlAvailable($_POST['urlname'])) return array('ok'=>false, 'error'=>'invalid urlname'); else $channel->setUrlname($_POST['urlname']); } if (isset($_POST['asktofollow'])) $channel->setAsktofollow($_POST['asktofollow']); if (isset($_POST['perm_member'])) $channel->setPermMember($_POST['perm_member']); if (isset($_POST['perm_reguser'])) $channel->setPermReguser($_POST['perm_reguser']); if (isset($_POST['perm_anon'])) $channel->setPermAnon($_POST['perm_anon']); $result=$channel->save(); if ($result=='ok'){ $channel->follow(); /*if ($channel->getLang()=='pt_br'){ $title=$LANGALL['pt_br']['addchannel_welcome_title']; $message=$LANGALL['pt_br']['addchannel_welcome_message']; } else { $title=$LANGALL['en_us']['addchannel_welcome_title']; $message=$LANGALL['en_us']['addchannel_welcome_message']; } require_once('class/Topic.php'); require_once('class/User.php'); $user=new RegUser(); $user->setId(1); $topic=new Topic(); $topic->setSubject($title); $topic->setMsg($message); $topic->setChannel($channel); $topic->setUser($user); $topic->save();*/ return array('ok'=>true, 'error'=>'', 'id'=>$channel->getId()); } elseif ($result=='error channel already exists'){ return array('ok'=>false, 'error'=>'error channel already exists','id'=>null); } elseif ($result=='error you created many channels'){ return array('ok'=>false, 'error'=>'error you created many channels','id'=>null); } elseif ($result=='error user anon'){ return array('ok'=>false, 'error'=>'error user anon','id'=>null); } else return array('ok'=>false, 'error'=>'problems with this channel - '.$result,'id'=>null); }
require_once("class/Channel.php"); //require_once("class/Addthis.php"); global $CONF; $user=$_SESSION['user']; if (isset($_GET['urlname'])) { $channel = new Channel(); $channel->setUrlname($_GET['urlname']); $channel->load(); if ($channel->getId()>0) { $OG['request'] = 'openchannel'; $OG['channel_name'] = $channel->getName(); $OG['channel_desc'] = $channel->getDescription(); $OG['channel_logo'] = $CONF['url_path'] . $channel->getLogoFile('big'); if (isset($_GET['sms_ss'])){ $db = clone $GLOBALS['maindb']; $_anon=($user->isAnon())?'true':'false'; $db->query("INSERT INTO addthis(channelid,sms_ss,at_xt,userid,anon,ip) values ('{$channel->getId()}','".$_GET['sms_ss']."','".$_GET['at_xt']."','{$user->getId()}','{$_anon}','".$_SERVER['REMOTE_ADDR']."');"); } $_newcookie=(isset($_COOKIE['autoopenchannel']))?$_COOKIE['autoopenchannel'].'_':''; $_newcookie.=$channel->getId(); setcookie("autoopenchannel", $_newcookie, time()+60);
static function prettyUrlAvailable($name) { require_once('tool/utility.php'); $url = normalize_chars($name); $url = strtolower($url); $url = preg_replace('/[^a-zA-Z0-9]/','-',$url); $url = preg_replace('/-+/','-',$url); $ok=false; $url_prefix=$url; $cnt=1; while ($ok==false){ $tmpc = new Channel(); $tmpc->setUrlname($url); $tmpc->load(); $_id=$tmpc->getId(); $_lang=$tmpc->getLang(); if (empty($_id) && empty($_lang)) $ok=true; else $url=$url_prefix."_".($cnt); $cnt++; } return $url; }
public function isStored(Channel $channel) { return !empty($this->findById($channel->getId())); }