function modify() { global $lll, $siteDemo, $allowedMethods; $found = FALSE; if ($siteDemo || !class_exists('rss')) { // It is disabled to save these attributes in the demo version: foreach (array("extraHead", "extraBody", "extraTopContent", "extraBottomContent", "extraFooter", "logoImage", "headerBackground") as $attr) { if (!empty($this->{$attr})) { $found = TRUE; $this->{$attr} = ""; } } } foreach (array("homeLocation", "redirectFirstLogin", "redirectLogin", "redirectAdminLogin") as $attr) { $ctrl = new AppController(); if ($this->{$attr}) { if (!$ctrl->init($this->{$attr}) || !isset($allowedMethods[$ctrl->method]) || !class_exists($ctrl->getClass())) { return Roll::setFormInvalid("invalidInternalLink", $this->{$attr}); } } } modify($this); $this->uploadImages(); if ($found) { Roll::setInfoText("This feature is not available in the Lite (and demo) version of the program!"); } }
function create() { if (!$this->cid || !class_exists("response")) { return; } // ha veletlenul $this->nextAction =& new AppController("field/sortfield_form/{$this->cid}"); ini_set("max_execution_time", 0); if ($this->deleteAll) { $this->deleteAll(); $label = "deleteAll"; } elseif ($this->cloneToSubcats) { $this->cloneToSubcats($this->getFields()); $label = "cloneToSubcats"; } elseif ($this->cloneToCats) { $this->cloneToCats($this->getFields()); $label = "cloneToCats"; } elseif ($this->cloneFromCat) { // visszavezetjuk az elozore: $this->cloneToCats = array($this->cid); $this->cloneToCats($this->getFields('cloneFromCat')); $label = "cloneFromCat"; } else { return; } Roll::setInfoText("fieldset_{$label}_successful"); }
function create() { global $gorumuser, $search_typ; // a search nem mukodik cookie-k nelkul: if (!isset($_COOKIE["globalUserId"])) { return; } // eloszor kitoroljuk, ha mar letezik: $this->uid = $gorumuser->id; executeQuery(array("DELETE FROM @search WHERE uid=#uid# AND name=''", $this->uid)); // TODO: valid $this->makeSearchQuery(); unset($search_typ["attributes"]["creationtime"]); //var_dump($this);die(); parent::create(); $this->nextAction =& new AppController($this->getManagedTable() . "_search/list"); Roll::setInfoText(""); }
function create() { global $siteDemo; ini_set("max_execution_time", 0); hasAdminRights($isAdm); if ($siteDemo) { Roll::setInfoText("Cloning is disabled in the site demo!"); } if (!$isAdm || $siteDemo) { return; } G::load($category, $this->cid, "appcategory"); if (empty($this->amount)) { $this->amount = 0; } $sortId = $category->sortId; for ($i = 1; $i <= $this->amount; $i++) { $category->name = sprintf($this->name, $i); $this->cloneCategory($category, $sortId + $i); } Roll::setInfoText("categoriesCloned"); //LocationHistory::rollBack(new AppController("cat/organize_form")); }
function delete() { global $gorumuser, $gorumroll, $gorumrecognised; hasAdminRights($isAdm); if (!empty($this->id)) { if ($isAdm) { delete($this); } // admin delete } else { $this->cid = $gorumroll->rollid; if (!empty($this->email)) { $this->unsub = TRUE; $this->subscribeAction(); } elseif ($this->uid) { delete($this, array("cid", "uid")); } elseif ($gorumrecognised) { $this->uid = $gorumuser->id; delete($this, array("cid", "uid")); } $this->rollBackNum = 1; Roll::setInfoText("unsubscribed"); } }
function beforeAction(&$base) { global $lll; if (isset($_POST["gsubmit"]) && $_POST["gsubmit"] == $lll["cancel"]) { Roll::setInfoText("operation_cancelled"); LocationHistory::saveInfoText(); LocationHistory::rollBack(2); } $base->hasObjectRights($hasRight, $this->method, TRUE); LocationHistory::savePost($base); }
function setInfoText($method) { global $lll, $infoText; if ($infoText) { return; } if (isset($lll[$this->get_class() . "_{$method}_completed"])) { Roll::setInfoText($this->get_class() . "_{$method}_completed"); } elseif (isset($lll[$this->get_class()]) && isset($lll["{$method}_completed"])) { Roll::setInfoText("{$method}_completed", $lll[$this->get_class()]); } }
function doUpdate() { global $gorumroll, $gorumuser, $noahsUpdateScript, $noahsHost; ini_set("max_execution_time", 0); hasAdminRights($isAdm); if (!$isAdm) { LocationHistory::rollBack(new AppController("/")); } $_GS = new GlobalStat(); if (!$_GS->reg) { $_GS->reg = md5(uniqid(rand(), true)); } $data = "id=" . $_GS->reg; $data .= "&version=" . urlencode($_GS->instver); if (isset($_POST["automatic"])) { if (($result = $this->getVersionInfo($noahsHost, "POST", $noahsUpdateScript, $data)) === FALSE) { Roll::setInfoText("unableToConnectNoah"); } else { $result = explode("Data-Start:", $result); eval($result[1]); if ($latestVersion != $_GS->instver) { $f = fopen("u.php", "w"); if (!$f) { Roll::setInfoText("updateFailed"); } else { fwrite($f, $updateFile); fclose($f); include_once NOAH_BASE . "/u.php"; } } } $this->nextAction =& new AppController("checkconf/updates"); } else { ob_start(); if (($fp = @fsockopen($noahsHost, 80, $errno, $errstr, 20)) === FALSE || $errno) { Roll::setInfoText("unableToConnectNoah"); $this->nextAction =& new AppController("checkconf/updates"); while (@ob_end_clean()) { } // clears all output buffers return; // unable to connect } $branch = $this->getBranch(); $source = "update-from-{$_GS->instver}-{$branch}." . (isset($_POST["manualZip"]) ? "zip" : "tgz"); $path = "/versioninfo/get_file.php"; $data .= "&file=" . urlencode($source); fputs($fp, "POST {$path} HTTP/1.1\r\n"); fputs($fp, "Host: {$noahsHost}\r\n"); fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); fputs($fp, "Content-length: " . strlen($data) . "\r\n"); fputs($fp, "Connection: close\r\n\r\n"); fputs($fp, $data); if (feof($fp) || ($size = $this->getChunkSize($fp)) <= 3) { Roll::setInfoText("downloadFileNotExists", $source); $this->nextAction =& new AppController("checkconf/updates"); while (@ob_end_clean()) { } // clears all output buffers return FALSE; // not exists } while (@ob_end_clean()) { } // clears all output buffers //filenames in IE containing dots will screw up the //filename unless we add this if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) { $source = preg_replace('/\\./', '%2e', $source, substr_count($source, '.') - 1); } // required for IE, otherwise Content-disposition is ignored if (ini_get('zlib.output_compression')) { ini_set('zlib.output_compression', 'Off'); } header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private", false); header("Content-Description: File Download"); header("Content-type: application/download"); header("Content-Disposition: attachment; filename=\"{$source}\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: {$size}"); while ($size > 0 && !feof($fp)) { $length = min(1024, $size); if ($buf = fgets($fp, $length)) { echo $buf; } else { break; } flush(); $size -= strlen($buf); } fclose($fp); die; } }
function recalculateAllItemNums($overridePermission = FALSE) { if (!$overridePermission) { hasAdminRights($isAdm); if (!$isAdm) { handleErrorPerm(__FILE__, __LINE__); } } $cats = new AppCategory(); $query = "SELECT * FROM @category WHERE up=0"; loadObjectsSql($cats, $query, $cats); foreach ($cats as $cat) { $cat->recalculateAllItemNumsCore(); } Roll::setInfoText("itemNumbersRecalculated"); $this->nextAction =& new AppController("/"); }
function deleteExpiredAds() { hasAdminRights($isAdm); if ($isAdm) { $count = deleteExpiredAds(); } Roll::setInfoText("{$count} expired ads have been deleted."); $this->nextAction =& new AppController("/"); }
function create_csv($fileName, &$list, &$ads, &$columns) { global $gorumroll; if (!($f = fopen($fileName, "w"))) { return Roll::setInfoText($lll["couldntOpenExportFile"]); } $owner = new User(); foreach ($ads as $ad) { $item = new FeedItem(); $item->descriptionHtmlSyndicated = TRUE; $item->title = $ad->getTitle(FALSE); $ctrl = $this->getLinkCtrl($item->title); $item->link = $ctrl->makeUrl(TRUE); $item->description = $ad->getDescription(FALSE); // without htmlspecialchars() $item->date = (int) $ad->creationtime->getTimestamp(); $item->additionalElements = array(); foreach ($columns as $column) { if (isset($ad->{$column->columnIndex})) { if ($column->userField) { $owner->{$column->userColumnIndex} = $ad->{$column->columnIndex}; $content = $owner->showListVal($column->userColumnIndex, "", TRUE); } else { $content = $ad->showListVal($column->columnIndex, "", TRUE); } $item->additionalElements[$column->showListVal("name")] = array("html" => $column->allowHtml || $column->type == customfield_url || $column->type == customfield_picture || $column->type == customfield_media || $column->columnIndex == "cName" || $column->userColumnIndex == "email", "content" => $content); } } $ufc->addItem($item); } $ufc->saveFeed($list->xmlType, $fileName, FALSE); }
function delete($includingRelatedCommonFields = TRUE) { if (load($this)) { return; } // ha mar nem letezik parent::delete(); if ($this->isCommon && $includingRelatedCommonFields) { // ha egy common fieldet torlunk, az osszes azonos nevut torolni kell: executeQuery("DELETE FROM @customfield WHERE columnIndex=#ci# AND cid!=#cid# AND isCommon=1", $this->columnIndex, $this->cid); CacheManager::resetAllCache(); } ItemSearch::deleteColumn($this); getDbCount($count, "SELECT COUNT(*) FROM @search WHERE uid=0"); if ($count) { Roll::setInfoText("checkCustomLists"); $this->nextAction =& new AppController("customlist/list"); } }
function getAncestors(&$base, &$ancestors, $rootId = 0, $withOwn = 0) { global $connectionLink; static $deep = 0; if ($deep == 0) { $ancestors = array(); } if (!isset($base->up)) { handleError("up not set in getAncestors!"); } $deep++; if ($deep > 10) { //too deep, may be error in structure!!! Roll::setInfoText("deep_struct"); $deep--; return deep_struct; } if ($withOwn != 0) { $ancestors[] = $base; } if ($base->up == 0 || $base->up == $rootId) { $deep--; return ok; } $className = $base->get_class(); $a = new $className(); $a->id = $base->up; $ret = $a->load(); if ($ret == not_found_in_db) { //up not found, we are on the top $deep--; Roll::setInfoText("no_father"); return no_father; } if ($ret != ok) { $deep--; return $ret; } $ancestors[] = $a; if ($a->up == 0 || $a->id == $rootId) { $deep--; return ok; } $ret = getAncestors($a, $ancestors, $rootId); $deep--; return $ret; }
function changeAdmStatus() { hasAdminRights($isAdm); if (!$isAdm) { handleErrorPerm(__FILE__, __LINE__); } load($this); $this->isAdm = $this->isAdm ? FALSE : TRUE; modify($this); Roll::setInfoText("admstatchanged"); }
function organizeForm() { global $gorumroll, $lll, $jQueryLib, $curvyCorners, $lll, $siteDemo, $paginateCategoryOrganizerFromNumberOfCats, $infoText; hasAdminRights($isAdm); if (!$isAdm) { handleErrorPerm(__FILE__, __LINE__); } if (!class_exists('rss')) { return; } $_S =& new AppSettings(); if ($gorumroll->rollid === "alternative" || $_S->alternativeOrganizer) { $this->organizeFormAlternative(); return; } JavaScript::addInclude(GORUM_JS_DIR . $jQueryLib); JavaScript::addInclude(GORUM_JS_DIR . "/jquery/interface/iutil.js"); JavaScript::addInclude(GORUM_JS_DIR . "/jquery/interface/idrag.js"); JavaScript::addInclude(GORUM_JS_DIR . "/jquery/interface/idrop.js"); JavaScript::addInclude(GORUM_JS_DIR . "/jquery/interface/isortables.js"); JavaScript::addInclude(GORUM_JS_DIR . "/jquery/inestedsortable.js"); JavaScript::addInclude(GORUM_JS_DIR . "/jquery/jquery.nestedsortablewidget.js"); JavaScript::addCss(CSS_DIR . "/nestedsortablewidget.css"); JavaScript::addCss(CSS_DIR . "/checkconf.css"); if (!empty($curvyCorners)) { if ($infoText && !$siteDemo) { Roll::setInfoText("useDragAndDrop"); } elseif ($siteDemo) { Roll::setInfoText("Use drag-and-drop to reorganize the categories!"); } } else { Roll::setInfoText(""); } if ($this->getCategoryCount() > $paginateCategoryOrganizerFromNumberOfCats) { $paginate = ", paginate: true, itemsPerPage: {$paginateCategoryOrganizerFromNumberOfCats}"; } else { $paginate = ""; } JavaScript::addOnload("\n \$('#organize_widget').NestedSortableWidget({\n loadUrl: '{$_SERVER['PHP_SELF']}',\n loadUrlParams: {list: 'appcategory', method: 'get_json_tree'},\n loadRequestType: 'POST',\n saveUrl: 'index.php',\n saveUrlParams: {list: 'appcategory', method: 'organize'},\n colsWidth: [200,80,80,100],\n padding: [4, 5, 4, 10],\n whiteMargin: 1,\n fadeOutHover: false,\n onLoad: function(){\n \$('.nsw-save-progress-wrap').eq(1).hide();\n },\n text: {\n saveButton: '{$lll['organizeSaveButton']}',\n saveMessage: '{$lll['organizeSaveMessage']}',\n saveError: '{$lll['organizeSaveError']}',\n nextPageDrop: '{$lll['organizeNextPageDrop']}',\n previousPageDrop: '{$lll['organizePreviousPageDrop']}',\n nextItems: '{$lll['organizeNextItems']}',\n previousItems: '{$lll['organizePreviousItems']}',\n loadError: '{$lll['organizeLoadError']}'\n }\n {$paginate}\n });\n "); }
function logout($noLocation = FALSE) { global $cookiePath, $gorumuser; if ($_COOKIE["globalUserId"]) { setcookie("globalUserId", "", Loginlib_ExpirationDate, $cookiePath); } if ($_COOKIE["sessionUserId"]) { setcookie("sessionUserId", "", 0, $cookiePath); } if ($_COOKIE["usrPassword"]) { setcookie("usrPassword", "", Loginlib_ExpirationDate, $cookiePath); } $_COOKIE["globalUserId"] = 0; $_COOKIE["sessionUserId"] = 0; $_COOKIE["usrPassword"] = 0; Roll::setInfoText("goodbye", $gorumuser->name); LocationHistory::saveInfoText(); $gorumuser->isAdm = FALSE; LocationHistory::rollBack(new AppController("/")); }
function modifyForm() { global $gorumroll, $customfield_typ; $this->id = $gorumroll->rollid; if (!Roll::isPreviousFormSubmitInvalid()) { if ($this->load()) { handleErrorNotFound($this, __FILE__, __LINE__); } } $this->hasObjectRights($hasRight, "modify", TRUE); $this->initializeMultipleSelectionFieldsAndDefaults(); JavaScript::addInclude(GORUM_JS_DIR . "/jquery/json.js"); JavaScript::addInclude(JS_DIR . "/propagate.js"); JavaScript::addOnload('$.noah.submitOptionValueModificationStack();'); if ($this->isFixField()) { $customfield_typ["attributes"]["values"][] = "form invisible"; } $this->generForm(); if ($this->isFixField()) { Roll::setInfoText("customfield_fixInfoText"); } }
function create() { global $gorumroll; $class = strstr($gorumroll->list, "user") ? "user" : "item"; $this->valid(); if (Roll::isFormInvalid()) { return; } if (!preg_match('/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$/i', $this->youremail) || !preg_match('/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$/i', $this->friendsemail)) { return Roll::setFormInvalid("invalidEmail"); } G::load($n, Notification_adToAFriend, "notification"); if ($n->active) { $obj = new $class(); $obj->id = $gorumroll->rollid; $obj->getEmailParams($params); $params["message"] = $this->mess; $params["name"] = $this->yourname; $sp = new SendingParameters(); $sp->to = $this->friendsemail; $sp->from = $this->youremail; $sp->replyTo = $this->youremail; $sp->replyToName = $this->yourname; $n->send($sp, $params); } //TODO: respnum increase Roll::setInfoText("mail_fr_sent_{$class}"); }