Index: trunk/in-bulletin/action.php =================================================================== diff -u -N --- trunk/in-bulletin/action.php (revision 12744) +++ trunk/in-bulletin/action.php (revision 0) @@ -1,508 +0,0 @@ -HasSystemPermission("SYSTEM_ACCESS.READONLY"); - require_login( !admin_login() && $Action, 'expired=1', true ); - - // permission checking: begin - $action_mapping = Array( - 'bb_censorword_edit' => 'in-bulletin:configuration_censorship.edit', - 'bb_censorword_add' => 'in-bulletin:configuration_censorship.add', - 'bb_censorship_delete' => 'in-bulletin:configuration_censorship.delete', - - 'bb_emoticon_add' => 'in-bulletin:configuration_emoticon.add', - 'bb_emoticon_edit' => 'in-bulletin:configuration_emoticon.edit', - 'bb_emoticon_delete' => 'in-bulletin:configuration_emoticon.delete', - - 'bb_admin_edit_topic' => 'TOPIC.MODIFY|TOPIC.OWNER.MODIFY', - 'bb_topic_delete' => 'TOPIC.OWNER.DELETE|TOPIC.DELETE', - 'bb_topic_move_up' => 'TOPIC.ADD|TOPIC.MODIFY|TOPIC.OWNER.MODIFY', - 'bb_topic_move_down' => 'TOPIC.ADD|TOPIC.MODIFY|TOPIC.OWNER.MODIFY', - 'bb_topic_approve' => 'TOPIC.ADD|TOPIC.MODIFY|TOPIC.OWNER.MODIFY', - 'bb_topic_decline' => 'TOPIC.ADD|TOPIC.MODIFY|TOPIC.OWNER.MODIFY', - - - ); - checkActionPermission($action_mapping, $Action); - // permission checking: end - - switch($Action) - { - case "m_cat_delete": - if($ro_perm) break; - if(isset($_POST["catlist"])) - { - - $CatList = $_POST["catlist"]; - if(is_array($CatList)) - { - for($i=0;$iClearCategoryItems($c,"CategoryItems"); - } - } - else - if(is_numeric($CatList)) - $objTopicList->ClearCategoryItems($CatList,"CategoryItems"); - } - break; - - case "m_paste": /* category paste */ - if($ro_perm) break; - if($PastedCatIds) - { - foreach($PastedCatIds as $SourceCat => $DestCat) - { - $objTopicList->Clear(); - $objTopicList->Query_Topic("CategoryId=$SourceCat"); - if($objTopicList->NumItems()>0) - { - foreach($objTopicList->Items as $item) - { - /* fields from categoryitems table */ - $item->UnsetField("CategoryId"); - $item->UnsetField("ItemResourceId"); - $item->UnsetField("PrimaryCat"); - $item->UnsetField("CachedNavBar"); - $item->CopyToNewResource($DestCat); - $item->AddToCategory($DestCat); - } - } - } - } - break; - - /* censorship admin action handlers */ - case "bb_censorword_edit": - if($ro_perm) break; - $WordId = $_POST["CensorshipId"]; - $objCensor = new clsCensorship(); - if(strlen($_POST["badword"])) - $objCensor->EditWord($WordId,$_POST["badword"],$_POST["replacement"]); - break; - case "bb_censorword_add": - if($ro_perm) break; - $objCensor = new clsCensorship(); - if(strlen($_POST["badword"])) - $objCensor->AddWord($_POST["badword"],$_POST["replacement"]); - break; - case "bb_censorship_delete": - if($ro_perm) break; - $objCensor = new clsCensorship(); - foreach($_POST["itemlist"] as $wordid) - { - $objCensor->DeleteWord($wordid); - } - break; - - /* emoticon action handlers */ - case "bb_emoticon_add": - if($ro_perm) break; - //$objSmileys = new clsEmoticonList(); - $file = $_FILES["EmoticonFile"]; - if(is_array($file)) - { - if($file["size"]>0) - { - $objSmileys->UploadEmoticon($file,$_POST["Name"],$_POST["KeyStroke"],(int)$_POST["Enabled"]); - } - } - break; - case "bb_emoticon_edit": - if($ro_perm) break; - //$objEmoticons = new clsEmoticonList(); - $file = $_FILES["EmoticonFile"]; - - $e = $objSmileys->EditEmoticon($_POST["EmoticonId"],$_POST["Name"],$_POST["KeyStroke"],-1,$_POST["Enabled"]); - $img = $e->GetImageObject(); - if(is_array($file)) - { - if($file["size"]>0) - { - $localpath = $img->StoreUploadedImage($file,1, "in-bulletin/images/emoticons/",0); - $img->Set("LocalPath",$localpath); - $img->Set("ThumbPath",$localpath); - $img->Update(); - } - } - $e->Update(); - break; - case "bb_emoticon_delete": - if($ro_perm) break; - //$objEmoticons = new clsEmoticonList(); - foreach($_POST["itemlist"] as $id) - { - $objSmileys->DeleteEmoticon($id); - } - break; - - case "bb_topic_delete": - if($ro_perm) break; - $thiscat =& $objCatList->GetItem($objCatList->CurrentCategoryID()); - $perm = $objSession->HasCatPermission("TOPIC.DELETE"); - if(is_array($_POST["topiclist"])) - { - $cat_ids = Array(); - foreach($_POST["topiclist"] as $topicid) - { - $t =& $objTopicList->GetItem($topicid); - $cat_ids[$t->GetPrimaryCategory()] = $t->GetPrimaryCategory(); - if (($objSession->Get("PortalUserId") == $t->Get("OwnerId")) || ($perm==1)) - { - if(is_object($t)) - { - $objTopicList->Delete_Item($topicid); - } - } - } - } - else - { - $t = $objTopicList->GetCurrentTopic(); - $cat_ids = $t->GetPrimaryCategory(); - if(is_object($t)) - { - $objTopicList->Delete_Item($t->Get("TopicId")); - unset($t); - } - } - - /*foreach($cat_ids as $cat_id) - { - $t->refreshLastUpdate($cat_id); - }*/ - - UpdateCategoryCount('topic', $cat_ids, $objTopicList->GetListTypes()); -// UpdateCategoryCount('posting', $cat_ids, $objPostingList->GetListTypes()); -// $objTopicList->ResetCache( $objCatList->CurrentCategoryID() ); - $objPostingList->ResetCache( $objCatList->CurrentCategoryID() ); - break; - - case "bb_topic_move_up": - if($ro_perm) break; - if (isset($_POST["topiclist"])) - foreach($_POST["topiclist"] as $id) - { - $a = $objTopicList->GetItem($id); - $a->MoveUp(); - } - break; - - case "bb_topic_move_down": - if($ro_perm) break; - if (isset($_POST["topiclist"])) - { - $topiclist=array_reverse($_POST["topiclist"]); - foreach($topiclist as $id) - { - $a = $objTopicList->GetItem($id); - $a->MoveDown(); - } - } - break; - - case "bb_topic_approve": - if($ro_perm) break; - if (isset($_POST["topiclist"])) - { - foreach($_POST["topiclist"] as $id) - { - $a = $objTopicList->GetItem($id); - $a->Approve(); - } - } - break; - case "bb_topic_decline": - if($ro_perm) break; - if (isset($_POST["topiclist"])) - { - foreach($_POST["topiclist"] as $id) - { - $a = $objTopicList->GetItem($id); - $a->Deny(); - } - } - break; - - case "bb_topic_cut": - if($ro_perm) break; - if(isset($_POST["topiclist"])) - { - $objTopicList->CopyToClipboard("CUT","ResourceId",$_POST["topiclist"]); - } - break; - - case "bb_topic_copy": - if($ro_perm) break; - if(isset($_POST["topiclist"])) - { - $objTopicList->CopyToClipboard("COPY","ResourceId",$_POST["topiclist"]); - } - break; - - // Used from JS - case "topic_paste": - if($ro_perm) break; - if($objTopicList->ItemsOnClipboard()>0) - { - $objTopicList->PasteFromClipboard($objCatList->CurrentCategoryID(),"TopicText"); - UpdateCategoryCount("Topic",0); - } - break; - - case "bb_admin_edit_topic": - $application =& kApplication::Instance(); - $application->SetVar('bb_mode', 't'); - $objEditItems = new clsTopicList($_POST["CategoryId"]); - $objEditItems->SourceTable = $objSession->GetEditTable("Topic"); - $html = (int)$_POST["html_enable"]; - - $Status = (int)$_POST["status"]; - $Hot=(int)$_POST["itemhot"]; - $Pop = (int)$_POST["itempop"]; - $New = (int)$_POST["itemnew"]; - $Pick = (int)$_POST["topic_pick"]; - - $Notify = (int)$_POST["topic_notify_owner"]; - $CreatedOn = DateTimestamp($_POST["topic_created"],GetDateFormat(0, true)); - $CreatedOn += SecondsSinceMidnight($_POST["topic_created_time"]); - - $ModifiedOn = DateTimestamp($_POST["topic_modified"],GetDateFormat(0, true)); - $ModifiedOn += SecondsSinceMidnight($_POST["topic_modified_time"]); - $Priority = (int)$_POST["Priority"]; - - $posted_hits = $_POST['topic_views_show']; - - $posted_hits_arr = explode('.', $_POST['topic_views']); - - - $save_hits = $_POST['topic_views']; - if ($posted_hits_arr[0] != $posted_hits) { - $save_hits = $posted_hits; - } - - //$TopicId,$TopicSubject,$User,$CategoryId,$Pending,$Visible,$Pick,$OwnerNotify,$CreatedOn,$ModifedOn - $l = $objEditItems->Edit_Topic($_POST["TopicId"],inp_escape($_POST["bb_topic_subject"],$html), - $objSession->Get("PortalUserId"),$Status,$Pick, $New, $Hot, - $Pop, $Notify,$CreatedOn,$ModifiedOn,$_POST["topic_rating"], - (int)$_POST["topic_votes"],$save_hits, $Priority,$_POST["topic_poster"], $_POST['lock_topic'], - GetVar('auto_filename'), GetVar('filename') ); - - saveCustomFields('bb', $l->Get('ResourceId'), 3); - - if($_POST["EditStatus"]==1) - { - $objTopicList->CopyFromEditTable("TopicId"); - $objTopicList->Clear(); - } - /* user hit the cancel button */ - if($_POST["EditStatus"]==2) - { - $objTopicList->PurgeEditTable("TopicId"); - $objTopicList->Clear(); - } - break; - case "bb_add_category": - $objEditItems = new clsTopicList(); - $objEditItems->SourceTable = $objSession->GetEditTable("Topic"); - $r = $_POST["ResourceId"]; - $i = $objEditItems->GetItemByField("ResourceId",$_POST["ResourceId"]); - $Primary = $i->GetPrimaryCategory($objSession->GetEditTable("CategoryItems")); - $objSession->SetVariable("HasChanges", 1); - if(is_object($i)) - { - $table = $objSession->GetEditTable("CategoryItems"); - $CatList = explode(",",$_POST["CatList"]); - - // Get List of currect categories article is in - $link_cats = $i->CategoryMemberList($table); - $link_cats_arr = explode(",", $link_cats); - - if (count($CatList)) - { - for($j=0; $j < count($CatList);$j++) - { - if($CatList[$j]) - { - $c = $objCatList->GetByResource($CatList[$j]); - $cat = $c->Get("CategoryId"); - - if(($cat>0) && !in_array($cat, $link_cats_arr)) - { - $i->AddToCategory($cat,$table); - } - } - } - } - } - break; - case "bb_cat_delete": - $objSession->SetVariable("HasChanges", 1); - $objEditItems = new clsTopicList(); - $objEditItems->SourceTable = $objSession->GetEditTable("Topic"); - $table = $objSession->GetEditTable("CategoryItems"); - $r = $_POST["ResourceId"]; - $i = $objEditItems->GetItemByField("ResourceId",$_POST["ResourceId"]); - if(is_object($i)) - { - $CatCount = $i->CategoryMemberCount($table); - $Primary = $i->GetPrimaryCategory(); - if($CatCount==count($CatList)) - { - $sql = "DELETE FROM $table WHERE CategoryId=$cat AND ItemResourceId=$r AND PrimaryCat=0"; - $ado->Execute($sql); - } - else - { - $CatList = $_POST["itemlist"]; - $ado = &GetADODBConnection(); - for($x=0;$xExecute($sql); - $CatCount--; - } - } - } - - for($x=0;$x0)) - { - if($cat==$Primary && $CatCount>1) - { - $sql = "DELETE FROM $table WHERE CategoryId=$cat AND ItemResourceId=$r"; - if((int)$_GLOBALS["debuglevel"]) - echo $sql; - $ado->Execute($sql); - $CatCount--; - } - } - } - } - } - break; - - case 'bb_primary_cat': - // change primary category of the link - $objEditItems = new clsTopicList(); - $objEditItems->SourceTable = $objSession->GetEditTable("Topic"); - $topic = $objEditItems->GetItemByField('ResourceId', $_REQUEST['ResourceId']); - if( is_object($topic) ) - { - $new_cat = array_shift($_REQUEST['itemlist']); - $ci_table = $objSession->GetEditTable('CategoryItems'); - $topic->SetPrimaryCategory($new_cat, $ci_table); - } - break; - - case "pm_new": - if($ro_perm) break; - $ToId = $objUsers->GetUserId($_POST["pm_to"]); - if ($ToId != "" || $ToId != 0) - { - if($sig) - { - //$u = new $objUsers->GetUser(PortalUser($currentUserSession->Get("UserId")); - $sig_text = $objCurrentUser->GetCustom("Signature"); - $pm_text.="\n\n".$sig_text; - } - - Add_PrivateMessage(inp_escape($_POST["pm_subject"]), inp_escape($_POST["pm_text"]), $ToId, $_POST["sendbody"]); - } - else - Permission_Error("The User Name you specified cannot be found. Please hit back and correct the name."); - - break; - case "pm_reply": - if($ro_perm) break; - $TopicId = $bb_var_list["top"]; - $pmtext = $_POST["pm_text"]; - if ($TopicId) - { - if($_POST["sig"]) - { - //$u = new PortalUser($currentUserSession->Get("UserId")); - $sig_text = $objCurrentUser->GetCustom("Signature"); - $pmtext.="\n\n".$sig_text; - } - - Reply_PrivateMessage(inp_escape($pmtext), GetMessageId($TopicId), GetToId($TopicId), $_POST["sendbody"]); - } - else - Permission_Error("Error:"); - break; - - case "pm_delete": - if($ro_perm) break; - Delete_PrivateMessage($bb_var_list["post"]); - break; - - case "bb_jump_forum": - $m_var_list["cat"]=$forum; - $m_var_list_update["cat"]=$forum; - $env=BuildEnv(); - break; - - case "bb_viewsetting": - $objSession->SetPersistantVariable($fieldname, $varvalue); - break; - case "bb_search_simple_topics": - m_category_SimpleSearch($_POST["keywords"],$_POST["cat_scope"],$_POST["sortorder"]); - bb_Search_SimpleQuery($_POST["keywords"],$_POST["cat_scope"],$_POST["sortorder"]); - break; - case "bb_add_review": - if($ro_perm) break; - $CreatedOn = adodb_mktime(0,0,0,adodb_date("m"),adodb_date("d"),adodb_date("Y")); - $Pending = 0; - $ReviewText = inl_escape($_POST["reviewtext"]); - $id = $bb_var_list["top"]; - $userid = $objSession->Get("PortalUserId"); - - $n = $objTopicList->GetItem($id); - $n->Reviews->Add(0,$CreatedOn,$ReviewText,$Pending,$REMOTE_ADDR,$id,3,$userid); - break; - - case "bb_rate_topic": - if($ro_perm) break; - $id = $bb_var_list["top"]; - $vote = $_POST["form_rate_vote"]; - $n = $objTopicList->GetItem($id); - $notes = $_POST["form_rate_notes"]; - $n->SubmitVote($vote,$notes); - break; - } - -if( ! $objSession->HasSystemPermission("SYSTEM_ACCESS.READONLY") ) -{ - if( GetVar('TopicEditStatus') == 1 ) - { - $topic_ids = $objTopicList->CopyFromEditTable("TopicId"); - if ($topic_ids) { - $objCustomDataList->CopyFromEditTable('bb'); - } - $objTopicList->Clear(); - $objImages = new clsImageList(); - $objImages->CopyFromEditTable("ImageId"); - UpdateCategoryCount("Topic",0); - } - /* user hit the cancel button */ - if( GetVar('TopicEditStatus') == 2 ) - { - $objTopicList->PurgeEditTable("TopicId"); - $objTopicList->PurgeCatListEditTable(); - $objCustomDataList->PurgeEditTable('bb'); - $objTopicList->Clear(); - $objImages = new clsImageList(); - $objImages->PurgeEditTable("ImageId"); - } -} -?>