Index: trunk/kernel/include/itemreview.php
===================================================================
diff -u -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 = '