开发者

How to use openinviter in zend framework

Hi Can an开发者_如何转开发yone tell me how to use openinviter script in zend framework


I have used Open Invitor in one of my projects by following a tutorials. Unfortunately, I couldn't find out the link. Here are the main steps:

(a) Create a custom library. To do this, create a folder inside library (library/openinvitor)

(b) Install the Open Invitor Package inside this library (ie library/openinvitor/install.php). I did this by commenting index & htaccess during the installation.

(c) Register new library in the Boot Strap. (Copy the line needed for the Open Invitor Loading)

 protected function _initAutoload ()
{

    // Add autoloader empty namespace
    $autoLoader = Zend_Loader_Autoloader::getInstance();

    $autoLoader->registerNamespace('openinviter_');

      $resourceLoader = new Zend_Loader_Autoloader_Resource(array('basePath' => APPLICATION_PATH , 'namespace' => '' , 'resourceTypes' => array('form' => array('path' => 'forms/' , 'namespace' => 'Form_') , 'model' => array('path' => 'models/' , 'namespace' => 'Model_'))));
    // Return it so that it can be stored by the bootstrap
    return $autoLoader;
}

(d) The file name of the library file is: Service.php Also note the name of the class in the step (e)

(e) The content of the Service file is:

    <?php

require_once 'openinviter.php';

/**
* This class is the connection between OpenInviter service and Zend Framework.
* The class is implemented only for extracting contacts.
*
* @tutorial
*
*         $inviter = new OpenInviter_Service();
*
*       p($inviter->getPlugins());// get all services
*      p($inviter->getPlugins('email'));// get all services
*       p($inviter->getPlugins('email', 'gmail'));// get gmail plugin properties
*       p($inviter->getPlugins('email', 'gmail', 'version'));// get gmail plugin version
*
*       // get contacts
*       p($inviter->getContacts('me@example.com', 'mypass', 'example'));
*
*
* @author stoil
* @link http://openinviter.com/
* @uses OpenInviter 1.7.6
*
*/
class openinviter_Service
{
const PATH_PLUGINS = 'plugins/';

protected $_messages = array();
protected $_plugins;
protected $_openInviter;

/*~~~~~~~~~~ private methods ~~~~~~~~~~*/
private function _loadPlugins()
{
if($this->_plugins === null) {
$this->_plugins = $this->getOpenInviter()->getPlugins(false);
}
}

/*~~~~~~~~~~ protected methods ~~~~~~~~~~*/

protected function _addMessage($code, $message, $type = 'error')
{
$this->_messages[$type][$code] = $message;
}

protected function _initAutoload()
{
set_include_path(
dirname(realpath(__FILE__)) . DIRECTORY_SEPARATOR . self::PATH_PLUGINS.
PATH_SEPARATOR.
get_include_path()
);
}

/*~~~~~~~~~~ constructor ~~~~~~~~~~*/

public function __construct()
{
$this->_initAutoload();
$this->_openInviter = new openinviter();
$this->_loadPlugins();
}

/*~~~~~~~~~~ public methods ~~~~~~~~~~*/

/**
* Update plugins
*/
public function updatePlugins()
{
$this->_plugins = $this->getOpenInviter()->getPlugins(true);
}

/**
* Get plugin(s), provider(s) or provider details
* @param $type
* @param $provider
* @param $detail
* @return unknown_type
*/
public function getPlugins($type = null, $provider = null, $detail = null)
{
if ($type !== null) {
if ($provider !== null) {
if ($detail !== null) {
return $this->_plugins[$type][$provider][$detail];
} else {
return $this->_plugins[$type][$provider];
}
} else {
return $this->_plugins[$type];
}
} else {
return $this->_plugins;
}
}

/**
* @return openinviter
*/
protected function getOpenInviter()
{
return $this->_openInviter;
}

/**
* Get system messages
* @param string $type
* @return array
*/
public function getMessages($type = null)
{
if($type !== null) {
return $this->_messages[$type];
} else {
return $this->_messages;
}
}

/**
* Get email clients
* @param string $email
* @param string $password
* @param string $provider
* @return array
*/
public function getContacts($email, $password, $provider)
{
$contacts = array();

$this->getOpenInviter()->startPlugin($provider);

$internalError = $this->getOpenInviter()->getInternalError();
if ($internalError) {
$this->_addMessage('inviter', $internalError);
} elseif (! $this->getOpenInviter()->login($email, $password)) {
$internalError = $this->getOpenInviter()->getInternalError();
$this->_addMessage(
'login',
($internalError
? $internalError
: 'Login failed. Please check the email and password you have provided and try again later !'
)
);
} elseif (false === $contacts = $this->getOpenInviter()->getMyContacts()) {
$this->_addMessage('contacts', 'Unable to get contacts');
}

return $contacts;
}

}

(f) Then in the desired controller/function, create an object of the Open Invitor librray and access any functions.

    $inviter    =   new openinviter_Service();          // Create the Object of Opne Invitor
                                    $plugins    =   $inviter->getPlugins('email');      // Read all Available Plugins.
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜