Example #1
0
 /**
  * Shorten a G3 item's link and display the result in a status message.
  * @param int   $item_id
  */
 public function shorten($item_id)
 {
     // Prevent Cross Site Request Forgery
     access::verify_csrf();
     $item = ORM::factory("item", $item_id);
     // Ensure user has permission
     access::required("view", $item);
     access::required("edit", $item);
     // Get the item's URL and shorten it
     $short_url = bitly::shorten_url($item_id);
     // Redirect back to the item
     url::redirect(url::abs_site($item->relative_url_cache));
 }
Example #2
0
 /**
  * Shorten a G3 item's link and display the result in a status message.
  * @param int   $item_id
  */
 public function shorten($item_id)
 {
     // Prevent Cross Site Request Forgery
     access::verify_csrf();
     $item = ORM::factory("item", $item_id);
     // Ensure user has permission
     access::required("view", $item);
     access::required("edit", $item);
     // Shorten the item's URL
     $short_url = bitly::shorten_url($item_id);
     if ($short_url) {
         message::success("Item URL shortened to {$short_url}");
     } else {
         message::error("Unable to shorten " . url::abs_site($item->relative_url_cache));
     }
     // Redirect back to the item
     url::redirect(url::abs_site($item->relative_url_cache));
 }
Example #3
0
 /**
  * Get tweet form
  * @param  object   $item
  * @return Forge
  */
 static function get_tweet_form($item)
 {
     $long_url = url::abs_site($item->relative_url_cache);
     // Check for saved tweets for this user and item
     $saved = self::get_failed($item->id);
     if ($saved) {
         $default_tweet = $saved->tweet;
         $tweet_id = $saved->id;
     } else {
         $default_tweet = module::get_var("twitter", "default_tweet");
         $tweet_id = 0;
     }
     $tweet = preg_replace("/%type/", $item->type, $default_tweet);
     $tweet = preg_replace("/%title/", $item->title, $tweet);
     $tweet = preg_replace("/%description/", $item->description, $tweet);
     // If bit.ly module's enabled, get the item's URL and shorten it
     if (!empty($item->id) && module::is_active("bitly") && module::get_var("twitter", "shorten_urls")) {
         $url = bitly::shorten_url($item->id);
     } else {
         $url = url::abs_site($item->relative_url_cache);
     }
     // Truncate the default tweet if it's too long
     $url_length = strlen($url) + 1;
     $tweet_length = strlen($tweet);
     if ($tweet_length + $url_length > self::$character_count) {
         $trim_pos = 0 - ($tweet_length + $url_length - 140);
         $tweet = substr($tweet, 0, $trim_pos);
     }
     $tweet = $tweet . ' ' . $url;
     $form = new Forge("twitter/tweet/{$item->id}", "", "post", array("id" => "g-twitter-tweet-form"));
     $group = $form->group("twitter_message")->label(t("Compose Tweet"));
     $group->textarea("tweet")->value($tweet)->rules("required")->error_messages("required", t("Your tweet cannot be empty!"))->id("g-tweet");
     $group->hidden("tweet_id")->value($tweet_id)->id("tweet_id");
     $group->checkbox("attach_image")->label(t("Attach resize image to tweet (reduces available chars)?"))->value(1)->id("g-attach_image");
     $form->submit("")->value(t("Tweet"));
     return $form;
 }
 /**
  * bit.ly module's settings
  * @todo Create/get and display the shortened value for this Gallery's root album (home page)
  */
 public function index()
 {
     $form = bitly::get_configure_form();
     $login = module::get_var("bitly", "login");
     $api_key = module::get_var("bitly", "api_key");
     $domain = module::get_var("bitly", "domain");
     $valid_config = false;
     if (request::method() == "post") {
         access::verify_csrf();
         if ($form->validate()) {
             $new_login = $form->configure_bitly->login->value;
             $new_key = $form->configure_bitly->api_key->value;
             $new_domain = $form->configure_bitly->domain->value;
             module::set_var("bitly", "login", $new_login);
             module::set_var("bitly", "api_key", $new_key);
             module::set_var("bitly", "domain", $new_domain);
             if (!bitly::check_config()) {
                 url::redirect("admin/bitly");
             } else {
                 if ($login && !$new_login) {
                     message::success(t("Your bit.ly login has been cleared."));
                 } else {
                     if ($login && $new_login && $login != $new_login) {
                         message::success(t("Your bit.ly login has been changed."));
                     } else {
                         if (!$login && $new_login) {
                             message::success(t("Your bit.ly login has been saved."));
                         }
                     }
                 }
                 if ($api_key && !$new_key) {
                     message::success(t("Your bit.ly API key has been cleared."));
                 } else {
                     if ($api_key && $new_key && $api_key != $new_key) {
                         message::success(t("Your bit.ly API key has been changed."));
                     } else {
                         if (!$api_key && $new_key) {
                             message::success(t("Your bit.ly API key has been saved."));
                         }
                     }
                 }
                 if ($domain && $new_domain && $domain != $new_domain) {
                     message::success(t("Your preferrend bit.ly domain has been changed."));
                 } else {
                     if (!$domain && $new_domain) {
                         message::success(t("Your preferred bit.ly domain has been saved."));
                     }
                 }
                 log::success("bitly", t("bit.ly login changed to %new_login", array("new_login" => $new_login)));
                 log::success("bitly", t("bit.ly API key changed to %new_key", array("new_key" => $new_key)));
                 !$new_login || !$new_key ? $valid_config = false : ($valid_config = true);
             }
         }
     }
     $view = new Admin_View("admin.html");
     $view->page_title = t("bit.ly url shortner");
     $view->content = new View("admin_bitly.html");
     $view->content->login = $form->configure_bitly->login->value;
     $view->content->api_key = $form->configure_bitly->api_key->value;
     $view->content->domain = $form->configure_bitly->domain->value;
     $view->content->form = $form;
     $link = ORM::factory("bitly_link")->where("item_id", "=", 1)->find();
     if ($link->loaded()) {
         $view->content->g3_url = bitly::url($link->hash);
     } else {
         if ($valid_config && !empty($login) && !empty($api_key) && !empty($domain)) {
             $view->content->g3_url = bitly::shorten_url(1);
         }
     }
     print $view;
 }