diff --git a/classes/UFCOE/Elgg/Url.php b/classes/UFCOE/Elgg/Url.php
new file mode 100644
index 0000000..d71495e
--- /dev/null
+++ b/classes/UFCOE/Elgg/Url.php
@@ -0,0 +1,86 @@
+scheme = $m[1];
+ $this->host = $m[2];
+ $this->path = $m[3];
+ }
+
+ /**
+ * @param string $url
+ * @return int 0 if no GUID found
+ */
+ public function getGuid($url) {
+ $url = $this->analyze($url);
+ return ($url && $url['guid']) ? $url['guid'] : 0;
+ }
+
+ /**
+ * @param string $url
+ * @return array|bool
+ */
+ public function analyze($url) {
+ $url = trim($url);
+ if (!preg_match('~^(https?)\\://([^/]+)(/[^\\?]*)~', $url, $m)) {
+ return false;
+ }
+ list (, $scheme, $host, $path) = $m;
+ $ret = array(
+ 'scheme_matches' => ($scheme === $this->scheme),
+ 'host_matches' => ($host === $this->host),
+ 'guid' => null,
+ 'action' => null,
+ 'handler' => null,
+ 'handler_segments' => array(),
+ );
+ $ret['in_site'] = ($ret['host_matches'] && (0 === strpos($path, $this->path)));
+ if ($ret['in_site']) {
+ $sitePath = substr($path, strlen($this->path));
+ if (preg_match('~^action/(.*)~', $sitePath, $m)) {
+ if (preg_match('~^[^/]~', $m[1])) {
+ $ret['action'] = $m[1];
+ }
+ } else {
+ $segments = explode('/', $sitePath);
+ if (!empty($segments[0])) {
+ $ret['handler'] = $segments[0];
+ $ret['handler_segments'] = array_slice($segments, 1);
+ if ($segments[0] !== 'profile') {
+ if ((count($segments) >= 3)
+ && in_array($segments[1], array('view', 'read'))
+ && preg_match('~^[1-9]\\d*$~', $segments[2])) {
+ $ret['guid'] = (int) $segments[2];
+
+ // less-reliable guessing
+ } elseif (preg_match('~^(?:[^/]+/)+([1-9]\\d*)(?:$|/)~', $sitePath, $m)) {
+ $ret['guid'] = (int) $m[1];
+ }
+ }
+ }
+ }
+ }
+ return $ret;
+ }
+}
diff --git a/graphics/email.png b/graphics/email.png
new file mode 100644
index 0000000..91f3e62
Binary files /dev/null and b/graphics/email.png differ
diff --git a/graphics/facebook.png b/graphics/facebook.png
new file mode 100644
index 0000000..5d8918a
Binary files /dev/null and b/graphics/facebook.png differ
diff --git a/graphics/googleplus.png b/graphics/googleplus.png
new file mode 100644
index 0000000..547a7df
Binary files /dev/null and b/graphics/googleplus.png differ
diff --git a/graphics/infiniteeureka.png b/graphics/infiniteeureka.png
new file mode 100644
index 0000000..8e3e0d9
Binary files /dev/null and b/graphics/infiniteeureka.png differ
diff --git a/graphics/linkedin.png b/graphics/linkedin.png
new file mode 100644
index 0000000..f728959
Binary files /dev/null and b/graphics/linkedin.png differ
diff --git a/graphics/pinterest.png b/graphics/pinterest.png
new file mode 100644
index 0000000..abf35ad
Binary files /dev/null and b/graphics/pinterest.png differ
diff --git a/graphics/stumble.png b/graphics/stumble.png
new file mode 100644
index 0000000..645c5e9
Binary files /dev/null and b/graphics/stumble.png differ
diff --git a/graphics/twitter.png b/graphics/twitter.png
new file mode 100644
index 0000000..cf722bd
Binary files /dev/null and b/graphics/twitter.png differ
diff --git a/graphics/youtube.png b/graphics/youtube.png
new file mode 100644
index 0000000..71d0684
Binary files /dev/null and b/graphics/youtube.png differ
diff --git a/languages/en.php b/languages/en.php
new file mode 100644
index 0000000..0409ea0
--- /dev/null
+++ b/languages/en.php
@@ -0,0 +1,105 @@
+sitename;
+$english = array(
+ 'interconnected:share' => 'Share this page using',
+ 'interconnected:profile:share' => "Share this profile using",
+ 'interconnected:no-share' => "This item cannot be shared yet",
+ 'interconnected:profile-on' => "%s's profile on %s",
+ 'interconnected:my-profiles' => "My profiles",
+ 'interconnected:access-denied' => "Only items with an access/privacy level of public and blogs that are published are accessible outside of the community.",
+ 'interconnected:twitter' => 'Twitter',
+ 'interconnected:facebook' => 'facebook',
+ 'interconnected:googleplus' => 'Google+',
+ 'interconnected:linkedin' => 'Linked in',
+ 'interconnected:linkedin-button' => 'Linked',
+ 'interconnected:pinterest' => 'Pinterest',
+ 'interconnected:stumbleupon' => 'StumbleUpon',
+ 'interconnected:youtube' => 'Youtube',
+ 'interconnected:email' => 'Email',
+ 'interconnected:source' => 'Source: ',
+ 'interconnected:hjcategory' => 'Category from ' . $sitename . ':',
+ 'interconnected:videolist_item' => 'A video shared by',
+ 'interconnected:file' => 'A file shared by',
+ 'interconnected:image' => 'An image shared by',
+ 'interconnected:album' => 'An image album shared by',
+ 'interconnected:blog' => 'A blog shared by',
+ 'interconnected:bookmarks' => 'A bookmark shared by',
+ 'interconnected:page_top' => 'A page shared by',
+ 'interconnected:page' => 'A page shared by',
+ 'interconnected:pinboards' => 'A pinboard shared by',
+ 'interconnected:market' => 'An item for sale, shared by',
+ 'interconnected:event' => 'An event shared by',
+ 'interconnected:thewire' => 'A status update from',
+ 'interconnected:title:profile' => "%s's profile at " . $sitename . ':',
+ 'interconnected:profile' => "Profile",
+ 'interconnected:friends' => "Friends",
+ 'interconnected:category' => 'Category',
+ 'interconnected:categories' => 'Categories',
+ 'interconnected:title:privacy' => 'Privacy policy',
+ 'interconnected:title:terms' => 'Terms of use',
+ 'interconnected:title:about' => 'About',
+ 'interconnected:groups' => 'Groups',
+ 'interconnected:members' => 'Members',
+ 'interconnected:rootpage:title:activity' => 'Activity at ' . $sitename,
+ 'interconnected:rootpage:title:members' => 'Members at ' . $sitename,
+ 'interconnected:rootpage:title:groups' => 'Groups at ' . $sitename,
+ 'interconnected:rootpage:title:file' => 'Files at ' . $sitename,
+ 'interconnected:rootpage:title:blog' => 'Blogs at ' . $sitename,
+ 'interconnected:rootpage:title:photos' => 'Images at ' . $sitename,
+ 'interconnected:rootpage:title:albums' => 'Image albums at ' . $sitename,
+ 'interconnected:rootpage:title:events' => 'Events listed at ' . $sitename,
+ 'interconnected:rootpage:title:videolist' => 'Videos at ' . $sitename,
+ 'interconnected:rootpage:title:bookmarks' => 'Bookmarks at ' . $sitename,
+ 'interconnected:rootpage:title:pages' => 'Pages at ' . $sitename,
+ 'interconnected:rootpage:title:thewire' => 'Status updates at ' . $sitename,
+ 'interconnected:rootpage:title:pinboards' => 'Pinboards at ' . $sitename,
+ 'interconnected:rootpage:title:market' => 'Items being traded at ' . $sitename,
+ 'interconnected:title:friends' => "%s's friends at " . $sitename,
+ 'interconnected:rootpage:title:categories' => 'Categorised items from ' . $sitename,
+ 'interconnected:rootpage:title:privacy' => 'The privacy policy at ' . $sitename,
+ 'interconnected:rootpage:title:terms' => 'The terms of use agreement at ' . $sitename,
+ 'interconnected:rootpage:title:search' => 'Search results information from ' . $sitename,
+ 'interconnected:rootpage:title:tags' => 'The top tags in the community at ' . $sitename,
+ 'interconnected:rootpage:title:donation' => 'Donations to support ' . $sitename,
+ 'interconnected:rootpage:description:donation' => 'Here you can use a variety of online methods to make donations to support the operations of the community at ' . $sitename,
+ 'interconnected:rootpage:title:liked_content' => 'The most liked items at ' . $sitename,
+ 'interconnected:rootpage:description:liked_content' => 'This list shows which items are the most popular with members of the community at ' . $sitename,
+ 'interconnected:rootpage:description:tags' => 'These are the most commonly used tags for items that have been added to the community at ' . $sitename,
+ 'interconnected:rootpage:description:activity' => 'The full list of the activity in the community at ' . $sitename,
+ 'interconnected:rootpage:description:members' => 'The full list of the members of the community at ' . $sitename,
+ 'interconnected:rootpage:description:groups' => 'The full list of groups that have been created by the members of the community at ' . $sitename,
+ 'interconnected:rootpage:description:file' => 'The full list of files that have been uploaded and shared by the members of the community at ' . $sitename,
+ 'interconnected:rootpage:description:blog' => 'The full list of blogs that have been created and shared by the members of the community at ' . $sitename,
+ 'interconnected:rootpage:description:photos' => 'The full list of images that have been created and shared by the members of the community at ' . $sitename,
+ 'interconnected:rootpage:description:albums' => 'The full list of Image albums that have been created and shared by the members of the community at ' . $sitename,
+ 'interconnected:rootpage:description:events' => 'The full list of events that have been listed by the members of the community at ' . $sitename,
+ 'interconnected:rootpage:description:videolist' => 'The full list of videos that have been found and shared by the members of the community at ' . $sitename,
+ 'interconnected:rootpage:description:bookmarks' => 'The full list of bookmarks that have been found and shared by the members of the community at ' . $sitename,
+ 'interconnected:rootpage:description:pages' => 'The full list of pages that have been created by the members of the community at ' . $sitename,
+ 'interconnected:rootpage:description:thewire' => 'The full list of publicly shared status updates from the members of the community at ' . $sitename,
+ 'interconnected:rootpage:description:pinboards' => 'The pinboards at ' . $sitename . ' allow you to build and share collections of images, videos and whatever else you wish to share.',
+ 'interconnected:rootpage:description:market' => 'The market pages at ' . $sitename . ' are full of features for buying and selling.',
+ 'interconnected:description:friends' => "The full list of %s's friends at " . $sitename,
+ 'interconnected:rootpage:description:privacy' => 'This privacy policy expresses the intentions of the site operators as they pertain to maintaining the privacy of the users of this website.',
+ 'interconnected:rootpage:description:terms' => 'This page contains the full terms of use agreement that all users of this website are required to read and agree to, prior to joining here and creating a user profile.',
+ 'interconnected:rootpage:description:categories' => 'The full list of categories available at ' . $sitename . '. Each category contains different types of item from the community.',
+ 'interconnected:rootpage:description:search' => 'Search for information from the community at ' . $sitename,
+ 'interconnected:emailbody' => "Greetings! I found this at " . $sitename . "... %s %s %s",
+ 'interconnected:title:file-type' => 'A selection of files from the community at ' . $sitename,
+ 'interconnected:description:file-type' => 'A selection from one category of files; from the community at ' . $sitename,
+ 'interconnected:widget:buttons' => 'Share this with',
+ 'interconnected:widget:buttons_descr' => 'Adds a collection of sharing buttons for popular social networks.',
+ 'interconnected:admin:title:social' => 'Social sharing options.',
+ 'interconnected:admin:title:seo' => 'Search engine optimisation options.',
+ 'interconnected:admin:site-logo' => 'a complete (absolute) url for your site logo (version: small image)',
+ 'interconnected:admin:full-site-logo' => 'a complete (absolute) url for your site logo (version: full size image - recommended 600px wide)',
+ 'interconnected:admin:twitter-handle' => '(optional) a twitter handle/id that you use for your site (when pages shared using twitter, the tweet will end with - via @your-twitter-handle)',
+ 'interconnected:admin:about-me' => "the name of the field the contains the user's about me profile information on your site (default is description)",
+ 'interconnected:admin:group-description' => "the name of the field the contains the description field for your site's groups (default is briefdescription)",
+ 'interconnected:admin:default-title' => "an opengraph (og:title) title to be used when sharing pages that do not have a specific title - generally this will only be for your homepage and does not effect the main html title for the page.",
+ 'interconnected:admin:default-meta-keywords' => "a comma seperated list of keywords to use as default in the metatag section of the page head when no better options are available. e.g. social network,community,sharing",
+ 'interconnected:admin:max-meta-keywords' => "the maximum amount of keywords to display on any page (enter an integer that is greater than or equal to 0)",
+ 'interconnected:admin:max-meta-description' => "the maximum amount of characters to be used in the metatag description for each page (enter an integer that is greater than or equal to 0 - 160 is recommended)",
+);
+add_translation("en", $english);
+?>
\ No newline at end of file
diff --git a/lib/interconnected.php b/lib/interconnected.php
new file mode 100644
index 0000000..6df2ff2
--- /dev/null
+++ b/lib/interconnected.php
@@ -0,0 +1,393 @@
+analyze($url);
+}
+
+ /***************
+ * get_sharing_data_for_current_page()
+ *
+ * returns: array - $content - containing:
+ * author = name of page creator
+ * item_title = the most relevant title for the current page
+ * subtext = a formatted string that describes the sharing action
+ * description = a relevant description of the current page (commonly built from page content)
+ * icon_url = a smaller sized image url to represent the current page
+ * full_icon_url = a larger sized image url to represent the current page
+ * url = the url to be shared
+ * keywords = the current page's relevant tags
+ *
+ *************/
+
+
+ function get_sharing_data_for_current_page()
+ {
+ static $content; // static variable is held in memory to be accessed again
+ if ($content === null) { // this allows multiple calls to the function to be made and the code to only be run once
+ global $CONFIG;
+ $site_url = elgg_get_site_url();
+ $sitename = $CONFIG->sitename;
+ $siteinfo = $CONFIG->sitedescription;
+
+ // these variables can be moved to an admin page
+
+ $size = 'large';
+ $full_size = 'master';
+
+ /*****************************/
+
+ $site_logo = elgg_get_plugin_setting('site_logo', 'interconnected');
+ if ($site_logo == '')
+ $site_logo = $current_user->getIconURL($size);
+
+ $full_site_logo = elgg_get_plugin_setting('full_site_logo', 'interconnected');
+ if ($full_site_logo == '')
+ $full_site_logo = $current_user->getIconURL($full_size);
+
+ $default_title = elgg_get_plugin_setting('default_title', 'interconnected');
+ if ($default_title == '')
+ $default_title = $sitename;
+
+ $twitter_handle = elgg_get_plugin_setting('twitter_handle', 'interconnected');
+
+ $aboutme = elgg_get_plugin_setting('about_me', 'interconnected');
+
+ $group_description = elgg_get_plugin_setting('group_description', 'interconnected');
+
+ $current_user = elgg_get_logged_in_user_entity();
+
+ $context = elgg_get_context();
+ $url = current_page_url();
+ $url_array = interconnected_analyze_url($url);
+ $handler = $url_array['handler'];
+
+ $type = 'website';
+
+ if ($url_array['guid']) // if 3rd url path parameter is a numeric
+ {
+ $entity = get_entity(sanitise_int($url_array['guid'])); // check to see if an entity can be found
+ }
+
+
+ if ($entity instanceof ElggEntity) // if an entity is found get entity specific data
+ {
+ $container = $entity->getContainerEntity();
+ $owner = $entity->getOwnerEntity();
+ $author = $owner->name;
+ $subtype = $entity->getSubtype();
+ $tags = $entity->tags;
+
+ if (($url_array['handler_segments'][0] != 'view')&&($url_array['handler_segments'][0] != $url_array['guid'])) // check url structure to see if it is view mode or not
+ {
+ if ($url_array['handler_segments'][0] != 'album') //tidypics album paths are non-standard
+ $url = $site_url . $handler . '/view/' . $url_array['guid']; // set the shared url to be the view mode url and not edit or another mode which is unsuitable for sharing
+ }
+
+ if (isset($tags)) //if the current item has tags
+ {
+ if (is_array($tags)) //if the current item has more than 1 tag
+ {
+ $tags = array_unique($tags); // create unique list
+ }
+ else
+ {
+ $tags = array($tags);
+ }
+ }
+
+ if ($entity instanceof ElggGroup)
+ {
+ $item_title = elgg_echo('group') . ': ' . $entity->name;
+
+ $description = $entity->$group_description;
+
+ $icon_url = $entity->getIconURL($size);
+ $full_icon_url = $icon_url;
+
+ }
+ else
+ {
+ $item_title = $entity->title;
+ $access_id = $entity->access_id;
+ $access_id_string = get_readable_access_level($access_id);
+
+ if ($access_id_string != 'public')
+ {
+ $content['access_denied'] = TRUE;
+ return $content;
+ }
+
+ switch ($subtype)
+ {
+ case 'blog':
+ {
+ if ((elgg_is_active_plugin('blog_tools'))&&($icontime = $entity->icontime))
+ {
+ $icontime = "{$icontime}";
+ $filehandler = new ElggFile();
+ $filehandler->owner_guid = $entity->getOwnerGUID();
+ $filehandler->setFilename("blogs/" . $entity->getGUID() . $size . ".jpg");
+
+ if ($filehandler->exists())
+ {
+ $icon_url = $site_url . "blogicon/{$entity->getGUID()}/$size/$icontime.jpg";
+ $full_icon_url = $site_url . "blogicon/{$entity->getGUID()}/$full_size/$icontime.jpg";
+ }
+ }
+ $description = $entity->description;
+ $subtext = elgg_echo('interconnected:' . $subtype) .' ' . $author . '... ';
+ $type = 'blog';
+ break;
+ }
+ case 'image':
+ case 'album':
+ {
+ if ($subtype=='album')
+ {
+ $cover_guid = $entity->getCoverImageGuid();
+ $cover_entity = get_entity($cover_guid);
+ $icon_url = $cover_entity->getIconURL($size);
+ $full_icon_url = $cover_entity->getIconURL($full_size);
+ }
+ else
+ {
+ $icon_url = $entity->getIconURL($size);
+ $full_icon_url = $entity->getIconURL($full_size);
+ }
+ $description = $entity->description;
+ $subtext = elgg_echo('interconnected:' . $subtype) .' ' . $author . '... ';
+ $type = 'article';
+ break;
+ }
+ case 'hjcategory':
+ {
+ $icon_url = $entity->getIconURL($size);
+ $full_icon_url = $entity->getIconURL($full_size);
+ $description = $entity->description;
+ $tags = array(elgg_echo('interconnected:category'), $item_title, $sitename);
+ $item_title = elgg_echo('interconnected:' . $subtype) . ' ' . $item_title;
+ break;
+ }
+ case 'videolist_item':
+ default:
+ {
+ $icon_url = $entity->getIconURL($size);
+ $full_icon_url = $entity->getIconURL($full_size);
+ $description = $entity->description;
+ $subtext = elgg_echo('interconnected:' . $subtype) .' ' . $author . '... ';
+ $type = 'article';
+ break;
+ }
+ }
+ }
+
+ }
+ else // there is no specific entity on the page, then look at contexts next
+ {
+ if (elgg_is_active_plugin('pagehandler_hijack'))
+ {
+ $hijack_handlers = pagehandler_hijack_get_replacements();
+ $original_handler = array_search($handler, $hijack_handlers);
+ if ($original_handler)
+ $handler = $original_handler;
+ }
+ // elgg_dump ($handler);
+ switch($handler)
+ {
+ case 'blog': // pages that are not for specific entities - such as 'all', 'owner', 'friends'
+ case 'bookmarks':
+ case 'pages':
+ case 'videolist':
+ case 'market':
+ case 'events':
+ case 'thewire':
+ case 'pinboards':
+ case 'search':
+ case 'tags':
+ case 'donation':
+ case 'liked_content':
+ {
+ $item_title = elgg_echo('interconnected:rootpage:title:' . $handler);
+ $description = elgg_echo('interconnected:rootpage:description:' . $handler);
+ break;
+ }
+ case 'activity':
+ {
+ $item_title = elgg_echo('interconnected:rootpage:title:' . $handler);
+ $description = elgg_echo('interconnected:rootpage:description:' . $handler);
+ $type = 'activity';
+ break;
+ }
+ case 'members':
+ case 'groups':
+ {
+ $item_title = elgg_echo('interconnected:rootpage:title:' . $handler);
+ $description = elgg_echo('interconnected:rootpage:description:' . $handler);
+ $tags = array(elgg_echo('interconnected:' . $handler),$sitename);
+ break;
+ }
+ case 'friends':
+ case 'profile':
+ {
+ $owner = get_user_by_username($url_array['handler_segments'][0]);
+ if ($owner)
+ {
+ $icon_url = $owner->getIconURL($size);
+ $full_icon_url = $owner->getIconURL($full_size);
+ $item_title = elgg_echo('interconnected:title:' . $handler, array($owner->name));
+ if ($handler == 'profile')
+ $description = $owner->$aboutme;
+ else
+ $description = elgg_echo('interconnected:description:' . $handler, array($owner->name));
+ $author = $owner->name;
+ $type='profile';
+ $tags = array(elgg_echo('interconnected:' . $handler),$author,$sitename);
+ }
+ break;
+ }
+ case 'categories':
+ {
+ $item_title = elgg_echo('interconnected:rootpage:title:' . $handler);
+ $description = elgg_echo('interconnected:rootpage:description:'. $handler);
+ $tags = array(elgg_echo('interconnected:categories'), $sitename);
+ break;
+ }
+ case 'file':
+ {
+ switch($url_array['handler_segments'][0])
+ {
+ case 'search':
+ {
+ $item_title = elgg_echo('interconnected:title:file-type');
+ $description = elgg_echo('interconnected:description:file-type');
+ $tags = array(elgg_echo('interconnected:file-type'), $item_title, $sitename);
+ break;
+ }
+ case 'all':
+ default:
+ {
+ $item_title = elgg_echo('interconnected:rootpage:title:' . $handler);
+ $description = elgg_echo('interconnected:rootpage:description:'. $handler);
+ $tags = array(elgg_echo('interconnected:' . $handler), $item_title, $sitename);
+ break;
+ }
+ }
+ break;
+ }
+ case 'photos':
+ {
+ if ($url_array['handler_segments'][0] = 'album')
+ {
+ $item_title = elgg_echo('interconnected:rootpage:title:albums');
+ $description = elgg_echo('interconnected:rootpage:description:albums');
+ $tags = array(elgg_echo('interconnected:albums'), $item_title, $sitename);
+ }
+ else
+ {
+ $item_title = elgg_echo('interconnected:rootpage:title:photos');
+ $description = elgg_echo('interconnected:rootpage:description:photos');
+ $tags = array(elgg_echo('interconnected:photos'), $item_title, $sitename);
+ }
+ break;
+ }
+ case 'about':
+ case 'privacy':
+ case 'terms':
+ {
+ $item_title = elgg_echo('interconnected:title:' . $handler);
+ $description = elgg_echo('interconnected:rootpage:description:'. $handler);
+ $tags = array(elgg_echo('interconnected:' . $handler), $item_title, $sitename);
+ break;
+ }
+ default:
+ {
+ $profile_user_entity = get_user_by_username($handler);
+ if ($profile_user_entity) // profile_url plugin is being used so page is a profile
+ {
+ $owner = $profile_user_entity;
+ $icon_url = $owner->getIconURL($size);
+ $full_icon_url = $owner->getIconURL($full_size);
+ $item_title = elgg_echo('interconnected:title:profile', array($owner->name));
+ $description = $owner->$aboutme;
+ $author = $owner->name;
+ $tags = array(elgg_echo('interconnected:profile'),$author,$sitename);
+ }
+
+ break;
+ }
+ }
+ }
+
+ if (empty($icon_url)||(strpos($icon_url, '_graphics/icons/default/'))) // if there is no icon found or if the default icon is returned
+ {
+ if ($container)
+ {
+ $icon_url = $container->getIconURL($size);
+ if ($container instanceof ElggGroup)
+ $full_icon_url = $icon_url;
+ else
+ $full_icon_url = $container->getIconURL($full_size);
+ }
+ else
+ {
+ $icon_url = $site_logo;
+ $full_icon_url = $full_site_logo;
+ }
+ }
+
+ if ($icon_url)
+ {
+ $content['icon_url'] = $icon_url;
+ $content['full_icon_url'] = $full_icon_url;
+ }
+
+ if ($description)
+ $content['description'] = $description;
+ else
+ $content['description'] = $siteinfo;
+
+ if ($item_title)
+ $content['item_title'] = $item_title;
+ else
+ $content['item_title'] = $default_title;
+
+ if ($subtext)
+ {
+ $content['subtext'] = $subtext;
+ }
+
+ if ($author)
+ $content['author'] = $author;
+ else
+ $content['author'] = $sitename;
+
+ if ($type)
+ $content['type'] = $type;
+ else
+ $content['type'] = 'website';
+
+ $content['keywords'] = $tags;
+ $content['url'] = $url;
+
+
+ }
+ // elgg_dump($content);
+ // elgg_dump($url_array);
+ return $content;
+ }
+
+ ?>
\ No newline at end of file
diff --git a/manifest.xml b/manifest.xml
new file mode 100644
index 0000000..9b55ad4
--- /dev/null
+++ b/manifest.xml
@@ -0,0 +1,25 @@
+
+