public function filterText($text)
 {
     $inflector = new Zend_Filter_Inflector(':text');
     $inflector->setRules(array(':text' => array(new Zend_Filter_StringToLower(), new Zend_Filter_StripTags(), new Zend_Filter_Word_DashToSeparator(), new Zend_Filter_Word_SeparatorToSeparator('/', '_'), new Zend_Filter_Word_UnderscoreToSeparator(), new Zend_Filter_StringTrim(), new Zend_Filter_Alnum(true), new Zend_Filter_Word_SeparatorToSeparator(' ', '_'))));
     $text = $inflector->filter(array('text' => $text));
     return $text;
 }
Example #2
0
 public function generateSlug($rawSlug)
 {
     $inflector = new Zend_Filter_Inflector(':slug');
     $inflector->setRules(array(':slug' => array(new Zend_Filter_StringToLower(), new Zend_Filter_StringTrim(), new Zend_Filter_StripTags(), new Zend_Filter_Word_DashToSeparator(), new Zend_Filter_PregReplace(array('match' => '/[^A-Za-z0-9]/', 'replace' => ' ')), new Zend_Filter_Alnum(true), new Zend_Filter_Word_SeparatorToDash())));
     $slug = $inflector->filter(array('slug' => $rawSlug));
     return $slug;
 }
Example #3
0
 /**
  * Retrieves the view renderer object
  *
  * @return Zend_Controller_Action_Helper_ViewRenderer|null
  * @throws Glitch_Application_Resource_Exception
  */
 public function getViewRenderer()
 {
     if (null === $this->_viewRenderer) {
         // Pull in the front controller; bootstrap first if necessary
         $this->_bootstrap->bootstrap('FrontController');
         $front = $this->_bootstrap->getResource('FrontController');
         // Ignore if no view renderer is to be used
         if ($front->getParam('noViewRenderer')) {
             return null;
         }
         // Get existing renderer, if any, or create a new one
         $this->_viewRenderer = Zend_Controller_Action_HelperBroker::hasHelper('viewRenderer') ? Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer') : new $this->_className(null, $this->getOptions());
         // Dynamic class loading; perform sanity check
         if (!$this->_viewRenderer instanceof Zend_Controller_Action_Helper_ViewRenderer) {
             throw new Glitch_Application_Resource_Exception('Class is not a valid view renderer instance');
         }
         // Register the view as the default view for handling view scripts
         $this->_bootstrap->bootstrap('View');
         $view = $this->_bootstrap->getResource('View');
         $this->_viewRenderer->setView($view);
         // It is paramount to set this base path spec: ZF otherwise uses its own
         // spec, causing it to create a path to a conventional ZF-style directory
         $this->_viewRenderer->setViewBasePathSpec(':module/' . Glitch_View::PATH_VIEW);
         // Set empty inflector settings: all path translations are handled by the custom dispatcher
         $inflector = new Zend_Filter_Inflector();
         $inflector->addRules(array(':module' => array(), ':controller' => array(), ':action' => array()));
         $this->_viewRenderer->setInflector($inflector, true);
         if (!Zend_Controller_Action_HelperBroker::hasHelper('viewRenderer')) {
             Zend_Controller_Action_HelperBroker::addHelper($this->_viewRenderer);
         }
     }
     return $this->_viewRenderer;
 }
Example #4
0
 /**
  * Inflektor pro ziskani nazvu atributu
  * camelCase -> under_score
  *
  * @param string $columnName
  * @return string
  */
 protected function _transformColumn($columnName)
 {
     $inflector = new Zend_Filter_Inflector(":string");
     $inflector->setRules(array(':string' => array('Word_CamelCaseToUnderscore', 'StringToLower')));
     $columnName = $inflector->filter(array('string' => $columnName));
     return $columnName;
 }
Example #5
0
 /**
  * Uses Zend's inflector rules to convert from class names to url segments
  * 
  * @param 	string $name
  * @return 	string
  */
 protected function _dasherise($name)
 {
     $name = str_replace('Action', '', $name);
     $inflector = new Zend_Filter_Inflector(':name');
     $inflector->setRules(array(':name' => array('Word_CamelCaseToDash', 'StringToLower')));
     return $inflector->filter(array('name' => $name));
 }
Example #6
0
 protected function _initView()
 {
     // Start initail view
     $this->bootstrap('layout');
     $config = $this->getOption('views');
     $resources = $this->getOption('resources');
     $view = new Zend_View();
     if (isset($resources['layout']['layoutPath'])) {
         $view->assign('layoutRootPath', $resources['layout']['layoutPath']);
     }
     $this->bootstrap('db');
     Zend_Loader::loadClass('Ht_Utils_SystemSetting');
     $sysSetting = Ht_Utils_SystemSetting::getSettings();
     $view->assign('sysSetting', $sysSetting);
     $view->assign('profile', Zend_Auth::getInstance()->getIdentity());
     Zend_Loader::loadClass("Ht_Model_SystemSetting");
     $this->setSystemLogConfiguration($sysSetting);
     // use the viewrenderer to keep the code DRY
     // instantiate and add the helper in one go
     $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
     $viewRenderer->setView($view);
     $viewRenderer->setViewSuffix('phtml');
     // add it to the action helper broker
     Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
     /**
      * Set inflector for Zend_Layout
      */
     $inflector = new Zend_Filter_Inflector(':script.:suffix');
     $inflector->addRules(array(':script' => array('Word_CamelCaseToDash', 'StringToLower'), 'suffix' => 'phtml'));
     // Initialise Zend_Layout's MVC helpers
     $this->getResource('layout')->setLayoutPath(realpath($resources['layout']['layoutPath']))->setView($view)->setContentKey('content')->setInflector($inflector);
     return $this->getResource('layout')->getView();
 }
Example #7
0
 /**
  * Get path inflector
  * @return Zend_Filter_Inflector
  */
 public static function getInflector()
 {
     if (null === self::$_inflector) {
         $inflector = new Zend_Filter_Inflector();
         $inflector->addRules(array(':module' => array('Word_CamelCaseToDash', 'StringToLower'), ':controller' => array('Word_CamelCaseToDash', new Zend_Filter_Word_UnderscoreToSeparator('/'), 'StringToLower', new Zend_Filter_PregReplace('/\\./', '-')), ':action' => array('Word_CamelCaseToDash', new Zend_Filter_PregReplace('#[^a-z0-9' . preg_quote('/', '#') . ']+#i', '-'), 'StringToLower')))->setTarget('../application/modules/:module/views/scripts/:controller/:action.xsl');
         self::setInflector($inflector);
     }
     return self::$_inflector;
 }
Example #8
0
 /**
  * Get Inflector to use determing correct class name
  *
  * @return Zend_Filter_Inflector
  */
 public function getInflector()
 {
     if (null === $this->_inflector) {
         $filters = array('Word_DashToCamelCase', new Zend_Filter_Callback('ucfirst'));
         $inflector = new Zend_Filter_Inflector(':module_Model_Service_:name');
         $inflector->setRules(array(':module' => $filters, ':name' => $filters));
         $this->_inflector = $inflector;
     }
     return $this->_inflector;
 }
Example #9
0
 public function __construct($config = array())
 {
     parent::__construct($config);
     // strip filename_orig from weird characters and transform underscores to camelcase
     $pattern = '/(.*[\\\\\\/])?(.*)$/';
     preg_match($pattern, $this->filename_orig, $matches);
     $sanatized = str_replace(array(' ', ':', '*', '?', '"', '<', '>', '|'), '_', $matches[2]);
     $inflector = new Zend_Filter_Inflector(':name');
     $inflector->setRules(array(':name' => array('Word_UnderscoreToCamelCase')));
     $filtered = $inflector->filter(array('name' => $sanatized));
     $this->filename_orig = $filtered;
 }
Example #10
0
    /**
     * Render layout
     *
     * Sets internal script path as last path on script path stack, assigns
     * layout variables to view, determines layout name using inflector, and
     * renders layout view script.
     *
     * $name will be passed to the inflector as the key 'script'.
     *
     * @param  mixed $name
     * @return mixed
     */
    public function render($name = null)
    {
        if (null === $name) {
            $name = $this->getLayout();
        }

        if ($this->inflectorEnabled() && (null !== ($inflector = $this->getInflector())))
        {
            $name = $this->_inflector->filter(array('script' => $name));
        }

        $view = $this->getView();

        if (null !== ($path = $this->getViewScriptPath())) {
            if (method_exists($view, 'addScriptPath')) {
                $view->addScriptPath($path);
            } else {
                $view->setScriptPath($path);
            }
        } elseif (null !== ($path = $this->getViewBasePath())) {
            $view->addBasePath($path, $this->_viewBasePrefix);
        }

        return $view->render($name);
    }
Example #11
0
 /**
  * Get inflector
  *
  * @return Zend_Filter_Inflector
  */
 public function getInflector()
 {
     if (null === $this->_inflector) {
         $this->_inflector = new Zend_Filter_Inflector();
         $this->_inflector->addRules(array(':module' => array('Word_CamelCaseToDash', 'StringToLower'), ':controller' => array('Word_CamelCaseToDash', new Zend_Filter_Word_UnderscoreToSeparator('/'), 'StringToLower', new Zend_Filter_PregReplace('/\\./', '-')), ':action' => array('Word_CamelCaseToDash', new Zend_Filter_PregReplace('#[^a-z0-9' . preg_quote('/', '#') . ']+#i', '-'), 'StringToLower')));
     }
     return $this->_inflector;
 }
Example #12
0
 /**
  * Set inflector
  *
  * @param  Zend_Filter_Inflector $inflector
  * @param  boolean               $reference Whether the moduleDir, target, and suffix should be set as references to ViewRenderer properties
  * @return Zend_Controller_Action_Helper_ViewRenderer Provides a fluent interface
  */
 public function setInflector(Zend_Filter_Inflector $inflector, $reference = false)
 {
     $this->_inflector = $inflector;
     if ($reference) {
         $this->_inflector->setStaticRuleReference('suffix', $this->_viewSuffix)->setStaticRuleReference('moduleDir', $this->_moduleDir)->setTargetReference($this->_inflectorTarget);
     }
     return $this;
 }
Example #13
0
 /**
  * Render layout
  *
  * Sets internal script path as last path on script path stack, assigns 
  * layout variables to view, determines layout name using inflector, and 
  * renders layout view script.
  *
  * $name will be passed to the inflector as the key 'script'.
  * 
  * @param  mixed $name 
  * @return mixed
  */
 public function render($name = null)
 {
     if (null === $name) {
         $name = $this->getLayout();
     }
     if ($this->inflectorEnabled() && null !== ($inflector = $this->getInflector())) {
         $name = $this->_inflector->filter(array('script' => $name));
     }
     $view = $this->getView();
     if (null !== ($path = $this->getLayoutPath())) {
         $view->addScriptPath($path);
     }
     return $view->render($name);
 }
 public function testSetConfigSetsStateAndRules()
 {
     $config = $this->getConfig();
     $inflector = new Zend_Filter_Inflector();
     $inflector->setConfig($config);
     $this->_testOptions($inflector);
 }
Example #15
0
 /**
  * @issue ZF-2964
  */
 public function testNoInflectableTarget()
 {
     $inflector = new Zend_Filter_Inflector('abc');
     $inflector->addRules(array(':foo' => array()));
     $this->assertEquals($inflector->filter(array('fo' => 'bar')), 'abc');
 }
 public function testCustomInflectorUsesViewRendererTargetWhenPassedInWithReferenceFlag()
 {
     $this->request->setModuleName('bar')->setControllerName('index')->setActionName('test');
     $controller = new Bar_IndexController($this->request, $this->response, array());
     $this->helper->view->addBasePath($this->basePath . '/_files/modules/bar/views');
     require_once 'Zend/Filter/PregReplace.php';
     require_once 'Zend/Filter/Word/UnderscoreToSeparator.php';
     $inflector = new Zend_Filter_Inflector('test.phtml');
     $inflector->addRules(array(':module' => array('Word_CamelCaseToDash', 'stringToLower'), ':controller' => array('Word_CamelCaseToDash', new Zend_Filter_Word_UnderscoreToSeparator(DIRECTORY_SEPARATOR), 'StringToLower'), ':action' => array('Word_CamelCaseToDash', new Zend_Filter_PregReplace('/[^a-z0-9]+/i', '-'), 'StringToLower')));
     $this->helper->setInflector($inflector, true);
     $this->helper->render();
     $body = $this->response->getBody();
     $this->assertContains('Rendered index/test.phtml in bar module', $body);
 }
Example #17
0
 /**
  * Inflect the name using the inflector filter
  *
  * Changes camelCaseWord to Camel_Case_Word
  *
  * @param string $name The name to inflect
  * @return string The inflected string
  */
 private function _getInflected($name)
 {
     $inflector = new Zend_Filter_Inflector(':class');
     $inflector->setRules(array(':class' => array('Word_CamelCaseToUnderscore')));
     return ucfirst($inflector->filter(array('class' => $name)));
 }
Example #18
0
 /**
  * Returns the template name.
  *
  * @return  string
  */
 public function getTemplateName()
 {
     $request = $this->viewRenderer->Action()->Request();
     $dispatcher = $this->viewRenderer->Front()->Dispatcher();
     $moduleName = $dispatcher->formatModuleName($request->getModuleName());
     $controllerName = $dispatcher->formatControllerName($request->getControllerName());
     $inflector = new Zend_Filter_Inflector($this->target);
     $inflector->setRules($this->filterRules);
     $inflector->setThrowTargetExceptionsOn(false);
     $fileNames = (array) $request->getParam('file', $this->defaultFile);
     $templateNames = array();
     foreach ($fileNames as $fileName) {
         $fileName = ltrim(dirname($fileName) . '/' . basename($fileName, '.js'), '/.');
         if (empty($fileName)) {
             continue;
         }
         $templateNames[] = $inflector->filter(array('module' => $moduleName, 'controller' => $controllerName, 'file' => $fileName));
     }
     $count = count($templateNames);
     if ($count === 0) {
         return null;
     } elseif ($count === 1) {
         return $templateNames[0];
     } else {
         return 'snippet:string:{include file="' . implode("\"}\n{include file=\"", $templateNames) . '"}';
     }
 }
Example #19
0
 /**
  * Submit Feed to website
  * 
  * @return 
  */
 public function submitAction()
 {
     $this->view->keywords = implode('', array('ifphp', 'news aggragator', 'submit rss feed'));
     $form = $this->getSubmitForm();
     //setup the available categories
     $categories = new Categories();
     $this->view->categories = $categories->getAll();
     foreach ($this->view->categories as $category) {
         $form->category->addMultiOptions(array($category->id => $category->title));
     }
     //setup the available languages
     $languages = new Languages();
     $this->view->languages = $languages->getAll();
     foreach ($this->view->languages as $language) {
         $form->language->addMultiOptions(array($language->id => $language->title));
     }
     //if it's a post submit let's save the information
     if ($this->getRequest()->isPost() && $form->isValid($_POST)) {
         //TODO this shoudl be wrapped in a transaction
         //create user
         $users = new Users();
         //check for existance of a user
         $user = $users->getByEmail($form->email->getValue());
         if (!$user) {
             $user = $users->createRow();
             $user->email = $form->email->getValue();
             $user->fullName = $form->fullname->getValue();
             $user->username = '******';
             //TODO put real username here eventually
             $user->password = '';
             $user->roleId = Role::SUBMITTER;
             $user->statusId = Status::ACTIVE;
             $user->save();
         }
         try {
             $feedSource = Zend_Feed_Reader::import($form->url->getValue());
             //convert/parse feed to strongly typed objects
             $defaultFilterChain = new Zend_Filter();
             $defaultFilterChain->addFilter(new Ifphp_Filter_XSSClean());
             $defaultFilterChain->addFilter(new Zend_Filter_StringTrim());
             $defaultFilterChain->addFilter(new Zend_Filter_StripTags());
             $feeds = new Feeds();
             $feed = $feeds->createRow();
             $feed->token = md5(uniqid($user->id));
             $feed->url = $defaultFilterChain->filter($form->url->getValue());
             $feed->title = $defaultFilterChain->filter($feedSource->getTitle());
             $inflector = new Zend_Filter_Inflector(':title');
             $inflector->setRules(array(':title' => array('Word_SeparatorToDash', 'StringToLower', 'HtmlEntities')));
             $feed->slug = $inflector->filter(array('title' => $feed->title));
             $feed->description = $defaultFilterChain->filter($feedSource->getDescription());
             $feed->categoryId = $form->category->getValue();
             $feed->languageId = $form->language->getValue();
             $feed->siteUrl = $form->siteUrl->getValue();
             $feed->statusId = Status::PENDING;
             $feed->userId = $user->id;
             $feed->refreshRate = 120;
             //TODO this is sometimes stored in the feed
             $feed->save();
             //parse feed
             $posts = new Posts();
             foreach ($feedSource as $feedEntry) {
                 $post = $posts->createRow();
                 $post->title = $defaultFilterChain->filter($feedEntry->getTitle());
                 $post->description = $defaultFilterChain->filter($feedEntry->getDescription());
                 $post->link = $defaultFilterChain->filter($feedEntry->getPermaLink());
                 $post->feedId = $feed->id;
                 $date = new Zend_Date($feedEntry->getDateModified());
                 $post->publishDate = $date->toValue();
                 $post->save();
             }
             //    			$this->_flashMessenger->addMessage('Your feed has been added to the site. Your ping back url is http://ifphp.com/feed/ping-back/'.$feed->token);
             $this->sendActivationEmail($feed, $user);
             $this->_forward('submit-thank-you');
         } catch (Zend_Feed_Exception $error) {
             $form->url->markAsError();
             Zend_Registry::getInstance()->logger->err($error);
             return;
         }
     }
     $this->view->form = $form;
 }
Example #20
0
 public function preDispatch()
 {
     $request = $this->getRequest();
     if (Axis_Area::isFrontend()) {
         if (!Axis::getCustomerId() && $this->getActionController() instanceof Axis_Account_Controller_Abstract) {
             $request->setModuleName('Axis_Account')->setControllerName('auth')->setActionName('index')->setDispatched(false);
         }
         return;
     }
     if (!Axis_Area::isBackend()) {
         return;
     }
     $auth = Zend_Auth::getInstance();
     $auth->setStorage(new Zend_Auth_Storage_Session('admin'));
     if (in_array($request->getControllerName(), array('auth', 'forgot')) && 'Axis_Admin' === $request->getModuleName()) {
         return;
     }
     if (!$auth->hasIdentity()) {
         if ($request->isXmlHttpRequest()) {
             Axis::message()->addError(Axis::translate('admin')->__('Your session has been expired. Please relogin'));
             $jsonHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
             $jsonHelper->sendFailure();
             return;
         }
         $request->setModuleName('Axis_Admin')->setControllerName('auth')->setActionName('index')->setDispatched(false);
         return;
     }
     $user = Axis::single('admin/user')->find($auth->getIdentity())->current();
     if (!$user) {
         $request->setModuleName('Axis_Admin')->setControllerName('auth')->setActionName('logout')->setDispatched(false);
         return;
     }
     $acl = new Zend_Acl();
     // add resources
     $resources = Axis::model('admin/acl_resource')->toFlatTree();
     foreach ($resources as $resource) {
         $parent = $resource['parent'];
         try {
             $acl->addResource($resource['id'], $parent);
         } catch (Zend_Acl_Exception $e) {
             Axis::message()->addError($e->getMessage());
         }
     }
     //add role(s)
     $role = (string) $user->role_id;
     $acl->addRole($role);
     //add permission
     $rowset = Axis::single('admin/acl_rule')->select('*')->where('role_id = ?', $role)->fetchRowset();
     foreach ($rowset as $row) {
         if (!$acl->has($row->resource_id)) {
             // $row->delete(); // remove invalid rule
             continue;
         }
         $action = 'deny';
         if ('allow' === $row->permission) {
             $action = 'allow';
         }
         try {
             $acl->{$action}($row->role_id, $row->resource_id);
         } catch (Zend_Acl_Exception $e) {
             Axis::message()->addError($e->getMessage());
         }
     }
     Zend_View_Helper_Navigation_HelperAbstract::setDefaultAcl($acl);
     Zend_View_Helper_Navigation_HelperAbstract::setDefaultRole($role);
     if (in_array($request->getControllerName(), array('error')) && 'Axis_Admin' === $request->getModuleName()) {
         return;
     }
     //get current resource by request
     $request = $this->getRequest();
     $inflector = new Zend_Filter_Inflector();
     $resource = $inflector->addRules(array(':module' => array('Word_CamelCaseToDash', new Zend_Filter_Word_UnderscoreToSeparator('/'), 'StringToLower'), ':controller' => array('Word_CamelCaseToDash', 'StringToLower', new Zend_Filter_PregReplace('/admin_/', '')), ':action' => array('Word_CamelCaseToDash', 'StringToLower')))->setTarget('admin/:module/:controller/:action')->filter($request->getParams());
     if (!$acl->has($resource) || $acl->isAllowed($role, $resource)) {
         return;
     }
     if ($request->isXmlHttpRequest()) {
         Axis::message()->addError(Axis::translate('admin')->__('You have no permission for this operation'));
         $jsonHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
         $jsonHelper->sendFailure();
         return;
     }
     $request->setModuleName('Axis_Admin')->setControllerName('error')->setActionName('access-denied')->setDispatched(false);
 }
Example #21
0
 /**
  * Factory method that runs a given migration.
  *
  * @param string $fileName
  * @param string $direction
  */
 public static function run($fileName, $direction, $verbose)
 {
     if ($direction == 'drop') {
         // We create a fake instance here since drop is not associated
         // with any real migration class.
         $dropper = new self('', __CLASS__);
         $dropper->migrate('drop');
         return;
     }
     $inflector = new Zend_Filter_Inflector(':class', array(':class' => 'Word_DashToCamelCase'));
     preg_match('/(\\d+)_(.+)\\.php/', basename($fileName), $matches);
     $version = $matches[1];
     $class = $inflector->filter(array(':class' => $matches[2]));
     include $fileName;
     if (class_exists($class)) {
         $migration = new $class($version, $class, $verbose);
         $migration->migrate($direction);
         $migration->updateInstalledVersions($version, $direction);
     } else {
         $msg = "Class '{$class}' is not present in the migration file";
         $this->write($msg);
         throw new Svenax_Migration_Exception($msg);
     }
 }
Example #22
0
 /**
  * @todo Remove when done
  */
 public function fixAction()
 {
     $posts = new Posts();
     $tposts = $posts->fetchAll($posts->select()->where('id > 0'));
     $defaultFilterChain = new Zend_Filter();
     $defaultFilterChain->addFilter(new Ifphp_Filter_XSSClean());
     $defaultFilterChain->addFilter(new Zend_Filter_StringTrim());
     $defaultFilterChain->addFilter(new Zend_Filter_StripTags());
     $defaultFilterChain->addFilter(new Zend_Filter_HtmlEntities(array('quotestyle' => ENT_QUOTES, 'charset' => 'UTF-8')));
     $defaultFilterChain->addFilter(new Ifphp_Filter_HtmlEntityNames());
     foreach ($tposts as $post) {
         $post->title = $defaultFilterChain->filter($post->title);
         $post->description = $defaultFilterChain->filter($post->description);
         $post->feedId = $defaultFilterChain->filter($post->feedId);
         $post->link = $defaultFilterChain->filter($post->link);
         $post->publishDate = $post->publishDate;
         //            Zend_Debug::dump($post->description);
         $post->save();
     }
     $feeds = new Feeds();
     $tfeeds = $feeds->fetchAll($feeds->select()->where('id > 0'));
     $inflector = new Zend_Filter_Inflector(':title');
     $inflector->setRules(array(':title' => array('Word_SeparatorToDash', 'StringToLower', 'HtmlEntities')));
     foreach ($tfeeds as $feed) {
         $feed->title = $defaultFilterChain->filter($feed->title);
         $feed->description = $defaultFilterChain->filter($feed->description);
         $feed->slug = $inflector->filter(array('title' => $feed->title));
         $feed->save();
     }
     die;
 }
 public static function underscoreToCamelCase($string)
 {
     $inflector = new Zend_Filter_Inflector(':string');
     $inflector->setRules(array(':string' => 'Word_UnderscoreToCamelCase'));
     return $inflector->filter(array('string' => $string));
 }
 /**
  * @issue ZF-2522
  */
 public function testTestForFalseInConstructorParams()
 {
     $inflector = new Zend_Filter_Inflector('something', array(), false, false);
     $this->assertFalse($inflector->isThrowTargetExceptionsOn());
     $this->assertEquals($inflector->getTargetReplacementIdentifier(), ':');
     $inflector = new Zend_Filter_Inflector('something', array(), false, '#');
     $this->assertEquals($inflector->getTargetReplacementIdentifier(), '#');
 }
Example #25
0
 /**
  * Returns the template name.
  *
  * @return  string
  */
 public function getTemplateName()
 {
     $request = $this->viewRenderer->Action()->Request();
     $dispatcher = $this->viewRenderer->Front()->Dispatcher();
     $moduleName = $dispatcher->formatModuleName($request->getModuleName());
     $controllerName = $dispatcher->formatControllerName($request->getControllerName());
     $inflector = new Zend_Filter_Inflector($this->target);
     $inflector->setRules($this->filterRules);
     $inflector->setThrowTargetExceptionsOn(false);
     $fileName = $request->getParam('file', $this->defaultFile);
     $fileName = ltrim(dirname($fileName) . '/' . basename($fileName, '.js'), '/.');
     if (empty($fileName)) {
         return null;
     }
     $templateName = $inflector->filter(array('module' => $moduleName, 'controller' => $controllerName, 'file' => $fileName));
     return $templateName;
 }
Example #26
0
    public function extendsAction()
    {
        $request = $this->Request();
        $moduleName = 'backend';
        $controllerName = $this->Request()->getParam('baseController');

        $inflector = new Zend_Filter_Inflector(':module/:controller/:file:suffix');
        $inflector->setRules(array(
            ':module' => array('Word_CamelCaseToUnderscore', 'StringToLower'),
            ':controller' => array('Word_CamelCaseToUnderscore', 'StringToLower'),
            ':file' => array('Word_CamelCaseToUnderscore', 'StringToLower'),
            'suffix' => '.js'
        ));
        $inflector->setThrowTargetExceptionsOn(false);

        $fileNames = (array) $request->getParam('file');
        if(empty($fileNames)) {
            return;
        }
        $this->Response()->setHeader('Content-Type', 'application/javascript; charset=utf-8', true);
        $template = 'snippet:string:';

        $this->View()->Engine()->setCompileId($this->View()->Engine()->getCompileId() . '_' . $this->Request()->getControllerName());

        foreach($fileNames as $fileName) {
            $fileName = ltrim(dirname($fileName) . '/' . basename($fileName, '.js'), '/.');
            if (empty($fileName)) {
                continue;
            }
            $templateBase = $inflector->filter(array(
                'module' => $moduleName,
                'controller' => $controllerName,
                'file' => $fileName)
            );

            $templateExtend = $inflector->filter(array(
                'module' => $moduleName,
                'controller' => $this->Request()->getControllerName(),
                'file' => $fileName)
            );
            if($this->View()->templateExists($templateBase)) {
                $template .= '{include file="' . $templateBase. '"}' . "\n";
            }
            if($this->View()->templateExists($templateExtend)) {
                $template .= '{include file="' . $templateExtend. '"}' . "\n";
            }
        }
        $toFind = $this->Request()->getParam('find');
        $toReplace = $this->Request()->getParam('replace');
        $toFind = rtrim($toFind, '.') . '.';
        $toReplace = rtrim($toReplace, '.') . '.';

        $this->View()->setTemplate();
        $template = $this->View()->fetch($template);
        $template = str_replace($toFind, $toReplace, $template);
        echo $template;
    }
Example #27
0
 protected function _initInflectors()
 {
     $camelCase = new Zend_Filter_Inflector(':key');
     $camelCase->setRules(array(':key' => array('Word_CamelCaseToUnderscore', 'StringToLower')));
     array_push($this->_inflectors, $camelCase);
 }