<?php header('Content-type: text/xml'); $newsite = (int) $this->request->parameters['site']; $action = $this->request->parameters['action']; $node_id = $this->request->parameters['nid']; if ($node_id) { $node_id = str_replace('page_', '', $node_id); } $maxlevels = 1; // Check if we need special handling for the root-nodes if ($action == 'copy' || $action == 'move') { $root_link = 'javascript:void(0);'; } $siteMgr = new Sites(); $sites = $siteMgr->getList(); if ($newsite != 0) { $siteID = $newsite; } if ($newsite != 0) { $siteID = $newsite; foreach ($sites as $currSite) { if ($siteID == $currSite['PNAME']) { $sitePNAME = $currSite['PNAME']; } } $sitePNAME = ''; } else { $siteID = $sites[0]['ID']; $sitePNAME = $sites[0]['PNAME']; }
$roleid = $roleid[0]; $isRORole = false; // Check if role is rootrole $rootGroupId = (int) sConfig()->getVar("CONFIG/SYSTEMUSERS/ROOTGROUPID"); $anonGroupId = (int) sConfig()->getVar("CONFIG/SYSTEMUSERS/ANONGROUPID"); if ($rootGroupId == $roleid) { $isRORole = true; } $maxlevels = 3; switch (strtolower($this->page)) { case 'tab_usergroup_pages': case 'tab_usergroup_pages_inner': $icons = new Icons(); $objecttype = 'pages'; $siteMgr = new Sites(); $sites = $siteMgr->getList(true); $siteID = $this->request->parameters['site']; if (!$siteID) { $siteID = $sites[0]['ID']; } foreach ($sites as $sites_item) { if ($sites_item['ID'] == $siteID) { $sitename = $sites_item['NAME']; } } if ($siteID) { $pageMgr = new PageMgr($siteID); $objects = $pageMgr->getList(0, array(), $maxlevels, $roleid); $objects = $pageMgr->getAdditionalTreeInfo(false, $objects); foreach ($objects as $objectIndex => $object_item) { $iconData = getIconForPage($object_item);
$templatePreview = $templateInfo['PREVIEWPATH']; } $koala->callJSFunction('Koala.windows[\'wid_' . $parentwindow . '\'].refreshSiteTemplate', $templateInfo['NAME'], $templateInfo['FILENAME'], $template, $templatePreview); } break; case 'saveSiteInfo': $wid = $this->params['wid']; $objectID = $this->params['objectID']; $name = $this->params['site_name']; $pname = $this->params['site_pname']; $pname = $siteMgr->filterPName($pname); $favicon = $this->params['site_favicon']; $defaulttemplate = $this->params['site_defaulttemplate']; $templateroot = $this->params['site_templateroot']; // Check if PNAME is already used or in blacklist $siteList = $siteMgr->getList(); $siteBlackList = explode(',', (string) sConfig()->getVar("CONFIG/RESERVED_SITENAMES")); $isError = false; $errorType = null; foreach ($siteList as $siteListItem) { if ($pname != '' && $siteListItem['PNAME'] == $pname && $objectID != $siteListItem['ID']) { $isError = true; $errorType = 1; $koala->queueScript("if (\$('" . $wid . "_site_pname')) \$('" . $wid . "_site_pname').addClassName('error');"); } } foreach ($siteBlackList as $siteBlackListItem) { if ($pname != '' && strtolower($siteBlackListItem) == strtolower($pname)) { $isError = true; $errorType = 2; $koala->queueScript("if (\$('" . $wid . "_site_pname')) \$('" . $wid . "_site_pname').addClassName('error');");
<?php $prefix = '/'; $special_url = substr($this->request->parameters['special_url'], count($prefix)); $special_url = resolveSpecialURL($special_url); if ($special_url !== false) { $smarty->assign("presetURL", $special_url); } else { $smarty->assign("presetURL", trim(prettifyUrl($this->request->parameters['special_url']))); } $siteMgr = new Sites(); // Check if coming from Contenteditor if (substr($this->request->parameters['opener_reference'], 0, 8) == 'textarea') { $smarty->assign("fromContentEditor", true); } $smarty->assign("action", $this->request->parameters['action']); $smarty->assign("opener_reference", $this->request->parameters['opener_reference']); $smarty->assign("win_no", $this->request->parameters['win_no']); $smarty->assign("sites", $siteMgr->getList()); $smarty->assign("site", $this->request->parameters['site']); $smarty->display('file:' . $this->page_template);
/** * Gets all published Pages linked to this Cblock * * @param bool $onlyPublished TRUE if only published Pageversions should be returned (optional) * @return array|false Array of linked Pages or FALSE in case of an error */ function getLinkedPages($onlyPublished = false) { $cbId = $this->_id; if ($this->permissions->checkInternal($this->_uid, $cbId, "RREAD")) { $siteMgr = new Sites(); $sites = $siteMgr->getList(); $a = 0; for ($i = 0; $i < count($sites); $i++) { $linkedtosite = $this->getLinkedPageVersions($sites[$i]['ID'], true); if (count($linkedtosite) > 0) { for ($x = 0; $x < count($linkedtosite); $x++) { $linkpageid = $linkedtosite[$x]['ID']; $PageMgr = new PageMgr($sites[$i]['ID']); $linkpageparents = $PageMgr->getParents($linkpageid); $p = $PageMgr->getPage($linkpageid); $pageversions = $p->getVersionsByCblockId($cbId); $linkedPageInfo = $p->get(); $linkedpages[$a]['SITEID'] = $sites[$i]['ID']; $linkedpages[$a]['SITENAME'] = $sites[$i]['NAME']; $linkedpages[$a]['PAGEID'] = $linkpageid; $linkedpages[$a]['PAGENAME'] = $linkedPageInfo['NAME']; $linkedpages[$a]['HASCHANGED'] = $linkedtosite[$x]['HASCHANGED']; $linkedpages[$a]['PARENTS'] = $linkpageparents; if ($onlyPublished) { $tmpVersion = $p->getPublishedVersion(true); $linkedpages[$a]['VERSION'] = $tmpVersion; $linkedInPublishedVersion = false; foreach ($pageversions as $pageversionsItem) { if ($pageversionsItem['VERSION'] == $tmpVersion) { $linkedInPublishedVersion = true; } } if (!$linkedInPublishedVersion) { unset($linkedpages[$a]); } else { $a++; } } else { $linkedpages[$a]['VERSIONS'] = $pageversions; $a++; } } } } return $linkedpages; } else { return false; } }
/** * Removes a Cblock from the Trash * * @param int $cbId Cblock Id * * @return array Array with all elements which were successfully removed */ function remove($cbId) { $cbId = $origCbId = (int) $cbId; $rootNode = $this->tree->getRoot(); if ($cbId == $rootNode) { return array(); } // Get folder for embedded cblocks $embeddedCblockFolder = (int) sConfig()->getVar("CONFIG/EMBEDDED_CBLOCKFOLDER"); // Get all nodes $hadError = false; $allNodes = $this->tree->get($cbId, 1000); foreach ($allNodes as $allNodesItem) { $cbId = $allNodesItem['ID']; // Check if object is really in trash $cb = $this->getCblock($cbId); $cblockInfo = $cb->get(); if ($cbId != $embeddedCblockFolder && $cb->permissions->checkInternal($this->_uid, $cbId, "RDELETE") && $cblockInfo['DELETED']) { $lc = $cb->getEntrymasks(); $sql = "DELETE FROM yg_contentblocks_properties WHERE OBJECTID = ?;"; $result = sYDB()->Execute($sql, $cbId); if ($result === false) { throw new Exception(sYDB()->ErrorMsg()); } $s = new Sites(); $sites = $s->getList(); for ($i = 0; $i < count($sites); $i++) { $this->removeAllPageLinks($cbId, $sites[$i]["ID"]); } for ($i = 0; $i < count($lc); $i++) { $lnkid = $lc[$i]["LINKID"]; $sql = "DELETE FROM yg_contentblocks_lnk_entrymasks WHERE ID = ?;"; $result = sYDB()->Execute($sql, $lnkid); if ($result === false) { throw new Exception(sYDB()->ErrorMsg()); } $sql = "DELETE FROM yg_contentblocks_lnk_entrymasks_c WHERE LNK = ?;"; $result = sYDB()->Execute($sql, $lnkid); if ($result === false) { throw new Exception(sYDB()->ErrorMsg()); } } $cb->history->clear(); $cb->tags->clear(); $cb->permissions->clear(); $this->callExtensionHook("onRemove", $cbId, 0, $cblockInfo); } else { $hadError = true; } } if ($hadError) { return array(); } else { $this->tree->remove($origCbId); return array($origCbId); } }
public function list2Action() { $list = Sites::getList(); $this->view->disable(); echo json_encode(array("data" => $list->toArray())); }
/** * Gets all Comments * * @param array $filterArray Filter array * @param string $filterLimit Filter limit * @return array Array of Comments */ function getAllComments($filterArray, $filterLimit) { if ($filterArray) { $filterSelect = $filterFrom = $filterWhere = $filterLimit = $filterOrder = $filterHaving = ''; buildBackendFilter('CommentsFilterCB', $filterArray, $filterSelect, $filterFrom, $filterWhere, $filterLimit, $filterOrder, $filterHaving); } if ($filterLimit) { $filterLimit = "LIMIT " . $filterLimit; } if ($filterHaving) { $filterHaving = "AND " . $filterHaving; } $filterOrder = 'DESC'; $siteMgr = new Sites(); $allSites = $siteMgr->getList(); $sitesIfExpressionSQL = ''; $sitesIfExpressionSQL2 = ''; $sitesJoinExpressionSQL = ''; $sitesIDCoalesceSQL = ''; $sitesNAMECoalesceSQL = ''; $sitesRREADCoalesceSQL = ''; $sitesRMODERATECoalesceSQL = ''; $sitesRCOMMENTCoalesceSQL = ''; $sitesUSERGROUPIDCoalesceSQL = ''; $sitesUSERGROUPIDHavingSQL = ''; $currUser = new User($this->_uid); $roles = $currUser->getUsergroups(); foreach ($allSites as $site) { $sitesIfExpressionSQL .= "\n\t\t\t\tIF(yg_site_" . $site['ID'] . "_tree.id IS NOT NULL, 'PAGE', "; $sitesIfExpressionSQL2 .= "\n\t\t\t\tIF(yg_site_" . $site['ID'] . "_tree.id IS NOT NULL, '" . $site['ID'] . "', "; $sitesJoinExpressionSQL .= "\n\t\t\t\tLEFT JOIN yg_comments_lnk_pages_" . $site['ID'] . "\n\t\t\t\tON (c.id = yg_comments_lnk_pages_" . $site['ID'] . ".commentid)\n\t\t\t\tLEFT JOIN yg_site_" . $site['ID'] . "_tree\n\t\t\t\tON (yg_site_" . $site['ID'] . "_tree.id = yg_comments_lnk_pages_" . $site['ID'] . ".OID)\n\t\t\t\tLEFT JOIN yg_site_" . $site['ID'] . "_permissions\n\t\t\t\tON (yg_site_" . $site['ID'] . "_permissions.OID = yg_comments_lnk_pages_" . $site['ID'] . ".OID)\n\t\t\t\t"; $sitesIDCoalesceSQL .= ", yg_site_" . $site['ID'] . "_tree.ID"; $sitesNAMECoalesceSQL .= ", yg_site_" . $site['ID'] . "_tree.ID"; $sitesRREADCoalesceSQL .= ", (yg_site_" . $site['ID'] . "_permissions.RREAD)"; $sitesRMODERATECoalesceSQL .= ", (yg_site_" . $site['ID'] . "_permissions.RMODERATE)"; $sitesRCOMMENTCoalesceSQL .= ", (yg_site_" . $site['ID'] . "_permissions.RCOMMENT)"; $sitesUSERGROUPIDCoalesceSQL .= ", yg_site_" . $site['ID'] . "_permissions.USERGROUPID"; } $sitesUSERGROUPIDHavingSQL .= " AND ("; for ($r = 0; $r < count($roles); $r++) { $sitesUSERGROUPIDHavingSQL .= "(USERGROUPID = " . $roles[$r]["ID"] . ")"; if (count($roles) - $r > 1) { $sitesUSERGROUPIDHavingSQL .= " OR "; } } $sitesUSERGROUPIDHavingSQL .= ")"; $sitesIfExpressionSQL .= "NULL ))" . str_repeat(')', count($allSites)); $sitesIfExpressionSQL2 .= "NULL " . str_repeat(')', count($allSites)); $sql = "SELECT\n\t\t\tc.*,\n\t\t\tCOALESCE(yg_contentblocks_tree.PNAME, yg_files_tree.TITLE {$sitesNAMECoalesceSQL}) AS `NAME`,\n\t\t\tIF(yg_contentblocks_tree.id IS NOT NULL, 'CO',\n\t\t\tIF(yg_files_tree.id IS NOT NULL, 'FILE',\n\t\t\t{$sitesIfExpressionSQL} AS OBJECTTYPE,\n\t\t\tCOALESCE(yg_contentblocks_tree.ID, yg_files_tree.ID {$sitesIDCoalesceSQL}) AS `OBJECTID`,\n\t\t\t{$sitesIfExpressionSQL2} AS SITEID,\n\n\t\t\tCOALESCE((yg_contentblocks_permissions.RREAD), (yg_files_permissions.RREAD) {$sitesRREADCoalesceSQL}) AS `RREAD`,\n\t\t\tCOALESCE((yg_contentblocks_permissions.RMODERATE), (yg_files_permissions.RMODERATE) {$sitesRMODERATECoalesceSQL}) AS `RMODERATE`,\n\t\t\tCOALESCE((yg_contentblocks_permissions.RCOMMENT), (yg_files_permissions.RCOMMENT) {$sitesRCOMMENTCoalesceSQL}) AS `RCOMMENT`,\n\n\t\t\tCOALESCE(yg_contentblocks_permissions.USERGROUPID, yg_files_permissions.USERGROUPID {$sitesUSERGROUPIDCoalesceSQL}) AS `USERGROUPID`\n\t\t\tFROM\n\t\t\tyg_comments AS c\n\n\t\t\tLEFT JOIN yg_comments_lnk_cb\n\t\t\t\tON (c.id = yg_comments_lnk_cb.commentid)\n\t\t\tLEFT JOIN yg_contentblocks_tree\n\t\t\t\tON (yg_contentblocks_tree.id = yg_comments_lnk_cb.oid)\n\n\t\t\tLEFT JOIN yg_comments_lnk_files\n\t\t\t\tON (c.id = yg_comments_lnk_files.commentid)\n\t\t\tLEFT JOIN yg_files_tree\n\t\t\t\tON (yg_files_tree.id = yg_comments_lnk_files.oid)\n\n\t\t\tLEFT JOIN yg_contentblocks_permissions\n\t\t\t\tON (yg_contentblocks_permissions.OID = yg_comments_lnk_cb.OID)\n\t\t\tLEFT JOIN yg_files_permissions\n\t\t\t\tON (yg_files_permissions.OID = yg_comments_lnk_files.OID)\n\n\t\t\t{$sitesJoinExpressionSQL}\n\t\t\tWHERE\n\t\t\t\t(1)\n\t\t\t{$filterWhere}\n\t\t\tGROUP BY\n\t\t\t\tc.ID\n\t\t\tHAVING\n\t\t\t\t(RREAD > 0)\n\t\t\t{$sitesUSERGROUPIDHavingSQL}\n\t\t\t{$filterHaving}\n\t\t\tORDER BY\n\t\t\tc.CREATEDTS {$filterOrder} {$filterLimit};"; $resultarray = $this->cacheExecuteGetArray($sql); if ($resultarray === false) { return ERROR_COMMENTS_UNKNOWN; } return $resultarray; }