]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Videolist: Added support for embed and added icon overrides.
authorBrett Profitt <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Wed, 2 Jun 2010 21:56:21 +0000 (21:56 +0000)
committerBrett Profitt <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Wed, 2 Jun 2010 21:56:21 +0000 (21:56 +0000)
git-svn-id: http://code.elgg.org@6333 36083f99-b078-4883-b0ff-0f9b5a30f544

start.php
views/default/icon/object/videolist/large.php [new file with mode: 0644]
views/default/icon/object/videolist/master.php [new file with mode: 0644]
views/default/icon/object/videolist/medium.php [new file with mode: 0644]
views/default/icon/object/videolist/small.php [new file with mode: 0644]
views/default/icon/object/videolist/tiny.php [new file with mode: 0644]
views/default/icon/object/videolist/topbar.php [new file with mode: 0644]

index effe3c73d92515f1aa9d7c50733f1003769aa108..bd772b067ab45dffc1951c0bc62287c2f7ac7ff8 100644 (file)
--- a/start.php
+++ b/start.php
@@ -40,8 +40,15 @@ function videolist_init() {
 
        // Register entity type
        register_entity_type('object','videolist');
-       
+
        register_plugin_hook('profile_menu', 'profile', 'videolist_profile_menu');
+
+       // register for embed
+       register_plugin_hook('embed_get_sections', 'all', 'videolist_embed_get_sections');
+       register_plugin_hook('embed_get_items', 'videolist', 'videolist_embed_get_items');
+
+       // override icons for ElggEntity::getIcon()
+       register_plugin_hook('entity:icon:url', 'user', 'profile_usericon_hook');
 }
 
 /**
@@ -178,15 +185,72 @@ function videolist_object_notifications_intercept($hook, $entity_type, $returnva
 
 function videolist_profile_menu($hook, $entity_type, $return_value, $params) {
        global $CONFIG;
-       
+
        $return_value[] = array(
                'text' => elgg_echo('videolist'),
                'href' => "{$CONFIG->url}pg/videolist/owned/{$params['owner']->username}",
        );
-       
+
        return $return_value;
 }
 
+
+/**
+ * Register videolist as an embed type.
+ *
+ * @param unknown_type $hook
+ * @param unknown_type $type
+ * @param unknown_type $value
+ * @param unknown_type $params
+ */
+function videolist_embed_get_sections($hook, $type, $value, $params) {
+       $value['videolist'] = array(
+               'name' => elgg_echo('videolist'),
+               'layout' => 'list',
+       );
+
+       return $value;
+}
+
+/**
+ * Return a list of videos for embedding
+ *
+ * @param unknown_type $hook
+ * @param unknown_type $type
+ * @param unknown_type $value
+ * @param unknown_type $params
+ */
+function videolist_embed_get_items($hook, $type, $value, $params) {
+       $options = array(
+               'owner_guid' => get_loggedin_userid(),
+               'type_subtype_pair' => array('object' => 'videolist'),
+               'count' => TRUE
+       );
+
+       $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;
+}
+
+/**
+ * Returns the URL of the icon for $entity at $size.
+ *
+ * @param ElggEntity $entity
+ * @param string $size Not used yet.  Not sure if possible.
+ */
+function videolist_get_entity_icon_url(ElggEntity $entity, $size = 'medium') {
+       return $entity->thumbnail;
+}
+
 // Register a handler for adding videos
 register_elgg_event_handler('create', 'videolist', 'videolist_create_event_listener');
 
diff --git a/views/default/icon/object/videolist/large.php b/views/default/icon/object/videolist/large.php
new file mode 100644 (file)
index 0000000..62815f7
--- /dev/null
@@ -0,0 +1,11 @@
+<?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
diff --git a/views/default/icon/object/videolist/master.php b/views/default/icon/object/videolist/master.php
new file mode 100644 (file)
index 0000000..65d0ea6
--- /dev/null
@@ -0,0 +1,11 @@
+<?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
diff --git a/views/default/icon/object/videolist/medium.php b/views/default/icon/object/videolist/medium.php
new file mode 100644 (file)
index 0000000..c2d85cf
--- /dev/null
@@ -0,0 +1,11 @@
+<?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
diff --git a/views/default/icon/object/videolist/small.php b/views/default/icon/object/videolist/small.php
new file mode 100644 (file)
index 0000000..34d08cd
--- /dev/null
@@ -0,0 +1,11 @@
+<?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
diff --git a/views/default/icon/object/videolist/tiny.php b/views/default/icon/object/videolist/tiny.php
new file mode 100644 (file)
index 0000000..2dce0f0
--- /dev/null
@@ -0,0 +1,11 @@
+<?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
diff --git a/views/default/icon/object/videolist/topbar.php b/views/default/icon/object/videolist/topbar.php
new file mode 100644 (file)
index 0000000..82b38c0
--- /dev/null
@@ -0,0 +1,11 @@
+<?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