Esempio n. 1
0
 /**
  * Retrieve subject
  *
  * @return Mage_Backend_Model_Config_Structure_SearchInterface
  */
 protected function _getSubject()
 {
     if (!$this->_subject) {
         $this->_subject = $this->_objectManager->get('Mage_Backend_Model_Config_Structure');
     }
     return $this->_subject;
 }
Esempio n. 2
0
 /**
  * @param Mage_Core_Model_Event_Manager $eventDispatcher
  * @param Mage_Core_Model_Cache $cacheManager
  * @param Mage_Core_Model_Resource_Abstract $resource
  * @param Varien_Data_Collection_Db $resourceCollection
  * @param Varien_Io_File $ioFile
  * @param Magento_ObjectManager $objectManager
  * @param array $data
  */
 public function __construct(Mage_Core_Model_Event_Manager $eventDispatcher, Mage_Core_Model_Cache $cacheManager, Varien_Io_File $ioFile, Magento_ObjectManager $objectManager, Mage_Core_Model_Resource_Abstract $resource = null, Varien_Data_Collection_Db $resourceCollection = null, array $data = array())
 {
     parent::__construct($eventDispatcher, $cacheManager, $resource, $resourceCollection, $data);
     $this->_ioFile = $ioFile;
     $this->_objectManager = $objectManager;
     $this->_design = $this->_objectManager->get('Mage_Core_Model_Design_Package');
 }
Esempio n. 3
0
 /**
  * Get renderer for Mime-Type specified in Accept header of request.
  *
  * @return Mage_Webapi_Controller_Response_Rest_RendererInterface
  * @throws Mage_Webapi_Exception
  * @throws LogicException
  */
 public function get()
 {
     $acceptTypes = $this->_request->getAcceptTypes();
     $availableRenderers = (array) $this->_applicationConfig->getNode(self::XML_PATH_WEBAPI_RESPONSE_RENDERS);
     if (!is_array($acceptTypes)) {
         $acceptTypes = array($acceptTypes);
     }
     foreach ($acceptTypes as $acceptType) {
         foreach ($availableRenderers as $rendererConfig) {
             $rendererType = (string) $rendererConfig->type;
             if ($acceptType == $rendererType || $acceptType == current(explode('/', $rendererType)) . '/*' || $acceptType == '*/*') {
                 $rendererClass = (string) $rendererConfig->model;
                 break 2;
             }
         }
     }
     if (!isset($rendererClass)) {
         /** If server does not have renderer for any of the accepted types it SHOULD send 406 (not acceptable). */
         throw new Mage_Webapi_Exception($this->_helper->__('Server cannot understand Accept HTTP header media type.'), Mage_Webapi_Exception::HTTP_NOT_ACCEPTABLE);
     }
     $renderer = $this->_objectManager->get($rendererClass);
     if (!$renderer instanceof Mage_Webapi_Controller_Response_Rest_RendererInterface) {
         throw new LogicException('The renderer must implement "Mage_Webapi_Controller_Response_Rest_RendererInterface".');
     }
     return $renderer;
 }
Esempio n. 4
0
 /**
  * Create front controller instance.
  *
  * Use current API type to define proper request class.
  *
  * @param string $apiType
  * @return Mage_Webapi_Controller_DispatcherInterface
  * @throws LogicException If there is no corresponding dispatcher class for current API type.
  */
 public function get($apiType)
 {
     if (!isset($this->_apiDispatcherMap[$apiType])) {
         throw new LogicException(sprintf('There is no corresponding dispatcher class for the "%s" API type.', $apiType));
     }
     $dispatcherClass = $this->_apiDispatcherMap[$apiType];
     return $this->_objectManager->get($dispatcherClass);
 }
Esempio n. 5
0
 /**
  * Create response object.
  *
  * Use current API type to define proper response class.
  *
  * @return Mage_Webapi_Controller_Response
  * @throws LogicException If there is no corresponding response class for current API type.
  */
 public function get()
 {
     $apiType = $this->_apiFrontController->determineApiType();
     if (!isset($this->_apiResponseMap[$apiType])) {
         throw new LogicException(sprintf('There is no corresponding response class for the "%s" API type.', $apiType));
     }
     $requestClass = $this->_apiResponseMap[$apiType];
     return $this->_objectManager->get($requestClass);
 }
Esempio n. 6
0
 /**
  * Get mapper instance
  *
  * @param string $type
  * @param array $arguments
  * @return Mage_Backend_Model_Config_Structure_MapperInterface
  * @throws Exception
  */
 public function create($type, $arguments = array())
 {
     $className = $this->_getMapperClassNameByType($type);
     /** @var Mage_Backend_Model_Config_Structure_MapperInterface $mapperInstance  */
     $mapperInstance = $this->_objectManager->get($className, $arguments);
     if (false == $mapperInstance instanceof Mage_Backend_Model_Config_Structure_MapperInterface) {
         throw new Exception('Mapper object is not instance on Mage_Backend_Model_Config_Structure_MapperInterface');
     }
     return $mapperInstance;
 }
Esempio n. 7
0
 protected function setUp()
 {
     $this->_objectManager = Mage::getObjectManager();
     $this->_design = $this->_objectManager->get('Mage_Core_Model_Design_Package');
     $this->_themeId = $this->_design->getDesignTheme()->getThemeId();
     /** @var $theme Mage_Core_Model_Theme */
     $theme = $this->_objectManager->create('Mage_Core_Model_Theme');
     $theme->load('Test Theme', 'theme_title');
     $this->_design->getDesignTheme()->setThemeId($theme->getId());
 }
Esempio n. 8
0
 /**
  * @param string $className
  * @param array $routerInfo
  * @return Mage_Core_Controller_Varien_Router_Abstract
  */
 public function createRouter($className, array $routerInfo = array())
 {
     $arguments = array('areaCode' => null, 'baseController' => null);
     if (isset($routerInfo['area'])) {
         $arguments['areaCode'] = $routerInfo['area'];
     }
     if (isset($routerInfo['base_controller'])) {
         $arguments['baseController'] = $routerInfo['base_controller'];
     }
     return $this->_objectManager->get($className, $arguments);
 }
Esempio n. 9
0
 /**
  * Create a form element with necessary controls
  *
  * @return Mage_Theme_Block_Adminhtml_System_Design_Theme_Edit_Tab_Css
  */
 protected function _prepareForm()
 {
     $form = new Varien_Data_Form();
     $this->setForm($form);
     $this->_addThemeCssFieldset();
     $this->_addCustomCssFieldset();
     $formData['custom_css_content'] = $this->_getCurrentTheme()->getCustomCssFile()->getContent();
     /** @var $session Mage_Backend_Model_Session */
     $session = $this->_objectManager->get('Mage_Backend_Model_Session');
     $cssFileContent = $session->getThemeCustomCssData();
     if ($cssFileContent) {
         $formData['custom_css_content'] = $cssFileContent;
         $session->unsThemeCustomCssData();
     }
     $form->addValues($formData);
     return $this;
 }
Esempio n. 10
0
 /**
  * Retrieve proper interpreter for the specified content type.
  *
  * @param string $contentType
  * @return Mage_Webapi_Controller_Request_Rest_InterpreterInterface
  * @throws LogicException|Mage_Webapi_Exception
  */
 public function get($contentType)
 {
     $interpretersMetadata = (array) $this->_applicationConfig->getNode(self::XML_PATH_WEBAPI_REQUEST_INTERPRETERS);
     if (empty($interpretersMetadata) || !is_array($interpretersMetadata)) {
         throw new LogicException('Request interpreter adapter is not set.');
     }
     foreach ($interpretersMetadata as $interpreterMetadata) {
         $interpreterType = (string) $interpreterMetadata->type;
         if ($interpreterType == $contentType) {
             $interpreterClass = (string) $interpreterMetadata->model;
             break;
         }
     }
     if (!isset($interpreterClass) || empty($interpreterClass)) {
         throw new Mage_Webapi_Exception($this->_helper->__('Server cannot understand Content-Type HTTP header media type "%s"', $contentType), Mage_Webapi_Exception::HTTP_BAD_REQUEST);
     }
     $interpreter = $this->_objectManager->get($interpreterClass);
     if (!$interpreter instanceof Mage_Webapi_Controller_Request_Rest_InterpreterInterface) {
         throw new LogicException('The interpreter must implement "Mage_Webapi_Controller_Request_Rest_InterpreterInterface".');
     }
     return $interpreter;
 }
Esempio n. 11
0
 /**
  * @param array $arguments
  * @param string $className
  * @return Mage_Core_Model_Layout
  */
 public function createLayout(array $arguments = array(), $className = self::CLASS_NAME)
 {
     // because layout singleton was used everywhere in magento code, in observers, models, blocks, etc.
     // the only way how we can replace default layout object with custom one is to save instance of custom layout
     // to instance manager storage using default layout class name as alias
     $createLayout = true;
     if (isset($arguments['area'])) {
         if ($this->_objectManager->hasSharedInstance(self::CLASS_NAME)) {
             /** @var $layout Mage_Core_Model_Layout */
             $layout = $this->_objectManager->get(self::CLASS_NAME);
             if ($arguments['area'] != $layout->getArea()) {
                 $this->_objectManager->removeSharedInstance(self::CLASS_NAME);
             } else {
                 $createLayout = false;
             }
         }
     }
     if ($createLayout) {
         $layout = $this->_objectManager->create($className, $arguments, false);
         $this->_objectManager->addSharedInstance($layout, self::CLASS_NAME);
     }
     return $this->_objectManager->get(self::CLASS_NAME);
 }
Esempio n. 12
0
 /**
  * @param $actualHandle
  * @param $expectedHandle
  *
  * @dataProvider typeActionDataProvider
  * @magentoConfigFixture vde/design_editor/frontName vde_front_name
  * @magentoConfigFixture vde/design_editor/defaultHandle default
  */
 public function testTypeAction($actualHandle, $expectedHandle)
 {
     $this->getRequest()->setParam('handle', $actualHandle);
     $this->dispatch(self::VDE_FRONT_NAME . '/' . self::PAGE_TYPE_URL);
     // assert layout data
     /** @var $layout Mage_Core_Model_Layout */
     $layout = $this->_objectManager->get('Mage_Core_Model_Layout');
     $handles = $layout->getUpdate()->getHandles();
     $this->assertContains($expectedHandle, $handles);
     $this->assertContains('designeditor_page_type', $handles);
     $this->assertAttributeSame(true, '_sanitationEnabled', $layout);
     $this->assertAttributeSame(true, '_wrappingEnabled', $layout);
     // assert response body
     $responseBody = $this->getResponse()->getBody();
     $this->assertContains('class="vde_element_wrapper', $responseBody);
     // enabled wrapper
     $this->assertContains('/css/design.css', $responseBody);
     // included wrapper CSS
 }
Esempio n. 13
0
 /**
  * Initialize menu object
  *
  * @return void
  */
 protected function _initMenu()
 {
     if (!$this->_menu) {
         $this->_menu = $this->_menuFactory->getMenuInstance();
         if ($this->_cache->canUse('config')) {
             $cache = $this->_cache->load(self::CACHE_MENU_OBJECT);
             if ($cache) {
                 $this->_menu->unserialize($cache);
                 return;
             }
         }
         /* @var $director Mage_Backend_Model_Menu_Builder */
         $menuBuilder = $this->_factory->create('Mage_Backend_Model_Menu_Builder', array('menu' => $this->_menu, 'menuItemFactory' => $this->_factory->get('Mage_Backend_Model_Menu_Item_Factory')));
         /* @var $director Mage_Backend_Model_Menu_Director_Dom */
         $director = $this->_factory->create('Mage_Backend_Model_Menu_Director_Dom', array('menuConfig' => $this->_getDom(), 'factory' => $this->_factory, 'menuLogger' => $this->_logger));
         $director->buildMenu($menuBuilder);
         $this->_menu = $menuBuilder->getResult();
         $this->_eventManager->dispatch('backend_menu_load_after', array('menu' => $this->_menu));
         if ($this->_cache->canUse('config')) {
             $this->_cache->save($this->_menu->serialize(), self::CACHE_MENU_OBJECT, array(Mage_Core_Model_Config::CACHE_TAG));
         }
     }
 }
Esempio n. 14
0
 /**
  * Create backend model by name
  *
  * @param string $modelName
  * @return mixed
  */
 public function create($modelName)
 {
     $model = $this->_objectManager->get($modelName);
     return $model;
 }
Esempio n. 15
0
 /**
  * Get themes root directory absolute path
  *
  * @return string
  */
 protected function _getPreviewImagePublishedRootDir()
 {
     /** @var $design Mage_Core_Model_Design_Package */
     $design = $this->_objectManager->get('Mage_Core_Model_Design_Package');
     $dirPath = $design->getPublicDir();
     $this->_filesystem->setIsAllowCreateDirectories(true);
     $this->_filesystem->ensureDirectoryExists($dirPath);
     $this->_filesystem->setWorkingDirectory($dirPath);
     return $dirPath;
 }
Esempio n. 16
0
 /**
  * Get validator config object.
  *
  * Will instantiate Magento_Validator_Config
  *
  * @return Magento_Validator_Config
  */
 public function getValidatorConfig()
 {
     return $this->_objectManager->get('Magento_Validator_Config', array('configFiles' => $this->_configFiles));
 }
Esempio n. 17
0
 /**
  * Create new config object
  *
  * @param array $data
  * @return Mage_Backend_Block_System_Config_Form_Fieldset
  */
 public function create(array $data = array())
 {
     return $this->_objectManager->get('Mage_Backend_Block_System_Config_Form_Fieldset', $data);
 }
Esempio n. 18
0
 /**
  * Retrieve response object
  *
  * @return Zend_Controller_Response_Http
  */
 public function getResponse()
 {
     if (empty($this->_response)) {
         $this->_response = $this->_objectManager->get('Mage_Core_Controller_Response_Http');
         $this->_response->headersSentThrowsException = Mage::$headersSentThrowsException;
         $this->_response->setHeader("Content-Type", "text/html; charset=UTF-8");
     }
     return $this->_response;
 }
Esempio n. 19
0
 /**
  * @param array $arguments
  * @return mixed
  */
 public function createFromArray(array $arguments = array())
 {
     return $this->_objectManager->get(self::CLASS_NAME, $arguments);
 }
Esempio n. 20
0
 /**
  * Write exception to log
  *
  * @param Exception $e
  */
 public static function logException(Exception $e)
 {
     self::$_objectManager->get('Mage_Core_Model_Logger')->logException($e);
 }