Index: trunk/admin/reviews.php =================================================================== diff -u -N --- trunk/admin/reviews.php (revision 0) +++ trunk/admin/reviews.php (revision 983) @@ -0,0 +1,378 @@ +

"; + +if(!strlen($pathtoroot)) +{ + $path=dirname(realpath(__FILE__)); + if(strlen($path)) + { + /* determine the OS type for path parsing */ + $pos = strpos($path,":"); + if ($pos === false) + { + $gOS_TYPE="unix"; + $pathchar = "/"; + } + else + { + $gOS_TYPE="win"; + $pathchar="\\"; + } + $p = $path.$pathchar; + /*Start looking for the root flag file */ + while(!strlen($pathtoroot) && strlen($p)) + { + $sub = substr($p,strlen($pathchar)*-1); + if($sub==$pathchar) + { + $filename = $p."root.flg"; + } + else + $filename = $p.$pathchar."root.flg"; + if(file_exists($filename)) + { + $pathtoroot = $p; + } + else + { + $parent = realpath($p.$pathchar."..".$pathchar); + if($parent!=$p) + { + $p = $parent; + } + else + $p = ""; + } + } + if(!strlen($pathtoroot)) + $pathtoroot = ".".$pathchar; + } + else + { + $pathtoroot = ".".$pathchar; + } +} + +$sub = substr($pathtoroot,strlen($pathchar)*-1); +if($sub!=$pathchar) +{ + $pathtoroot = $pathtoroot.$pathchar; +} +//echo $pathtoroot; + +require_once($pathtoroot."kernel/startup.php"); + +if (!admin_login()) +{ + if(!headers_sent()) + setcookie("sid"," ",time()-3600); + $objSession->Logout(); + header("Location: ".$adminURL."/index.php?logout=1"); + die(); + //require_once($pathtoroot."admin/login.php"); +} + +$rootURL="http://".ThisDomain().$objConfig->Get("Site_Path"); +$admin = $objConfig->Get("AdminDirectory"); +if(!strlen($admin)) + $admin = "admin"; + +$localURL=$rootURL."kernel/"; +$adminURL = $rootURL.$admin; +$imagesURL = $adminURL."/images"; +$browseURL = $adminURL."/browse"; +$cssURL = $adminURL."/include"; + +$indexURL = $rootURL."index.php"; + +$m_var_list_update["cat"] = 0; +$homeURL = "javascript:AdminCatNav('".$_SERVER["PHP_SELF"]."?env=".BuildEnv()."');"; +unset($m_var_list_update["cat"]); + +//admin only util + +$pathtolocal = $pathtoroot."kernel/"; +require_once ($pathtoroot.$admin."/include/elements.php"); +//require_once ($pathtoroot."kernel/admin/include/navmenu.php"); +require_once ($pathtolocal."admin/include/navmenu.php"); +require_once($pathtoroot.$admin."/browse/toolbar.php"); + +$mod_prefixes = Array(); +$m = GetModuleArray(); +foreach($m as $key=>$value) +{ + $path = $pathtoroot.$value."admin/include/parser.php"; + if(file_exists($path)) + { + //echo ""; + $mod_prefixes[] = $key; + @include_once($path); + } +} + +if(!defined('IS_INSTALL'))define('IS_INSTALL',0); +if(!IS_INSTALL) +{ + if (!admin_login()) + { + if(!headers_sent()) + setcookie("sid"," ",time()-3600); + $objSession->Logout(); + header("Location: ".$adminURL."/index.php?logout=1"); + die(); + //require_once($pathtoroot."admin/login.php"); + } +} +//Set Section +$section = 'in-portal:reviews'; + +//Set Environment Variable + +// save last category visited +$objSession->SetVariable('prev_category', $objSession->GetVariable('last_category') ); +$objSession->SetVariable('last_category', $objCatList->CurrentCategoryID() ); + +$objSession->SetVariable("HasChanges", 0); +// where should all edit popups submit changes +$objSession->SetVariable("ReturnScript", basename($_SERVER['PHP_SELF']) ); + + +// common "Advanced View" tab php functions: begin +function GetAdvView_SearchWord($prefix,$postfix='_adv_view_search') +{ + global $objSession; + return $objSession->GetVariable($prefix.$postfix); +} + +function SaveAdvView_SearchWord($prefix,$postfix='_adv_view_search') +{ + global $objSession; + $SearchWord = $objSession->GetVariable($prefix.$postfix); + if( isset($_REQUEST['SearchWord']) ) + { + $SearchWord = $_REQUEST['SearchWord']; + $objSession->SetVariable($prefix.$postfix, $SearchWord); + } +} + +function ResetAdvView_SearchWord($prefix,$postfix='_adv_view_search') +{ + global $objSession; + $objSession->SetVariable($prefix.$postfix, ''); +} + +function ShowSearchForm($prefix, $envar, $TabID, $postfix='_adv_view_search') +{ + global $imagesURL; + $btn_prefix = $imagesURL.'/toolbar/icon16_search'; + $SearchWord = GetAdvView_SearchWord($prefix,$postfix); + echo '
+ + + + + + + +
'.admin_language('la_SearchLabel').'  + '.admin_language( + '.admin_language(  + + +
+
+ + + '; +} +// common "Advanced View" tab php functions: end + +/* page header */ +$charset = GetRegionalOption('Charset'); +print << + + In-portal + + + + +END; + + require_once($pathtoroot.$admin."/include/mainscript.php"); + +print << + if (window.opener != null) { + theMainScript.CloseAndRefreshParent(); + } + +END; + +print << + + + + + +END; +load_module_styles(); +if( !isset($list) ) $list = ''; + +int_SectionHeader(); + + $filter = false; + $bit_combo = $objModules->ExecuteFunction('GetModuleInfo', 'all_bitmask'); + $bit_combo = $objModules->MergeReturn($bit_combo); + foreach($bit_combo['VarName'] as $mod_name => $VarName) + { + //echo "VarName: [$VarName] = [".$objConfig->Get($VarName)."], ALL = [".$bit_combo['Bits'][$mod_name]."]
"; + if( $objConfig->Get($VarName) ) + if( $objConfig->Get($VarName) != $bit_combo['Bits'][$mod_name] ) + { + $filter = true; + break; + } + } + +?> +
+ + + + + + + +
+
+ " ImagePath=""> + " ImagePath=""> + "> + " ImagePath=""> + " ImagePath=""> + "> + " ImagePath=""> + " ImagePath=""> +
+
+ + + + + + +
+ +
+ +
+ + + + +
+
+ + + + TabRow(); + + if(count($ItemTabs->Tabs)) + { + ?> +
+ +
+ + $value) + { + $path = $pathtoroot.$value."admin/reviews.php"; + //echo "Including File: $path
"; + if(file_exists($path)) + { + //echo "\n\n"; + include_once($path); + } + } + ?> +
+ + + + +
+
+ + +SetVariable("HasChanges", 0); +int_footer(); + +?> \ No newline at end of file Index: trunk/kernel/include/parseditem.php =================================================================== diff -u -N -r943 -r983 --- trunk/kernel/include/parseditem.php (.../parseditem.php) (revision 943) +++ trunk/kernel/include/parseditem.php (.../parseditem.php) (revision 983) @@ -1491,6 +1491,11 @@ var $LastLimitClause = ''; // used to store last limit cluse used in query + function setPageFromENV() + { + $this->Page=$GLOBALS[$this->PageEnvar][$this->PageEnvarIndex]; + } + function clsItemList() { $this->clsItemCollection(); @@ -1742,7 +1747,9 @@ global $objConfig; $update =& $GLOBALS[$this->PageEnvar]; // env_var_update - + + $page_backup = $update[$this->PageEnvarIndex]; + // insteresting stuff :) if(!$this->PerPageVar) $this->PerPageVar = "Perpage_Links"; @@ -1794,7 +1801,7 @@ $next_url = $url.'?env='.BuildEnv(); $o .= ' >>'; } - unset( $update[$this->PageEnvarIndex] ); + $update[$this->PageEnvarIndex] = $page_backup; return $o; } } Index: trunk/admin/icons/icon24_reviews.gif =================================================================== diff -u -N Binary files differ Index: trunk/admin/icons/icon46_reviews.gif =================================================================== diff -u -N Binary files differ Index: trunk/kernel/admin/include/navmenu.php =================================================================== diff -u -N -r377 -r983 --- trunk/kernel/admin/include/navmenu.php (.../navmenu.php) (revision 377) +++ trunk/kernel/admin/include/navmenu.php (.../navmenu.php) (revision 983) @@ -27,7 +27,12 @@ // Advanced View $objSections->AddSection("in-portal:advanced_view","la_tab_AdvancedView","la_title_AdvancedView",$admin."/", "advanced_view.php", $admin."/icons/icon46_advanced_view.gif",$admin."/icons/icon24_advanced_view.gif", - NULL,"in-portal:site",NULL,"in-portal:configure_categories",0,"",1,NULL,NULL,NULL,$admin."/icons/icon46_list_advanced_view.gif"); + NULL,"in-portal:site",NULL,"in-portal:reviews",0,"",1,NULL,NULL,NULL,$admin."/icons/icon46_list_advanced_view.gif"); + +// Pending Reviews +$objSections->AddSection("in-portal:reviews","la_tab_Reviews","la_title_Reviews",$admin."/", "reviews.php", + $admin."/icons/icon46_reviews.gif",$admin."/icons/icon24_reviews.gif", + NULL,"in-portal:site",NULL,"in-portal:configure_categories",0,"",1,NULL,NULL,NULL,$admin."/icons/icon46_list_reviews.gif"); $objSections->AddSection("in-portal:configure_categories", "la_tab_Settings", "la_tab_Settings", $admin."/config/", "edit_config.php?&module=In-Portal§ion=in-portal:configure_categories", Index: trunk/kernel/include/itemreview.php =================================================================== diff -u -N -r875 -r983 --- trunk/kernel/include/itemreview.php (.../itemreview.php) (revision 875) +++ trunk/kernel/include/itemreview.php (.../itemreview.php) (revision 983) @@ -111,7 +111,7 @@ function ParseObject($element) { - global $objConfig, $objCatList, $rootURL, $objUsers; + global $objConfig, $objCatList, $rootURL, $objUsers, $objModules; $extra_attribs = ExtraAttributes($element->attributes); @@ -120,6 +120,31 @@ $field = strtolower($element->attributes["_field"]); switch($field) { + case 'itemname': + $db=&GetADODBConnection(); + $module_info=$objModules->ExecuteFunction('GetModuleInfo','rel_list'); + $module_info=$module_info[$this->Get('Module')]; + $ret=$db->GetOne('SELECT '.$module_info['ItemNameField'].' FROM '.GetTablePrefix().$module_info['MainTable'].' WHERE ResourceId='.$this->Get('ItemId')); + break; + + case 'itemlink': + $db=&GetADODBConnection(); + $module_info=$objModules->ExecuteFunction('GetModuleInfo','rel_list'); + $module_info=$module_info[$this->Get('Module')]; + $prefix=$db->GetOne('SELECT Var FROM '.$objModules->SourceTable.' WHERE Name=\''.$this->Get('Module').'\''); + + $id=$db->GetOne('SELECT '.$module_info['MainTable'].'Id FROM '.GetTablePrefix().$module_info['MainTable'].' WHERE ResourceId='.$this->Get('ItemId')); + $GLOBALS[$prefix.'_var_list_update'][ $module_info['EnvIDField'] ]=$id; + + /*$env_unparsed=explode(':',$_REQUEST['env']); + m_ParseEnv($tmp[1]);*/ + + $url=rtrim(GetIndexUrl(2),'index.php'); + + $ret = $url.strtolower($this->Get('Module')).'/admin/'.$module_info['EditFile'].'?env='.BuildEnv(); + unset($GLOBALS[$prefix.'_var_list_update'][ $module_info['EnvIDField'] ]); + break; + case "id": /* @field:review.id @@ -139,14 +164,20 @@ @field:review.text @description:Review text */ - if($this->Get("TextFormat")==0 || $element->attribues["_textonly"]) + if($this->Get("TextFormat")==0 || $element->GetAttributeByName('_textonly') ) { $ret = inp_htmlize($this->Get("ReviewText")); } else { $ret = $this->Get("ReviewText"); } + + $cut_first_chars=$element->GetAttributeByName('_CutFirst'); + if($cut_first_chars && strlen($ret)>$cut_first_chars) + { + $ret=substr($ret,0,$cut_first_chars).' ...'; + } break; case "ip": /* @@ -179,12 +210,12 @@ @attrib:_part::Returns part of the date. The following options are available: month,day,year,time_24hr,time_12hr */ $d = $this->Get("CreatedOn"); - if($element->attributes["_tz"]) + if($element->GetAttributeByName('_tz')) { $d = GetLocalTime($d,$objSession->Get("tz")); } - $part = strtolower($element->attributes["_part"]); + $part = strtolower( $element->GetAttributeByName('_part') ); if(strlen($part)) { $ret = ExtractDatePart($part,$d); @@ -205,7 +236,7 @@ @description:Parse a user tag for the user submitting the review @attrib:_usertag::User tag to parse, defaults to the users login name */ - $userfield = $element->attributes["_usertag"]; + $userfield = $element->GetAttributeByName('_usertag'); if(!strlen($userfield)) { $userfield = "login"; @@ -223,6 +254,18 @@ if($userfield=="login") $ret = "root"; break; + + case "admin_icon": + if( $element->GetAttributeByName('fulltag') ) + { + $ret = "StatusIcon()."\">"; + } + else + { + $ret = $this->StatusIcon(); + } + break; + default: $tag = $this->TagPrefix."_".$field; $ret = "Undefined: ".$tag->name; @@ -236,6 +279,26 @@ return $ret; } + function StatusIcon() + { + global $imagesURL; + $ret = $imagesURL.'/itemicons/'; + + switch($this->Get('Status')) + { + case STATUS_DISABLED: + $ret .= "icon16_review_disabled.gif"; + break; + case STATUS_PENDING: + $ret .= "icon16_review_pending.gif"; + break; + case STATUS_ACTIVE: + $ret .= "icon16_review.gif"; + break; + } + return $ret; + } + function parsetag($tag) { global $objConfig, $objUsers, $objItemTypes; @@ -338,24 +401,29 @@ } } /*clsIItemReview*/ -class clsItemReviewList extends clsItemCollection +class clsItemReviewList extends clsItemList // clsItemCollection { var $itemID; - var $Page; - var $PerPageVar; + //var $Page; + //var $PerPageVar; function clsItemReviewList($id=NULL) { $this->clsItemCollection(); $this->classname = "clsItemReview"; - $this->SourceTable = GetTablePrefix()."ItemReview"; + $this->SetTable('live',GetTablePrefix().'ItemReview'); $this->Page = 1; $this->PerPageVar = "Perpage_Review"; if(isset($id)) $this->itemID=$id; $this->AdminSearchFields = array("ReviewText"); } + function SaveNewPage() + { + $GLOBALS['m_var_list']['reviews_page']=$this->Page; + } + function ItemCount() { return $this->NumItems(); @@ -467,17 +535,19 @@ } function EditReview($ReviewId,$CreatedOn,$ReviewText, $Status, - $IPAddress, $Priority, $ItemId,$ItemType,$CreatedById,$TextFormat,$Module) + $IPAddress, $Priority, $ItemId,$ItemType,$CreatedById,$TextFormat,$Module='') { global $objSession; $r = $this->GetItem($ReviewId); if($CreatedById==0) $CreatedById = $r->Get("CreatedById"); $r->Set(array("ReviewId","CreatedOn","ReviewText","Status", - "IPAddress", "Priority", "ItemId","ItemType","CreatedById","TextFormat","Module"), + "IPAddress", "Priority", "ItemId","ItemType","CreatedById","TextFormat"), array($ReviewId,$CreatedOn,$ReviewText,$Status, - $IPAddress, $Priority, $ItemId,$ItemType,$CreatedById,$TextFormat,$Module)); + $IPAddress, $Priority, $ItemId,$ItemType,$CreatedById,$TextFormat)); + if($Module) $r->Set('Module',$Module); + $r->Update(); //$r->SendUserEventMail("REVIEW.MODIFY",$objSession->Get("PortalUserId")); $r->SendAdminEventMail("REVIEW.MODIFY"); @@ -505,6 +575,36 @@ } } + function CopyFromEditTable_Direct($idfield=null) + { + global $objSession; + $GLOBALS['_CopyFromEditTable']=1; + //echo "ToLive [Reviews]
"; + $edit_table = $objSession->GetEditTable($this->SourceTable); + $idlist = array(); + $sql = 'SELECT * FROM '.$edit_table; + $this->Clear(); + + // get all items in edit-table + $rs = $this->adodbConnection->Execute($sql); + while($rs && !$rs->EOF) + { + $data =& $rs->fields; + $c = $this->AddItemFromArray($data); + $c->Dirty(); + $c->Update(); + + $idlist[] = $c->Get("ReviewId"); + $rs->MoveNext(); + } + + //echo "DEL REVIEW SQL: $sql
"; + + $this->PurgeEditTable(); + + unset($GLOBALS['_CopyFromEditTable']); + } + function CopyFromEditTable($ResourceId, $saveEditTable = false) { global $objSession; @@ -621,7 +721,51 @@ unset($UpdateVar,$var_list_update["t"] ); return $o; } + + function AdminPrintItems($template) + { + // prints item listing for admin (browse/advanced view) tabs + $o = ''; + + $i = 1; + + $topleft = 0; + $topright = 0; + $rightcount = 0; + $total_items = $this->NumItems(); + $topleft = ceil($total_items / 2); + $topright = $total_items - $topleft; + + for($x = 0; $x < $topleft; $x++) + { + //printingleft + $item = $this->Items[$x]; + if ($i > 2) + { + $o .= "\n"; + $i = 1; + } + $o .= $item->AdminParseTemplate($template); + $i++; + + //printingright + if ($rightcount < $topright && ( ($x + $topleft) < $total_items) ) + { + $item = $this->Items[ $x + $topleft ]; + if ($i > 2) + { + $o.="\n"; + $i = 1; + } + $o .= $item->AdminParseTemplate($template); + $i++; + $rightcount++; + } + } + $o .= "\n
\n"; + return $o; + } } /*clsItemReviewList*/ Index: trunk/admin/icons/icon46_list_reviews.gif =================================================================== diff -u -N Binary files differ Index: trunk/kernel/action.php =================================================================== diff -u -N -r962 -r983 --- trunk/kernel/action.php (.../action.php) (revision 962) +++ trunk/kernel/action.php (.../action.php) (revision 983) @@ -1056,7 +1056,8 @@ } break; case "m_review_edit": - $post_info = GetSubmitVariable($_POST, 'EditStatus'); + case 'm_review_direct_edit'; + $post_info = GetSubmitVariable($_POST, 'EditStatus'); if($post_info['variable'] > -1) { $objReviews = new clsItemReviewList(); @@ -1091,43 +1092,93 @@ } $r = $objReviews->EditReview($ReviewId,$CreatedOn,$ReviewText,$Status, $IPAddress, (int)$_POST["review_priority"],$_POST["ItemId"],$_POST["ItemType"], - $CreatedById,$html, $post_info['Module']); + $CreatedById,$html); } - break; - case "m_review_delete": - $objReviews = new clsItemReviewList(); - $objReviews->SourceTable = $objSession->GetEditTable("ItemReview"); - foreach($_POST["itemlist"] as $id) - { - $objReviews->DeleteReview($id); - } - break; - case "m_review_approve": - if (isset($_POST["itemlist"])) - { - $objReviews = new clsItemReviewList(); - $objReviews->SourceTable = $objSession->GetEditTable("ItemReview"); - foreach($_POST["itemlist"] as $id) - { - $i = $objReviews->GetItem($id); - $i->Set("Status",1); - $i->Update(); - } - } - break; - case "m_review_deny": - if (isset($_POST["itemlist"])) - { - $objReviews = new clsItemReviewList(); - $objReviews->SourceTable = $objSession->GetEditTable("ItemReview"); - foreach($_POST["itemlist"] as $id) - { - $i = $objReviews->GetItem($id); - $i->Set("Status",0); - $i->Update(); - } - } - break; + break; + + + + + case "m_review_delete": + $objReviews = new clsItemReviewList(); + $objReviews->SourceTable = $objSession->GetEditTable("ItemReview"); + foreach($_POST["itemlist"] as $id) + { + $objReviews->DeleteReview($id); + } + break; + + + case 'm_review_direct_delete': + $objReviews = new clsItemReviewList(); + foreach($_POST['reviewlist'] as $id) + { + $objReviews->DeleteReview($id); + } + break; + + + case "m_review_approve": + if (isset($_POST["itemlist"])) + { + $objReviews = new clsItemReviewList(); + $objReviews->SourceTable = $objSession->GetEditTable("ItemReview"); + foreach($_POST["itemlist"] as $id) + { + $i = $objReviews->GetItem($id); + $i->Set("Status",1); + $i->Update(); + } + } + break; + + case 'm_review_direct_approve': + if(isset($_POST["reviewlist"])) + { + $objReviews = new clsItemReviewList(); + foreach($_POST["reviewlist"] as $id) + { + $i = $objReviews->GetItem($id); + $i->Set("Status",1); + $i->Update(); + } + } + break; + + + + + case "m_review_deny": + if (isset($_POST["itemlist"])) + { + $objReviews = new clsItemReviewList(); + $objReviews->SourceTable = $objSession->GetEditTable("ItemReview"); + foreach($_POST["itemlist"] as $id) + { + $i = $objReviews->GetItem($id); + $i->Set("Status",0); + $i->Update(); + } + } + break; + + case 'm_review_direct_decline': + if (isset($_POST["reviewlist"])) + { + $objReviews = new clsItemReviewList(); + foreach($_POST["reviewlist"] as $id) + { + $i = $objReviews->GetItem($id); + $i->Set("Status",0); + $i->Update(); + } + } + break; + + + + + case "m_review_move_up": if (isset($_POST["itemlist"])) { @@ -2317,6 +2368,17 @@ if( !$has_perm ) { + if( GetVar('ReviewEditStatus') == 1 ) + { + $objReviews=new clsItemReviewList(); + $objReviews->CopyFromEditTable_Direct(); + } + + if( GetVar('ReviewEditStatus') == -1 ) + { + $objReviews=new clsItemReviewList(); + $objReviews->PurgeEditTable(); + } /* category Edit */ if( GetVar('CatEditStatus') == 1 ) Index: trunk/kernel/admin/include/toolbar/reviews.php =================================================================== diff -u -N --- trunk/kernel/admin/include/toolbar/reviews.php (revision 0) +++ trunk/kernel/admin/include/toolbar/reviews.php (revision 983) @@ -0,0 +1,447 @@ +Get("Category_View"); +if(!is_numeric($CategoryView)) +{ + $CategoryView = 127; +} + +$Category_Sortfield = $objConfig->Get("Category_Sortfield"); +if( !strlen($Category_Sortfield) ) $Category_Sortfield = "Name"; + +$Category_Sortorder = $objConfig->Get("Category_Sortorder"); +if( !strlen($Category_Sortorder) ) $Category_Sortorder = "desc"; + +$Perpage_Category = (int)$objConfig->Get("Perpage_Category"); +if(!$Perpage_Category) + $Perpage_Category="'all'"; + + +if($CategoryView == 127) +{ + $Category_ShowAll = 1; +} +else +{ + $Category_ShowAll = 0; + // FILTERING CODE V. 1.2 + $where_clauses = Array(); $q = ''; + + //Group #1: Category Statuses (active,pending,disabled) + $Status = array(-1); + if($CategoryView & $Bit_Pending) $Status[] = STATUS_PENDING; + if($CategoryView & $Bit_Active) $Status[] = STATUS_ACTIVE; + if($CategoryView & $Bit_Disabled) $Status[] = STATUS_DISABLED; + if( count($Status) ) $where_clauses[] = 'Status IN ('.implode(',', $Status).')'; + + //Group #2: Category Statistics (new,pick) + $Status = array(); + if(!($CategoryView & $Bit_New)) + { + $cutoff = adodb_date("U") - ($objConfig->Get("Category_DaysNew") * 86400); + if($cutoff > 0) $q = 'CreatedOn > '.$cutoff; + $q .= (!empty($q) ? ' OR ' : '').'NewItem = 1'; + $Status[] = "NOT ($q)"; + } + if(!($CategoryView & $Bit_Ed)) $Status[] = 'NOT (EditorsPick = 1)'; + + if( count($Status) ) + $where_clauses[] = '('.implode(') AND (', $Status).')'; + + $CategoryFilter = count($where_clauses) ? '('.implode(') AND (', $where_clauses).')' : ''; +} + +// category list filtering stuff: end + + $OrderBy = $objCatList->QueryOrderByClause(TRUE,TRUE,TRUE); + $objCatList->Clear(); + $IsSearch = FALSE; + + $list = $objSession->GetVariable("m_adv_view_search"); + $SearchQuery = $objCatList->AdminSearchWhereClause($list); + if(strlen($SearchQuery)) + { + $SearchQuery = " (".$SearchQuery.")".($CategoryFilter ? 'AND ('.$CategoryFilter.')' : ''); + $objCatList->LoadCategories($SearchQuery,$OrderBy, false, 'set_last'); + $IsSearch = TRUE; + } + else + $objCatList->LoadCategories($CategoryFilter,$OrderBy, false, 'set_last'); + + $TotalItemCount += $objCatList->QueryItemCount; + + +$CatTotal = TableCount($objCatList->SourceTable,null,false); + +$mnuClearSearch = language("la_SearchMenu_Clear"); +$mnuNewSearch = language("la_SearchMenu_New"); +$mnuSearchCategory = language("la_SearchMenu_Categories"); + +$lang_New = language("la_Text_New"); +$lang_Hot = language("la_Text_Hot"); +$lang_EdPick = language("la_prompt_EditorsPick"); +$lang_Pop = language("la_Text_Pop"); + +$lang_Rating = language("la_prompt_Rating"); +$lang_Hits = language("la_prompt_Hits"); +$lang_Votes = language("la_prompt_Votes"); +$lang_Name = language("la_prompt_Name"); + +$lang_Categories = language("la_ItemTab_Categories"); +$lang_Description = language("la_prompt_Description"); +$lang_MetaKeywords = language("la_prompt_MetaKeywords"); +$lang_SubSearch = language("la_prompt_SubSearch"); +$lang_Within = language("la_Text_Within"); +$lang_Current = language("la_Text_Current"); +$lang_Active = language("la_Text_Active"); +$lang_SubCats = language("la_Text_SubCats"); +$lang_SubItems = language("la_Text_Subitems"); + +print << +var default_tab = "$DefaultTab"; +var Category_Sortfield = '$Category_Sortfield'; +var Category_Sortorder = '$Category_Sortorder'; +var Category_Perpage = $Perpage_Category; +var Category_ShowAll = $Category_ShowAll; +var CategoryView = $CategoryView; + +//JS Language variables +var lang_New = "$lang_New"; +var lang_Hot = "$lang_Hot"; +var lang_EdPick = "$lang_EdPick"; + +var lang_Pop = "$lang_Pop"; +var lang_Rating = "$lang_Rating"; +var lang_Hits = "$lang_Hits"; +var lang_Votes = "$lang_Votes"; +var lang_Name = "$lang_Name"; +var lang_Categories = "$lang_Categories"; +var lang_Description = "$lang_Description"; +var lang_MetaKeywords = "$lang_MetaKeywords"; +var lang_SubSearch = "$lang_SubSearch"; +var lang_Within="$lang_Within"; +var lang_Current = "$lang_Current"; +var lang_Active = "$lang_Active"; +var lang_SubCats = "$lang_SubCats"; +var lang_SubItems = "$lang_SubItems"; + +var hostname = '$rootURL'; +var env = '$envar'; +var actionlist = new Array(); + + // Common function for all "Advanced View" page + function InitPage() + { + addCommonActions(); + initToolbar('mainToolBar', actionHandler); + initCheckBoxes(null, false); + toggleMenu(); + } + + function AddButtonAction(actionname,actionval) + { + var item = new Array(actionname,actionval); + actionlist[actionlist.length] = item; + } + + function actionHandler(button) + { + for(i=0; i + +END; +?> \ No newline at end of file Index: trunk/admin/addreview_direct.php =================================================================== diff -u -N --- trunk/admin/addreview_direct.php (revision 0) +++ trunk/admin/addreview_direct.php (revision 983) @@ -0,0 +1,264 @@ +Get("Site_Path"); +$admin = $objConfig->Get("AdminDirectory"); +if(!strlen($admin)) + $admin = "admin"; + +$adminURL = $rootURL.$admin; +$imagesURL = $adminURL."/images"; +$cssURL = $adminURL."/include"; +$browseURL = $adminURL."/browse"; + +$pathtolocal = $pathtoroot."kernel/"; +require_once ($pathtoroot.$admin."/include/elements.php"); +require_once ($pathtoroot."kernel/admin/include/navmenu.php"); +require_once($pathtoroot.$admin."/browse/toolbar.php"); +require_once($pathtoroot.$admin."/listview/listview.php"); + +//Multiedit init +$en = (int)GetVar('en'); + +$ids=GetVar('reviewlist'); +$objEditItems = new clsItemReviewList(); +$objEditItems->CopyToEditTable(null,$ids); +$objEditItems->SetTable('edit'); + +if($ids) +{ + $ReviewId=is_array($ids)?array_shift($ids):$ids; + $Rev = $objEditItems->GetItem($ReviewId); + $action = 'm_review_direct_edit'; +} + +$envar = "env=" . BuildEnv() . "&en=$en"; + +/*$m = GetModuleArray(); +foreach($m as $key => $value) +{ + $path = $pathtoroot.$value."admin/include/parser.php"; + if( file_exists($path) ) include_once($path); +} + +$module_info=$objModules->ExecuteFunction('GetModuleInfo','review_section'); +$section = $module_info[$Rev->Get('Module')]; */ + +$section='in-portal:editreview_direct'; + +$ado = &GetADODBConnection(); + + +/** + * Returns username by user id specified + * + * @param int $user_id + * @return string + * @access public + */ +function getUsernameByID($user_id) +{ + global $objUsers; + if(!($user_id>0) || !$user_id) return 'root'; + $u = $objUsers->GetUser($user_id); + return $u->Get('Login'); +} + + +$user_id=is_numeric($Rev->Get("CreatedById"))?$Rev->Get('CreatedById'):$objSession->Get('PortalUserId'); +$login_name=getUsernameByID($user_id); + +$title = GetTitle('la_text_Review','la_tab_General',$Rev->UniqueId()); + +$objListToolBar = new clsToolBar(); +$objListToolBar->Add("img_save", "la_Save","#","swap('img_save','toolbar/tool_select_f2.gif');", "swap('img_save', 'toolbar/tool_select.gif');","edit_submit('review','ReviewEditStatus','admin/reviews.php',1);",$imagesURL."/toolbar/tool_select.gif"); +$objListToolBar->Add("img_cancel", "la_Cancel","#","swap('img_cancel','toolbar/tool_cancel_f2.gif');", "swap('img_cancel', 'toolbar/tool_cancel.gif');","edit_submit('review','ReviewEditStatus','admin/reviews.php',-1);",$imagesURL."/toolbar/tool_cancel.gif"); +int_header($objListToolBar,NULL,$title); +if ($objSession->GetVariable("HasChanges") == 1) { +?> + + + + +
+ +
+ + + + + + > + + + > + + + + + + > + + + + + + + > + + + + + + + + > + + + + + + > + + + + + + > + + + + + > + + + + + "> + "> + "> + "> + + + +
+ Get("TextFormat")==1) echo "CHECKED"; ?>> +
+ +
+ Get("ReviewId"); ?> +  
+ + + + + + +  

+ + + +
+ +
+ Get("Status") == 1) echo "checked"; ?>> + Get("Status") == 2) echo "checked"; ?>> + Get("Status") == 0) echo "checked"; ?>> +  
+ "> +  
+ "> +
+ "> +
+
+ + +
+ +
" name="viewmenu"> + + + + +
+ + + + + Index: trunk/kernel/include/debugger.php =================================================================== diff -u -N -r961 -r983 --- trunk/kernel/include/debugger.php (.../debugger.php) (revision 961) +++ trunk/kernel/include/debugger.php (.../debugger.php) (revision 983) @@ -141,13 +141,15 @@ $argsID = 'trace_args_'.$dataIndex.'_'.$i; if(isset($traceRec['file'])) { - $ret .= 'Function: '.$this->getFileLink($traceRec['file'],$traceRec['line'],$traceRec['class'].$traceRec['type'].$traceRec['function']); + $func_name=isset($traceRec['class'])?$traceRec['class'].$traceRec['type'].$traceRec['function']:$traceRec['function']; + $ret .= 'Function: '.$this->getFileLink($traceRec['file'],$traceRec['line'],$func_name); $ret .= ' in '.basename($traceRec['file']).' on line '.$traceRec['line'].'
'; } else { $ret .= 'no file information available'; } + // ensure parameter value is not longer then 200 symbols $this->processTraceArguments($traceRec['args']); $args = $this->highlightString(print_r($traceRec['args'], true)); @@ -172,6 +174,7 @@ function processTraceArguments(&$traceArgs) { + if(!$traceArgs) return ''; foreach ($traceArgs as $argID => $argValue) { if( is_array($argValue) || is_object($argValue) )