$value)
{
$path = $pathtoroot.$value."admin/include/parser.php";
if( file_exists($path) ) include_once($path);
}
/* ------------------------------------- Edit Table --------------------------------------------------- */
unset($objEditItems);
$objEditItems = new clsCatList();
$objEditItems->SourceTable = $objSession->GetEditTable("Category");
//Multiedit init
$en = (int)$_GET["en"];
$objEditItems->Query_Item("SELECT * FROM ".$objEditItems->SourceTable);
$itemcount=$objEditItems->NumItems();
$c = $objEditItems->GetItemByIndex($en);
if($itemcount>1)
{
if ($en+1 == $itemcount)
$en_next = -1;
else
$en_next = $en+1;
if ($en == 0)
$en_prev = -1;
else
$en_prev = $en-1;
}
$action = "m_edit_category";
/* -------------------------------------- Section configuration ------------------------------------------- */
$envar = "env=" . BuildEnv() . "&en=$en";
$section = 'in-portal:editcategory_relations';
$title = admin_language("la_Text_Editing")." ".admin_language("la_Text_Category")." '".$c->Get("Name")."' - ".admin_language("la_tab_Relations");
$SortFieldVar = "Relation_LV_Sortfield";
$SortOrderVar = "Relation_LV_Sortorder";
$DefaultSortField = "ItemName";
$PerPageVar = "Perpage_Relations";
$CurrentPageVar = "Page_Relations";
$CurrentFilterVar = "CatRel_View";
$ListForm = "permlistform";
$CheckClass = "PermChecks";
$saveURL = $admin."/category/category_maint.php";
$cancelURL = $admin."/".$objSession->GetVariable('ReturnScript');
//echo $envar."
\n";
/* ------------------------------------- Configure the toolbar ------------------------------------------- */
$objListToolBar = new clsToolBar();
$objListToolBar->Add("img_save", "la_Save","","swap('img_save','toolbar/tool_select_f2.gif');", "swap('img_save', 'toolbar/tool_select.gif');","do_edit_save('save_edit_buttons','CatEditStatus','$saveURL',1);","tool_select.gif");
$objListToolBar->Add("img_cancel", "la_Cancel","","swap('img_cancel','toolbar/tool_cancel_f2.gif');", "swap('img_cancel', 'toolbar/tool_cancel.gif');","do_edit_save('save_edit_buttons','CatEditStatus','".$cancelURL."',2);","tool_cancel.gif");
if($itemcount == 1) $objListToolBar->Add("divider");
$objListToolBar->Set("section",$section);
$objListToolBar->Set("load_menu_func","");
$objListToolBar->Set("CheckClass",$CheckClass);
$objListToolBar->Set("CheckForm",$ListForm);
//Display header
$sec = $objSections->GetSection($section);
if ( isset($en_prev) || isset($en_next) )
{
$url = $RootUrl.$admin."/category/addcategory_relations.php";
$StatusField = "CatEditStatus";
$form = "category";
MultiEditButtons($objListToolBar,$en_next,$en_prev,$form,$StatusField,$url,$sec->Get("OnClick"),'','la_PrevCategory','la_NextCategory');
$objListToolBar->Add("divider");
}
$listImages = array();
//$img, $alt, $link, $onMouseOver, $onMouseOut, $onClick
$objListToolBar->Add("new_rel", "la_ToolTip_New_Relation","#".$envar,"swap('new_rel','toolbar/tool_new_relation_f2.gif');",
"swap('new_rel', 'toolbar/tool_new_relation.gif');",
"OpenItemSelector('$envar&source=addcategory_relations&CatId=".$c->Get("CategoryId")."&destform=popup&destfield=itemlist&Selector=radio');",
"tool_new_relation.gif",FALSE,FALSE);
$objListToolBar->Add("rel_edit","la_ToolTip_Edit","#", "if (PermChecks.itemChecked()) swap('rel_edit','toolbar/tool_edit_f2.gif');",
"if (PermChecks.itemChecked()) swap('rel_edit', 'toolbar/tool_edit.gif');","if (PermChecks.itemChecked()) PermChecks.check_submit('addrelation', '');",
"tool_edit.gif",TRUE,TRUE);
$listImages[] = "PermChecks.addImage('rel_edit','$imagesURL/toolbar/tool_edit.gif','$imagesURL/toolbar/tool_edit_f3.gif',1); ";
$objListToolBar->Add("rel_del","la_ToolTip_Delete","#", "if (PermChecks.itemChecked()) swap('rel_del','toolbar/tool_delete_f2.gif');",
"if (PermChecks.itemChecked()) swap('rel_del', 'toolbar/tool_delete.gif');","if (PermChecks.itemChecked()) PermChecks.check_submit('addcategory_relations', 'm_rel_delete');",
"tool_delete.gif",FALSE,TRUE);
$listImages[] = "PermChecks.addImage('rel_del','$imagesURL/toolbar/tool_delete.gif','$imagesURL/toolbar/tool_delete_f3.gif',1); ";
$objListToolBar->Add("divider");
$objListToolBar->Add("rel_move_up","la_ToolTip_Move_Up","#", "if (PermChecks.itemChecked()) swap('rel_move_up','toolbar/tool_move_up_f2.gif');",
"if (PermChecks.itemChecked()) swap('rel_move_up', 'toolbar/tool_move_up.gif');","if (PermChecks.itemChecked()) PermChecks.check_submit('addcategory_relations', 'm_rel_move_up');",
"tool_move_up.gif",FALSE,TRUE);
$listImages[] = "PermChecks.addImage('rel_move_up','$imagesURL/toolbar/tool_move_up.gif','$imagesURL/toolbar/tool_move_up_f3.gif',1); ";
$objListToolBar->Add("rel_move_down","la_ToolTip_Move_Down","#", "if (PermChecks.itemChecked()) swap('rel_move_down','toolbar/tool_move_down_f2.gif');",
"if (PermChecks.itemChecked()) swap('rel_move_down', 'toolbar/tool_move_down.gif');","if (PermChecks.itemChecked()) PermChecks.check_submit('addcategory_relations', 'm_rel_move_down');",
"tool_move_down.gif",FALSE,TRUE);
$listImages[] = "PermChecks.addImage('rel_move_down','$imagesURL/toolbar/tool_move_down.gif','$imagesURL/toolbar/tool_move_down_f3.gif',1); ";
$objListToolBar->Add("divider");
$objListToolBar->Add("viewmenubutton", "la_ToolTip_View","#","swap('viewmenubutton','toolbar/tool_view_f2.gif'); ",
"swap('viewmenubutton', 'toolbar/tool_view.gif');",
"ShowViewMenu();","tool_view.gif");
$objListToolBar->AddToInitScript($listImages);
/* ----------------------------------------- Set the View Filter ---------------------------------------- */
$Rel_AllValue = 255;
$Bit_Categories = 1;
$Bit_Links = 2;
$Bit_News = 4;
$Bit_Topics = 8;
$Bit_OneWay = 16;
$Bit_Recip = 32;
$Bit_Enabled=64;
$Bit_Disabled=128;
$FilterLabels[0] = admin_language("la_Text_Category");
$FilterLabels[1] = admin_language("la_Text_Links");
$FilterLabels[2] = admin_language("la_Text_Articles");
$FilterLabels[3] = admin_language("la_Text_Topics");
$FilterLabels[4] = admin_language("la_Text_OneWay");
$FilterLabels[5] = admin_language("la_Text_Reciprocal");
$FilterLabels[6] = admin_language("la_Text_Enabled");
$FilterLabels[7] = admin_language("la_Text_Disabled");
$RelView = $objConfig->Get($CurrentFilterVar);
if(!is_numeric($RelView))
{
$RelView = $Rel_AllValue;
}
else
{
$RelTypes = array();
if($RelView & $Bit_Categories)
$RelTypes[] = 1;
if($RelView & $Bit_Links)
$RelTypes[] = 4;
if($RelView & $Bit_News)
$RelTypes[] = 2;
if($RelView & $Bit_Topics)
$RelTypes[] = 3;
$RelFilters = array();
if(count($RelTypes))
{
$TypeFilter = "rel.TargetType IN (".implode(",",$RelTypes).")";
}
$RelTypes = array();
if($RelView & $Bit_OneWay)
$RelTypes[] = 0;
if($RelView & $Bit_Recip)
$RelTypes[] = 1;
if(count($RelTypes))
$RelFilters[] = "rel.Type IN (".implode(",",$RelTypes).")";
if($RelView & $Bit_Enabled)
$RelFilters[] = "rel.Enabled=1";
if($RelView & $Bit_Disabled)
$RelFilters[] = "rel.Enabled=0";
if(count($RelFilters))
{
$RelFilter = $TypeFilter." AND (". implode(" OR ",$RelFilters).")";
}
else
$RelFilter = $TypeFilter;
}
//$r =& $c->RelationObject();
$objRelList = new clsRelationshipList();
$objRelList->SourceTable = $objSession->GetEditTable("Relationship");
$reltable = $objRelList->SourceTable;
// ==== build sql depending on modules installed: begin ====
$prefix = GetTablePrefix();
$modules = $objModules->GetModuleList();
$sql_source = $objModules->ExecuteFunction('GetModuleInfo', 'rel_list');
$sql_templates['ItemName'] = 'IFNULL('.$prefix."%s.%s,' ')";
$sql_templates['TableJoin'] = 'LEFT JOIN '.$prefix."%1\$s ON ".$prefix."%1\$s.ResourceId = rel.TargetId";
$sql_templates['TargetName'] = "IF(rel.TargetType = %s, '%s', %s)";
$sql = "SELECT TRIM(CONCAT(%s)) AS ItemName, %s AS ItemType,".
GetELT('rel.Type+1', Array('la_Text_OneWay','la_Text_Reciprocal')).' AS RelationType,'.
"RelationshipId, rel.Priority AS Priority, rel.Type as Type, rel.Enabled as Enabled,".
GetELT('rel.Enabled+1', Array('la_Text_Disabled','la_Text_Enabled')).' AS Status '.
'FROM '.$reltable.' AS rel %s WHERE rel.SourceId = '.$c->Get('ResourceId');
$sql_parts = Array();
$sql_parts['TargetName'] = "''";
foreach($modules as $module)
{
$sql_parts['ItemName'][] = sprintf($sql_templates['ItemName'], $sql_source[$module]['MainTable'], $sql_source[$module]['ItemNameField']);
$sql_parts['TableJoin'][] = sprintf($sql_templates['TableJoin'], $sql_source[$module]['MainTable']);
$sql_parts['TargetName'] = sprintf( $sql_templates['TargetName'],
$sql_source[$module]['TargetType'],
admin_language($sql_source[$module]['ItemNamePhrase']),
$sql_parts['TargetName']);
}
$sql = sprintf($sql, implode(', ',$sql_parts['ItemName']), $sql_parts['TargetName'], implode(' ',$sql_parts['TableJoin']));
// ==== build sql depending on modules installed: end ====
if(strlen($RelFilter))
{
$sql .= " AND (".$RelFilter.")";
}
$SearchWords = $objSession->GetVariable("CatRelSearchWord");
if(strlen($SearchWords))
{
$having = $objRelList->AdminSearchWhereClause($SearchWords);
}
else
$having = "";
if(strlen($having))
$sql .= " HAVING ($having)";
if(strlen(trim($objConfig->Get($SortFieldVar))))
{
$order = " ORDER BY rel.Priority DESC, ".$objConfig->Get($SortFieldVar)." ".$objConfig->Get($SortOrderVar);
}
else
$order = " ORDER BY rel.Priority DESC";
if($objConfig->Get($CurrentPageVar)>0)
{
$objRelList->Page = $objConfig->Get($CurrentPageVar);
}
if($objConfig->Get($PerPageVar)>0)
{
$objListView->PerPage = $objConfig->Get($PerPageVar);
}
$sql .= $order." ".$objRelList->GetLimitSQL();
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo htmlentities($sql,ENT_NOQUOTES)."
\n";
$objRelList->Query_Item($sql);
/* ---------------------------------------- Configure the list view ---------------------------------------- */
$objListView = new clsListView($objListToolBar,$objRelList);
$objListView->IdField = "RelationshipId";
$objListView->ColumnHeaders->Add("ItemName",admin_language("la_ColHeader_Item"),1,0,$order,"width=\"30%\"",$SortFieldVar,$SortOrderVar,"ItemName");
$objListView->ColumnHeaders->Add("ItemType",admin_language("la_ColHeader_ItemType"),1,0,$order,"width=\"20%\"",$SortFieldVar,$SortOrderVar,"ItemType");
$objListView->ColumnHeaders->Add("RelationType",admin_language("la_prompt_RelationType"),1,0,$order,"width=\"10%\"",$SortFieldVar,$SortOrderVar,"RelationType");
$objListView->ColumnHeaders->Add("Status",admin_language("la_prompt_Status"),1,0,$order,"width=\"10%\"",$SortFieldVar,$SortOrderVar,"Status");
$objListView->ColumnHeaders->SetSort($objConfig->Get($SortFieldVar), $objConfig->Get($SortOrderVar));
$objListView->PrintToolBar = FALSE;
$objListView->SearchBar = TRUE;
$objListView->SearchKeywords = $SearchWords;
$objListView->SearchAction="m_rel_search";
$objListView->CurrentPageVar = $CurrentPageVar;
$objListView->PerPageVar = $PerPageVar;
$objListView->CheckboxName = "itemlist[]";
$objListView->ConfigureViewMenu($SortFieldVar,$SortOrderVar,$DefaultSortField,
$CurrentFilterVar,$RelView,$Rel_AllValue);
foreach($FilterLabels as $Bit=>$Label)
{
$objListView->AddViewMenuFilter($Label,$Bit);
}
for($i=0;$iItems);$i++)
{
$rel =& $objRelList->GetItemRefByIndex($i);
$objListView->RowIcons[] = $rel->Admin_Icon();
}
$objListToolBar->AddToInitScript("fwLoadMenus();\n");
$filter = false; // always initialize variables before use
if($objSession->GetVariable("CatRelSearchWord") != '') {
$filter = true;
}
else {
if ($RelView != $Rel_AllValue) {
$filter = true;
}
}
$h = "\n\n\n";
int_header($objListToolBar,NULL, $title,NULL,$h);
if ($objSession->GetVariable("HasChanges") == 1) {
?>