/** * 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)); }
/** * 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)); }
/** * 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; }