492 Zeilen
		
	
	
		
			Kein EOL
		
	
	
		
			16 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			492 Zeilen
		
	
	
		
			Kein EOL
		
	
	
		
			16 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Project: 
 | 
						|
 * Contenido Content Management System
 | 
						|
 * 
 | 
						|
 * Description: 
 | 
						|
 * Module package specification, import, export
 | 
						|
 * 
 | 
						|
 * Requirements: 
 | 
						|
 * @con_php_req 5.0
 | 
						|
 * 
 | 
						|
 *
 | 
						|
 * @package    Contenido Backend includes
 | 
						|
 * @version    1.2.1
 | 
						|
 * @author     HerrB
 | 
						|
 * @copyright  four for business AG <www.4fb.de>
 | 
						|
 * @license    http://www.contenido.org/license/LIZENZ.txt
 | 
						|
 * @link       http://www.4fb.de
 | 
						|
 * @link       http://www.contenido.org
 | 
						|
 * @since      file available since contenido release <= 4.6
 | 
						|
 * 
 | 
						|
 * {@internal 
 | 
						|
 *   created unknown
 | 
						|
 *   modified 2008-06-27, Frederic Schneider, add security fix
 | 
						|
 *   modified 2008-06-27, OliverL fix import module translation bug, checkin timo.trautmann (http://forum.contenido.org/viewtopic.php?t=19064)
 | 
						|
 *   modified 2010-11-22, Dominik Ziegler, fixed check of directory existance [CON-354]
 | 
						|
 *
 | 
						|
 *   $Id: include.mod_package.php 417 2016-01-20 11:08:39Z oldperl $:
 | 
						|
 * }}
 | 
						|
 * 
 | 
						|
 */
 | 
						|
 | 
						|
if(!defined('CON_FRAMEWORK')) {
 | 
						|
	die('Illegal call');
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
cInclude("includes", "functions.upl.php");
 | 
						|
 | 
						|
$sNoti		= "";
 | 
						|
$idmod		= (int)$idmod;
 | 
						|
 | 
						|
function getFiles ($sPath, $sFileType, &$sNoti)
 | 
						|
{
 | 
						|
	global $notification, $client;
 | 
						|
	
 | 
						|
	$bError = false;
 | 
						|
	$aFiles = array();
 | 
						|
	switch ($sPath)
 | 
						|
	{
 | 
						|
		case "layouts":
 | 
						|
			$oLayouts = new cApiLayoutCollection;
 | 
						|
		    $oLayouts->setWhere("idclient", $client);
 | 
						|
		    $oLayouts->setOrder("name");
 | 
						|
		    $oLayouts->query();
 | 
						|
		    
 | 
						|
		    if ($oLayouts->count() > 0)
 | 
						|
		    {
 | 
						|
		    	while ($oLayout = $oLayouts->next())
 | 
						|
		    	{
 | 
						|
		    		$aFiles[$oLayout->get($oLayout->primaryKey)] = $oLayout->get("name");
 | 
						|
			    }
 | 
						|
	    	}    		
 | 
						|
		
 | 
						|
			break;
 | 
						|
		case "languages":
 | 
						|
			$oClientLangs = new cApiClientLanguageCollection;
 | 
						|
		    $oClientLangs->setWhere("idclient", $client);
 | 
						|
		    $oClientLangs->query();
 | 
						|
	    
 | 
						|
	    	$aLangs = array();
 | 
						|
	    	while ($oClientLang = $oClientLangs->next())
 | 
						|
	    	{
 | 
						|
	    		$aLangs[] = $oClientLang->get("idlang");
 | 
						|
	    	}
 | 
						|
	    
 | 
						|
	    	$oLangs = new cApiLanguageCollection;
 | 
						|
	    	$oLangs->setOrder("name");
 | 
						|
	    	$oLangs->query();
 | 
						|
	    
 | 
						|
		    if ($oLangs->count() > 0)
 | 
						|
		    {	    	
 | 
						|
			    while ($oLang = $oLangs->next())
 | 
						|
			    {
 | 
						|
			    	$iID = $oLang->get($oLang->primaryKey);
 | 
						|
			    	
 | 
						|
			    	if (in_array($iID, $aLangs))
 | 
						|
			    	{
 | 
						|
			    		$aFiles[] = array($iID, strtolower($oLang->get("name")).' ('.$iID.')' );  // Edit: 2008-06-27 By: OliverL
 | 
						|
			    	}
 | 
						|
			    }
 | 
						|
		    }
 | 
						|
			
 | 
						|
			break;
 | 
						|
		default:
 | 
						|
			// Real file
 | 
						|
			if (is_dir($sPath))
 | 
						|
			{
 | 
						|
				$iHandle = opendir($sPath);
 | 
						|
				$aFiles = array();
 | 
						|
				
 | 
						|
				while ($sFile = readdir($iHandle))
 | 
						|
				{
 | 
						|
					if ($sFile != "." && $sFile != ".." && substr($sFile, (strlen($sFile) - (strlen($sFileType) + 1)), (strlen($sFileType) + 1)) == ".$sFileType")
 | 
						|
					{
 | 
						|
						if (is_readable($sPath.$sFile))
 | 
						|
						{
 | 
						|
							$aFiles[$sFile] = $sFile;
 | 
						|
						} else {
 | 
						|
							$bError = true;
 | 
						|
		    				$sNoti .= $notification->returnNotification("error", $sFile." ".i18n("is not readable!")) . "<br /";
 | 
						|
		    			}
 | 
						|
					}
 | 
						|
				}
 | 
						|
				closedir($iHandle);
 | 
						|
				
 | 
						|
				if (count($aFiles) > 0)
 | 
						|
				{
 | 
						|
					asort($aFiles);
 | 
						|
				}
 | 
						|
			} else {
 | 
						|
				$bError = true;
 | 
						|
				$sNoti .= $notification->returnNotification("error", i18n("Directory is not existing or readable!")."<br/>$sPath")  . "<br /";	
 | 
						|
			}
 | 
						|
	}
 | 
						|
	if ($bError)
 | 
						|
	{
 | 
						|
		return array();
 | 
						|
	} else {
 | 
						|
		return $aFiles;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
function displayFiles ($aFiles, $aSelected, &$oForm, $sCaption, $sField, $sDisabled)
 | 
						|
{
 | 
						|
	// Display files
 | 
						|
	if (count($aFiles) == 0)
 | 
						|
	{
 | 
						|
		$oForm->add($sCaption, i18n("No elements available"));
 | 
						|
	} else {
 | 
						|
		$oSelFiles = new cHTMLSelectElement($sField."[]"); // []: Make sure, we are getting an array...
 | 
						|
		$oSelFiles->setSize(15);
 | 
						|
    	$oSelFiles->setStyle("width: 100%;");
 | 
						|
    	$oSelFiles->setMultiselect();
 | 
						|
		
 | 
						|
		if (count($aSelected) == 0)
 | 
						|
		{
 | 
						|
			$oCkbNone = new cHTMLCheckbox($sField . "None", "none", "", true);
 | 
						|
			$oSelFiles->setDisabled("disabled");
 | 
						|
		} else {
 | 
						|
			$oCkbNone = new cHTMLCheckbox($sField . "None", "none");
 | 
						|
			$oSelFiles->setDisabled($sDisabled);
 | 
						|
		}
 | 
						|
		$oCkbNone->setDisabled($sDisabled);
 | 
						|
		$oCkbNone->setEvent("click", "if (this.checked) { document.frmPackage.elements['" . $sField . "[]'].disabled = true; } else { document.frmPackage.elements['" . $sField . "[]'].disabled = false; }");
 | 
						|
		    			
 | 
						|
		$iCounter = 1;
 | 
						|
		foreach ($aFiles as $sID => $sFile)
 | 
						|
		{
 | 
						|
			if (is_array($sFile))   // Edit: 2008-06-27 By: OliverL
 | 
						|
			{
 | 
						|
				if (in_array($sFile[0], $aSelected))
 | 
						|
				{
 | 
						|
					$oOption = new cHTMLOptionElement(clHtmlSpecialChars($sFile[1]), $sFile[0], true);
 | 
						|
				} else {
 | 
						|
					$oOption = new cHTMLOptionElement(clHtmlSpecialChars($sFile[1]), $sFile[0]);
 | 
						|
				}
 | 
						|
			} else {
 | 
						|
				if (in_array($sID, $aSelected))
 | 
						|
				{
 | 
						|
					$oOption = new cHTMLOptionElement(clHtmlSpecialChars($sFile), $sID, true);
 | 
						|
				} else {
 | 
						|
					$oOption = new cHTMLOptionElement(clHtmlSpecialChars($sFile), $sID);
 | 
						|
				}
 | 
						|
			} // End-Edit
 | 
						|
			$oSelFiles->addOptionElement($iCounter, $oOption);
 | 
						|
			$iCounter++;
 | 
						|
		}
 | 
						|
		
 | 
						|
		$oForm->add($sCaption, $oCkbNone->toHTML(false) . " " . i18n("None") . "<br />" . $oSelFiles->render());
 | 
						|
	}
 | 
						|
}
 | 
						|
	
 | 
						|
if ($idmod > 0 && $perm->have_perm_area_action_item("mod_edit", "mod_edit", $idmod))
 | 
						|
{
 | 
						|
	// Specify available detail areas. Note, that everything is treated as "file", including layouts and
 | 
						|
	// translation languages.
 | 
						|
	$aFileTypes = array("jsfiles"  => 		array("suffix" => "js", 	"path" => $cfgClient[$client]["js"]["path"],  "caption" => i18n("Javascript files"), 		"field" => "selJSFiles"), 
 | 
						|
						"tplfiles" => 		array("suffix" => "html",	"path" => $cfgClient[$client]["tpl"]["path"], "caption" => i18n("Module template files"),	"field" => "selTplFiles"),
 | 
						|
						"cssfiles" => 		array("suffix" => "css", 	"path" => $cfgClient[$client]["css"]["path"], "caption" => i18n("Style files"), 			"field" => "selCSSFiles"),
 | 
						|
						"layouts" => 		array("suffix" => "", 		"path" => "layouts", 						  "caption" => i18n("Layouts"), 				"field" => "selLayouts"),
 | 
						|
						"translations" => 	array("suffix" => "", 		"path" => "languages", 						  "caption" => i18n("Translations"), 			"field" => "selLanguages"));
 | 
						|
	
 | 
						|
	$oModule = new cApiModule;
 | 
						|
	$oModule->loadByPrimaryKey($idmod);
 | 
						|
 | 
						|
	if ($action == "mod_importexport_package")
 | 
						|
	{
 | 
						|
		$sTmpPackageFile = $cfg['path']['conlite_temp'] . "package_" . md5($auth->auth["uid"]) . ".xml";
 | 
						|
		
 | 
						|
		switch ($mode)
 | 
						|
		{
 | 
						|
			case "export":
 | 
						|
		    	$sFileName = uplCreateFriendlyName($oModule->get("name") . "_package");
 | 
						|
	    		
 | 
						|
		    	if ($sFileName != "")
 | 
						|
	    		{
 | 
						|
	    			$oModule->exportPackage($sFileName . ".xml");
 | 
						|
	    		}
 | 
						|
	    		break;
 | 
						|
	    	case "import1":
 | 
						|
		    	if ($_FILES["upload"]["tmp_name"] != "") // file_exists() doesn't work with safe_mode/basedir
 | 
						|
		    	{
 | 
						|
		    		move_uploaded_file($_FILES["upload"]["tmp_name"], $sTmpPackageFile); 
 | 
						|
		    		
 | 
						|
		    		$oPage = new cPage;	
 | 
						|
	    			if (!$aResult = $oModule->getPackageOverview($sTmpPackageFile))
 | 
						|
	    			{
 | 
						|
	    				$sNoti .= sprintf(i18n("Error while importing XML file: %s"), $oModule->_error). "<br>";
 | 
						|
	    				
 | 
						|
	    				$oPage->setContent($sNoti);
 | 
						|
						$oPage->render();
 | 
						|
	    			} else {
 | 
						|
						$oForm = new UI_Table_Form("frmImportExport");
 | 
						|
						$oForm->setVar("area", "mod_package");
 | 
						|
						$oForm->setVar("frame", $frame);
 | 
						|
						$oForm->setVar("idmod", $idmod);
 | 
						|
						$oForm->setVar("action", "");
 | 
						|
						$oForm->setVar("mode", "import2");
 | 
						|
						$oForm->setVar("use_encoding", "false");
 | 
						|
						
 | 
						|
						$oForm->addHeader("Import/Export");
 | 
						|
						$oForm->setWidth("100%");
 | 
						|
						
 | 
						|
						$oForm->add(i18n("Name"), $aResult["name"]);
 | 
						|
 | 
						|
						$sMsg				= array();
 | 
						|
						$sMsg["Action"] 	= "%s " . i18n("Skip") . " %s " . i18n("Append") . " %s " . i18n("Overwrite");
 | 
						|
						$sMsg["OK"]			= i18n("OK");
 | 
						|
						$sMsg["Assign"]		= i18n("Assign");
 | 
						|
						$sMsg["Conflict"]	= i18n("Conflict");
 | 
						|
						$sMsg["Ignored"]	= i18n("Ignored");
 | 
						|
						$sMsg["- Select -"]	= i18n("- Select -");
 | 
						|
						
 | 
						|
						// Files
 | 
						|
						foreach ($aFileTypes as $sFileType => $aFileType)
 | 
						|
						{
 | 
						|
							$oLstFiles = new UI_List;
 | 
						|
							$oLstFiles->setWidth("100%");
 | 
						|
							$oLstFiles->setBorder(1);
 | 
						|
							
 | 
						|
							$oLstFiles->setCell(0, 1, "<strong>" . i18n("Status") . "</strong>");
 | 
						|
							$oLstFiles->setCell(0, 2, "<strong>" . i18n("Name") . "</strong>");
 | 
						|
							$oLstFiles->setCell(0, 3, "<strong>" . i18n("Action") . "</strong>");
 | 
						|
							$oLstFiles->setCellAlignment(0, 3, "right");
 | 
						|
							
 | 
						|
							$aDataFiles = getFiles($aFileType["path"], $aFileType["suffix"], $sNoti);
 | 
						|
							
 | 
						|
							$iCounter = 1;
 | 
						|
							if (is_array($aResult[$sFileType]))
 | 
						|
							{
 | 
						|
								foreach ($aResult[$sFileType] as $sFile)
 | 
						|
								{
 | 
						|
									$oLstFiles->setCell($iCounter, 1, clHtmlSpecialChars($sFile));
 | 
						|
									
 | 
						|
									switch ($aFileType["path"])
 | 
						|
									{
 | 
						|
										case "languages":
 | 
						|
											// Languages have to be assigned, they won't be added or something
 | 
						|
											if (is_array($aDataFiles))
 | 
						|
											{
 | 
						|
												$oSelLang = new cHTMLSelectElement("selAssignTrans[".clHtmlSpecialChars($sFile)."]");
 | 
						|
												// $oSelLang->autoFill(array_merge(array(0 => $sMsg["- Select -"]), $aDataFiles)); // Old Version
 | 
						|
												$oSelLang->autoFill(array_merge(array(array(0 , $sMsg["- Select -"])), $aDataFiles));  // Edit: 2008-06-27 By: OliverL
 | 
						|
												
 | 
						|
												// Try to assign existing language
 | 
						|
												if (in_array($sFile, $aDataFiles))
 | 
						|
												{
 | 
						|
													$oSelLang->setDefault(array_search(strtolower($sFile), $aDataFiles));
 | 
						|
												}
 | 
						|
												
 | 
						|
												$oLstFiles->setCell($iCounter, 2, $sMsg["Assign"]);
 | 
						|
												$oLstFiles->setCell($iCounter, 3, $oSelLang->render());
 | 
						|
											} else {
 | 
						|
												$oLstFiles->setCell($iCounter, 2, $sMsg["Ignored"]);
 | 
						|
												$oLstFiles->setCell($iCounter, 3, "-");
 | 
						|
											}
 | 
						|
											break;
 | 
						|
										default:
 | 
						|
											if (is_array($aDataFiles) && in_array($sFile, $aDataFiles))
 | 
						|
											{
 | 
						|
												$oRadSkip 		= new cHTMLRadiobutton("radItem[".$sFileType."][".clHtmlSpecialChars($sFile)."]", "skip", "", true);
 | 
						|
												$oRadAppend 	= new cHTMLRadiobutton("radItem[".$sFileType."][".clHtmlSpecialChars($sFile)."]", "append");
 | 
						|
												$oRadOverwrite	= new cHTMLRadiobutton("radItem[".$sFileType."][".clHtmlSpecialChars($sFile)."]", "overwrite");
 | 
						|
												
 | 
						|
												$oLstFiles->setCell($iCounter, 2, $sMsg["Conflict"]);
 | 
						|
												$oLstFiles->setCell($iCounter, 3, sprintf($sMsg["Action"], $oRadSkip->toHTML(false), $oRadAppend->toHTML(false), $oRadOverwrite->toHTML(false)));
 | 
						|
											} else {
 | 
						|
												$oLstFiles->setCell($iCounter, 2, $sMsg["OK"]);
 | 
						|
												$oLstFiles->setCell($iCounter, 3, "-");
 | 
						|
											}
 | 
						|
									}
 | 
						|
									
 | 
						|
									$oLstFiles->setCellAlignment($iCounter, 3, "right");
 | 
						|
									$iCounter++;
 | 
						|
								}
 | 
						|
								
 | 
						|
								$oForm->add($aFileType["caption"], $oLstFiles->render());
 | 
						|
							}
 | 
						|
							
 | 
						|
							$oForm->setActionButton("cancel", $cfg['path']['contenido_fullhtml']."images/but_cancel.gif", i18n("Cancel"), "c");			    		
 | 
						|
			    			$oForm->setActionButton("submit", $cfg['path']['contenido_fullhtml']."images/but_ok.gif", i18n("Import"), "s", "mod_importexport_package");				
 | 
						|
						}
 | 
						|
						$oPage->setContent($sNoti.$oForm->render());
 | 
						|
						$oPage->render();	    				
 | 
						|
		    		}
 | 
						|
		    	}
 | 
						|
		    	break;
 | 
						|
		    case "import2":
 | 
						|
		    	if (file_exists($sTmpPackageFile))
 | 
						|
		    	{
 | 
						|
		    		$aOptions = array();
 | 
						|
		    		
 | 
						|
		    		if (is_array($_REQUEST["radItem"]))
 | 
						|
		    		{
 | 
						|
		    			$aOptions["items"] = $_REQUEST["radItem"];
 | 
						|
		    		} else {
 | 
						|
		    			$aOptions["items"] = array();
 | 
						|
		    		}
 | 
						|
		    				    		
 | 
						|
		    		if (is_array($_REQUEST["selAssignTrans"]))
 | 
						|
		    		{
 | 
						|
		    			foreach ($_REQUEST["selAssignTrans"] as $sPackageLang => $iAssignLang)
 | 
						|
		    			{
 | 
						|
		    				if ($iAssignLang > 0)
 | 
						|
		    				{
 | 
						|
								$aOptions["translations"][$sPackageLang] = $iAssignLang;
 | 
						|
		    				}
 | 
						|
		    			}
 | 
						|
		    		} else {
 | 
						|
		    			$aOptions["translations"] = array();
 | 
						|
		    		}
 | 
						|
		    		
 | 
						|
		    		$oPage = new cPage;
 | 
						|
		    		
 | 
						|
		    		$oForm = new UI_Table_Form("frmImportExport");
 | 
						|
		    		// See below for area
 | 
						|
		    		$oForm->setVar("frame", $frame);
 | 
						|
			    	$oForm->setVar("idmod", $idmod);
 | 
						|
			    	$oForm->setVar("action", "");
 | 
						|
						
 | 
						|
					$oForm->addHeader("Import/Export");
 | 
						|
					$oForm->setWidth("100%");
 | 
						|
 | 
						|
	    			if (!$oModule->importPackage($sTmpPackageFile, $aOptions))
 | 
						|
	    			{
 | 
						|
	    				$sNoti .= sprintf(i18n("Error while importing XML file: %s"), $oModule->_error). "<br>";
 | 
						|
	    				
 | 
						|
	    				$oForm->setVar("area", "mod_package");
 | 
						|
	    				
 | 
						|
	    				$oForm->add(i18n("Status"), i18n("Import was not succesful, please check data and try again"));
 | 
						|
	    				$oForm->setActionButton("submit", $cfg['path']['contenido_fullhtml']."images/but_ok.gif", i18n("Retry"), "s");	
 | 
						|
	    			} else {
 | 
						|
	    				$oForm->setVar("area", "mod_edit");
 | 
						|
	    				
 | 
						|
	    				$oForm->add(i18n("Status"), i18n("Import succesfully finished"));
 | 
						|
	    				$oForm->setActionButton("submit", $cfg['path']['contenido_fullhtml']."images/but_ok.gif", i18n("Finish"), "s");
 | 
						|
		    		}
 | 
						|
		    		
 | 
						|
		    		unlink($sTmpPackageFile);
 | 
						|
						
 | 
						|
					$oPage->setContent($sNoti.$oForm->render());
 | 
						|
		    		$oPage->setReload();
 | 
						|
		    		$oPage->render();
 | 
						|
		    	}
 | 
						|
		    	break;
 | 
						|
	    }
 | 
						|
	} else {
 | 
						|
		if ($action == "mod_edit")
 | 
						|
		{
 | 
						|
			$oModule->set("package_guid", stripslashes($_REQUEST["txtGUID"]));
 | 
						|
			
 | 
						|
			$aData = array();
 | 
						|
			foreach ($aFileTypes as $sFileType => $aFileType)
 | 
						|
			{
 | 
						|
				if (!isset($_REQUEST[$aFileType["field"]]) || isset($_REQUEST[$aFileType["field"] . "None"])) {
 | 
						|
					$aData[$sFileType] = array();
 | 
						|
				} else {
 | 
						|
					$aData[$sFileType] = $_REQUEST[$aFileType["field"]];
 | 
						|
				}
 | 
						|
			}
 | 
						|
						
 | 
						|
			$oModule->set("package_data", serialize($aData));
 | 
						|
			$oModule->store(true); // Store changes - without history or updating mod code in articles			
 | 
						|
		}
 | 
						|
 | 
						|
		$oInUse = new InUseCollection;
 | 
						|
		list($bInUse, $sMessage) = $oInUse->checkAndMark("idmod", $idmod, true, i18n("Module is in use by %s (%s)"), true, "main.php?area=$area&frame=$frame&idmod=$idmod");
 | 
						|
		unset ($oInUse);
 | 
						|
		
 | 
						|
		if ($bInUse == true)
 | 
						|
		{
 | 
						|
			$sMessage .= "<br>";
 | 
						|
			$sDisabled = 'disabled="disabled"';
 | 
						|
		} else {
 | 
						|
			$sDisabled = "";
 | 
						|
		}
 | 
						|
 | 
						|
		$oPage = new cPage;
 | 
						|
		$oForm = new UI_Table_Form("frmPackage");
 | 
						|
		$oForm->setVar("area", "mod_package");
 | 
						|
		$oForm->setVar("frame", $frame);
 | 
						|
		$oForm->setVar("idmod", $idmod);
 | 
						|
		
 | 
						|
		if (!$bInUse)
 | 
						|
    	{
 | 
						|
			$oForm->setVar("action", "mod_edit");
 | 
						|
    	}
 | 
						|
		$oForm->setWidth("100%");
 | 
						|
			    
 | 
						|
	   	$oForm->addHeader(i18n("Edit package"));
 | 
						|
	   	$oForm->add(i18n("Name"), $oModule->get("name"));
 | 
						|
	    
 | 
						|
	    // Get serialized data; ensure, that detail fields are arrays
 | 
						|
	    $aData = unserialize($oModule->get("package_data"));
 | 
						|
	    if (!is_array($aData))
 | 
						|
	    {
 | 
						|
	    	$aData = array();
 | 
						|
	    }
 | 
						|
	    foreach ($aFileTypes as $sFileType => $aFileType)
 | 
						|
	    {
 | 
						|
	    	if (!is_array($aData[$sFileType]))
 | 
						|
	    	{
 | 
						|
	    		$aData[$sFileType] = array();
 | 
						|
	    	}
 | 
						|
	    }
 | 
						|
	    
 | 
						|
	    // Module package GUID
 | 
						|
		$oTxtGUID = new cHTMLTextbox("txtGUID", $oModule->get("package_guid"), 64);
 | 
						|
		$oTxtGUID->setDisabled($sDisabled);
 | 
						|
		
 | 
						|
		$oForm->add(i18n("Package GUID"), $oTxtGUID->render());
 | 
						|
		
 | 
						|
		// Files
 | 
						|
		foreach ($aFileTypes as $sFileType => $aFileType)
 | 
						|
		{
 | 
						|
			$aFiles = getFiles($aFileType["path"], $aFileType["suffix"], $sNoti);
 | 
						|
			displayFiles($aFiles, $aData[$sFileType], $oForm, $aFileType["caption"], $aFileType["field"], $sDisabled);
 | 
						|
		}
 | 
						|
			    
 | 
						|
		$oRadImport = new cHTMLRadiobutton("mode", "import1");
 | 
						|
		$oRadExport = new cHTMLRadiobutton("mode", "export");
 | 
						|
	
 | 
						|
		$oRadImport->setLabelText(i18n("Import from file"));
 | 
						|
		$oRadExport->setLabelText(i18n("Export to file"));
 | 
						|
	        
 | 
						|
		$oRadImport->setEvent("click", "document.getElementById('vupload').style.display = '';");
 | 
						|
		$oRadExport->setEvent("click", "document.getElementById('vupload').style.display = 'none';");
 | 
						|
	
 | 
						|
		$oUpl = new cHTMLUpload("upload");
 | 
						|
		                
 | 
						|
		if ($oModule->get("input") != "" && $oModule->get("output") != "")
 | 
						|
		{
 | 
						|
			$oRadExport->setChecked("checked");
 | 
						|
		} else {
 | 
						|
			$oRadImport->setChecked("checked");
 | 
						|
		}
 | 
						|
		$oForm2 = new UI_Table_Form("frmImportExport");
 | 
						|
		$oForm2->setVar("action", "mod_importexport_package");
 | 
						|
		$oForm2->setVar("use_encoding", "false");
 | 
						|
		$oForm2->addHeader("Import/Export");
 | 
						|
		$oForm2->add(i18n("Mode"), array($oRadExport, "<br>", $oRadImport));
 | 
						|
		
 | 
						|
		if ($oModule->get("input") != "" && $oModule->get("output") != "")
 | 
						|
		{                
 | 
						|
			$oForm2->add(i18n("File"), $oUpl, "vupload", "display: none;");
 | 
						|
		} else {
 | 
						|
			$oForm2->add(i18n("File"), $oUpl, "vupload");
 | 
						|
		}
 | 
						|
		$oForm2->setVar("area",  $area);
 | 
						|
		$oForm2->setVar("frame", $frame);
 | 
						|
		$oForm2->setVar("idmod", $idmod);
 | 
						|
		$oForm2->custom["submit"]["accesskey"] = '';
 | 
						|
			
 | 
						|
		$oPage->setContent($sNoti.$sMessage.$oForm->render()."<br>".$oForm2->render());
 | 
						|
	    		
 | 
						|
		//$oPage->setSubnav("idmod=$idmod", "mod");
 | 
						|
		$oPage->render();
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
?>
 |