Пример #1
0
 public function actionCreate($location = null)
 {
     $project = new Project();
     $project->location_id = $location;
     $project->created_by_user_id = Yii::app()->user->id;
     $project->champs = array($project->created_by_user_id);
     if (!isset($_POST['Project'])) {
         $this->render('create', array('model' => $project));
         Yii::app()->end();
     }
     $project->attributes = $_POST['Project'];
     $project->slug = slugify($project->name);
     if (isset($_POST['ajax'])) {
         echo CActiveForm::validate($project, null, false);
         Yii::app()->end();
     }
     if (!$project->validate()) {
         $this->render('create', array('model' => $project));
         Yii::app()->end();
     }
     $feed = new Feed();
     $feed->followers = array($project->created_by_user_id);
     $feed->save();
     $project->feed_id = $feed->id;
     if (!$project->save()) {
         Yii::log('Project::save() failed. $errors = ' . print_r($project->getErrors(), true), 'error', 'app.project.create');
         $form->addError('save', 'Failed save the new project.');
         $this->render('create', array('model' => $project));
         $feed->delete();
         Yii::app()->end();
     }
     $this->renderText('window.parent.location = "' . $this->createUrl('view', array('id' => $project->id)) . '";');
 }
Пример #2
0
 /**
  * Performs the work of inserting or updating the row in the database.
  *
  * If the object is new, it inserts it; otherwise an update is performed.
  * All related objects are also updated in this method.
  *
  * @param      PropelPDO $con
  * @return     int The number of rows affected by this insert/update and any referring fk objects' save() operations.
  * @throws     PropelException
  * @see        save()
  */
 protected function doSave(PropelPDO $con)
 {
     $affectedRows = 0;
     // initialize var to track total num of affected rows
     if (!$this->alreadyInSave) {
         $this->alreadyInSave = true;
         // We call the save method on the following object(s) if they
         // were passed to this object by their coresponding set
         // method.  This object relates to these object(s) by a
         // foreign key reference.
         if ($this->aSite !== null) {
             if ($this->aSite->isModified() || $this->aSite->isNew()) {
                 $affectedRows += $this->aSite->save($con);
             }
             $this->setSite($this->aSite);
         }
         if ($this->aFeed !== null) {
             if ($this->aFeed->isModified() || $this->aFeed->isNew()) {
                 $affectedRows += $this->aFeed->save($con);
             }
             $this->setFeed($this->aFeed);
         }
         if ($this->isNew()) {
             $this->modifiedColumns[] = SitefeedPeer::ID;
         }
         // If this object has been modified, then save it to the database.
         if ($this->isModified()) {
             if ($this->isNew()) {
                 $pk = SitefeedPeer::doInsert($this, $con);
                 $affectedRows += 1;
                 // we are assuming that there is only 1 row per doInsert() which
                 // should always be true here (even though technically
                 // BasePeer::doInsert() can insert multiple rows).
                 $this->setId($pk);
                 //[IMV] update autoincrement primary key
                 $this->setNew(false);
             } else {
                 $affectedRows += SitefeedPeer::doUpdate($this, $con);
             }
             $this->resetModified();
             // [HL] After being saved an object is no longer 'modified'
         }
         $this->alreadyInSave = false;
     }
     return $affectedRows;
 }
Пример #3
0
 /**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new Location();
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Location'])) {
         $model->attributes = $_POST['Location'];
         if (null === $model->slug || '' === $model->slug) {
             $model->slug = slugify($model->name);
         }
         $feed = new Feed();
         $feed->save();
         $model->feed_id = $feed->id;
         if ($model->save()) {
             $this->redirect(array('view', 'id' => $model->id));
         }
     }
     $this->render('create', array('model' => $model));
 }
Пример #4
0
 function read($url)
 {
     $feed = new Feed();
     //gets xml from url
     $ch = curl_init($url);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     $raw = curl_exec($ch);
     $feed->feed_url($url);
     $feed->time_to_live(500);
     //$feed->save();
     $xml = new SimpleXMLElement($raw);
     $items = array();
     foreach ($xml->channel->item as $xml_item) {
         //var_dump($xml_item);
         $item = new Item();
         $item->title((string) $xml_item->title);
         $item->body((string) $xml_item->description);
         //var_dump($item);
         $items[] = $item;
     }
     $feed->items($items);
     $feed->save();
 }
Пример #5
0
 /**
  * create new feed
  * @return redir
  */
 public function postTakecreate()
 {
     User::onlyHas('feed-create');
     $general = Input::get('general');
     $feed = new Feed();
     $feed->name = $general['name'];
     $feed->enabled = isset($general['enabled']) ? 1 : 0;
     $feed->limit_type = $general['limit_type'];
     $feed->limit_value = $general['limit_value'];
     $feed->order_type = $general['order_type'];
     $feed->order_by = $general['order_by'];
     $feed->save();
     $fields = Input::get('fields');
     if (is_array($fields)) {
         foreach ($fields as $field) {
             $frel = new FeedRel();
             $frel->feed_id = $feed->id;
             $frel->feed_field_id = $field;
             $frel->save();
         }
     }
     Log::info("Create new feed '{$general['name']}'");
     return Redirect::to('feed/edit/' . $feed->id);
 }
Пример #6
0
 public function save()
 {
     $this->type = 'document';
     parent::save();
 }
Пример #7
0
 public static function import($strXml, $blnOverwrite = false, $blnKeepSettings = false)
 {
     global $objLiveAdmin, $intDefaultLanguage, $_CONF;
     $objReturn = NULL;
     $objSettings = NULL;
     $blnZip = false;
     //*** Init DOM object.
     $objDoc = new DOMDocument("1.0", "UTF-8");
     $objDoc->formatOutput = false;
     $objDoc->preserveWhiteSpace = true;
     if (is_file($strXml)) {
         $objZip = new dUnzip2($strXml);
         if (is_object($objZip)) {
             //*** Zip file.
             $strXml = $objZip->unzip('data.xml');
             if ($strXml !== false) {
                 //*** Fix a unicode bug. Replace forbidden characters (The first 8).
                 for ($intCount = 1; $intCount < 9; $intCount++) {
                     $strHex = str_pad(dechex($intCount), 4, "0", STR_PAD_LEFT);
                     $strXml = preg_replace('/\\x{' . $strHex . '}/u', "", $strXml);
                 }
                 $strXml = preg_replace('/\\x{001f}/u', "", $strXml);
                 $objDoc->loadXML($strXml);
                 $blnZip = true;
             }
         } else {
             //*** XML file.
             $objDoc->load($strXml);
         }
     } else {
         $objDoc->loadXML($strXml);
     }
     //*** Build data structure.
     foreach ($objDoc->childNodes as $rootNode) {
         if ($rootNode->nodeName == "Punch") {
             //*** Valid Punch XML.
             foreach ($rootNode->childNodes as $accountNode) {
                 if ($accountNode->nodeName == "account") {
                     //*** Account node.
                     if ($blnOverwrite) {
                         $objAccount = Account::getByPunchId($accountNode->getAttribute("punchId"));
                         if (is_object($objAccount) && $blnKeepSettings) {
                             //*** Save settings.
                             $objSettings = Settings::getByAccount($objAccount->getId());
                         }
                         //*** Remove account.
                         if (is_object($objAccount)) {
                             $objAccount->delete();
                         }
                     }
                     //*** Create account.
                     $objAccount = new Account();
                     $objAccount->setPunchId($accountNode->getAttribute("punchId"));
                     $objAccount->setName($accountNode->getAttribute("name"));
                     $objAccount->setUri($accountNode->getAttribute("uri"));
                     $objAccount->setTimeZoneId(42);
                     $objAccount->save();
                     //*** Create temporary account object.
                     $_CONF['app']['account'] = $objAccount;
                     foreach ($accountNode->childNodes as $childNode) {
                         $arrUserIds = array();
                         $arrGroupIds = array();
                         switch ($childNode->nodeName) {
                             case "acl":
                                 self::importAcl($childNode, $objAccount->getId(), $arrUserIds, $arrGroupIds);
                                 break;
                             case "products":
                                 //*** Add products to the account.
                                 foreach ($childNode->childNodes as $productNode) {
                                     switch ($productNode->nodeName) {
                                         case "pcms":
                                             //*** Add PunchCMS product to the account.
                                             $objAccountProduct = new AccountProduct();
                                             $objAccountProduct->setAccountId($objAccount->getId());
                                             $objAccountProduct->setProductId(PRODUCT_PCMS);
                                             $objAccountProduct->setExpires($productNode->getAttribute("expires"));
                                             $objAccountProduct->save();
                                             $arrStorageIds[0] = 0;
                                             $arrFeedIds[0] = 0;
                                             //*** Add PunchCMS data to the account.
                                             foreach ($productNode->childNodes as $pcmsNode) {
                                                 switch ($pcmsNode->nodeName) {
                                                     case "settings":
                                                         //*** Add settings to the account.
                                                         if ($blnKeepSettings && is_object($objSettings)) {
                                                             foreach ($objSettings as $objSetting) {
                                                                 $objSetting->setId(0);
                                                                 $objSetting->setAccountId($objAccount->getId());
                                                                 $objSetting->save();
                                                             }
                                                         } else {
                                                             foreach ($pcmsNode->childNodes as $settingNode) {
                                                                 $objSettingTemplate = SettingTemplate::selectByName($settingNode->getAttribute("name"));
                                                                 if (is_object($objSettingTemplate)) {
                                                                     $objSetting = new Setting();
                                                                     $objSetting->setAccountId($objAccount->getId());
                                                                     $objSetting->setSettingId($objSettingTemplate->getId());
                                                                     $objSetting->setValue($settingNode->getAttribute("value"));
                                                                     $objSetting->save();
                                                                 }
                                                             }
                                                         }
                                                         break;
                                                     case "languages":
                                                         //*** Add languages to the account.
                                                         $arrLanguageIds[0] = 0;
                                                         foreach ($pcmsNode->childNodes as $languageNode) {
                                                             $objLanguage = new ContentLanguage();
                                                             $objLanguage->setAccountId($objAccount->getId());
                                                             $objLanguage->setName($languageNode->getAttribute("name"));
                                                             $objLanguage->setAbbr($languageNode->getAttribute("abbr"));
                                                             $objLanguage->default = $languageNode->getAttribute("default");
                                                             $objLanguage->setActive($languageNode->getAttribute("active"));
                                                             $objLanguage->setSort($languageNode->getAttribute("sort"));
                                                             $objLanguage->setUsername($languageNode->getAttribute("username"));
                                                             $objLanguage->save();
                                                             $arrLanguageIds[$languageNode->getAttribute("id")] = $objLanguage->getId();
                                                             if ($languageNode->getAttribute("default") == 1) {
                                                                 $intDefaultLanguage = $objLanguage->getId();
                                                             }
                                                         }
                                                         break;
                                                     case "feeds":
                                                         //*** Add feeds to the account.
                                                         $arrFeedIds[0] = 0;
                                                         foreach ($pcmsNode->childNodes as $feedNode) {
                                                             $objFeed = new Feed();
                                                             $objFeed->setAccountId($objAccount->getId());
                                                             $objFeed->setName($feedNode->getAttribute("name"));
                                                             $objFeed->setFeed($feedNode->getAttribute("feed"));
                                                             $objFeed->setBasePath($feedNode->getAttribute("basepath"));
                                                             $objFeed->setRefresh($feedNode->getAttribute("refresh"));
                                                             $objFeed->setLastUpdate($feedNode->getAttribute("lastUpdate"));
                                                             $objFeed->setActive($feedNode->getAttribute("active"));
                                                             $objFeed->setSort($feedNode->getAttribute("sort"));
                                                             $objFeed->save();
                                                             $arrFeedIds[$feedNode->getAttribute("id")] = $objFeed->getId();
                                                         }
                                                         break;
                                                     case "storage":
                                                         //*** Add media items to the account.
                                                         self::importStorage($pcmsNode, $objAccount->getId(), $arrStorageIds);
                                                         break;
                                                     case "templates":
                                                         //*** Add templates to the account.
                                                         $arrTemplateIds[0] = 0;
                                                         $arrTemplateFieldIds[0] = 0;
                                                         $arrLinkFieldIds = array();
                                                         self::importTemplates($pcmsNode, $objAccount->getId(), $arrTemplateIds, $arrTemplateFieldIds, $arrLinkFieldIds);
                                                         break;
                                                     case "elements":
                                                         //*** Add elements to the account.
                                                         $arrElementIds[0] = 0;
                                                         $arrElementFieldIds["link"][0] = 0;
                                                         $arrElementFieldIds["largeText"][0] = 0;
                                                         self::importElements($pcmsNode, $objAccount->getId(), $arrTemplateIds, $arrTemplateFieldIds, $arrElementIds, $arrElementFieldIds, $arrLinkFieldIds, $arrLanguageIds, $arrUserIds, $arrGroupIds, $arrStorageIds, $arrFeedIds);
                                                         break;
                                                     case "aliases":
                                                         //*** Add aliases to the account.
                                                         foreach ($pcmsNode->childNodes as $aliasNode) {
                                                             $objAlias = new Alias();
                                                             $objAlias->setAccountId($objAccount->getId());
                                                             $objAlias->setAlias($aliasNode->getAttribute("alias"));
                                                             if (array_key_exists($aliasNode->getAttribute("url"), $arrElementIds)) {
                                                                 $objAlias->setUrl($arrElementIds[$aliasNode->getAttribute("url")]);
                                                             } else {
                                                                 $objAlias->setUrl(0);
                                                             }
                                                             if (array_key_exists($aliasNode->getAttribute("language"), $arrLanguageIds)) {
                                                                 $objAlias->setLanguageId($arrLanguageIds[$aliasNode->getAttribute("language")]);
                                                             } else {
                                                                 $objAlias->setLanguageId(0);
                                                             }
                                                             $objAlias->setCascade($aliasNode->getAttribute("cascade"));
                                                             $objAlias->setActive($aliasNode->getAttribute("active"));
                                                             $objAlias->setSort($aliasNode->getAttribute("sort"));
                                                             $objAlias->setCreated($aliasNode->getAttribute("created"));
                                                             $objAlias->setModified($aliasNode->getAttribute("modified"));
                                                             $objAlias->save();
                                                         }
                                                         break;
                                                 }
                                             }
                                             //*** Adjust the links for deeplink fields.
                                             self::adjustDeeplinks($arrElementFieldIds["link"], $arrElementIds, $arrLanguageIds);
                                             //*** Adjust the links in large text fields.
                                             self::adjustTextlinks($arrElementFieldIds["largeText"], $arrElementIds, $arrLanguageIds, $arrStorageIds);
                                             break;
                                     }
                                 }
                                 break;
                         }
                     }
                     //*** Destroy temporary account object.
                     unset($_CONF['app']['account']);
                     $objReturn = $objAccount;
                 }
             }
         }
     }
     //*** Files.
     if ($blnZip && is_object($objReturn)) {
         self::importFiles($objZip, $objReturn);
         if ($blnKeepSettings) {
             //*** Move files to remote server.
             self::moveImportedFiles($objReturn);
         }
     }
     return $objReturn;
 }
Пример #8
0
 public function save()
 {
     $this->type = 'course';
     parent::save();
 }
Пример #9
0
 public function save()
 {
     $this->type = 'lecture';
     parent::save();
 }
Пример #10
0
 public function save()
 {
     $this->type = 'exercise';
     parent::save();
 }
Пример #11
0
 public function actionComment()
 {
     $comment = new LessonComment();
     if (isset($_POST['LessonComment'])) {
         $comment->attributes = $_POST['LessonComment'];
         $comment->userId = Yii::app()->user->id;
         $comment->addTime = time();
         if ($comment->save()) {
             $comment = LessonComment::model()->findByPk($comment->getPrimaryKey());
             if ($comment->referid) {
                 $notice = new Notice();
                 $notice->type = 'lesson_recomment';
                 $notice->setData(array('commentId' => $comment->commentId));
                 $notice->userId = $comment->refer->userId;
                 $result = $notice->save();
             }
             $commentDataProvider = new CArrayDataProvider($comment->lesson->comments, array('keyField' => 'commentId', 'pagination' => array('pageSize' => 20)));
             $feed = new Feed();
             $feed->type = 'lesson_comment';
             $feed->setData(array('commentId' => $comment->getPrimaryKey()));
             $feed->save();
             $feed->dispatch(array('user' => array('userId' => $comment->userId), 'course' => array('courseId' => $comment->lesson->courseId)));
             $this->renderPartial('_comment', array('commentDataProvider' => $commentDataProvider));
         }
     }
     //		$this->redirect(array('view','id'=>$comment->lessonid));
 }
Пример #12
0
     break;
 case 'addFeed':
     if ($myUser == false) {
         exit(_t('YOU_MUST_BE_CONNECTED_ACTION'));
     }
     require_once "SimplePie.class.php";
     if (!isset($_['newUrl'])) {
         break;
     }
     $newFeed = new Feed();
     $newFeed->setUrl(Functions::clean_url($_['newUrl']));
     if ($newFeed->notRegistered()) {
         ///@TODO: avertir l'utilisateur du doublon non ajouté
         $newFeed->getInfos();
         $newFeed->setFolder(isset($_['newUrlCategory']) ? $_['newUrlCategory'] : 1);
         $newFeed->save();
         $enableCache = $configurationManager->get('synchronisationEnableCache') == '' ? 0 : $configurationManager->get('synchronisationEnableCache');
         $forceFeed = $configurationManager->get('synchronisationForceFeed') == '' ? 0 : $configurationManager->get('synchronisationForceFeed');
         $newFeed->parse(time(), $_, $enableCache, $forceFeed);
         Plugin::callHook("action_after_addFeed", array(&$newFeed));
     }
     header('location: ./settings.php#manageBloc');
     break;
 case 'changeFeedFolder':
     if ($myUser == false) {
         exit(_t('YOU_MUST_BE_CONNECTED_ACTION'));
     }
     if (isset($_['feed'])) {
         $feedManager->change(array('folder' => $_['folder']), array('id' => $_['feed']));
     }
     header('location: ./settings.php');
Пример #13
0
 public function save()
 {
     $this->type = 'exam';
     parent::save();
 }
Пример #14
0
 public function subscribeFeed($feedlink, $options = array())
 {
     if ($this->countSubscriptions() >= SUBSCRUBE_LIMIT) {
         $msg = sprintf('SUBSCRIBE LIMIT: %s(%s) %s', $this->data['Member']['username'], $this->id, $feedlink);
         CakeLog::write(LOG_WARNING, $msg);
         return false;
     }
     $Feed = new Feed();
     $feed = $Feed->findByFeedlink($feedlink);
     if ($feed) {
         // subscribed..
         $Feed->set($feed);
     } elseif (isset($options['quick'])) {
         $data = array('feedlink' => $feedlink, 'link' => $feedlink, 'title' => $options['title'], 'description' => '');
         $Feed->set($data);
         $Feed->save();
         $Feed->createCrawlStatus();
     } else {
         $feeddata = FeedUtils::getFeed($feedlink);
         if (!$feeddata) {
             return false;
         }
         $data = array('subscribers_count' => 0, 'feedlink' => $feedlink, 'link' => $feeddata->get_permalink() ? $feeddata->get_permalink() : '', 'title' => $feeddata->get_title() ? $feeddata->get_title() : '');
         $Feed->set($data);
         $Feed->save();
         $Feed->createCrawlStatus();
     }
     unset($options['quick']);
     unset($options['title']);
     $conditions = array();
     $conditions[] = es('Subscription.member_id = %s', $this->id);
     $conditions[] = es('Subscription.feed_id = %s', $Feed->id);
     $sub = $this->Subscription->find($conditions);
     if ($sub) {
         return $sub;
     }
     $data = array('member_id' => $this->id, 'feed_id' => $Feed->id, 'has_unread' => true);
     $data = array_merge($data, $options);
     $this->Subscription->create($data);
     return $this->Subscription->save();
 }
Пример #15
0
 public function save()
 {
     $this->type = 'post';
     parent::save();
 }
Пример #16
0
 public function save()
 {
     $this->type = 'flashcard';
     parent::save();
 }
Пример #17
0
 public function save()
 {
     $this->type = 'attendance';
     parent::save();
 }
Пример #18
0
 /**
  * Check HTTPS capability
  * @param Feed feed
  */
 public function checkHttpsCapability(Feed $feed)
 {
     $this->verbose('Checking HTTPS capability: ' . $feed->url);
     $url = preg_replace("/^http:/", "https:", $feed->url);
     $request = $this->makeRequest($url);
     $https_capable = false;
     if ($request['info']['http_code'] == 200) {
         $simplepie = new SimplePie();
         $simplepie->set_raw_data($request['html']);
         $success = $simplepie->init();
         if ($success !== false) {
             $https_capable = true;
         } else {
             // Capable but unable to parse feed, maybe shaarli only served on port 80
         }
     }
     if ($https_capable) {
         $feed->https = 1;
         $feed->url = $url;
     } else {
         $feed->https = 0;
         $feed->url = preg_replace("/^https:/", "http:", $feed->url);
     }
     $feed->save();
     unset($request);
 }
Пример #19
0
 public function save()
 {
     $this->type = 'batch';
     parent::save();
 }
Пример #20
0
function parseFeeds($intFeedId, $strCommand)
{
    global $_PATHS, $_CLEAN_POST, $_CONF, $objLang, $objLiveUser;
    $objTpl = new HTML_Template_IT($_PATHS['templates']);
    $objTpl->loadTemplatefile("feed.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'] == "editFeed") {
                //*** The element form has been posted.
                //*** Check sanitized input.
                if (is_null($_CLEAN_POST["frm_active"])) {
                    $blnError = true;
                }
                if (is_null($_CLEAN_POST["frm_name"])) {
                    $blnError = true;
                }
                if (is_null($_CLEAN_POST["frm_feed"])) {
                    $blnError = true;
                }
                if (is_null($_CLEAN_POST["frm_basepath"])) {
                    $blnError = true;
                }
                if (is_null($_CLEAN_POST["frm_refresh"])) {
                    $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_NAME_VALUE", $_POST["frm_name"]);
                    $objTpl->setVariable("FORM_FEED_VALUE", $_POST["frm_feed"]);
                    $objTpl->setVariable("FORM_BASEPATH_VALUE", $_POST["frm_basepath"]);
                    $objTpl->setVariable("FORM_REFRESH_VALUE", $_POST["frm_refresh"]);
                    $objTpl->setVariable("ERROR_FEED_MAIN", $objLang->get("main", "formerror"));
                } else {
                    //*** Input is valid. Save the feed.
                    if ($strCommand == CMD_EDIT) {
                        $objFeed = Feed::selectByPK($intFeedId);
                    } else {
                        $objFeed = new Feed();
                    }
                    $objFeed->setAccountId($_CONF['app']['account']->getId());
                    $objFeed->setActive($_POST["frm_active"] == "on" ? 1 : 0);
                    $objFeed->setName($_CLEAN_POST["frm_name"]);
                    $objFeed->setFeed($_CLEAN_POST["frm_feed"]);
                    $objFeed->setBasepath($_CLEAN_POST["frm_basepath"]);
                    $objFeed->setRefresh($_CLEAN_POST["frm_refresh"]);
                    $objFeed->setLastUpdate(Date::toMysql());
                    $objFeed->save();
                    //*** Cache feed.
                    $objFeed->cache();
                    header("Location: " . Request::getURI() . "/?cid=" . NAV_PCMS_FEEDS);
                    exit;
                }
            }
            //*** Initiate child element loop.
            $objFeeds = Feed::selectSorted();
            $listCount = 0;
            $intPosition = request("pos");
            $intPosition = !empty($intPosition) && is_numeric($intPosition) ? $intPosition : 0;
            $intPosition = floor($intPosition / $_SESSION["listCount"]) * $_SESSION["listCount"];
            $objFeeds->seek($intPosition);
            foreach ($objFeeds as $objFeed) {
                $objTpl->setCurrentBlock("multiview-item");
                $objTpl->setVariable("MULTIITEM_VALUE", $objFeed->getId());
                $objTpl->setVariable("BUTTON_REMOVE_HREF", "javascript:Feed.remove({$objFeed->getId()});");
                $objTpl->setVariable("BUTTON_REMOVE", $objLang->get("delete", "button"));
                $objTpl->setVariable("MULTIITEM_HREF", "?cid=" . NAV_PCMS_FEEDS . "&amp;eid={$objFeed->getId()}&amp;cmd=" . CMD_EDIT);
                $objTpl->setVariable("MULTIITEM_TYPE_CLASS", "feed");
                $objTpl->setVariable("MULTIITEM_NAME", $objFeed->getName());
                $objTpl->setVariable("MULTIITEM_POINTS_TO", $objLang->get("pointsTo", "label"));
                $objTpl->setVariable("MULTIITEM_FEED", $objFeed->getFeed());
                $objTpl->setVariable("MULTIITEM_FEED_HREF", $objFeed->getFeed());
                if (!$objFeed->getActive()) {
                    $objTpl->setVariable("MULTIITEM_ACTIVE", " class=\"inactive\"");
                }
                $objTpl->parseCurrentBlock();
                $listCount++;
                if ($listCount >= $_SESSION["listCount"]) {
                    break;
                }
            }
            //*** Render page navigation.
            $pageCount = ceil($objFeeds->count() / $_SESSION["listCount"]);
            if ($pageCount > 0) {
                $currentPage = ceil(($intPosition + 1) / $_SESSION["listCount"]);
                $previousPos = $intPosition - $_SESSION["listCount"] > 0 ? $intPosition - $_SESSION["listCount"] : 0;
                $nextPos = $intPosition + $_SESSION["listCount"] < $objFeeds->count() ? $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_FEEDS . "&amp;pos={$previousPos}");
                $objTpl->setVariable("PAGENAV_NEXT", $objLang->get("next", "button"));
                $objTpl->setVariable("PAGENAV_NEXT_HREF", "?cid=" . NAV_PCMS_FEEDS . "&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_FEEDS . "&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_FEEDS . "&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("LIST_LENGTH_HREF_10", "href=\"?list=10&amp;cid=" . NAV_PCMS_FEEDS . "\"");
            $objTpl->setVariable("LIST_LENGTH_HREF_25", "href=\"?list=25&amp;cid=" . NAV_PCMS_FEEDS . "\"");
            $objTpl->setVariable("LIST_LENGTH_HREF_100", "href=\"?list=100&amp;cid=" . NAV_PCMS_FEEDS . "\"");
            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_FEEDS);
            $objTpl->setVariable("LIST_WITH_SELECTED", $objLang->get("withSelected", "label"));
            $objTpl->setVariable("LIST_ACTION_ONCHANGE", "Feed.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:Feed.multiSelect()");
            $objTpl->parseCurrentBlock();
            $objTpl->setVariable("FEEDS", $objLang->get("feeds", "label"));
            $objTpl->setVariable("BUTTON_ADD", $objLang->get("feedAdd", "button"));
            //*** Form variables.
            if ($strCommand == CMD_EDIT) {
                $objFeed = Feed::selectByPK($intFeedId);
                $objTpl->setVariable("FORM_ACTIVE_VALUE", $objFeed->getActive() ? "checked=\"checked\"" : "");
                $objTpl->setVariable("FORM_NAME_VALUE", $objFeed->getName());
                $objTpl->setVariable("FORM_FEED_VALUE", $objFeed->getFeed());
                $objTpl->setVariable("FORM_BASEPATH_VALUE", $objFeed->getBasepath());
                $objTpl->setVariable("FORM_REFRESH_VALUE", $objFeed->getRefresh());
                $objTpl->setVariable("FRM_HEADER", $objLang->get("editFeed", "form"));
                $objTpl->setVariable("FRM_STYLE", "");
                $objTpl->setVariable("CMD", CMD_EDIT);
            } else {
                $objTpl->setVariable("FORM_ACTIVE_VALUE", "checked=\"checked\"");
                $objTpl->setVariable("FRM_HEADER", $objLang->get("addFeed", "form"));
                if (!$blnError) {
                    $objTpl->setVariable("FRM_STYLE", " style=\"display:none\"");
                }
                $objTpl->setVariable("CMD", CMD_ADD);
                $objElements = Elements::getFromParent(0);
                foreach ($objElements as $objElement) {
                    $objTpl->setCurrentBlock("elements.item");
                    $objTpl->setVariable("VALUE", $objElement->getId());
                    $objTpl->setVariable("LABEL", $objElement->getName());
                    $objTpl->parseCurrentBlock();
                }
            }
            $objTpl->setVariable("FRM_LABEL_ACTIVE", $objLang->get("active", "form"));
            $objTpl->setVariable("FRM_LABEL_FEED", $objLang->get("feed", "form"));
            $objTpl->setVariable("FRM_DESCR_FEED", $objLang->get("feed", "tip"));
            $objTpl->setVariable("FRM_LABEL_BASEPATH", $objLang->get("basepath", "form"));
            $objTpl->setVariable("FRM_DESCR_BASEPATH", $objLang->get("basepath", "tip"));
            $objTpl->setVariable("FRM_LABEL_NAME", $objLang->get("name", "form"));
            $objTpl->setVariable("FRM_DESCR_REFRESH", $objLang->get("refresh", "tip"));
            $objTpl->setVariable("FRM_LABEL_REFRESH", $objLang->get("refresh", "form"));
            $objTpl->setVariable("FRM_LABEL_SAVE", $objLang->get("save", "button"));
            $objTpl->setVariable("CID", NAV_PCMS_FEEDS);
            $objTpl->setVariable("EID", $intFeedId);
            $objTpl->parseCurrentBlock();
            $strReturn = $objTpl->get();
            break;
        case CMD_REMOVE:
            if (strpos($intFeedId, ',') !== false) {
                //*** Multiple elements submitted.
                $arrFeeds = explode(',', $intFeedId);
                $objFeeds = Feed::selectByPK($arrFeeds);
                foreach ($objFeeds as $objFeed) {
                    $objFeed->delete();
                }
            } else {
                //*** Single element submitted.
                $objFeed = Feed::selectByPK($intFeedId);
                $objFeed->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;
}