示例#1
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;
 }
 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;
 }
示例#3
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));
 }
示例#4
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;
 }
示例#5
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;
 }
示例#6
0
文件: Item.php 项目: br00k/tnc-web
 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;
 }
示例#7
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)));
 }
示例#8
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) . '"}';
     }
 }
示例#9
0
 protected function _initInflectors()
 {
     $camelCase = new Zend_Filter_Inflector(':key');
     $camelCase->setRules(array(':key' => array('Word_CamelCaseToUnderscore', 'StringToLower')));
     array_push($this->_inflectors, $camelCase);
 }
示例#10
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;
 }
示例#11
0
文件: ExtJs.php 项目: nhp/shopware-4
    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;
    }
示例#12
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;
 }
示例#13
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;
 }
示例#14
0
 public static function underscoreToCamelCase($string)
 {
     $inflector = new Zend_Filter_Inflector(':string');
     $inflector->setRules(array(':string' => 'Word_UnderscoreToCamelCase'));
     return $inflector->filter(array('string' => $string));
 }