Index: trunk/kernel/include/item.php
===================================================================
diff -u -r288 -r302
--- trunk/kernel/include/item.php (.../item.php) (revision 288)
+++ trunk/kernel/include/item.php (.../item.php) (revision 302)
@@ -774,6 +774,7 @@
}
// check if not exists
+
$db =& $this->adodbConnection;
$sql = sprintf('SELECT * FROM %s WHERE CategoryId = %s AND ItemResourceId = %s', $SourceTable, $CatId, $this->Get("ResourceId"));
$rs = $db->Execute($sql);
@@ -785,6 +786,7 @@
$this->adodbConnection->Execute($sql);
}
+
$c = $objCatList->GetCategory($CatId);
}
}
Index: trunk/kernel/include/parseditem.php
===================================================================
diff -u -r295 -r302
--- trunk/kernel/include/parseditem.php (.../parseditem.php) (revision 295)
+++ trunk/kernel/include/parseditem.php (.../parseditem.php) (revision 302)
@@ -41,11 +41,11 @@
*/
function ParseTimeStamp($d,$attribs=array())
{
- if($attribs["_tz"])
+ if( isset($attribs["_tz"]) )
{
$d = GetLocalTime($d,$objSession->Get("tz"));
}
- $part = strtolower($attribs["_part"]);
+ $part = isset($attribs["_part"]) ? strtolower($attribs["_part"]) : '';
if(strlen($part))
{
$ret = ExtractDatePart($part,$d);
@@ -179,7 +179,7 @@
break;
case "rating":
- $style = $element->attributes["_displaymode"];
+ $style = $element->GetAttributeByName("_displaymode");
if(!strlen($style))
$style = "numerical";
switch($style)
@@ -212,7 +212,7 @@
if(method_exists($this,"ReviewCount"))
{
- if($element->attributes["_today"])
+ if($element->GetAttributeByName("_today"))
$today = TRUE;
$ret = $this->ReviewCount($today);
}
@@ -271,7 +271,7 @@
{
if($this->IsHotItem())
{
- $ret = $element->attributes["_label"];
+ $ret = $element->GetAttributeByName("_label");
if(!strlen($ret))
$ret = "lu_hot";
$ret = language($ret);
@@ -294,7 +294,7 @@
case "admin_icon":
if(method_exists($this,"StatusIcon"))
{
- if($element->attributes["fulltag"])
+ if($element->GetAttributeByName("fulltag"))
{
$ret = "
StatusIcon()."\">";
}
@@ -1160,7 +1160,7 @@
function CopyFromEditTable($idfield = null)
{
global $objSession;
-
+ echo "INM
";
$dropRelTableFlag = false;
if($idfield == null) $idfield = $this->GetIDField();
$edit_table = $objSession->GetEditTable($this->SourceTable);
@@ -1229,17 +1229,18 @@
$c->Set("OrgId",0);
}
}
-
+
if(method_exists($c,"CategoryMemberList"))
{
$cats = $c->CategoryMemberList($objSession->GetEditTable("CategoryItems"));
- //echo "CATS: [$cats]
";
+ $ci_table = $objSession->GetEditTable('CategoryItems');
+ $primary_cat = $c->GetPrimaryCategory($ci_table);
$c->Update();
- UpdateCategoryItems($c,$cats);
+ UpdateCategoryItems($c,$cats,$primary_cat);
}
else
$c->Update();
-
+
unset($c);
unset($r);
@@ -1252,7 +1253,7 @@
$objRelGlobal->PurgeEditTable();
}
- @$this->adodbConnection->Execute("DROP TABLE IF EXISTS $edit_table");
+ if($edit_table) @$this->adodbConnection->Execute("DROP TABLE IF EXISTS $edit_table");
@$this->adodbConnection->Execute("DROP TABLE IF EXISTS ".$objSession->GetEditTable("CategoryItems"));
}
@@ -1769,7 +1770,7 @@
return $ret;
}
-function UpdateCategoryItems($item,$NewCatList)
+function UpdateCategoryItems($item,$NewCatList,$PrimaryCatId = false)
{
global $objCatList;
@@ -1809,6 +1810,7 @@
$cat = $del_list[$i];
$item->RemoveFromCategory($cat);
}
+ if($PrimaryCatId !== false) $item->SetPrimaryCategory($PrimaryCatId);
}
class clsCatItemList extends clsItemList
Index: trunk/globals.php
===================================================================
diff -u -r289 -r302
--- trunk/globals.php (.../globals.php) (revision 289)
+++ trunk/globals.php (.../globals.php) (revision 302)
@@ -884,23 +884,19 @@
{
global $objCountCache, $objItemTypes;
- if(is_numeric($ItemName))
- {
- $item = $objItemTypes->GetItem($ItemName);
- }
- else
- $item = $objItemTypes->GetTypeByName($ItemName);
- if(is_object($item))
- {
- $ItemType = $item->Get("ItemType");
+ if(is_numeric($ItemTypeName))
+ $item = $objItemTypes->GetItem($ItemTypeName);
+ else
+ $item = $objItemTypes->GetTypeByName($ItemTypeName);
+
+ if(is_object($item))
+ {
+ $ItemType = $item->Get("ItemType");
- $sql = "DELETE FROM ".$objCountCache->SourceTable." WHERE ItemType=$ItemType";
- if(is_numeric($ListType))
- {
- $sql .= " AND ListType=$ListType";
- }
- $objCountCache->adodbConnection->Execute($sql);
- }
+ $sql = "DELETE FROM ".$objCountCache->SourceTable." WHERE ItemType=$ItemType";
+ if( is_numeric($ListType) ) $sql .= " AND ListType=$ListType";
+ $objCountCache->adodbConnection->Execute($sql);
+ }
}
function UpdateModifiedCategoryCount($ItemTypeName,$CatId=NULL,$Modifier=0,$ExtraId=NULL)
@@ -1362,4 +1358,41 @@
}
+// functions for dealign with enviroment variable construction
+function GenerateModuleEnv($prefix, $var_list)
+{
+ // globalize module varible arrays
+ $main =& $GLOBALS[$prefix.'_var_list'];
+ $update =& $GLOBALS[$prefix.'_var_list_update'];
+
+ //echo "VAR: [$main]; VAR_UPDATE: [$update]
";
+
+ // enshure that we have no empty values in enviroment variable
+ foreach($update as $vl_key => $vl_value)
+ if(!$vl_value) $update[$vl_key] = '0'; // unset($update[$vl_key]);
+
+ // if update var count is zero, then do nothing
+ if(count($update) == 0) return '';
+
+ foreach($main as $vl_key => $vl_value)
+ if(!$vl_value) $main[$vl_key] = '0'; // unset($main[$vl_key]);
+
+ $ret = Array();
+ foreach($var_list as $var_name)
+ $ret[] = GetEnvVar($prefix, $var_name);
+
+ return ':'.$prefix.implode('-',$ret);
+}
+
+function GetEnvVar($prefix, $name)
+{
+ // get variable from template variable's list
+ // (used in module parsers to build env string)
+ $main =& $GLOBALS[$prefix.'_var_list'];
+ $update =& $GLOBALS[$prefix.'_var_list_update'];
+ return isset($update[$name]) ? $update[$name] : ( isset($main[$name]) ? $main[$name] : '');
+}
+
+
+
?>
Index: trunk/kernel/parser.php
===================================================================
diff -u -r289 -r302
--- trunk/kernel/parser.php (.../parser.php) (revision 289)
+++ trunk/kernel/parser.php (.../parser.php) (revision 302)
@@ -30,21 +30,11 @@
function m_BuildEnv()
{
- global $m_var_list, $m_var_list_update, $objLanguages;
-
- $str = ":m";
-
- if( is_array($m_var_list_update) )
- foreach($m_var_list_update as $m_var => $m_value)
- if($m_value == '0') $m_var_list_update[$m_var] = '';
-
- $str .= m_GetVar('cat');
- if( isset($m_var_list_update['cat']) ) unset($m_var_list_update['cat']);
- $str .= '-'.m_GetVar('p');
- $str .= '-'.m_GetVar('lang');
- $str .= '-'.m_GetVar('theme');
-
- return $str;
+ global $m_var_list, $m_var_list_update;
+ $module_vars = Array('cat','p','lang','theme');
+ $ret = GenerateModuleEnv('m', $module_vars);
+ if( isset($GLOBALS['m_var_list_update']['cat']) ) unset($GLOBALS['m_var_list_update']['cat']);
+ return $ret;
}
function m_GetVar($name)
Index: trunk/admin/include/elements.php
===================================================================
diff -u -r295 -r302
--- trunk/admin/include/elements.php (.../elements.php) (revision 295)
+++ trunk/admin/include/elements.php (.../elements.php) (revision 302)
@@ -136,7 +136,7 @@
load_module_javascript($sectionname, $skip_modules);
if(is_object($toolbar))
print $toolbar->GetInitScript();
- print "