aboutsummaryrefslogtreecommitdiff
path: root/start.php
diff options
context:
space:
mode:
Diffstat (limited to 'start.php')
-rw-r--r--start.php640
1 files changed, 0 insertions, 640 deletions
diff --git a/start.php b/start.php
deleted file mode 100644
index 6ef3af541..000000000
--- a/start.php
+++ /dev/null
@@ -1,640 +0,0 @@
-<?php
-/**
- * Photo Gallery plugin
- *
- * @author Cash Costello
- * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
- */
-
-elgg_register_event_handler('init', 'system', 'tidypics_init');
-
-/**
- * Tidypics plugin initialization
- */
-function tidypics_init() {
-
- // Include core libraries
- require dirname(__FILE__) . "/lib/tidypics.php";
-
- // Set up site menu
- elgg_register_menu_item('site', array(
- 'name' => 'photos',
- 'href' => 'photos/all',
- 'text' => elgg_echo('photos'),
- ));
-
- // Register a page handler so we can have nice URLs
- elgg_register_page_handler('photos', 'tidypics_page_handler');
-
- // Extend CSS
- elgg_extend_view('css/elgg', 'photos/css');
- elgg_extend_view('css/admin', 'photos/css');
-
- // Register the JavaScript lib
- $js = elgg_get_simplecache_url('js', 'photos/tidypics');
- elgg_register_simplecache_view('js/photos/tidypics');
- elgg_register_js('tidypics', $js, 'footer');
- $js = elgg_get_simplecache_url('js', 'photos/tagging');
- elgg_register_simplecache_view('js/photos/tagging');
- elgg_register_js('tidypics:tagging', $js, 'footer');
- $js = elgg_get_simplecache_url('js', 'photos/uploading');
- elgg_register_simplecache_view('js/photos/uploading');
- elgg_register_js('tidypics:uploading', $js, 'footer');
-
- elgg_register_js('tidypics:slideshow', 'mod/tidypics/vendors/PicLensLite/piclens_optimized.js', 'footer');
- elgg_register_js('swfobject', 'mod/tidypics/vendors/uploadify/swfobject.js', 'footer');
- elgg_register_js('jquery.uploadify', 'mod/tidypics/vendors/uploadify/jquery.uploadify.v2.1.1.min.js', 'footer');
-
- // Add photos link to owner block/hover menus
- elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'tidypics_owner_block_menu');
-
- // Add admin menu item
- elgg_register_admin_menu_item('configure', 'tidypics', 'settings');
-
- // Register for search
- elgg_register_entity_type('object', 'image');
- elgg_register_entity_type('object', 'album');
-
- // Register for the entity menu
- elgg_register_plugin_hook_handler('register', 'menu:entity', 'tidypics_entity_menu_setup');
-
- // Register group option
- add_group_tool_option('photos', elgg_echo('tidypics:enablephotos'), true);
- elgg_extend_view('groups/tool_latest', 'photos/group_module');
-
- // Register widgets
- elgg_register_widget_type('album_view', elgg_echo("tidypics:widget:albums"), elgg_echo("tidypics:widget:album_descr"), 'profile');
- elgg_register_widget_type('latest_photos', elgg_echo("tidypics:widget:latest"), elgg_echo("tidypics:widget:latest_descr"), 'profile');
-
- // RSS extensions for embedded media
- elgg_extend_view('extensions/xmlns', 'extensions/photos/xmlns');
-
- // allow group members add photos to group albums
- elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'tidypics_group_permission_override');
- elgg_register_plugin_hook_handler('permissions_check:metadata', 'object', 'tidypics_group_permission_override');
-
- // notifications
- register_notification_object('object', 'album', elgg_echo('tidypics:newalbum_subject'));
-
- elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'tidypics_notify_message');
-
-/*
- // Register for notifications
-
- // slideshow plugin hook
- register_plugin_hook('tp_slideshow', 'album', 'tidypics_slideshow');
-
- // ajax handler for uploads when use_only_cookies is set
- register_plugin_hook('forward', 'system', 'tidypics_ajax_session_handler');
-*/
- // Register actions
- $base_dir = elgg_get_plugins_path() . 'tidypics/actions/photos';
- elgg_register_action("photos/album/save", "$base_dir/album/save.php");
- elgg_register_action("photos/album/sort", "$base_dir/album/sort.php");
- elgg_register_action("photos/delete", "$base_dir/delete.php");
- elgg_register_action("photos/image/upload", "$base_dir/image/upload.php");
- elgg_register_action("photos/image/save", "$base_dir/image/save.php");
- elgg_register_action("photos/batch/edit", "$base_dir/batch/edit.php");
- //register_action("tidypics/ajax_upload", true, "$base_dir/ajax_upload.php");
- //register_action("tidypics/ajax_upload_complete", true, "$base_dir/ajax_upload_complete.php");
- elgg_register_action("photos/image/tag", "$base_dir/image/tag.php");
- elgg_register_action("photos/image/untag", "$base_dir/image/untag.php");
-
- elgg_register_action("photos/admin/settings", "$base_dir/admin/settings.php", 'admin');
- elgg_register_action("photos/admin/create_thumbnails", "$base_dir/admin/create_thumbnails.php", 'admin');
- elgg_register_action("photos/admin/upgrade", "$base_dir/admin/upgrade.php", 'admin');
-
- // Register libraries
- $base_dir = elgg_get_plugins_path() . 'tidypics/lib';
- elgg_register_library('tidypics:upload', "$base_dir/upload.php");
- elgg_register_library('tidypics:resize', "$base_dir/resize.php");
-}
-
-/**
- * Tidypics page handler
- *
- * @param array $page Array of url segments
- */
-function tidypics_page_handler($page) {
-
- if (!isset($page[0])) {
- return false;
- }
-
- elgg_load_js('tidypics');
-
- $base = elgg_get_plugins_path() . 'tidypics/pages/photos';
- switch ($page[0]) {
- case "all": // all site albums
- case "world":
- require "$base/all.php";
- break;
-
- case "owned": // albums owned by container entity
- case "owner":
- require "$base/owner.php";
- break;
-
- case "friends": // albums of friends
- require "$base/friends.php";
- break;
-
- case "group": // albums of a group
- require "$base/owner.php";
- break;
-
- case "album": // view an album individually
- set_input('guid', $page[1]);
- elgg_load_js('tidypics:slideshow');
- require "$base/album/view.php";
- break;
-
- case "new": // create new album
- case "add":
- set_input('guid', $page[1]);
- require "$base/album/add.php";
- break;
-
- case "edit": //edit image or album
- set_input('guid', $page[1]);
- $entity = get_entity($page[1]);
- switch ($entity->getSubtype()) {
- case 'album':
- require "$base/album/edit.php";
- break;
- case 'image':
- require "$base/image/edit.php";
- break;
- case 'tidypics_batch':
- require "$base/batch/edit.php";
- break;
- default:
- return false;
- }
- break;
-
- case "sort": // sort a photo album
- set_input('guid', $page[1]);
- require "$base/album/sort.php";
- break;
-
- case "image": //view an image
- case "view":
- set_input('guid', $page[1]);
- require "$base/image/view.php";
- break;
-
- case "thumbnail": // tidypics thumbnail
- set_input('guid', $page[1]);
- set_input('size', elgg_extract(2, $page, 'small'));
- require "$base/image/thumbnail.php";
- break;
-
- case "upload": // upload images to album
- set_input('guid', $page[1]);
- set_input('uploader', elgg_extract(2, $page, 'basic'));
- require "$base/image/upload.php";
- break;
-
- case "batch": //update titles and descriptions
- if (isset($page[1])) {
- set_input('batch', $page[1]);
- }
- include($CONFIG->pluginspath . "tidypics/pages/edit_multiple.php");
- break;
-
- case "download": // download an image
- set_input('guid', $page[1]);
- set_input('disposition', elgg_extract(2, $page, 'attachment'));
- include "$base/image/download.php";
- break;
-
- case "tagged": // all photos tagged with user
- if (isset($page[1])) {
- set_input('guid', $page[1]);
- }
- include($CONFIG->pluginspath . "tidypics/pages/tagged.php");
- break;
-
- case "mostviewed": // images with the most views
- if (isset($page[1])) {
- set_input('username', $page[1]);
- }
- include($CONFIG->pluginspath . "tidypics/pages/lists/mostviewedimages.php");
- break;
-
- case "mostrecent": // images uploaded most recently
- if (isset($page[1])) {
- set_input('username', $page[1]);
- }
- include($CONFIG->pluginspath . "tidypics/pages/lists/mostrecentimages.php");
- break;
-
- case "recentlyviewed": // images most recently viewed
- include($CONFIG->pluginspath . "tidypics/pages/lists/recentlyviewed.php");
- break;
-
- case "recentlycommented": // images with the most recent comments
- include($CONFIG->pluginspath . "tidypics/pages/lists/recentlycommented.php");
- break;
-
- case "highestrated": // images with the highest average rating
- include($CONFIG->pluginspath . "tidypics/pages/lists/highestrated.php");
- break;
-
- case "admin":
- include ($CONFIG->pluginspath . "tidypics/pages/admin.php");
- break;
-
- default:
- return false;
- }
-
- return true;
-}
-
-/**
- * Add a menu item to an ownerblock
- */
-function tidypics_owner_block_menu($hook, $type, $return, $params) {
- if (elgg_instanceof($params['entity'], 'user')) {
- $url = "photos/owner/{$params['entity']->username}";
- $item = new ElggMenuItem('photos', elgg_echo('photos'), $url);
- $return[] = $item;
- } else {
- if ($params['entity']->blog_enable != "no") {
- $url = "photos/group/{$params['entity']->guid}/all";
- $item = new ElggMenuItem('photos', elgg_echo('photos:group'), $url);
- $return[] = $item;
- }
- }
-
- return $return;
-}
-
-/**
- * Add particular blog links/info to entity menu
- */
-function tidypics_entity_menu_setup($hook, $type, $return, $params) {
- if (elgg_in_context('widgets')) {
- return $return;
- }
-
- $entity = $params['entity'];
- $handler = elgg_extract('handler', $params, false);
- if ($handler != 'photos') {
- return $return;
- }
-
- if (elgg_instanceof($entity, 'object', 'image')) {
- if (elgg_get_plugin_setting('view_count', 'tidypics')) {
- $view_info = $entity->getViewInfo();
- $text = elgg_echo('tidypics:views', array((int)$view_info['total']));
- $options = array(
- 'name' => 'views',
- 'text' => "<span>$text</span>",
- 'href' => false,
- 'priority' => 90,
- );
- $return[] = ElggMenuItem::factory($options);
- }
-
- if (elgg_get_plugin_setting('tagging', 'tidypics')) {
- $options = array(
- 'name' => 'tagging',
- 'text' => elgg_echo('tidypics:actiontag'),
- 'href' => '#',
- 'title' => elgg_echo('tidypics:tagthisphoto'),
- 'rel' => 'photo-tagging',
- 'priority' => 80,
- );
- $return[] = ElggMenuItem::factory($options);
- }
- }
-
- if (elgg_instanceof($entity, 'object', 'album')) {
- $url = $entity->getURL() . '?limit=50&view=rss';
- $url = elgg_format_url($url);
- $slideshow_link = "javascript:PicLensLite.start({maxScale:0, feedUrl:'$url'})";
- $options = array(
- 'name' => 'slideshow',
- 'text' => elgg_echo('album:slideshow'),
- 'href' => $slideshow_link,
- 'priority' => 80,
- );
- $return[] = ElggMenuItem::factory($options);
-
- if ($entity->canEdit()) {
- $options = array(
- 'name' => 'sort',
- 'text' => elgg_echo('album:sort'),
- 'href' => "photos/sort/" . $entity->getGUID(),
- 'priority' => 90,
- );
- $return[] = ElggMenuItem::factory($options);
- }
- }
-
- return $return;
-}
-
-/**
- * Override permissions for group albums
- *
- * 1. To write to a container (album) you must be able to write to the owner of the container (odd)
- * 2. We also need to change metadata on the album
- *
- * @param string $hook
- * @param string $type
- * @param bool $result
- * @param array $params
- * @return mixed
- */
-function tidypics_group_permission_override($hook, $type, $result, $params) {
- if (get_input('action') == 'photos/image/upload') {
- if (isset($params['container'])) {
- $album = $params['container'];
- } else {
- $album = $params['entity'];
- }
-
- if (elgg_instanceof($album, 'object', 'album')) {
- return $album->getContainerEntity()->canWriteToContainer();
- }
- }
-}
-
-
-/**
- * Notification message handler.
- *
- * Notifies when an album is first populated via explicit call in the upload action.
- *
- * @param string $hook
- * @param string $type
- * @param bool $result
- * @param array $params
- * @return mixed
- */
-function tidypics_notify_message($hook, $type, $result, $params) {
- $entity = $params['entity'];
- $to_entity = $params['to_entity'];
- $method = $params['method'];
-
- if (elgg_instanceof($entity, 'object', 'album')) {
- if ($entity->new_album) {
- return false;
- }
-
- if ($entity->first_upload) {
- $descr = $entity->description;
- $title = $entity->title;
- $owner = $entity->getOwnerEntity();
- return elgg_echo('tidypics:newalbum', array($owner->name))
- . ': ' . $title . "\n\n" . $descr . "\n\n" . $entity->getURL();
- } else {
- if ($entity->shouldNotify()) {
- $descr = $entity->description;
- $title = $entity->title;
- $owner = $entity->getOwnerEntity();
-
- return elgg_echo('tidypics:updatealbum', array($owner->name, $title)) . ': ' . $entity->getURL();
- }
- }
- }
-
- return null;
-}
-
-/**
- * Catch the plugin hook and add the default album slideshow
- *
- * @param $hook - 'tidypics:slideshow'
- * @param $entity_type - 'album'
- * @param $returnvalue - if set, return because another plugin has used the hook
- * @param $params - arry containing album entity
- * @return unknown_type
- */
-function tidypics_slideshow($hook, $entity_type, $returnvalue, $params) {
-
- if ($returnvalue !== null) {
- // someone has already added a slideshow or requested that the slideshow is not used
- return $returnvalue;
- }
-
- $url = current_page_url();
- if (strpos($url, '?')) {
- $url = substr($url, 0, strpos($url, '?'));
- }
- $url = "$url?limit=50&amp;view=rss";
- $slideshow_link = "javascript:PicLensLite.start({maxScale:0,feedUrl:'$url'})";
-
- // add the slideshow javascript to the header
- elgg_extend_view('metatags', 'tidypics/js/slideshow');
-
- return $slideshow_link;
-}
-
-/**
- * Convenience function for listing recent images
- *
- * @param int $max
- * @param bool $pagination
- * @return string
- */
-function tp_mostrecentimages($max = 8, $pagination = true) {
- return list_entities("object", "image", 0, $max, false, false, $pagination);
-}
-
-/**
- * Work around for Flash/session issues
- *
- * @param string $hook
- * @param string $entity_type
- * @param string $returnvalue
- * @param array $params
- */
-function tidypics_ajax_session_handler($hook, $entity_type, $returnvalue, $params) {
- global $CONFIG;
-
- $url = current_page_url();
- if ($url !== "{$CONFIG->wwwroot}action/tidypics/ajax_upload/") {
- return;
- }
-
- if (get_loggedin_userid() != 0) {
- return;
- }
-
- // action_gatekeeper rejected ajax call from Flash due to session issue
-
- // Validate token
- $token = get_input('__elgg_token');
- $ts = get_input('__elgg_ts');
- $session_id = get_input('Elgg');
- $tidypics_token = get_input('tidypics_token');
- $user_guid = get_input('user_guid');
-
- $user = get_user($user_guid);
- if (!$user) {
- return;
- }
-
- if (!$token || !$ts || !$session_id || !$tidypics_token) {
- return;
- }
-
- $hour = 60*60;
- $now = time();
- if ($ts < $now-$hour || $ts > $now+$hour) {
- return;
- }
-
- $generated_token = md5($session_id . get_site_secret() . $ts . $user->salt);
-
- if ($tidypics_token !== $generated_token) {
- return;
- }
-
- // passed token test, so login and process action
- login($user);
- include $CONFIG->actions['tidypics/ajax_upload']['file'];
-
- exit;
-}
-
-/**
- * Sets up sidebar menus for tidypics. Triggered on pagesetup.
- */
-function tidypics_submenus() {
-
- global $CONFIG;
-
- $page_owner = page_owner_entity();
-
- if ($page_owner instanceof ElggGroup) {
- if (get_context() == "groups") {
- if ($page_owner->photos_enable != "no") {
- add_submenu_item( sprintf(elgg_echo('album:group'),$page_owner->name),
- $CONFIG->wwwroot . "pg/photos/owned/" . $page_owner->username);
- }
- }
- }
- // context is only set to photos on individual pages, not on group pages
- else if (get_context() == "photos") {
-
- $view_count = get_plugin_setting('view_count', 'tidypics');
-
- // owner gets "your albumn", "your friends albums", "your most recent", "your most viewed"
- if (get_loggedin_userid() && get_loggedin_userid() == $page_owner->guid) {
-
- add_submenu_item( elgg_echo('album:create'),
- $CONFIG->wwwroot . "pg/photos/new/{$page_owner->username}/",
- 'tidypics-a' );
-
- add_submenu_item( elgg_echo("album:yours"),
- $CONFIG->wwwroot . "pg/photos/owned/{$page_owner->username}/",
- 'tidypics-a' );
-
- add_submenu_item( elgg_echo('album:yours:friends'),
- $CONFIG->wwwroot . "pg/photos/friends/{$page_owner->username}/",
- 'tidypics-a');
-
- add_submenu_item( elgg_echo('tidypics:yourmostrecent'),
- $CONFIG->wwwroot . "pg/photos/mostrecent/{$page_owner->username}/",
- 'tidypics-a');
-
- if ($view_count != 'disabled') {
- add_submenu_item( elgg_echo('tidypics:yourmostviewed'),
- $CONFIG->wwwroot . "pg/photos/mostviewed/{$page_owner->username}/",
- 'tidypics-a');
- }
-
- } else if (isloggedin()) {
-
- $user = get_loggedin_user();
-
- // logged in not owner gets "page owners albums", "page owner's friends albums", "page owner's most viewed", "page owner's most recent"
- // and then "your albums", "your most recent", "your most viewed"
- add_submenu_item( elgg_echo("album:yours"),
- $CONFIG->wwwroot . "pg/photos/owned/{$user->username}/",
- 'tidypics-b' );
-
- add_submenu_item( elgg_echo('tidypics:yourmostrecent'),
- $CONFIG->wwwroot . "pg/photos/mostrecent/{$user->username}/",
- 'tidypics-b');
-
- if ($view_count != 'disabled') {
- add_submenu_item( elgg_echo('tidypics:yourmostviewed'),
- $CONFIG->wwwroot . "pg/photos/mostviewed/{$user->username}/",
- 'tidypics-b');
- }
-
- if ($page_owner->name) { // check to make sure the owner set their display name
- add_submenu_item( sprintf(elgg_echo("album:user"), $page_owner->name),
- $CONFIG->wwwroot . "pg/photos/owned/{$page_owner->username}/",
- 'tidypics-a' );
- add_submenu_item( sprintf(elgg_echo('album:friends'),$page_owner->name),
- $CONFIG->wwwroot . "pg/photos/friends/{$page_owner->username}/",
- 'tidypics-a');
-
- if ($view_count != 'disabled') {
- add_submenu_item( sprintf(elgg_echo('tidypics:friendmostviewed'),$page_owner->name),
- $CONFIG->wwwroot . "pg/photos/mostviewed/{$page_owner->username}/",
- 'tidypics-a');
- }
-
- add_submenu_item( sprintf(elgg_echo('tidypics:friendmostrecent'),$page_owner->name),
- $CONFIG->wwwroot . "pg/photos/mostrecent/{$page_owner->username}/",
- 'tidypics-a');
- }
- } else if ($page_owner->guid) {
- // non logged in user gets "page owners albums", "page owner's friends albums"
- add_submenu_item( sprintf(elgg_echo("album:user"), $page_owner->name),
- $CONFIG->wwwroot . "pg/photos/owned/{$page_owner->username}/",
- 'tidypics-a' );
- add_submenu_item( sprintf(elgg_echo('album:friends'),$page_owner->name),
- $CONFIG->wwwroot . "pg/photos/friends/{$page_owner->username}/",
- 'tidypics-a');
- }
-
- // everyone gets world albums, most recent, most viewed, most recently viewed, recently commented
- add_submenu_item( elgg_echo('album:all'),
- $CONFIG->wwwroot . "pg/photos/world/",
- 'tidypics-z');
- add_submenu_item( elgg_echo('tidypics:mostrecent'),
- $CONFIG->wwwroot . 'pg/photos/mostrecent/',
- 'tidypics-z');
-
- if ($view_count != 'disabled') {
- add_submenu_item( elgg_echo('tidypics:mostviewed'),
- $CONFIG->wwwroot . 'pg/photos/mostviewed/',
- 'tidypics-z');
- add_submenu_item( elgg_echo('tidypics:recentlyviewed'),
- $CONFIG->wwwroot . 'pg/photos/recentlyviewed/',
- 'tidypics-z');
- }
- add_submenu_item( elgg_echo('tidypics:recentlycommented'),
- $CONFIG->wwwroot . 'pg/photos/recentlycommented/',
- 'tidypics-z');
- }
-
-}
-
-/**
- * Sets up submenus for tidypics most viewed pages
- */
-function tidypics_mostviewed_submenus() {
-
- global $CONFIG;
-
- add_submenu_item(elgg_echo('tidypics:mostvieweddashboard'), $CONFIG->url . "mod/tidypics/mostvieweddashboard.php");
- add_submenu_item(elgg_echo('tidypics:mostviewedthisyear'), $CONFIG->url . "mod/tidypics/pages/lists/mostviewedimagesthisyear.php");
- add_submenu_item(elgg_echo('tidypics:mostviewedthismonth'), $CONFIG->url . "mod/tidypics/pages/lists/mostviewedimagesthismonth.php");
- add_submenu_item(elgg_echo('tidypics:mostviewedlastmonth'), $CONFIG->url . "mod/tidypics/pages/lists/mostviewedimageslastmonth.php");
- add_submenu_item(elgg_echo('tidypics:mostviewedtoday'), $CONFIG->url . "mod/tidypics/pages/lists/mostviewedimagestoday.php");
- add_submenu_item(elgg_echo('tidypics:mostcommented'), $CONFIG->url . "mod/tidypics/pages/lists/mostcommentedimages.php");
- add_submenu_item(elgg_echo('tidypics:mostcommentedthismonth'), $CONFIG->url . "mod/tidypics/pages/lists/mostcommentedimagesthismonth.php");
- add_submenu_item(elgg_echo('tidypics:mostcommentedtoday'), $CONFIG->url . "mod/tidypics/pages/lists/mostcommentedimagestoday.php");
- add_submenu_item(elgg_echo('tidypics:recentlycommented'), $CONFIG->wwwroot . 'pg/photos/recentlycommented/');
-}