public static function instance($argHandlerKey = null)
 {
     self::$handlers = eZINI::instance('nxcsocialnetworks.ini')->variable('General', 'MessageHandlers');
     if ($argHandlerKey != null) {
         self::$handlerKey = $argHandlerKey;
     } else {
         self::$handlerKey = 'default';
     }
     self::$handlerClassName = self::$handlers[self::$handlerKey];
     if (class_exists(self::$handlerClassName)) {
         return new self::$handlerClassName();
     }
 }
示例#2
0
 public function message($publishHandler, $object, $message, $messageLength = null, $options, $handler = null)
 {
     if ($handler != null) {
         return nxcSocialNetworksMessageHandler::instance($handler)->message($publishHandler, $object, $message, $messageLength, $options);
     } else {
         return nxcSocialNetworksMessageHandler::instance()->message($publishHandler, $object, $message, $messageLength, $options);
     }
 }
 public function attributeDecoder($event, $attr)
 {
     switch ($attr) {
         case 'handlers':
             return nxcSocialNetworksPublishHandler::fetchList($event->attribute('id'));
         case 'available_handler_names':
             if (count(self::$handlerNames) === 0) {
                 $types = nxcSocialNetworksPublishHandler::getTypes();
                 foreach ($types as $type => $handlerClass) {
                     try {
                         $handler = new $handlerClass(array());
                         self::$handlerNames[$type] = $handler->attribute('name');
                         unset($handler);
                     } catch (Exception $e) {
                     }
                 }
             }
             return self::$handlerNames;
         case 'available_shorten_handler_names':
             if (count(self::$shortenHandlerNames) === 0) {
                 $types = nxcSocialNetworksLinkShortenHandler::getHandlers();
                 foreach ($types as $type => $shortenHandlerClass) {
                     try {
                         $shortenHandler = new $shortenHandlerClass(array());
                         self::$shortenHandlerNames[$type] = $shortenHandler->name;
                         unset($shortenHandler);
                     } catch (Exception $e) {
                     }
                 }
             }
             return self::$shortenHandlerNames;
         case 'available_message_handler_names':
             if (count(self::$messageHandlerNames) === 0) {
                 $types = nxcSocialNetworksMessageHandler::getHandlers();
                 foreach ($types as $type => $messageHandlerClass) {
                     try {
                         $messageHandler = new $messageHandlerClass(array());
                         self::$messageHandlerNames[$type] = $messageHandler->name;
                         unset($messageHandler);
                     } catch (Exception $e) {
                     }
                 }
             }
             return self::$messageHandlerNames;
         case 'contentclass_attribute_list':
             if (count(self::$classAttributes) === 0) {
                 $classAttributes = eZContentClassAttribute::fetchList(true, array('data_type' => array(array(eZStringType::DATA_TYPE_STRING, eZTextType::DATA_TYPE_STRING))));
                 // Sorting class attributes
                 $sort = array();
                 $attrIDs = array();
                 foreach ($classAttributes as $attribute) {
                     $class = eZContentClass::fetch($attribute->attribute('contentclass_id'));
                     $sort[$attribute->attribute('id')] = $class->attribute('name') . $attribute->attribute('name');
                     $attrIDs[$attribute->attribute('id')] = $attribute;
                 }
                 asort($sort);
                 self::$classAttributes = array();
                 foreach ($sort as $id => $sortString) {
                     self::$classAttributes[$id] = $attrIDs[$id];
                 }
             }
             return self::$classAttributes;
         case 'affected_class_ids':
             return unserialize($event->attribute('data_text1'));
         default:
             return null;
     }
 }