<?php
##############################################################
##In-portal													##
##############################################################
##					      In-portal							##
##					Intechnic Corporation					##
##			   All Rights Reserved, 1998-2002				##
##															##	
##	No portion of this code may be copied, reproduced or	##	
##	   otherwise redistributed without proper written		##
##	  consent of Intechnic Corporation.  Violation will		##
##	   result in revocation of the license and support		##
##	 privileges along maximum prosecution allowed by law.	##
##############################################################

// new startup: begin
define('REL_PATH', 'admin/users');
$relation_level = count( explode('/', REL_PATH) );
define('FULL_PATH', realpath(dirname(__FILE__) . str_repeat('/..', $relation_level) ) );
require_once FULL_PATH.'/kernel/startup.php';
// new startup: end

require_once ($pathtoroot.$admin."/include/elements.php");
require_once ($pathtoroot."kernel/admin/include/navmenu.php");
require_once($pathtoroot.$admin."/toolbar.php");
require_once($pathtoroot.$admin."/listview/listview.php");

$m = GetModuleArray();
foreach($m as $key => $value)
{
    $path = $pathtoroot.$value."admin/include/parser.php";
    if( file_exists($path) ) include_once($path);
}

unset($objEditItems);

$objEditItems = new clsUserManager();
$objEditItems->SourceTable = $objSession->GetEditTable("PortalUser");
$objEditItems->EnablePaging = FALSE;
//Multiedit init
$en = GetVar('en');
$objEditItems->Query_Item("SELECT * FROM ".$objEditItems->SourceTable);

$itemcount=$objEditItems->NumItems();
$c = $objEditItems->GetItemByIndex($en);

if (!isset($c->Data['PortalUserId'])) {
	$c = $objEditItems->GetItemByIndex(0);
}

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_item_list";

$envar = "env=" . BuildEnv() . "&en=$en";

$section = 'in-portal:edituser_items';
$sec = $objSections->GetSection($section);

$title = GetTitle("la_Text_User", "la_tab_ItemList", $c->Get('PortalUserId'), $c->Get('Login'));//admin_language("la_Text_Editing")." ".admin_language("la_Text_User")." '".$c->Get("Login")."' - ".admin_language("la_tab_Images");

$saveURL = $admin."/".$objSession->GetVariable('ReturnScript');

$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','".$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','".$saveURL."',2);","tool_cancel.gif");
if($itemcount == 1) $objListToolBar->Add("divider");

$objListToolBar->Set("section",$section);
$objListToolBar->Set("load_menu_func","");
$objListToolBar->Set("CheckClass","ImageChecks");

if ( isset($en_prev) || isset($en_next) )
{
  $url = $RootUrl.$admin."/users/adduser_items.php"; 
  $StatusField = "UserEditStatus";
  $form = "edituser";
  MultiEditButtons($objListToolBar,$en_next,$en_prev,$form,$StatusField,$url,$sec->Get("OnClick"),'','la_PrevUser','la_NextUser');  
  $objListToolBar->Add("divider");
}
  
$listImages = array();

$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);
$objListToolBar->AddToInitScript("fwLoadMenus();");

$filter = false; // always initialize variables before use
$ItemView = $objConfig->Get("UserItem_View");

$NumItems = 0;
$Item_AllValue = 1;
for($i=0;$i<$objItemTypes->NumItems(); $i++)
{      
	if($objItemTypes->Items[$i]->Get("PrimaryItem")=="1") {	
	  $Item_AllValue += pow(2,++$NumItems); 	  
	}
}

if(!is_numeric($ItemView))
{
    $ItemView = $Item_AllValue;
}

if ($ItemView != $Item_AllValue) {
	$filter = true;
}


//$title = admin_language("la_Text_Editing")." ".admin_language("la_Text_User")." '".$c->Get("Login")."' - ".admin_language("la_tab_ItemList");
int_header($objListToolBar,NULL, $title);
if ($objSession->GetVariable("HasChanges") == 1) {
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="toolbar">
  <tr>
    <td valign="top">
      <?php int_hint_red(admin_language("la_Warning_Save_Item")); ?>
    </td>
  </tr>
</table>
<?php } ?> 
<?php if ($filter) { ?>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="toolbar">
  <tr>
    <td valign="top">
      <?php int_hint_red(admin_language("la_Warning_Filter")); ?>
    </td>
  </tr>
</table>
<?php } ?> 
<form name="edituser" ID="edituser" action="<?php echo $_SERVER["PHP_SELF"]."?".$envar;?>" method=POST>
<table cellSpacing="0" cellPadding="2" width="100%" class="tableborder">
<tbody>
<?php

if( GetVar('lpn') )
{    
    $objSession->SetVariable("Page_Items",(int)$_GET["lpn"]);
    $page = (int)$_GET["lpn"];
}
else
{
  $page = $objSession->GetVariable("Page_Items");
}
$objItems = new clsMultiTypeList();
$table = $objSession->GetEditTable("UserItems"); //$objSession->GetSessionKey()."_UserItems";
$objItems->SourceTable = $table;

// ==== 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 = ut.ResourceId"; 
$sql_templates['ItemType'] = "IF(ut.ItemType = %s, '%s', %s)";

$sql = 	"SELECT TRIM(CONCAT(%s)) AS ItemName, %s AS ItemTypeStr, ut.ItemType as ItemType, ".
		'ut.ResourceId as ItemId FROM '.$table." ut %s ".
		'WHERE ut.PortalUserId = '.$c->Get("PortalUserId");
		

$sql_parts = Array();
$sql_parts['ItemType'] = "''";
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['ItemType'] = sprintf(	$sql_templates['ItemType'], 
										$sql_source[$module]['TargetType'], 
										admin_language($sql_source[$module]['ItemNamePhrase']),
										$sql_parts['ItemType']);
}

$sql = sprintf($sql, implode(', ',$sql_parts['ItemName']), $sql_parts['ItemType'], implode(' ',$sql_parts['TableJoin']));
// ==== build sql depending on modules installed: end ====

if(strlen($itemFilter))
    $sql .= " AND ($itemFilter)";

$countwhere = "PortalUserId=".$c->Get("PortalUserId");
if(strlen($itemFilter))
    $countwhere .= " AND ($itemFilter)";

$itemcount = TableCount($table,$countwhere,0);

if(strlen(trim($objConfig->Get("UserItem_LV_Sortfield"))))
{
    $order = " ORDER BY ". $objConfig->Get("UserItem_LV_Sortfield")." ".$objConfig->Get("UserItem_LV_Sortorder");
}
else
  $order = "";

if($objSession->HasSystemPermission("DEBUG.LIST"))
   echo htmlentities($sql,ENT_NOQUOTES)."<br>\n";

$objListView = new clsListView($objListToolBar);
$objListView->CurrentPageVar = "Page_Items";
$objListView->PerPageVar = "Perpage_Items";

$sql .= $order;

$objItems->Query_Item($sql, $objListView->GetLimitSQL() );


for($i=0;$i<count($objItems->Items);$i++)
{
  $item =& $objItems->GetItemRefByIndex($i);

  $n = $item->Get("ItemName");
  $type = $item->Get("ItemType");
  $url = $objItemTypes->GetTypeEditUrl($type);
  if(strlen($url))
  {
    $url .= "?env=".BuildEnv()."&newsession=1&item=".$item->Get("ItemId")."&return=".$admin."/users/adduser_items.php";
    $url = "<A TARGET=\"editwin\" HREF=\"".$url."\">$n</A>";
    $item->Set("ItemName",$url);
  }
} 

  $objListView->SetListItems($objItems);
  $objListView->IdField = "ResourceId";
  $order = $objConfig->Get("UserItem_LV_Sortfield");
  $SortOrder=0;
  if($objConfig->Get("UserItem_LV_Sortorder")=="asc")
     $SortOrder=1;

  $objListView->ColumnHeaders->Add("ItemName",admin_language("la_ColHeader_Item"),1,0,$order,"width=\"20%\"","UserItem_LV_Sortfield","UserItem_LV_Sortorder" ,"ItemName");
  $objListView->ColumnHeaders->Add("ItemTypeStr",admin_language("la_ColHeader_ItemType"),1,0,$order,"width=\"20%\"","UserItem_LV_Sortfield","UserItem_LV_Sortorder","ItemType");
  //$objListView->ColumnHeaders->Add("DateCreated",admin_language("la_prompt_CreatedOn"),1,0,$order,"width=\"20%\"","UserItem_LV_Sortfield","UserItem_LV_Sortorder","DateCreated");
 
  $objListView->ColumnHeaders->SetSort($objConfig->Get("UserItem_LV_Sortfield"), $objConfig->Get("UserItem_LV_Sortorder"));

  $objListView->PrintToolBar = FALSE;
  $objListView->checkboxes = FALSE;
  $objListView->CheckboxName = "";  
  $objListView->TotalItemCount = $itemcount;


/*  for($i=0;$i<count($objImageList->Items);$i++)
  {
    $img =& $objImageList->GetItemRefByIndex($i);
    $objListView->RowIcons[] = $img->Get("Icon");
  }
*/
  //$objListView->SliceItems();
  print $objListView->PrintList();
  
?>
    <input TYPE="hidden" NAME="ResourceId" VALUE="<?php echo $c->Get("ResourceId"); ?>">
    <input type="hidden" name="Action" value="m_item_image">

</FORM>
<FORM NAME="save_edit_buttons" ID="save_edit_buttons" method="POST" ACTION="">
  <tr <?php int_table_color(); ?>> 
    <td colspan="5"> 
    <input type=hidden NAME="Action" VALUE="save_user_edit">
    <input type="hidden" name="UserEditStatus" VALUE="0">
 </td>
  </tr>
</FORM>
</TBODY>
</table>
<!-- CODE FOR VIEW MENU -->
<form ID="viewmenu" method="post" action="<?php echo $_SERVER["PHP_SELF"]."?".$envar; ?>" name="viewmenu">
<input type="hidden" name="fieldname" value="">
<input type="hidden" name="varvalue" value="">
<input type="hidden" name="varvalue2" value="">
<input type="hidden" name="Action" value="">
</form>
<script src="<?php echo $adminURL; ?>/listview/listview.js"></script>
<script>
//initSelectiorContainers()
</script>
<!-- END CODE-->
<?php int_footer(); ?>