From 146c55ddd745be06f6206e70884cb9e430ba6231 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Sat, 27 Aug 2011 18:54:13 -0700 Subject: Fixes #2911. Embed plugins works again. Added menu for embed sections. This plugin is painfully messy. --- mod/file/start.php | 87 +++++++++++------------------------------------------- 1 file changed, 17 insertions(+), 70 deletions(-) (limited to 'mod/file') diff --git a/mod/file/start.php b/mod/file/start.php index b94dc309a..749d7a519 100644 --- a/mod/file/start.php +++ b/mod/file/start.php @@ -57,11 +57,23 @@ function file_init() { // temporary - see #2010 elgg_register_action("file/download", "$action_path/download.php"); - // embed support - elgg_register_plugin_hook_handler('embed_get_sections', 'all', 'file_embed_get_sections'); - elgg_register_plugin_hook_handler('embed_get_items', 'file', 'file_embed_get_items'); - elgg_register_plugin_hook_handler('embed_get_upload_sections', 'all', 'file_embed_get_upload_sections'); + $item = ElggMenuItem::factory(array( + 'name' => 'file', + 'text' => elgg_echo('file'), + 'href' => '#', + 'section' => 'select' + )); + elgg_register_menu_item('embed:sections', $item); + + $item = ElggMenuItem::factory(array( + 'name' => 'file_upload', + 'text' => elgg_echo('file:upload'), + 'href' => '#', + 'section' => 'upload' + )); + + elgg_register_menu_item('embed:sections', $item); } /** @@ -332,69 +344,4 @@ function file_icon_url_override($hook, $type, $returnvalue, $params) { $url = elgg_trigger_plugin_hook('file:icon:url', 'override', $params, $url); return $url; } -} - -/** - * Register file as an embed type. - * - * @param unknown_type $hook - * @param unknown_type $type - * @param unknown_type $value - * @param unknown_type $params - */ -function file_embed_get_sections($hook, $type, $value, $params) { - $value['file'] = array( - 'name' => elgg_echo('file'), - 'layout' => 'list', - 'icon_size' => 'small', - ); - - return $value; -} - -/** - * Return a list of files for embedding - * - * @param unknown_type $hook - * @param unknown_type $type - * @param unknown_type $value - * @param unknown_type $params - */ -function file_embed_get_items($hook, $type, $value, $params) { - $options = array( - 'owner_guid' => elgg_get_logged_in_user_guid(), - 'type_subtype_pair' => array('object' => 'file'), - 'count' => TRUE - ); - - if ($count = elgg_get_entities($options)) { - $value['count'] += $count; - - unset($options['count']); - $options['offset'] = $params['offset']; - $options['limit'] = $params['limit']; - - $items = elgg_get_entities($options); - - $value['items'] = array_merge($items, $value['items']); - } - - return $value; -} - -/** - * Register file as an embed type. - * - * @param unknown_type $hook - * @param unknown_type $type - * @param unknown_type $value - * @param unknown_type $params - */ -function file_embed_get_upload_sections($hook, $type, $value, $params) { - $value['file'] = array( - 'name' => elgg_echo('file'), - 'view' => 'file/embed_upload' - ); - - return $value; -} +} \ No newline at end of file -- cgit v1.2.3 From 1f22e0c9487b90af9df4dd134db660b59d157735 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Sun, 4 Sep 2011 17:31:48 -0700 Subject: Refs #3661. Pulled in XSS fixes for file search. --- mod/file/pages/file/search.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mod/file') diff --git a/mod/file/pages/file/search.php b/mod/file/pages/file/search.php index 3e85d45db..569657fd4 100644 --- a/mod/file/pages/file/search.php +++ b/mod/file/pages/file/search.php @@ -5,7 +5,7 @@ * @package ElggFile */ -$page_owner_guid = get_input('page_owner', null); +$page_owner_guid = (int)get_input('page_owner', null); if ($page_owner_guid) { elgg_set_page_owner_guid($page_owner_guid); } -- cgit v1.2.3 From c5eb1955637818a082d4231c95f0b574a39204ef Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Sun, 11 Sep 2011 11:21:36 -0400 Subject: Fixes #3771. Added missing files for embed support. Added requirement for file in embed's manifest. --- mod/embed/manifest.xml | 4 ++ mod/file/views/default/embed/file/content.php | 61 ++++++++++++++++++++++ .../views/default/embed/file_upload/content.php | 15 ++++++ 3 files changed, 80 insertions(+) create mode 100644 mod/file/views/default/embed/file/content.php create mode 100644 mod/file/views/default/embed/file_upload/content.php (limited to 'mod/file') diff --git a/mod/embed/manifest.xml b/mod/embed/manifest.xml index f61d27c23..4acc66e11 100644 --- a/mod/embed/manifest.xml +++ b/mod/embed/manifest.xml @@ -13,6 +13,10 @@ elgg_version 2010030101 + + plugin + files + true advanced diff --git a/mod/file/views/default/embed/file/content.php b/mod/file/views/default/embed/file/content.php new file mode 100644 index 000000000..865a158a7 --- /dev/null +++ b/mod/file/views/default/embed/file/content.php @@ -0,0 +1,61 @@ + elgg_get_logged_in_user_guid(), + 'type_subtype_pair' => array('object' => 'file'), + 'count' => true +); + +$count = elgg_get_entities($options); + +if ($count) { + echo "
"; + + unset($options['count']); + $items = elgg_get_entities($options); + + foreach ($items as $item) { + + // different entity types have different title attribute names. + $title = isset($item->name) ? $item->name : $item->title; + // don't let it be too long + $title = elgg_get_excerpt($title); + + $author_text = elgg_echo('byline', array($owner->name)); + $date = elgg_view_friendly_time($item->time_created); + + $subtitle = "$author_text $date"; + + $icon = "getIconURL($icon_size)}\" />" . htmlentities($title, ENT_QUOTES, 'UTF-8'); + + $embed_code = elgg_view('output/url', array( + 'href' => $item->getURL(), + 'title' => $title, + 'text' => $icon, + 'encode_text' => FALSE + )); + + $item_icon = elgg_view_entity_icon($item, $icon_size); + + $params = array( + 'title' => $title, + 'entity' => $item, + 'subtitle' => $subtitle, + 'tags' => FALSE, + ); + $list_body = elgg_view('object/elements/summary', $params); + + // @todo JS 1.8: is this approach better than inline js? + echo "
getGUID()}\">" . elgg_view_image_block($item_icon, $list_body) . '
'; + echo ""; + } + + echo '
'; +} \ No newline at end of file diff --git a/mod/file/views/default/embed/file_upload/content.php b/mod/file/views/default/embed/file_upload/content.php new file mode 100644 index 000000000..13c18f745 --- /dev/null +++ b/mod/file/views/default/embed/file_upload/content.php @@ -0,0 +1,15 @@ + 'multipart/form-data', + 'class' => 'elgg-form', +); +$upload_content = elgg_view_form('file/upload', $form_vars); + +echo "
" . elgg_echo('embed:upload_type') . "$input
"; +echo "
"; +echo $upload_content; +echo "
"; \ No newline at end of file -- cgit v1.2.3 From cc23bbddb8f2367f33e6291b13354c4cd98cd97b Mon Sep 17 00:00:00 2001 From: cash Date: Thu, 22 Sep 2011 21:55:25 -0400 Subject: Fixes #3795 not inserting the file title when embeding a file and tweaked css - thanks to slyhne --- mod/embed/views/default/embed/css.php | 2 +- mod/file/views/default/embed/file/content.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'mod/file') diff --git a/mod/embed/views/default/embed/css.php b/mod/embed/views/default/embed/css.php index 150dc8733..5750c05c0 100644 --- a/mod/embed/views/default/embed/css.php +++ b/mod/embed/views/default/embed/css.php @@ -8,7 +8,7 @@ .embed-wrapper { width: 730px; min-height: 400px; - margin: 5px; + margin: 10px; } .embed-wrapper h2 { color: #333333; diff --git a/mod/file/views/default/embed/file/content.php b/mod/file/views/default/embed/file/content.php index 865a158a7..eadcd1a6d 100644 --- a/mod/file/views/default/embed/file/content.php +++ b/mod/file/views/default/embed/file/content.php @@ -31,7 +31,7 @@ if ($count) { $subtitle = "$author_text $date"; - $icon = "getIconURL($icon_size)}\" />" . htmlentities($title, ENT_QUOTES, 'UTF-8'); + $icon = "getIconURL($icon_size)}\" />"; $embed_code = elgg_view('output/url', array( 'href' => $item->getURL(), -- cgit v1.2.3 From ef52dd9cfec3c415cd00714223ea7ce31cb07b3d Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 24 Sep 2011 19:00:10 -0400 Subject: Fixes #3858 added file notification string translation - thanks to slyhne --- mod/file/languages/en.php | 2 ++ 1 file changed, 2 insertions(+) (limited to 'mod/file') diff --git a/mod/file/languages/en.php b/mod/file/languages/en.php index 72b198d54..aa30084a9 100644 --- a/mod/file/languages/en.php +++ b/mod/file/languages/en.php @@ -75,6 +75,8 @@ $english = array( 'item:object:file' => 'Files', + 'file:newupload' => 'A new file has been uploaded', + /** * Embed media **/ -- cgit v1.2.3 From 672bca794418ffa5544319de1a8ecfed3f088bd0 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Wed, 28 Sep 2011 22:13:22 -0700 Subject: Fixes #3823. More carefully casting to int for file's search. --- mod/file/pages/file/search.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'mod/file') diff --git a/mod/file/pages/file/search.php b/mod/file/pages/file/search.php index 569657fd4..402a28933 100644 --- a/mod/file/pages/file/search.php +++ b/mod/file/pages/file/search.php @@ -5,7 +5,12 @@ * @package ElggFile */ -$page_owner_guid = (int)get_input('page_owner', null); +$page_owner_guid = get_input('page_owner', null); + +if ($page_owner_guid !== null) { + $page_owner_guid = sanitise_int($page_owner_guid); +} + if ($page_owner_guid) { elgg_set_page_owner_guid($page_owner_guid); } -- cgit v1.2.3