当前位置: 首页>>代码示例>>PHP>>正文


PHP SPRequest::set方法代码示例

本文整理汇总了PHP中SPRequest::set方法的典型用法代码示例。如果您正苦于以下问题:PHP SPRequest::set方法的具体用法?PHP SPRequest::set怎么用?PHP SPRequest::set使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SPRequest的用法示例。


在下文中一共展示了SPRequest::set方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: execute

 /**
  */
 public function execute()
 {
     $r = false;
     switch ($this->_task) {
         case 'edit':
         case 'add':
             $r = true;
             $this->editForm();
             break;
         case 'approve':
         case 'unapprove':
             $r = true;
             $this->approval($this->_task == 'approve');
             break;
         case 'up':
         case 'down':
             $r = true;
             $this->singleReorder($this->_task == 'up');
             break;
         case 'clone':
             $r = true;
             $this->_model = null;
             SPRequest::set('entry_id', 0, 'post');
             SPRequest::set('entry_state', 0, 'post');
             $this->save(false, true);
             break;
         case 'saveWithRevision':
             $this->save(true);
             break;
         case 'reorder':
             $r = true;
             $this->reorder();
             break;
         case 'reject':
             $r = true;
             $this->reject();
             break;
         case 'revisions':
             $r = true;
             $this->revisions();
             break;
         case 'search':
             $this->search();
             break;
         default:
             /* case plugin didn't registered this task, it was an error */
             if (!parent::execute()) {
                 Sobi::Error($this->name(), SPLang::e('SUCH_TASK_NOT_FOUND', SPRequest::task()), SPC::NOTICE, 404, __LINE__, __FILE__);
             } else {
                 $r = true;
             }
             break;
     }
     return $r;
 }
开发者ID:ranrolls,项目名称:ras-full-portal,代码行数:57,代码来源:entry.php

示例2: execute

 /**
  */
 public function execute()
 {
     $r = false;
     SPRequest::set('task', $this->_type . '.' . $this->_task);
     switch ($this->_task) {
         case 'edit':
         case 'add':
             Sobi::ReturnPoint();
             SPLoader::loadClass('html.input');
             $this->editForm();
             break;
         case 'approve':
         case 'unapprove':
             $r = true;
             $this->approve($this->_task == 'approve');
             break;
         case 'publish':
         case 'unpublish':
         case 'hide':
             $r = true;
             $this->state($this->_task == 'publish');
             break;
         case 'submit':
             $this->submit();
             break;
         case 'details':
             $this->visible();
             $this->details();
             Sobi::ReturnPoint();
             break;
         case 'payment':
             $this->payment();
             break;
         default:
             if (!parent::execute()) {
                 Sobi::Error('entry_ctrl', SPLang::e('TASK_NOT_FOUND'), SPC::NOTICE, 404, __LINE__, $this->name());
             } else {
                 $r = true;
             }
             break;
     }
     return $r;
 }
开发者ID:pelloq1,项目名称:SobiPro,代码行数:45,代码来源:entry.php

示例3: execute

 /**
  */
 public function execute()
 {
     if (!Sobi::Can('section.search')) {
         if ($this->_task != 'suggest') {
             if (Sobi::Cfg('redirects.section_search_enabled') && strlen(Sobi::Cfg('redirects.section_search_url', null))) {
                 $this->escape(Sobi::Cfg('redirects.section_search_url', null), SPLang::e(Sobi::Cfg('redirects.section_search_msg', 'UNAUTHORIZED_ACCESS')), Sobi::Cfg('redirects.section_search_msgtype', SPC::ERROR_MSG));
             } else {
                 Sobi::Error($this->name(), SPLang::e('UNAUTHORIZED_ACCESS_TASK', SPRequest::task()), SPC::ERROR, 403, __LINE__, __FILE__);
             }
         } else {
             exit;
         }
     }
     $r = false;
     SPLoader::loadClass('env.cookie');
     SPLoader::loadClass('env.browser');
     SPRequest::set('task', $this->_type . '.' . $this->_task);
     switch ($this->_task) {
         case 'results':
         case 'view':
             $this->form();
             $r = true;
             break;
         case 'search':
             $this->search();
             $r = true;
             break;
         case 'suggest':
             $this->suggest();
             $r = true;
             break;
         default:
             if (!parent::execute()) {
                 Sobi::Error($this->name(), SPLang::e('SUCH_TASK_NOT_FOUND', SPRequest::task()), SPC::NOTICE, 404, __LINE__, __FILE__);
             }
             break;
     }
     return $r;
 }
开发者ID:pelloq1,项目名称:SobiPro,代码行数:41,代码来源:search.php

示例4: execute

 public function execute()
 {
     SPRequest::set('task', $this->_type . '.' . $this->_task);
     if (strstr($this->_task, '.')) {
         $task = explode('.', $this->_task);
         $class = SPLoader::loadClass('opt.listing.' . $task[0], false, null, true);
     } else {
         $class = SPLoader::loadClass('opt.listing.' . $this->_task, false, null, true);
     }
     if ($class) {
         $imp = class_implements($class);
         if (is_array($imp) && in_array('SPListing', $imp)) {
             /** @noinspection PhpIncludeInspection $compatibility */
             $listing = new $class();
             if (!isset($class::$compatibility)) {
                 define('SOBI_LEGACY_LISTING', true);
                 if (strstr($this->_task, '.')) {
                     $t = explode('.', $this->_task);
                     $listing->setTask($t[0]);
                 } else {
                     $listing->setTask($this->_task);
                 }
             } else {
                 $listing->setTask($this->_task);
             }
             return $listing->execute();
         } else {
             Sobi::Error($this->name(), SPLang::e('SUCH_TASK_NOT_FOUND Wrong class definition', SPRequest::task()), SPC::NOTICE, 404, __LINE__, __FILE__);
         }
     } else {
         /* case parent didn't registered this task, it was an error */
         if (!parent::execute() && $this->name() == __CLASS__) {
             Sobi::Error($this->name(), SPLang::e('SUCH_TASK_NOT_FOUND', SPRequest::task()), SPC::NOTICE, 404, __LINE__, __FILE__);
         }
     }
 }
开发者ID:ranrolls,项目名称:ras-full-portal,代码行数:36,代码来源:listing.php

示例5: execute

 /**
  */
 public function execute()
 {
     /* parent class executes the plugins */
     SPRequest::set('task', $this->_type . '.' . $this->_task);
     switch ($this->_task) {
         case 'front':
             $this->getSections();
             /** @var $view SPAdmPanelView */
             $view = SPFactory::View('front');
             /* load template config */
             //				$this->tplCfg( 'front' );
             //				$view->setConfig( $this->_tCfg, 'general' );
             $view->determineTemplate('front', SPC::DEFAULT_TEMPLATE);
             $view->assign($this->_sections, 'sections');
             $view->display();
             break;
         default:
             /* case parents or plugin didn't registered this task, it was an error */
             if (!parent::execute()) {
                 Sobi::Error($this->name(), SPLang::e('SUCH_TASK_NOT_FOUND', SPRequest::task()), SPC::NOTICE, 404, __LINE__, __FILE__);
             }
             break;
     }
 }
开发者ID:kishoreweblabs,项目名称:SobiPro,代码行数:26,代码来源:front.php

示例6: save

 /**
  * (non-PHPdoc)
  * @see Site/lib/models/SPDBObject#save()
  */
 public function save($request = 'post')
 {
     $this->loadFields(Sobi::Section(), true);
     // Thu, Feb 19, 2015 12:12:47 - it should be actually "beforeSave"
     Sobi::Trigger($this->name(), 'Before' . ucfirst(__FUNCTION__), array($this->id));
     /* save the base object data */
     /* @var SPdb $db */
     $db = SPFactory::db();
     $db->transaction();
     if (!$this->nid || SPRequest::task() == 'entry.clone') {
         $this->nid = SPRequest::string($this->nameField, null, false, $request);
         $this->nid = $this->createAlias();
         $this->name = $this->nid;
     }
     if (Sobi::Cfg('entry.publish_limit', 0) && !defined('SOBI_ADM_PATH')) {
         SPRequest::set('entry_createdTime', 0, $request);
         SPRequest::set('entry_validSince', 0, $request);
         SPRequest::set('entry_validUntil', 0, $request);
         $this->validUntil = gmdate('Y-m-d H:i:s', time() + Sobi::Cfg('entry.publish_limit', 0) * 24 * 3600);
     }
     $preState = Sobi::Reg('object_previous_state');
     parent::save($request);
     $nameField = $this->nameField();
     /* get the fields for this section */
     foreach ($this->fields as $field) {
         /* @var $field SPField */
         try {
             if ($field->enabled('form', $preState['new'])) {
                 $field->saveData($this, $request);
             } else {
                 $field->finaliseSave($this, $request);
             }
             if ($field->get('id') == $nameField) {
                 /* get the entry name */
                 $this->name = $field->getRaw();
                 /* save the nid (name id) of the field where the entry name is saved */
                 $this->nameField = $field->get('nid');
             }
         } catch (SPException $x) {
             if (SPRequest::task() != 'entry.clone') {
                 $db->rollback();
                 throw new SPException(SPLang::e('CANNOT_SAVE_FIELS_DATA', $x->getMessage()));
             } else {
                 Sobi::Error($this->name(), SPLang::e('CANNOT_SAVE_FIELS_DATA', $x->getMessage()), SPC::WARNING, 0, __LINE__, __FILE__);
             }
         }
     }
     $values = array();
     /* get categories */
     $cats = Sobi::Reg('request_categories');
     if (!count($cats)) {
         $cats = SPRequest::arr('entry_parent', SPFactory::registry()->get('request_categories', array()), $request);
     }
     /* by default it should be comma separated string */
     if (!count($cats)) {
         $cats = SPRequest::string('entry_parent', null, $request);
         if (strlen($cats) && strpos($cats, ',')) {
             $cats = explode(',', $cats);
             foreach ($cats as $i => $cat) {
                 $c = (int) trim($cat);
                 if ($c) {
                     $cats[$i] = $c;
                 } else {
                     unset($cats[$i]);
                 }
             }
         } elseif (strlen($cats)) {
             $cats = array((int) $cats);
         }
     }
     if (is_array($cats) && count($cats)) {
         foreach ($cats as $i => $v) {
             if (!$v) {
                 unset($cats[$i]);
             }
         }
     }
     if (is_array($cats) && count($cats)) {
         /* get the ordering in these categories */
         try {
             $db->select('pid, MAX(position)', 'spdb_relations', array('pid' => $cats, 'oType' => 'entry'), null, 0, 0, false, 'pid');
             $cPos = $db->loadAssocList('pid');
             $currPos = $db->select(array('pid', 'position'), 'spdb_relations', array('id' => $this->id, 'oType' => 'entry'))->loadAssocList('pid');
         } catch (SPException $x) {
             Sobi::Error($this->name(), SPLang::e('DB_REPORTS_ERR', $x->getMessage()), SPC::ERROR, 500, __LINE__, __FILE__);
         }
         /* set the right position */
         foreach ($cats as $i => $cat) {
             $copy = 0;
             if (!$this->approved) {
                 $copy = isset($this->categories[$cats[$i]]) ? 0 : 1;
             } else {
                 $db->delete('spdb_relations', array('id' => $this->id, 'oType' => 'entry'));
             }
             if (isset($currPos[$cat])) {
                 $pos = $currPos[$cat]['position'];
//.........这里部分代码省略.........
开发者ID:ranrolls,项目名称:ras-full-portal,代码行数:101,代码来源:entry.php

示例7: determineFid

 protected function determineFid($nid)
 {
     if (is_numeric($nid)) {
         $field = SPFactory::db()->select(array('fid', 'fieldType', 'nid'), 'spdb_field', array('section' => Sobi::Section(), 'fid' => $nid))->loadObject();
     } else {
         $field = SPFactory::db()->select(array('fid', 'fieldType', 'nid'), 'spdb_field', array('section' => Sobi::Section(), 'nid' => $nid))->loadObject();
     }
     $this->_field = $field->fid;
     $this->_nid = $field->nid;
     $this->_fieldType = $field->fieldType;
     SPRequest::set('alpha_field', strtolower($this->_nid));
 }
开发者ID:kishoreweblabs,项目名称:SobiPro,代码行数:12,代码来源:alpha.php

示例8: defined

 * @author
 * Name: Sigrid Suski & Radek Suski, Sigsiu.NET GmbH
 * Email: sobi[at]sigsiu.net
 * Url: http://www.Sigsiu.NET
 * @copyright Copyright (C) 2006 - 2015 Sigsiu.NET GmbH (http://www.sigsiu.net). All rights reserved.
 * @license GNU/GPL Version 3
 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation, and under the additional terms according section 7 of GPL v3.
 * See http://www.gnu.org/licenses/gpl.html and http://sobipro.sigsiu.net/licenses.
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 * $Date: 2015-02-19 13:24:35 +0100 (Thu, 19 Feb 2015) $
 * $Revision: 4387 $
 * $Author: Radek Suski $
 * $HeadURL: file:///opt/svn/SobiPro/Component/branches/SobiPro-1.1/Admin/field/edit.php $
 */
defined('SOBIPRO') || exit('Restricted access');
SPRequest::set('hidemainmenu', 1);
SPFactory::header()->addCSSCode('body { min-width: 1200px; }')->addJsCode("\n\t\t\tvar SPErrMsg = SobiPro.Txt( 'Please fill in all required fields!' );\n\t        function submitbutton( task )\n\t        {\n\t            var form = document.adminForm;\n\t            if ( task == 'field.cancel' || SPValidateForm() ) {\n\t                if ( SP_id( 'field.nid' ).value == '' ) {\n\t                    SP_id( 'field.nid' ).value = SP_id( 'field.name' ).value;\n\t                }\n\t                var nid = SP_id( 'field.nid' ).value;\n\t                nid = nid.replace( /(\\s+)/g, '_' );\n\t                nid = nid.replace( /[^\\w_]/g, '' );\n\t                SP_id( 'field.nid' ).value = nid.toLowerCase();\n\t                if ( SP_id( 'field.nid' ).value.indexOf( 'field_' ) != 0 ) {\n\t                    SP_id( 'field.nid' ).value = 'field_' + SP_id( 'field.nid' ).value;\n\t                }\n\t                submitform( task );\n\t            }\n\t        }\n\t        SobiPro.jQuery( document ).ready( function ()\n\t        {\n\t        \tJoomla.submitform = function ( task )\n\t            {\n\t                submitbutton( task );\n\t            }\n\t         } );\n        ");
$row = 0;
$this->trigger('OnStart');
?>

<div>
    <fieldset class="adminform">
        <table class="admintable">
            <tr class="row<?php 
echo ++$row % 2;
?>
">
                <td class="key">
					<?php 
$this->txt('FM.FIELD_LABEL');
开发者ID:ranrolls,项目名称:ras-full-portal,代码行数:31,代码来源:edit.php

示例9: view

 /**
  */
 protected function view($allEntries, $term = null)
 {
     if ($allEntries) {
         SPRequest::set('task', 'section.entries');
     } else {
         SPRequest::set('task', 'section.view');
     }
     /* @var SPdb $db */
     $db = SPFactory::db();
     $c = array();
     $e = array();
     if (!Sobi::Section()) {
         Sobi::Error('Section', SPLang::e('Missing section identifier'), SPC::ERROR, 500, __LINE__, __FILE__);
     }
     $this->_model->init(Sobi::Section());
     /* get the lists ordering and limits */
     $eLimit = Sobi::GetUserState('entries.limit', 'elimit', Sobi::Cfg('admin.entries-limit', 25));
     $cLimit = Sobi::GetUserState('categories.limit', 'climit', Sobi::Cfg('admin.categories-limit', 15));
     $eLimStart = SPRequest::int('eSite', 0);
     $cLimStart = SPRequest::int('cSite', 0);
     /* get child categories and entries */
     /* @todo: need better method - the query can be very large with lot of entries */
     if (!$allEntries) {
         $e = $this->_model->getChilds();
         $c = $this->_model->getChilds('category');
     } elseif (!($term && $allEntries)) {
         $c = $this->_model->getChilds('category', true);
         $c[] = Sobi::Section();
         if (count($c)) {
             try {
                 $e1 = $db->dselect('id', 'spdb_relations', array('pid' => $c, 'oType' => 'entry'))->loadResultArray();
                 $e2 = $db->dselect('sid', 'spdb_field_data', array('section' => Sobi::Section(), 'fid' => Sobi::Cfg('entry.name_field')))->loadResultArray();
                 $e = array_merge($e1, $e2);
                 $e = array_unique($e);
             } catch (SPException $x) {
                 Sobi::Error($this->name(), SPLang::e('DB_REPORTS_ERR', $x->getMessage()), SPC::WARNING, 0, __LINE__, __FILE__);
             }
         }
     } else {
         try {
             $e = $db->dselect('sid', 'spdb_field_data', array('section' => Sobi::Section(), 'fid' => Sobi::Cfg('entry.name_field'), 'baseData' => "%{$term}%"))->loadResultArray();
         } catch (SPException $x) {
             Sobi::Error($this->name(), SPLang::e('DB_REPORTS_ERR', $x->getMessage()), SPC::WARNING, 0, __LINE__, __FILE__);
         }
     }
     // just in case the given site is grater than all existing sites
     $cCount = count($c);
     $cPages = ceil($cCount / $cLimit);
     if ($cLimStart > $cPages) {
         $cLimStart = $cPages;
         SPRequest::set('cSite', $cPages);
     }
     $eCount = count($e);
     $ePages = ceil($eCount / $eLimit);
     if ($eLimStart > $ePages) {
         $eLimStart = $ePages;
         SPRequest::set('eSite', $ePages);
     }
     $entries = array();
     $categories = array();
     /* if there are entries in the root */
     if (count($e)) {
         try {
             $Limit = $eLimit > 0 ? $eLimit : 0;
             $LimStart = $eLimStart ? ($eLimStart - 1) * $eLimit : $eLimStart;
             $eOrder = $this->parseOrdering('entries', 'eorder', 'position.asc', $Limit, $LimStart, $e);
             $results = $db->select('id', 'spdb_object', array('id' => $e, 'oType' => 'entry'), $eOrder, $Limit, $LimStart)->loadResultArray();
         } catch (SPException $x) {
             Sobi::Error($this->name(), SPLang::e('DB_REPORTS_ERR', $x->getMessage()), SPC::WARNING, 0, __LINE__, __FILE__);
         }
         foreach ($results as $i => $entry) {
             $entries[$i] = $entry;
         }
     }
     /* if there are categories in the root */
     if (count($c)) {
         try {
             $LimStart = $cLimStart ? ($cLimStart - 1) * $cLimit : $cLimStart;
             $Limit = $cLimit > 0 ? $cLimit : 0;
             $cOrder = $this->parseOrdering('categories', 'corder', 'order.asc', $Limit, $LimStart, $c);
             $results = $db->select('id', 'spdb_object', array('id' => $c, 'oType' => 'category'), $cOrder, $Limit, $LimStart)->loadResultArray();
         } catch (SPException $x) {
             Sobi::Error($this->name(), SPLang::e('DB_REPORTS_ERR', $x->getMessage()), SPC::WARNING, 0, __LINE__, __FILE__);
         }
         foreach ($results as $i => $category) {
             $categories[$i] = SPFactory::Category($category);
         }
     }
     /* create menu */
     $mClass = SPLoader::loadClass('views.adm.menu');
     $menu = new $mClass('section.' . $this->_task, Sobi::Section());
     /* load the menu definition */
     $cfg = SPLoader::loadIniFile('etc.adm.section_menu');
     Sobi::Trigger('Create', 'AdmMenu', array(&$cfg));
     if (count($cfg)) {
         foreach ($cfg as $section => $keys) {
             $menu->addSection($section, $keys);
         }
//.........这里部分代码省略.........
开发者ID:ranrolls,项目名称:ras-full-portal,代码行数:101,代码来源:section.php

示例10: saveData

 /**
  * Gets the data for a field and save it in the database
  * @param SPEntry $entry
  * @param string $request
  * @throws SPException
  * @return bool
  */
 public function saveData(&$entry, $request = 'POST')
 {
     if (!$this->enabled) {
         return false;
     }
     $del = SPRequest::bool($this->nid . '_delete', false, $request);
     $fileSize = SPRequest::file($this->nid, 'size');
     $cropped = null;
     static $store = null;
     $cache = false;
     if ($store == null) {
         $store = SPFactory::registry()->get('requestcache_stored');
     }
     if (is_array($store) && isset($store[$this->nid])) {
         if (!strstr($store[$this->nid], 'file://') && !strstr($store[$this->nid], 'directory://')) {
             $data = $store[$this->nid];
             $cache = true;
             $orgName = SPRequest::file($this->nid, 'name', $request);
         } else {
             SPRequest::set($this->nid, $store[$this->nid]);
             $orgName = SPRequest::file($this->nid, 'name');
             $data = SPRequest::file($this->nid, 'tmp_name');
         }
     } else {
         $data = SPRequest::file($this->nid, 'tmp_name');
         $orgName = SPRequest::file($this->nid, 'name');
     }
     $sPath = $this->parseName($entry, $orgName, $this->savePath);
     $path = SPLoader::dirPath($sPath, 'root', false);
     /** Wed, Oct 15, 2014 13:51:03
      * Implemented a cropper with Ajax checker.
      * This is the actual method to get those files
      * Other methods left for BC
      * */
     if (!$data) {
         $directory = SPRequest::string($this->nid, $store[$this->nid], false, $request);
         if (strlen($directory)) {
             list($data, $dirName, $files, $coordinates) = $this->getAjaxFiles($directory);
             if (count($files)) {
                 foreach ($files as $file) {
                     if ($file == '.') {
                         continue;
                     }
                     if ($file == '..') {
                         continue;
                     }
                     if (strpos($file, 'icon_') !== false) {
                         continue;
                     }
                     if (strpos($file, 'resized_') !== false) {
                         continue;
                     }
                     if (strpos($file, 'cropped_') !== false) {
                         $cropped = $dirName . $file;
                         SPFs::upload($cropped, $path . basename($cropped));
                         continue;
                     }
                     if (strpos($file, '.var') !== false) {
                         continue;
                     }
                     $fileSize = filesize($dirName . $file);
                     $orgName = $file;
                 }
             }
             if (strlen($coordinates)) {
                 $coordinates = json_decode(SPLang::clean($coordinates), true);
                 /** @var SPImage $croppedImage */
                 $croppedImage = SPFactory::Instance('base.fs.image', $dirName . $orgName);
                 $croppedImage->crop($coordinates['width'], $coordinates['height'], $coordinates['x'], $coordinates['y']);
                 $cropped = 'cropped_' . $orgName;
                 $croppedImage->saveAs($path . $cropped);
             }
             $data = strlen($cropped) ? $cropped : $dirName . $file;
         }
     }
     $files = array();
     /* if we have an image */
     if ($data && $orgName) {
         if ($fileSize > $this->maxSize) {
             throw new SPException(SPLang::e('FIELD_IMG_TOO_LARGE', $this->name, $fileSize, $this->maxSize));
         }
         if ($cropped) {
             SPFs::upload($dirName . $orgName, $path . $orgName);
         }
         /**
          * @var SPImage $orgImage
          */
         if ($cache) {
             $orgImage = SPFactory::Instance('base.fs.image', $data);
             $orgImage->move($path . $orgName);
         } else {
             $orgImage = SPFactory::Instance('base.fs.image');
             $nameArray = explode('.', $orgName);
//.........这里部分代码省略.........
开发者ID:ranrolls,项目名称:ras-full-portal,代码行数:101,代码来源:image.php

示例11: saveData

 /**
  * Gets the data for a field and save it in the database
  * @param SPEntry $entry
  * @param string $request
  * @param bool $clone
  * @throws SPException
  * @return bool
  */
 public function saveData(&$entry, $request = 'POST', $clone = false)
 {
     if (!$this->enabled) {
         return false;
     }
     $del = SPRequest::bool($this->nid . '_delete', false, $request);
     if ($clone) {
         $orgSid = SPRequest::sid();
         $this->loadData($orgSid);
         $files = $this->getExistingFiles();
         $cloneFiles = array();
         if (isset($files['original']) && file_exists(SOBI_ROOT . '/' . $files['original'])) {
             return $this->cloneFiles($entry, $request, $files, $cloneFiles);
         }
     }
     $fileSize = SPRequest::file($this->nid, 'size');
     $cropped = null;
     static $store = null;
     $cache = false;
     if ($store == null) {
         $store = SPFactory::registry()->get('requestcache_stored');
     }
     if (is_array($store) && isset($store[$this->nid])) {
         if (!strstr($store[$this->nid], 'file://') && !strstr($store[$this->nid], 'directory://')) {
             $data = $store[$this->nid];
             $cache = true;
             $orgName = SPRequest::file($this->nid, 'name', $request);
         } else {
             SPRequest::set($this->nid, $store[$this->nid]);
             $orgName = SPRequest::file($this->nid, 'name');
             $data = SPRequest::file($this->nid, 'tmp_name');
         }
     } else {
         $data = SPRequest::file($this->nid, 'tmp_name');
         $orgName = SPRequest::file($this->nid, 'name');
     }
     $sPath = $this->parseName($entry, $orgName, $this->savePath);
     $path = SPLoader::dirPath($sPath, 'root', false);
     /** Wed, Oct 15, 2014 13:51:03
      * Implemented a cropper with Ajax checker.
      * This is the actual method to get those files
      * Other methods left for BC
      * */
     if (!$data) {
         $directory = SPRequest::string($this->nid, $store[$this->nid], false, $request);
         if (strlen($directory)) {
             list($data, $dirName, $files, $coordinates) = $this->getAjaxFiles($directory);
             if (count($files)) {
                 foreach ($files as $file) {
                     if ($file == '.') {
                         continue;
                     }
                     if ($file == '..') {
                         continue;
                     }
                     if (strpos($file, 'icon_') !== false) {
                         continue;
                     }
                     if (strpos($file, 'resized_') !== false) {
                         continue;
                     }
                     if (strpos($file, 'cropped_') !== false) {
                         $cropped = $dirName . $file;
                         SPFs::upload($cropped, $path . basename($cropped));
                         continue;
                     }
                     if (strpos($file, '.var') !== false) {
                         continue;
                     }
                     $fileSize = filesize($dirName . $file);
                     $orgName = $file;
                 }
             }
             if (strlen($coordinates)) {
                 $coordinates = json_decode(SPLang::clean($coordinates), true);
                 /** @var SPImage $croppedImage */
                 $croppedImage = SPFactory::Instance('base.fs.image', $dirName . $orgName);
                 $croppedImage->crop($coordinates['width'], $coordinates['height'], $coordinates['x'], $coordinates['y']);
                 $cropped = 'cropped_' . $orgName;
                 $croppedImage->saveAs($path . $cropped);
             }
             $data = strlen($cropped) ? $cropped : $dirName . $file;
         }
     }
     $files = array();
     /* if we have an image */
     if ($data && $orgName) {
         if ($fileSize > $this->maxSize) {
             throw new SPException(SPLang::e('FIELD_IMG_TOO_LARGE', $this->name, $fileSize, $this->maxSize));
         }
         if ($cropped) {
             SPFs::upload($dirName . $orgName, $path . $orgName);
//.........这里部分代码省略.........
开发者ID:kishoreweblabs,项目名称:SobiPro,代码行数:101,代码来源:image.php

示例12: save

 /**
  * Save existing field
  */
 protected function save($clone = false)
 {
     $sets = array();
     if (!SPFactory::mainframe()->checkToken()) {
         Sobi::Error('Token', SPLang::e('UNAUTHORIZED_ACCESS_TASK', SPRequest::task()), SPC::ERROR, 403, __LINE__, __FILE__);
     }
     $fid = SPRequest::int('fid');
     $field = SPFactory::Model('field', true);
     if ($fid) {
         $f = $this->loadField($fid);
         $field->extend($f);
     } else {
         $field->loadType(SPRequest::cmd('field_fieldType'));
     }
     $nid = SPRequest::cmd('field_nid');
     if (!$nid || !strstr($nid, 'field_')) {
         /** give me my spaces back!!! */
         $nid = strtolower(str_replace('-', '_', SPLang::nid('field_' . SPRequest::string('field_name'))));
         SPRequest::set('field_nid', $nid);
     }
     $this->getRequest();
     $this->validate($field);
     if ($clone || !$fid) {
         try {
             $fid = $field->saveNew($this->attr);
             $field->save($this->attr);
         } catch (SPException $x) {
             $this->response(Sobi::Url(array('task' => 'field.edit', 'fid' => $fid, 'sid' => SPRequest::sid())), $x->getMessage(), false, SPC::ERROR_MSG);
         }
     } else {
         try {
             $field->save($this->attr);
         } catch (SPException $x) {
             $this->response(Sobi::Url(array('task' => 'field.edit', 'fid' => $fid, 'sid' => SPRequest::sid())), $x->getMessage(), false, SPC::ERROR_MSG);
         }
     }
     $alias = $field->get('nid');
     $fieldSets = $field->get('sets');
     if (is_array($fieldSets) && count($fieldSets)) {
         $sets = array_merge($fieldSets, $sets);
     }
     $sets['fid'] = $field->get('fid');
     $sets['field.nid'] = $alias;
     /* in case we are changing the sort by field */
     if (Sobi::Cfg('list.entries_ordering') == $alias && $field->get('nid') != $alias) {
         SPFactory::config()->saveCfg('list.entries_ordering', $field->get('nid'));
     }
     SPFactory::cache()->cleanSection();
     if ($this->_task == 'apply' || $clone) {
         if ($clone) {
             $msg = Sobi::Txt('FM.FIELD_CLONED');
             $this->response(Sobi::Url(array('task' => 'field.edit', 'fid' => $fid, 'sid' => SPRequest::sid())), $msg);
         } else {
             $msg = Sobi::Txt('MSG.ALL_CHANGES_SAVED');
             $this->response(Sobi::Url(array('task' => 'field.edit', 'fid' => $fid, 'sid' => SPRequest::sid())), $msg, false, 'success', array('sets' => $sets));
         }
     } else {
         $this->response(Sobi::Back(), Sobi::Txt('MSG.ALL_CHANGES_SAVED'));
     }
 }
开发者ID:kishoreweblabs,项目名称:SobiPro,代码行数:63,代码来源:field.php

示例13: view

 /**
  */
 protected function view()
 {
     /* @var SPdb $db */
     $db = SPFactory::db();
     SPRequest::set('task', 'category.view');
     /* get the lists ordering and limits */
     $eLimit = Sobi::GetUserState('entries.limit', 'elimit', Sobi::Cfg('admin.entries-limit', 25));
     $cLimit = Sobi::GetUserState('categories.limit', 'climit', Sobi::Cfg('admin.categories-limit', 15));
     $eLimStart = SPRequest::int('eSite', 0);
     $cLimStart = SPRequest::int('cSite', 0);
     /* get child categories and entries */
     $e = $this->_model->getChilds();
     $c = $this->_model->getChilds('category');
     // just in case the given site is grater than all existing sites
     $cCount = count($c);
     $cPages = ceil($cCount / $cLimit);
     if ($cLimStart > $cPages) {
         $cLimStart = $cPages;
         SPRequest::set('cSite', $cPages);
     }
     $eCount = count($e);
     $ePages = ceil($eCount / $eLimit);
     if ($eLimStart > $ePages) {
         $eLimStart = $ePages;
         SPRequest::set('eSite', $ePages);
     }
     $entries = array();
     $categories = array();
     SPLoader::loadClass('models.dbobject');
     /* if there are categories in the root */
     if (count($c)) {
         try {
             $LimStart = $cLimStart ? ($cLimStart - 1) * $cLimit : $cLimStart;
             $Limit = $cLimit > 0 ? $cLimit : 0;
             $cOrder = $this->parseOrdering('categories', 'corder', 'position.asc', $Limit, $LimStart, $c);
             $db->select('*', 'spdb_object', array('id' => $c, 'oType' => 'category'), $cOrder, $Limit, $LimStart);
             $results = $db->loadResultArray();
         } catch (SPException $x) {
             Sobi::Error($this->name(), SPLang::e('DB_REPORTS_ERR', $x->getMessage()), SPC::WARNING, 0, __LINE__, __FILE__);
         }
         foreach ($results as $i => $category) {
             $categories[$i] = SPFactory::Category($category);
             // new $cClass();
             //$categories[ $i ]->extend( $category );
         }
     }
     /* if there are entries in the root */
     if (count($e)) {
         try {
             $LimStart = $eLimStart ? ($eLimStart - 1) * $eLimit : $eLimStart;
             $Limit = $eLimit > 0 ? $eLimit : 0;
             $eOrder = $this->parseOrdering('entries', 'eorder', 'position.asc', $Limit, $LimStart, $e);
             $entries = $db->select('*', 'spdb_object', array('id' => $e, 'oType' => 'entry'), $eOrder, $Limit, $LimStart)->loadResultArray();
         } catch (SPException $x) {
             Sobi::Error($this->name(), SPLang::e('DB_REPORTS_ERR', $x->getMessage()), SPC::WARNING, 0, __LINE__, __FILE__);
         }
     }
     $entriesName = SPFactory::config()->nameField()->get('name');
     $entriesField = SPFactory::config()->nameField()->get('nid');
     /* create menu */
     SPLoader::loadClass('views.adm.menu');
     $menu = new SPAdmSiteMenu('section.' . $this->_task, SPRequest::sid());
     /* load the menu definition */
     $cfg = SPLoader::loadIniFile('etc.adm.section_menu');
     Sobi::Trigger('Create', 'AdmMenu', array(&$cfg));
     if (count($cfg)) {
         foreach ($cfg as $section => $keys) {
             $menu->addSection($section, $keys);
         }
     }
     /* create new SigsiuTree */
     $tree = SPLoader::loadClass('mlo.tree');
     $tree = new $tree(Sobi::GetUserState('categories.order', 'corder', 'position.asc'));
     /* set link */
     $tree->setHref(Sobi::Url(array('sid' => '{sid}')));
     $tree->setId('menuTree');
     /* set the task to expand the tree */
     $tree->setTask('category.expand');
     $tree->init(Sobi::Reg('current_section'), SPRequest::sid());
     /* add the tree into the menu */
     $menu->addCustom('AMN.ENT_CAT', $tree->getTree());
     /* get view class */
     $view = SPFactory::View('category', true);
     $view->assign($eLimit, '$eLimit')->assign($eLimit, 'entries-limit')->assign($cLimit, 'categories-limit')->assign(SPRequest::int('eSite', 1), 'entries-site')->assign(SPRequest::int('cSite', 1), 'categories-site')->assign($cCount, 'categories-count')->assign($eCount, 'entries-count')->assign($this->_task, 'task')->assign($this->_model, 'category')->assign($categories, 'categories')->assign($entries, 'entries')->assign($this->customCols(), 'fields')->assign($entriesName, 'entries_name')->assign($entriesField, 'entries_field')->assign($menu, 'menu')->assign(Sobi::GetUserState('entries.eorder', 'eorder', 'position.asc'), 'eorder')->assign(Sobi::GetUserState('categories.corder', 'corder', 'position.asc'), 'corder')->assign($this->_model->get('name'), 'category_name')->addHidden(Sobi::Section(), 'pid')->addHidden(SPRequest::sid(), 'sid');
     Sobi::Trigger('Category', 'View', array(&$view));
     $view->display();
 }
开发者ID:ranrolls,项目名称:ras-full-portal,代码行数:89,代码来源:category.php

示例14: execute

 /**
  * @return bool
  */
 public function execute()
 {
     $r = false;
     SPRequest::set('task', $this->_type . '.' . $this->_task);
     switch ($this->_task) {
         /* if someone want edit an object - just check if it is not checked out */
         case 'edit':
             if ($this->_model && $this->_model->isCheckedOut()) {
                 Sobi::Redirect(Sobi::GetUserState('back_url', Sobi::Url()), Sobi::Txt('MSG.OBJ_CHECKED_OUT', array('type' => Sobi::Txt($this->_type))), SPC::ERROR_MSG, true);
                 exit;
             }
             break;
         case 'hide':
         case 'publish':
             $r = true;
             $this->state($this->_task == 'publish');
             break;
         case 'toggle.enabled':
         case 'toggle.approval':
             $r = true;
             $this->toggleState();
             break;
         case 'apply':
         case 'save':
         case 'saveAndNew':
             $r = true;
             $this->save($this->_task == 'apply');
             break;
         case 'cancel':
             if (defined('SOBI_ADM_PATH')) {
                 $this->checkIn(SPRequest::sid(), false);
                 $this->response(Sobi::Back());
             }
             $this->checkIn(SPRequest::int('sid'));
             $r = true;
             if (SPRequest::int('sid')) {
                 $url = Sobi::Url(array('sid' => SPRequest::sid()));
             } elseif (SPRequest::int('pid')) {
                 $url = Sobi::Url(array('sid' => SPRequest::int('pid')));
             } else {
                 $url = Sobi::Url(array('sid' => Sobi::Section()));
             }
             $this->response($url);
             break;
         case 'delete':
             if ($this->_model->get('owner') == Sobi::My('id') && $this->authorise('delete', 'own') || $this->authorise('delete', '*')) {
                 $r = true;
                 if ($this->_model->get('id')) {
                     $this->_model->delete();
                     if ($this->_type == 'entry' && !defined('SOBIPRO_ADM')) {
                         if (SPRequest::int('pid')) {
                             $url = Sobi::Url(array('sid' => SPRequest::int('pid')));
                         } else {
                             $url = Sobi::Url(array('sid' => Sobi::Section()));
                         }
                     } else {
                         $url = Sobi::Back();
                     }
                     $this->response($url, Sobi::Txt('MSG.OBJ_DELETED', array('type' => Sobi::Txt($this->_type))), false);
                 } else {
                     $this->response(Sobi::Back(), Sobi::Txt('CHANGE_NO_ID'), false, SPC::ERROR_MSG);
                 }
             }
             break;
         case 'view':
             $r = true;
             $this->visible();
             $this->view();
             break;
         case 'resetCounter':
             if ($this->authorise('edit', '*')) {
                 $this->_model->countVisit(true);
                 exit(true);
             }
             break;
         default:
             $r = Sobi::Trigger('Execute', $this->name(), array(&$this));
             break;
     }
     return $r;
 }
开发者ID:pelloq1,项目名称:SobiPro,代码行数:84,代码来源:controller.php

示例15: parseXml

 protected function parseXml()
 {
     $header = $this->_xml->getElementsByTagName('header')->item(0);
     if ($header->hasChildNodes()) {
         foreach ($header->childNodes as $node) {
             if (!strstr($node->nodeName, '#')) {
                 $params = array();
                 $this->parseParams($node, $params);
                 $this->callHeader($node->nodeName, $params[$node->nodeName]);
             }
         }
     }
     $data = $this->_xml->getElementsByTagName('cache-data')->item(0);
     if ($data && $data->hasChildNodes()) {
         foreach ($data->childNodes as $node) {
             if (!strstr($node->nodeName, '#')) {
                 $params = array();
                 $this->parseParams($node, $params);
                 if (isset($params['hidden']) && is_array($params['hidden']) && count($params['hidden'])) {
                     foreach ($params['hidden'] as $k => $v) {
                         $this->addHidden($v, $k);
                     }
                 }
                 if (isset($params['request']) && is_array($params['request']) && count($params['request'])) {
                     foreach ($params['request'] as $k => $v) {
                         SPRequest::set($k, $v, 'get');
                     }
                 }
                 if (isset($params['pathway']) && is_array($params['pathway']) && count($params['pathway'])) {
                     foreach ($params['pathway'] as $v) {
                         SPFactory::mainframe()->addToPathway($v['name'], $v['url']);
                     }
                 }
             }
         }
     }
     $visitor = $this->visitorArray(SPFactory::user()->getCurrent());
     if (is_array($visitor) && isset($visitor['_data'])) {
         $this->importData($this->_xml->documentElement, $visitor, 'visitor');
     }
     $messages = SPFactory::message()->getMessages();
     $info = array();
     if (count($messages)) {
         foreach ($messages as $type => $content) {
             $info[$type] = array_values($content);
         }
     }
     if (is_array($info)) {
         $this->importData($this->_xml->documentElement, $info, 'messages');
     }
     $this->_xml->formatOutput = true;
 }
开发者ID:kishoreweblabs,项目名称:SobiPro,代码行数:52,代码来源:cache.php


注:本文中的SPRequest::set方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。