Example #1
0
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') {
    $aliasText = issetOrBlank($_POST['alias']);
    $pointer = issetOrBlank($_POST['pointer']);
    //echo "Alias: ".$alias.", pointer: ".$pointer;
    if ($aliasText != "" && $pointer != "") {
        //we can add them if the alias doesn't already exist.
        if (!startsWith($aliasText, "/")) {
            $aliasText = "/" . $aliasText;
        }
        $alias = new Alias($conn);
        $alias->setAlias($aliasText);
        //must start with '/'
        $numAliases = sizeof($alias->getObjectsLikeThis());
        $alias->setType("url");
        $alias->setPointer($pointer);
        if ($alias->getAlias() != "/" && $numAliases == 0 && $alias->save() > 0) {
            echo '<h1>Alias created OK!</h1>';
            echo $alias->getAlias() . " will now point to: " . $pointer;
        } else {
            if ($numAliases > 0) {
                echo '<p>The Alias: ' . $alias->getAlias() . ' already exists</p>';
            } else {
                if ($alias->getAlias() == "/") {
                    echo '<p>Alias cannot be saved as /</p>';
                    //shouldnt occur
                } else {
                    echo '<p>Couldnt save...</p>';
                }
            }
        }
    }
Example #2
0
 public function testAlias()
 {
     $alias = new Alias('test', 't');
     $this->assertEquals('test', $alias->getName());
     $this->assertEquals('t', $alias->getAlias());
 }
Example #3
0
 menubar();
 $aliasText = issetOrBlank($_POST['alias']);
 $pointer = issetOrBlank($_POST['pointer']);
 if ($aliasText != "" && $pointer != "") {
     //we can add them if the alias doesn't already exist.
     if (!startsWith($aliasText, "/")) {
         $aliasText = "/" . $aliasText;
     }
     $alias = new Alias($conn);
     $alias->setAlias($aliasText);
     //must start with '/'
     $numAliases = sizeof($alias->getObjectsLikeThis());
     if ($numAliases != 0) {
         //is this because we only updated the pointer, or because it actually already exists?
         //simple check, if the hash with the new aliasText is the same as the old, it's just an update
         if ($key == hash('md5', KEY . $alias->getAlias())) {
             $numAliases = 0;
         }
     }
     $alias->setPointer($pointer);
     $alias->setId($aliasID);
     if ($alias->getAlias() != "/" && $numAliases == 0 && $alias->save() > 0) {
         echo '<h1>Alias Saved OK!</h1>';
         if ($alias->getType() != "url") {
             echo $alias->getAlias() . " will point to file ID: " . $pointer;
         } else {
             echo $alias->getAlias() . " will point to: " . $pointer;
         }
     } else {
         if ($numAliases > 0) {
             echo '<p>The Alias: ' . $alias->getAlias() . ' already exists</p>';
Example #4
0
 }
 if (issetOrBlank($_POST['file-alias']) != "") {
     $alias = new Alias($conn);
     $fileAlias = issetOrBlank($_POST['file-alias']);
     if (!startsWith($fileAlias, "/")) {
         $fileAlias = "/" . $fileAlias;
     }
     $alias->setAlias($fileAlias);
     //must start with '/'
     //check if alias already exists first
     //pa( $alias->getObjectsLikeThis() );
     //echo sizeof( $alias->getObjectsLikeThis() );
     $numAliases = sizeof($alias->getObjectsLikeThis());
     $alias->setPointer($file->getId());
     $alias->setType("file");
     if ($alias->getAlias() != "/" && $numAliases == 0 && $alias->save() > 0) {
         echo '<h1>Alias created OK!</h1>';
         $file->setAliasID($alias->getId());
         if ($file->save() > 0) {
             echo '<p>File Updated</p>';
         }
     } else {
         if ($numAliases > 0) {
             echo '<p>The Alias: ' . $alias->getAlias() . ' already exists</p>';
         } else {
             if ($alias->getAlias() == "/") {
                 echo '<p>Alias cannot be saved as /</p>';
                 //shouldnt occur
             } else {
                 echo '<p>Couldnt save...</p>';
             }
Example #5
0
 /**
  * Clean data method
  * 
  * @param array $data
  * @return array $data 
  */
 protected function _cleanData($data)
 {
     // handle if we are saving a page automatically and only have the alias
     if (!empty($data['Alias']['name']) && empty($data['WebpageMenuItem']['item_url'])) {
         $data['WebpageMenuItem']['item_url'] = '/' . $data['Alias']['name'];
     }
     // handle beforeSave() type data
     if (empty($data['WebpageMenuItem']['parent_id']) && !empty($data['WebpageMenuItem']['menu_id'])) {
         $data['WebpageMenuItem']['parent_id'] = $data['WebpageMenuItem']['menu_id'];
     }
     // handle save() type data
     if (empty($data['parent_id']) && !empty($data['menu_id'])) {
         $data['parent_id'] = $data['menu_id'];
     }
     // handle beforeSave() type data
     if (empty($data['WebpageMenuItem']['name']) && !empty($data['WebpageMenuItem']['item_text'])) {
         $data['WebpageMenuItem']['name'] = $data['WebpageMenuItem']['item_text'];
     }
     // handle save() type data
     if (empty($data['name']) && !empty($data['item_text'])) {
         $data['name'] = $data['item_text'];
     }
     // put data in, to create a check data for whether to create page or not()
     // it is in the cleanData function because we add some data to the save depending on creation of a page
     // make sure this gets fired last after all other $data updates
     if (!empty($data['WebpageMenuItem']['item_url']) && strpos($data['WebpageMenuItem']['item_url'], 'http') !== 0) {
         // if link_url starts with http do nothing
     } elseif ($data['WebpageMenuItem']['page_type'] == 'content' || $data['WebpageMenuItem']['page_type'] == 'section' || $data['WebpageMenuItem']['page_type'] == 'plugin') {
         // NOTE : don't change this if above, if you do installing a new site fails
         App::uses('Alias', 'Model');
         $Alias = new Alias();
         // else see if the page already exists
         $url = strpos($data['WebpageMenuItem']['item_url'], '/') === 0 ? substr($data['WebpageMenuItem']['item_url'], 1) : $data['WebpageMenuItem']['item_url'];
         $urlAlias = $Alias->getAlias($url);
         $textAlias = $Alias->getAlias($data['WebpageMenuItem']['item_text']);
         if (!empty($urlAlias['old']) || !empty($textAlias['old'])) {
             // if it does we don't need create a page, just move on ignoring the rest
             $data['WebpageMenuItem']['item_url'] = !empty($data['WebpageMenuItem']['item_url']) ? $data['WebpageMenuItem']['item_url'] : '/' . $textAlias['old'];
         } elseif ($data['WebpageMenuItem']['page_type'] == 'content' || $data['WebpageMenuItem']['page_type'] == 'section') {
             // if not then create page (depending on page type)
             $this->set($data);
             if ($this->validates()) {
                 // map menu data to webpage data
                 $webpage['Alias']['name'] = empty($data['WebpageMenuItem']['item_url']) ? $Alias->getNewAlias($data['WebpageMenuItem']['item_text']) : null;
                 // if link_url is blank, set the link_url from the name (asciifyy)
                 $webpage['Webpage']['name'] = $data['WebpageMenuItem']['item_text'];
                 $webpage['Webpage']['title'] = $data['WebpageMenuItem']['item_text'];
                 App::uses('Webpage', 'Webpages.Model');
                 $Webpage = new Webpage();
                 $webpage = $Webpage->placeholder($webpage, array('create' => true, 'type' => $data['WebpageMenuItem']['page_type']));
                 unset($webpage['Webpage']);
                 // don't want returned data to save again
                 unset($webpage['Child']);
                 // don't want returned data to save again
                 unset($webpage['Alias']);
                 // don't want returned data to save again
                 $data = Set::merge($data, $webpage);
             } else {
                 // it isn't going to save anyway, it didn't validate so do nothing, data should be resubmitted
             }
         } elseif ($data['WebpageMenuItem']['page_type'] == 'plugin') {
             $plugin = ZuhaInflector::pluginize($data['WebpageMenuItem']['item_text']);
             App::uses($plugin . 'AppModel', $plugin . '.Model');
             $className = $plugin . 'AppModel';
             $Model = new $className();
             if (method_exists($Model, 'menuInit')) {
                 // see if the plugin model has a function to generate starting links (note : handle test data in the schema)
                 $data = $Model->menuInit($data);
             } else {
                 throw new Exception('Create the menuInit() method in the ' . $plugin . 'AppModel file.');
             }
         }
     }
     if (!empty($data['WebpageMenuItem']['parent_id']) && empty($data['WebpageMenuItem']['user_role_id'])) {
         $data['WebpageMenuItem']['user_role_id'] = $this->field('user_role_id', array($this->alias . '.id' => $data['WebpageMenuItem']['parent_id']));
     }
     if (!empty($data['ChildMenuItem'][0])) {
         for ($i = 0; $i < count($data['ChildMenuItem']); ++$i) {
             if (empty($data['ChildMenuItem'][$i]['user_role_id']) && !empty($data['WebpageMenuItem']['user_role_id'])) {
                 $data['ChildMenuItem'][$i]['user_role_id'] = $data['WebpageMenuItem']['user_role_id'];
             }
         }
     }
     return $data;
 }
Example #6
0
function parseAlias($intAliasId, $strCommand)
{
    global $_PATHS, $_CLEAN_POST, $_CONF, $objLang, $objLiveUser;
    $objTpl = new HTML_Template_IT($_PATHS['templates']);
    $objTpl->loadTemplatefile("alias.tpl.htm");
    $blnError = false;
    switch ($strCommand) {
        case CMD_LIST:
        case CMD_ADD:
        case CMD_EDIT:
            //*** Post the profile form if submitted.
            if (count($_CLEAN_POST) > 0 && !empty($_CLEAN_POST['dispatch']) && $_CLEAN_POST['dispatch'] == "editAlias") {
                //*** The element form has been posted.
                //*** Check sanitized input.
                if (is_null($_CLEAN_POST["frm_active"])) {
                    $blnError = true;
                }
                if (is_null($_CLEAN_POST["frm_alias"])) {
                    $blnError = true;
                }
                if (is_null($_CLEAN_POST["frm_language"])) {
                    $blnError = true;
                }
                if (is_null($_CLEAN_POST["frm_element"])) {
                    $blnError = true;
                }
                if (is_null($_CLEAN_POST["dispatch"])) {
                    $blnError = true;
                }
                if ($blnError === true) {
                    //*** Display global error.
                    $objTpl->setVariable("FORM_ACTIVE_VALUE", $_POST["frm_active"] == "on" ? "checked=\"checked\"" : "");
                    $objTpl->setVariable("FORM_ALIAS_VALUE", $_POST["frm_alias"]);
                    $objTpl->setVariable("ERROR_ALIAS_MAIN", $objLang->get("main", "formerror"));
                } else {
                    //*** Input is valid. Save the alias.
                    if ($strCommand == CMD_EDIT) {
                        $objAlias = Alias::selectByPK($intAliasId);
                    } else {
                        $objAlias = new Alias();
                    }
                    $objAlias->setAccountId($_CONF['app']['account']->getId());
                    $objAlias->setActive($_POST["frm_active"] == "on" ? 1 : 0);
                    $objAlias->setLanguageId(empty($_CLEAN_POST["frm_language"]) ? 0 : $_CLEAN_POST["frm_language"]);
                    $objAlias->setAlias($_CLEAN_POST["frm_alias"]);
                    $objAlias->setUrl($_CLEAN_POST["frm_element"]);
                    $objAlias->save();
                    header("Location: " . Request::getURI() . "/?cid=" . NAV_PCMS_ALIASES);
                    exit;
                }
            }
            //*** Initiate child element loop.
            $objAliases = Alias::selectSorted();
            $totalCount = 0;
            $listCount = 0;
            $intPosition = request("pos");
            $intPosition = !empty($intPosition) && is_numeric($intPosition) ? $intPosition : 0;
            $intPosition = floor($intPosition / $_SESSION["listCount"]) * $_SESSION["listCount"];
            //*** Find total count.
            foreach ($objAliases as $objAlias) {
                $strAlias = $objAlias->getAlias();
                if (!empty($strAlias)) {
                    $totalCount++;
                }
            }
            $objAliases->seek($intPosition);
            $objLanguages = ContentLanguage::select();
            foreach ($objAliases as $objAlias) {
                $strAlias = $objAlias->getAlias();
                if (!empty($strAlias)) {
                    $strUrl = $objAlias->getUrl();
                    if (is_numeric($strUrl)) {
                        $objElement = Element::selectByPk($strUrl);
                        if (is_object($objElement)) {
                            $strUrlHref = "?eid={$strUrl}&amp;cmd=" . CMD_EDIT . "&amp;cid=" . NAV_PCMS_ELEMENTS;
                            $strUrl = Element::recursivePath($strUrl);
                        } else {
                            $strUrlHref = "?cid=" . NAV_PCMS_ALIASES;
                            $strUrl = "<b>" . $objLang->get("aliasUnavailable", "label") . "</b>";
                        }
                    }
                    $objTpl->setCurrentBlock("multiview-item");
                    $objTpl->setVariable("MULTIITEM_VALUE", $objAlias->getId());
                    $objTpl->setVariable("BUTTON_REMOVE_HREF", "javascript:Alias.remove({$objAlias->getId()});");
                    $objTpl->setVariable("BUTTON_REMOVE", $objLang->get("delete", "button"));
                    $objTpl->setVariable("MULTIITEM_HREF", "?cid=" . NAV_PCMS_ALIASES . "&amp;eid={$objAlias->getId()}&amp;cmd=" . CMD_EDIT);
                    $objTpl->setVariable("MULTIITEM_TYPE_CLASS", "alias");
                    $objTpl->setVariable("MULTIITEM_ALIAS", $objAlias->getAlias());
                    $objTpl->setVariable("MULTIITEM_POINTS_TO", $objLang->get("pointsTo", "label"));
                    $objTpl->setVariable("MULTIITEM_URL", $strUrl);
                    $objTpl->setVariable("MULTIITEM_URL_HREF", $strUrlHref);
                    if ($objLanguages->count() > 1) {
                        if ($objAlias->getLanguageId() > 0) {
                            $strLanguage = ContentLanguage::selectByPK($objAlias->getLanguageId())->getName();
                            $objTpl->setVariable("MULTIITEM_LANGUAGE", sprintf($objLang->get("forLanguage", "label"), $strLanguage));
                        } else {
                            $objTpl->setVariable("MULTIITEM_LANGUAGE", $objLang->get("forAllLanguages", "label"));
                        }
                    } else {
                        $objTpl->setVariable("MULTIITEM_LANGUAGE", "");
                    }
                    if (!$objAlias->getActive()) {
                        $objTpl->setVariable("MULTIITEM_ACTIVE", " class=\"inactive\"");
                    }
                    $objTpl->parseCurrentBlock();
                    $listCount++;
                    if ($listCount >= $_SESSION["listCount"]) {
                        break;
                    }
                }
            }
            //*** Render page navigation.
            $pageCount = ceil($totalCount / $_SESSION["listCount"]);
            if ($pageCount > 0) {
                $currentPage = ceil(($intPosition + 1) / $_SESSION["listCount"]);
                $previousPos = $intPosition - $_SESSION["listCount"] > 0 ? $intPosition - $_SESSION["listCount"] : 0;
                $nextPos = $intPosition + $_SESSION["listCount"] < $totalCount ? $intPosition + $_SESSION["listCount"] : $intPosition;
                $objTpl->setVariable("PAGENAV_PAGE", sprintf($objLang->get("pageNavigation", "label"), $currentPage, $pageCount));
                $objTpl->setVariable("PAGENAV_PREVIOUS", $objLang->get("previous", "button"));
                $objTpl->setVariable("PAGENAV_PREVIOUS_HREF", "?cid=" . NAV_PCMS_ALIASES . "&amp;pos={$previousPos}");
                $objTpl->setVariable("PAGENAV_NEXT", $objLang->get("next", "button"));
                $objTpl->setVariable("PAGENAV_NEXT_HREF", "?cid=" . NAV_PCMS_ALIASES . "&amp;pos={$nextPos}");
                //*** Top page navigation.
                for ($intCount = 0; $intCount < $pageCount; $intCount++) {
                    $objTpl->setCurrentBlock("multiview-pagenavitem-top");
                    $position = $intCount * $_SESSION["listCount"];
                    if ($intCount != $intPosition / $_SESSION["listCount"]) {
                        $objTpl->setVariable("PAGENAV_HREF", "href=\"?cid=" . NAV_PCMS_ALIASES . "&amp;pos={$position}\"");
                    }
                    $objTpl->setVariable("PAGENAV_VALUE", $intCount + 1);
                    $objTpl->parseCurrentBlock();
                }
                //*** Bottom page navigation.
                for ($intCount = 0; $intCount < $pageCount; $intCount++) {
                    $objTpl->setCurrentBlock("multiview-pagenavitem-bottom");
                    $position = $intCount * $_SESSION["listCount"];
                    if ($intCount != $intPosition / $_SESSION["listCount"]) {
                        $objTpl->setVariable("PAGENAV_HREF", "href=\"?cid=" . NAV_PCMS_ALIASES . "&amp;pos={$position}\"");
                    }
                    $objTpl->setVariable("PAGENAV_VALUE", $intCount + 1);
                    $objTpl->parseCurrentBlock();
                }
            }
            //*** Render list action pulldown.
            $arrActions[$objLang->get("choose", "button")] = 0;
            $arrActions[$objLang->get("delete", "button")] = "delete";
            foreach ($arrActions as $key => $value) {
                $objTpl->setCurrentBlock("multiview-listactionitem");
                $objTpl->setVariable("LIST_ACTION_TEXT", $key);
                $objTpl->setVariable("LIST_ACTION_VALUE", $value);
                $objTpl->parseCurrentBlock();
            }
            $objTpl->setCurrentBlock("multiview");
            $objTpl->setVariable("ACTIONS_OPEN", $objLang->get("pcmsOpenActionsMenu", "menu"));
            $objTpl->setVariable("ACTIONS_CLOSE", $objLang->get("pcmsCloseActionsMenu", "menu"));
            $objTpl->setVariable("LIST_LENGTH_HREF_10", "href=\"?list=10&amp;cid=" . NAV_PCMS_ALIASES . "\"");
            $objTpl->setVariable("LIST_LENGTH_HREF_25", "href=\"?list=25&amp;cid=" . NAV_PCMS_ALIASES . "\"");
            $objTpl->setVariable("LIST_LENGTH_HREF_100", "href=\"?list=100&amp;cid=" . NAV_PCMS_ALIASES . "\"");
            switch ($_SESSION["listCount"]) {
                case 10:
                    $objTpl->setVariable("LIST_LENGTH_HREF_10", "");
                    break;
                case 25:
                    $objTpl->setVariable("LIST_LENGTH_HREF_25", "");
                    break;
                case 100:
                    $objTpl->setVariable("LIST_LENGTH_HREF_100", "");
                    break;
            }
            $objTpl->setVariable("LIST_LENGTH_HREF", "&amp;cid=" . NAV_PCMS_ALIASES);
            $objTpl->setVariable("LIST_WITH_SELECTED", $objLang->get("withSelected", "label"));
            $objTpl->setVariable("LIST_ACTION_ONCHANGE", "Alias.multiDo(this, this[this.selectedIndex].value)");
            $objTpl->setVariable("LIST_ITEMS_PER_PAGE", $objLang->get("itemsPerPage", "label"));
            $objTpl->setVariable("BUTTON_LIST_SELECT", $objLang->get("selectAll", "button"));
            $objTpl->setVariable("BUTTON_LIST_SELECT_HREF", "javascript:Alias.multiSelect()");
            $objTpl->parseCurrentBlock();
            //*** Form variables.
            $intActiveLanguage = 0;
            if ($strCommand == CMD_EDIT) {
                $objAlias = Alias::selectByPK($intAliasId);
                $intActiveLanguage = $objAlias->getLanguageId();
                $objTpl->setVariable("FORM_ACTIVE_VALUE", $objAlias->getActive() ? "checked=\"checked\"" : "");
                $objTpl->setVariable("FORM_ALIAS_VALUE", $objAlias->getAlias());
                $objTpl->setVariable("FORM_URL_VALUE", $objAlias->getUrl());
                $objTpl->setVariable("FRM_HEADER", $objLang->get("editAlias", "form"));
                $objTpl->setVariable("FRM_STYLE", "");
                $objTpl->setVariable("CMD", CMD_EDIT);
                $objTpl->touchBlock("alias.edit");
            } else {
                $objTpl->setVariable("FORM_ACTIVE_VALUE", "checked=\"checked\"");
                $objTpl->setVariable("FRM_HEADER", $objLang->get("addAlias", "form"));
                if (!$blnError) {
                    $objTpl->setVariable("FRM_STYLE", " style=\"display:none\"");
                }
                $objTpl->setVariable("CMD", CMD_ADD);
                $objTpl->touchBlock("alias.add");
            }
            //*** Languages.
            $objLanguages = ContentLanguage::select();
            foreach ($objLanguages as $objLanguage) {
                $objTpl->setCurrentBlock("language.item");
                $objTpl->setVariable("ID", $objLanguage->getId());
                $objTpl->setVariable("LABEL", $objLanguage->getName());
                $objTpl->setVariable("SELECTED", $intActiveLanguage == $objLanguage->getId() ? " selected=\"selected\"" : "");
                $objTpl->parseCurrentBlock();
            }
            $objTpl->setVariable("ALIASES", $objLang->get("aliases", "label"));
            $objTpl->setVariable("BUTTON_ADD", $objLang->get("aliasAdd", "button"));
            $objTpl->setVariable("FRM_LABEL_ACTIVE", $objLang->get("active", "form"));
            $objTpl->setVariable("FRM_LABEL_ALIAS", $objLang->get("alias", "form"));
            $objTpl->setVariable("FRM_DESCR_ALIAS", $objLang->get("alias", "tip"));
            $objTpl->setVariable("FRM_LABEL_LANGUAGE", $objLang->get("language", "form"));
            $objTpl->setVariable("FRM_DESCR_LANGUAGE", $objLang->get("language", "tip"));
            $objTpl->setVariable("FRM_LABEL_ALL_LANGUAGES", $objLang->get("allLanguages", "form"));
            $objTpl->setVariable("FRM_LABEL_URL", $objLang->get("element", "form"));
            $objTpl->setVariable("FRM_LABEL_SAVE", $objLang->get("save", "button"));
            $objTpl->setVariable("CID", NAV_PCMS_ALIASES);
            $objTpl->setVariable("EID", $intAliasId);
            $objTpl->parseCurrentBlock();
            $strReturn = $objTpl->get();
            break;
        case CMD_REMOVE:
            if (strpos($intAliasId, ',') !== false) {
                //*** Multiple elements submitted.
                $arrAliases = explode(',', $intAliasId);
                $objAliases = Alias::selectByPK($arrAliases);
                foreach ($objAliases as $objAlias) {
                    $objAlias->delete();
                }
            } else {
                //*** Single element submitted.
                $objAlias = Alias::selectByPK($intAliasId);
                $objAlias->delete();
            }
            //*** Redirect the page.
            $strReturnTo = request('returnTo');
            if (empty($strReturnTo)) {
                header("Location: " . Request::getUri() . "/?cid=" . request("cid") . "&cmd=" . CMD_LIST);
                exit;
            } else {
                header("Location: " . Request::getURI() . $strReturnTo);
                exit;
            }
            break;
    }
    return $strReturn;
}