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*/