return array(
'title' => sanitize_string($xml->title),
'description' => sanitize_string($xml->content),
- 'icon' => "http://img.youtube.com/vi/$video_id/default.jpg",
+ 'thumbnail' => "http://img.youtube.com/vi/$video_id/default.jpg",
'video_id' => $video_id,
'videotype' => 'youtube',
);
return array(
'title' => sanitize_string($video->title),
'description' => sanitize_string($video->description),
- 'icon' => sanitize_string($video->thumbnail_medium),
+ 'thumbnail' => sanitize_string($video->thumbnail_medium),
'video_id' => $video_id,
'videotype' => 'vimeo',
);
return array(
'title' => $channel->title,
'description' => $channel->description,
- 'icon' => $matches[1],
+ 'thumbnail' => $matches[1],
'video_id' => $video_id,
'videotype' => 'metacafe',
);
elgg_register_entity_url_handler('object', 'watch', 'video_url');
//register entity url handler
- elgg_register_entity_url_handler('object', 'videolist', 'videolist_url');
+ elgg_register_entity_url_handler('object', 'videolist_item', 'videolist_url');
+ elgg_register_plugin_hook_handler('entity:icon:url', 'object', 'videolist_icon_url_override');
// Register entity type
elgg_register_entity_type('object','videolist');
// register for embed
elgg_register_plugin_hook_handler('embed_get_sections', 'all', 'videolist_embed_get_sections');
elgg_register_plugin_hook_handler('embed_get_items', 'videolist', 'videolist_embed_get_items');
-
- // override icons for ElggEntity::getIcon()
- elgg_register_plugin_hook_handler('entity:icon:url', 'user', 'profile_usericon_hook');
// Register actions
$actions_path = elgg_get_plugins_path() . "videolist/actions/videolist";
* Video watch: videolist/watch/<guid>/<title>
* Video browse: videolist/browse
* New video: videolist/add/<guid>
- * Edit video: videolist/edit/<guid>/<revision>
+ * Edit video: videolist/edit/<guid>
* Group videos: videolist/group/<guid>/all
*
* Title is ignored
return elgg_get_site_url() . "videolist/watch/" . $entity->getGUID() . "/" . $video_id;
}
-function videolist_url($videolistpage) {
- $owner = $videolistpage->container_guid;
- $userdata = get_entity($owner);
- $title = $videolistpage->title;
- $title = friendly_title($title);
- return elgg_get_site_url() . "videolist/watch/" . $videolistpage->getGUID();
+function videolist_url($videolist_item) {
+ $guid = $videolist_item->guid;
+ $title = elgg_get_friendly_title($videolist_item->title);
+ return elgg_get_site_url() . "videolist/watch/$guid/$title";
}
/**
}
/**
- * Returns the URL of the icon for $entity at $size.
+ * Override the default entity icon for videoslist items
*
- * @param ElggEntity $entity
- * @param string $size Not used yet. Not sure if possible.
+ * @return string Relative URL
*/
-function videolist_get_entity_icon_url(ElggEntity $entity, $size = 'medium') {
-
+function videolist_icon_url_override($hook, $type, $returnvalue, $params) {
+ $videolist_item = $params['entity'];
+ $size = $params['size'];
+
+ if($videolist_item->getSubtype() != 'videolist_item'){
+ return $returnvalue;
+ }
+
// tiny thumbnails are too small to be useful, so give a generic video icon
- if ($size == 'tiny') {
- return elgg_get_site_url() . "mod/videolist/graphics/video_icon_tiny.png";
+ if ($size != 'tiny' && isset($videolist_item->thumbnail)) {
+ return $videolist_item->thumbnail;
}
- return $entity->thumbnail;
+ if (in_array($size, array('tiny', 'small', 'medium'))){
+ return "mod/videolist/graphics/videolist_icon_{$size}.png";
+ }
}
+++ /dev/null
-<?php
-/**
- * Display a video's icon.
- */
-
-$entity = elgg_get_array_value('entity', $vars, NULL);
-$size = 'large';
-
-if ($entity) {
- echo videolist_get_entity_icon_url($entity, $size);
-}
\ No newline at end of file
+++ /dev/null
-<?php
-/**
- * Display a video's icon.
- */
-
-$entity = elgg_get_array_value('entity', $vars, NULL);
-$size = 'master';
-
-if ($entity) {
- echo videolist_get_entity_icon_url($entity, $size);
-}
\ No newline at end of file
+++ /dev/null
-<?php
-/**
- * Display a video's icon.
- */
-
-$entity = elgg_get_array_value('entity', $vars, NULL);
-$size = 'medium';
-
-if ($entity) {
- echo videolist_get_entity_icon_url($entity, $size);
-}
\ No newline at end of file
+++ /dev/null
-<?php
-/**
- * Display a video's icon.
- */
-
-$entity = elgg_get_array_value('entity', $vars, NULL);
-$size = 'small';
-
-if ($entity) {
- echo videolist_get_entity_icon_url($entity, $size);
-}
\ No newline at end of file
+++ /dev/null
-<?php
-/**
- * Display a video's icon.
- */
-
-$entity = elgg_get_array_value('entity', $vars, NULL);
-$size = 'tiny';
-
-if ($entity) {
- echo videolist_get_entity_icon_url($entity, $size);
-}
\ No newline at end of file
+++ /dev/null
-<?php
-/**
- * Display a video's icon.
- */
-
-$entity = elgg_get_array_value('entity', $vars, NULL);
-$size = 'topbar';
-
-if ($entity) {
- echo videolist_get_entity_icon_url($entity, $size);
-}
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Generic icon view.
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['entity'] The entity the icon represents - uses getIconURL() method
+ * @uses $vars['size'] topbar, tiny, small, medium (default), large, master
+ * @uses $vars['href'] Optional override for link
+ */
+
+$entity = $vars['entity'];
+
+$sizes = array('small', 'medium', 'large', 'tiny', 'master', 'topbar');
+$img_width = array('tiny' => 25, 'small' => 40, 'medium' => 100, 'large' => 200);
+
+// Get size
+if (!in_array($vars['size'], $sizes)) {
+ $size = "medium";
+} else {
+ $size = $vars['size'];
+}
+
+if (isset($entity->name)) {
+ $title = $entity->name;
+} else {
+ $title = $entity->title;
+}
+
+$url = $entity->getURL();
+if (isset($vars['href'])) {
+ $url = $vars['href'];
+}
+
+$img_src = $entity->getIconURL($vars['size']);
+$img = "<img src=\"$img_src\" alt=\"$title\" width=\"{$img_width[$size]}\" />";
+
+if ($url) {
+ echo elgg_view('output/url', array(
+ 'href' => $url,
+ 'text' => $img,
+ ));
+} else {
+ echo $img;
+}
));
$author_text = elgg_echo('byline', array($owner_link));
-$entity_icon = elgg_view_entity_icon($entity, 'small');
-
+$entity_icon = elgg_view_entity_icon($entity, 'medium');
$owner_icon = elgg_view_entity_icon($owner, 'small');
$tags = elgg_view('output/tags', array('tags' => $entity->tags));