function importLines($lines, $fields, $class_name, $parent) { $count = 0; foreach ($lines as $line) { $line = trim($line); if (empty($line)) continue; $array = explode(";", $line); $newobject = new mObject(); $newobject->setClassName($class_name); $newobject->loadVars(); $newobject->name = trim($array[$fields['name']]); $newobject->language = $_SESSION['murrix']['language']; $newobject->rights = $parent->getMeta("initial_rights", $parent->getRights()); $vars = $newobject->getVars(); foreach ($vars as $var) { if (!isset($fields[$var->name])) continue; $value = $array[$fields[$var->name]]; $newobject->setVarValue($var->name, $value); } if ($newobject->save()) { guessObjectType($newobject); clearNodeFileCache($parent->getNodeId()); $newobject->linkWithNode($parent->getNodeId()); $count++; } else { return mMsg::add("importLines", $object->getLastError(), true); } } return $count; }
function actionSave(&$system, $args) { $bError = false; if (empty($args['name'])) { $system->addAlert(ucf(i18n("please enter a name"))); $bError = true; } if (!(strpos($args['name'], "\\") === false) || !(strpos($args['name'], "/") === false) || !(strpos($args['name'], "+") === false)) { $system->addAlert(ucf(i18n("you can not use '\\', '/' or '+' in the name"))); $bError = true; } if (!$bError) { $object = new mObject($this->getNodeId($args)); if ($object->getNodeId() > 0) { if ($object->hasRight("write")) { $object->name = trim($args['name']); $object->icon = trim($args['icon']); $newlang = ($object->getLanguage() != trim($args['language'])); $object->language = trim($args['language']); $vars = $object->getVars(); foreach ($vars as $var) { $key = "v".$var->id; $value = (isset($args[$key]) ? $args[$key] : (isset($args[$var->id]) ? $args[$var->id] : "")); if (empty($value) && $var->getRequired() && $var->getType() != "boolean") { $system->addAlert(utf8e(ucf(str_replace("_", " ", i18n($var->getName(true))))." ".i18n("is a required field"))); return; } $object->setVarValue($var->name, $value); } if ($args['newversion'] == "on" || $newlang) $ret = $object->save(); else $ret = $object->saveCurrent(); if ($ret) { $system->addRedirect("exec=show&node_id=".$object->getNodeId()); clearNodeFileCache($object->getNodeId()); $links = $object->getLinks(); foreach ($links as $link) { if ($link['type'] == "sub") clearNodeFileCache($link['remote_id']); } } else { $message = "Operation unsuccessfull.<br/>"; $message .= "Error output:<br/>"; $message .= $object->getLastError(); $system->addAlert($message); } } } } }
function execute(&$system, $args) { $parent_id = $this->getNodeId($args); $parent = new mObject($parent_id); $class_name = ""; if (!empty($args['class_name'])) $class_name = $args['class_name']; if (empty($class_name)) $class_name = $parent->getMeta("default_class_name", "folder"); if ($parent->hasRight("create") || $parent->hasRight("comment") && $class_name == "comment") { if (isset($args['action']) && $args['action'] == "save") { if (!empty($class_name)) { $languages = explode(",", $args['languages']); $languages_tosave = array(); foreach ($languages as $language) { if (!empty($args[$language.'_name'])) { if (!(strpos($args[$language.'_name'], "\\") === false) || !(strpos($args[$language.'_name'], "/") === false) || !(strpos($args[$language.'_name'], "+") === false)) { $system->addAlert(ucf(i18n($language))." ".i18n("version").": ".ucf(i18n("you can not use '\\', '/' or '+' in the name"))); return; } $languages_tosave[] = $language; } } if (count($languages_tosave) == 0) { $system->addAlert(ucf(i18n("nothing to save"))); return; } $languages = $languages_tosave; $object = new mObject(); $object->setClassName($class_name); $object->loadVars(); $saved = false; foreach ($languages as $language) { $object->name = trim($args[$language.'_name']); $object->icon = trim($args[$language.'_icon']); $object->language = $language; $object->rights = $parent->getMeta("initial_rights", $parent->getRights()); $vars = $object->getVars(); foreach ($vars as $var) { $key = $language."_v".$var->id; $value = (isset($args[$key]) ? $args[$key] : ""); if (empty($value) && $var->getRequired() && $var->getType() != "boolean") { $system->addAlert(utf8e(ucf(i18n($language))." ".i18n("version").": ".ucf(str_replace("_", " ", i18n($var->getName(true))))." ".i18n("is a required field"))); return; } $object->setVarValue($var->name, $value); } if ($object->save()) { guessObjectType($object); $saved = true; } else { $message = "Operation unsuccessfull.<br/>"; $message .= "Error output:<br/>"; $message .= $object->getLastError(); $system->addAlert($message); return; } } if ($saved) { clearNodeFileCache($parent->getNodeId()); $object->linkWithNode($parent->getNodeId()); $system->addRedirect("exec=show&node_id=".$object->getNodeId()); } return; } } } $args['class_name'] = $class_name; $this->draw($system, $args); }
<? $newobject = new mObject(); $newobject->setClassName($args['class_name']); $newobject->loadVars(); $vars = $newobject->getVars(); $varlist = array(); $varlist[] = "ignore"; $varlist[] = "name"; foreach ($vars as $var) $varlist[] = $var->name; $line_parts = explode($args['delimiter'], $args['line']) ?> <form name="fImport" id="fImport" action="javascript:void(null);" onsubmit="Post('import','fImport');"> <div class="main"> <div class="container"> <input class="hidden" type="hidden" name="action" value="import_custom2"/> <input class="hidden" type="hidden" name="view" value="import"/> <input class="hidden" type="hidden" name="class_name" value="<?php echo $args['class_name']; ?> "/> <input class="hidden" type="hidden" name="file" value="<?php echo $args['file']; ?> "/> <input class="hidden" type="hidden" name="node_id" value="<?php echo $object->getNodeId();