Exemplo n.º 1
0
 /**
  * create OAuth Link
  *
  * @param $options
  *  loading:      loading message
  *  login:        login link text
  *  datasource:   datasource name (default: twitter)
  *  authenticate: use authenticate link (default: false)
  */
 public function oauthLink($options = array())
 {
     $default = array('loading' => __d('twitter_kit', 'Loading...', true), 'login' => __d('twitter_kit', 'Login Twitter', true), 'datasource' => 'twitter', 'authorize' => false, 'loginElementId' => 'twitter-login-wrap');
     $options = am($default, $options);
     $action = $options['authorize'] ? 'authorize_url' : 'authenticate_url';
     $request_url = $this->Html->url(array('plugin' => 'twitter_kit', 'controller' => 'oauth', 'action' => $action . '/' . urlencode($options['datasource'])), true);
     $this->Js->buffer("\n            \$.getJSON('{$request_url}', {}, function(data){\n            var link = \$('<a>').attr('href', data.url).html('{$options['login']}');\n            \$('#{$options['loginElementId']} .loading').remove();\n            \$('#{$options['loginElementId']}').append(link);\n            });\n        ");
     $out = sprintf('<span id="%s"><span class="loading">%s</span></span>', $options['loginElementId'], $options['loading']);
     return $this->output($out);
 }
Exemplo n.º 2
0
 /**
  * create tweet box
  *
  * @param $fieldName
  * @param $options
  *      type: element type (default: textarea)
  *      maxLength:   text max length (default: 140)
  *      counterText: length message
  *      submit: submit button message. if set to false, not create.
  *      jqueryCharCount: path to charCount.js (jquery plugin)
  *      other keys set to input element options.
  */
 public function tweet($fieldName, $options = array())
 {
     $this->setEntity($fieldName);
     $domId = !empty($options['id']) ? $options['id'] : $this->domId($fieldName);
     $default = array('type' => 'textarea', 'maxlength' => 140, 'jqueryCharCount' => '/twitter_kit/js/charCount.js', 'counterText' => __d('twitter_kit', 'Characters left: ', true), 'submit' => __d('twitter_kit', 'Tweet', true));
     $options = am($default, $options);
     $inputOptions = $options;
     unset($inputOptions['jqueryCharCount']);
     unset($inputOptions['counterText']);
     unset($inputOptions['submit']);
     $out = $this->Html->script($options['jqueryCharCount']);
     $out .= $this->Form->input($fieldName, $inputOptions);
     $out .= $this->Js->buffer("\n            \$('#{$domId}').charCount({\n                limit: {$options['maxlength']},\n                counterText: '{$options['counterText']}',\n                exceeded: function(element) {\n                    \$('#{$domId}Submit').attr('disabled', true);\n                },\n                allowed: function(element) {\n                    \$('#{$domId}Submit').removeAttr('disabled');\n                }\n            });\n        ");
     if ($options['submit']) {
         $out .= $this->Form->submit($options['submit'], array('id' => $domId . 'Submit'));
     }
     return $this->output($out);
 }
Exemplo n.º 3
0
 /**
  * create Hovercards
  *
  * @param string $element
  * @param array  $options
  */
 public function hovercards($element = '.content', $options = array())
 {
     if (!empty($options['username'])) {
         $username = $options['username'];
         unset($options['username']);
     }
     $opt = '';
     if (!empty($options)) {
         $opt = json_encode($options);
     }
     if (!empty($username)) {
         if (empty($options)) {
             $opt = "{ username: {$username} }";
         } else {
             $opt = preg_replace('/^{/', "{ username: {$username},", $opt);
         }
     }
     $this->Js->buffer("\n        twttr.anywhere(function (T) {\n            T('{$element}').hovercards({$opt});\n        });");
 }