Beispiel #1
0
    /**
     * _processSpecialties() - Break out the specialty names for this provider
     *
     */
    protected function _processSpecialties()
    {
        $specialties = array();

        if ($this->_providerReflection->hasMethod('getSpecialties')) {
            $specialties = $this->_provider->getSpecialties();
            if (!is_array($specialties)) {
                require_once 'Zend/Tool/Framework/Provider/Exception.php';
                throw new Zend_Tool_Framework_Provider_Exception(
                    'Provider ' . get_class($this->_provider) . ' must return an array for method getSpecialties().'
                    );
            }
        } else {
            $defaultProperties = $this->_providerReflection->getDefaultProperties();
            $specialties = (isset($defaultProperties['_specialties'])) ? $defaultProperties['_specialties'] : array();
            if (!is_array($specialties)) {
                require_once 'Zend/Tool/Framework/Provider/Exception.php';
                throw new Zend_Tool_Framework_Provider_Exception(
                    'Provider ' . get_class($this->_provider) . '\'s property $_specialties must be an array.'
                    );
            }
        }

        $this->_specialties = array_merge(array('_Global'), $specialties);

    }
Beispiel #2
0
 /**
  * Trigger Seotoaster plugins hooks
  *
  * @param $method string Method to trigger
  */
 private function _callPlugins($method)
 {
     $enabledPlugins = Tools_Plugins_Tools::getEnabledPlugins();
     if (is_array($enabledPlugins) && !empty($enabledPlugins)) {
         array_walk($enabledPlugins, function ($plugin, $key, $data) {
             try {
                 $name = ucfirst($plugin->getName());
                 Tools_Factory_PluginFactory::validate($name);
                 $reflection = new Zend_Reflection_Class($name);
                 if ($reflection->hasMethod($data['method'])) {
                     $pluginInstance = Tools_Factory_PluginFactory::createPlugin($plugin->getName(), array(), array('websiteUrl' => $data['websiteUrl']));
                     $pluginInstance->{$data}['method']();
                 }
             } catch (Exceptions_SeotoasterException $se) {
                 error_log($se->getMessage());
                 error_log($se->getTraceAsString());
             }
         }, array('method' => $method, 'websiteUrl' => Zend_Controller_Action_HelperBroker::getStaticHelper('Website')->getUrl()));
     }
 }
 /**
  * Method scan given object for properties which has public getters
  * and generate array of entities-replacements pairs from this method
  * @param $object Object
  * @param $namespace Custom namespace for replacements
  * @return Tools_Content_EntityParser Return self for chaining
  * @throws Exceptions_SeotoasterException
  */
 public function objectToDictionary($object, $namespace = null)
 {
     if (!is_object($object)) {
         throw new Exceptions_SeotoasterException('Given variable must be an object');
     }
     $reflection = new Zend_Reflection_Class($object);
     $dictionary = array();
     foreach ($reflection->getProperties() as $prop) {
         $normalizedPropName = join('', array_map('ucfirst', explode('_', $prop->getName())));
         $getter = 'get' . join('', array_map('ucfirst', explode('_', $prop->getName())));
         if ($reflection->hasMethod($getter)) {
             $replacement = $object->{$getter}();
             $className = empty($namespace) ? preg_replace('/.*_([\\w\\d]*)$/', '$1', $reflection->getName()) : $namespace;
             $entityName = strtolower($className . ':' . $normalizedPropName);
             if (!is_array($replacement) && !is_object($replacement)) {
                 $dictionary[$entityName] = $replacement;
             }
         }
     }
     $this->addToDictionary($dictionary);
     return $this;
 }
Beispiel #4
0
 private static function _runStatic($pluginClass, $method)
 {
     $reflection = new Zend_Reflection_Class(ucfirst($pluginClass));
     if ($reflection->hasMethod($method)) {
         return $pluginClass::$method();
     }
     return false;
 }