/** * _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); }
/** * 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; }
private static function _runStatic($pluginClass, $method) { $reflection = new Zend_Reflection_Class(ucfirst($pluginClass)); if ($reflection->hasMethod($method)) { return $pluginClass::$method(); } return false; }