diff options
-rw-r--r-- | engine/lib/elgglib.php | 45 | ||||
-rw-r--r-- | engine/lib/upgrades/2010060101.php | 16 | ||||
-rw-r--r-- | engine/start.php | 10 | ||||
-rw-r--r-- | mod/defaultwidgets/views/default/defaultwidgets/editor.php | 16 | ||||
-rw-r--r-- | mod/notifications/start.php | 28 | ||||
-rw-r--r-- | mod/profile/views/default/profile/icon.php | 4 | ||||
-rw-r--r-- | simplecache/view.php | 2 | ||||
-rw-r--r-- | upgrade.php | 3 | ||||
-rw-r--r-- | version.php | 2 | ||||
-rw-r--r-- | views/default/canvas/layouts/widgets.php | 16 |
10 files changed, 97 insertions, 45 deletions
diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index f890b3518..e86b7a4c8 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -431,12 +431,19 @@ function elgg_view_register_simplecache($viewname) { /** * Regenerates the simple cache. * + * @param string $viewtype Optional viewtype to regenerate * @see elgg_view_register_simplecache * */ -function elgg_view_regenerate_simplecache() { +function elgg_view_regenerate_simplecache($viewtype = NULL) { global $CONFIG; + if (!isset($CONFIG->views->simplecache) || !is_array($CONFIG->views->simplecache)) { + return; + } + + $lastcached = time(); + // @todo elgg_view() checks if the page set is done (isset($CONFIG->pagesetupdone)) and // triggers an event if it's not. Calling elgg_view() here breaks submenus // (at least) because the page setup hook is called before any @@ -445,25 +452,35 @@ function elgg_view_regenerate_simplecache() { // the trigger correctly when the first view is actually being output. $CONFIG->pagesetupdone = TRUE; - if (isset($CONFIG->views->simplecache)) { - if (!file_exists($CONFIG->dataroot . 'views_simplecache')) { - @mkdir($CONFIG->dataroot . 'views_simplecache'); - } + if (!file_exists($CONFIG->dataroot . 'views_simplecache')) { + mkdir($CONFIG->dataroot . 'views_simplecache'); + } - if (!empty($CONFIG->views->simplecache) && is_array($CONFIG->views->simplecache)) { - foreach($CONFIG->views->simplecache as $view) { - $viewcontents = elgg_view($view); - $viewname = md5(elgg_get_viewtype() . $view); - if ($handle = fopen($CONFIG->dataroot . 'views_simplecache/' . $viewname, 'w')) { - fwrite($handle, $viewcontents); - fclose($handle); - } + if (isset($viewtype)) { + $viewtypes = array($viewtype); + } else { + $viewtypes = $CONFIG->view_types; + } + + $original_viewtype = elgg_get_viewtype(); + + foreach ($viewtypes as $viewtype) { + elgg_set_viewtype($viewtype); + foreach ($CONFIG->views->simplecache as $view) { + $viewcontents = elgg_view($view); + $viewname = md5(elgg_get_viewtype() . $view); + if ($handle = fopen($CONFIG->dataroot . 'views_simplecache/' . $viewname, 'w')) { + fwrite($handle, $viewcontents); + fclose($handle); } } - datalist_set('simplecache_lastupdate', 0); + datalist_set("simplecache_lastupdate_$viewtype", $lastcached); + datalist_set("simplecache_lastcached_$viewtype", $lastcached); } + elgg_set_viewtype($original_viewtype); + unset($CONFIG->pagesetupdone); } diff --git a/engine/lib/upgrades/2010060101.php b/engine/lib/upgrades/2010060101.php new file mode 100644 index 000000000..7772c42eb --- /dev/null +++ b/engine/lib/upgrades/2010060101.php @@ -0,0 +1,16 @@ +<?php + +/** + * Clears old simplecache variables out of database + */ + +$query = "DELETE FROM {$CONFIG->dbprefix}datalists WHERE name LIKE 'simplecache%'"; + +delete_data($query); + +if ($CONFIG->simplecache_enabled) { + datalist_set('simplecache_enabled', 1); + elgg_view_regenerate_simplecache(); +} else { + datalist_set('simplecache_enabled', 0); +} diff --git a/engine/start.php b/engine/start.php index 8329c1e75..f5d3ce5e4 100644 --- a/engine/start.php +++ b/engine/start.php @@ -134,13 +134,9 @@ if (empty($oldview)) { } if (($installed) && ($db_installed)) { - $lastupdate = datalist_get('simplecache_lastupdate'); - $lastcached = datalist_get('simplecache_'.$oldview); + $lastupdate = datalist_get("simplecache_lastupdate_$oldview"); + $lastcached = datalist_get("simplecache_lastcached_$oldview"); if ($lastupdate == 0 || $lastcached < $lastupdate) { - elgg_view_regenerate_simplecache(); - $lastcached = time(); - datalist_set('simplecache_lastupdate',$lastcached); - datalist_set('simplecache_'.$oldview,$lastcached); + elgg_view_regenerate_simplecache($oldview); } - $CONFIG->lastcache = $lastcached; } diff --git a/mod/defaultwidgets/views/default/defaultwidgets/editor.php b/mod/defaultwidgets/views/default/defaultwidgets/editor.php index ef883ac01..79a641939 100644 --- a/mod/defaultwidgets/views/default/defaultwidgets/editor.php +++ b/mod/defaultwidgets/views/default/defaultwidgets/editor.php @@ -82,8 +82,8 @@ $(document).ready(function () { </h3> </td> <td width="17px" align="right"></td> -<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td> -<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td> +<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14" height="14" class="more_info" /></a></td> +<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15" height="15" class="drag_handle" /></a></td> </tr></table> <?php @@ -149,8 +149,8 @@ $(document).ready(function () { </h3> </td> <td width="17px" align="right"></td> - <td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td> - <td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td> + <td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14" height="14" class="more_info" /></a></td> + <td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15" height="15" class="drag_handle" /></a></td> </tr></table> <?php @@ -194,8 +194,8 @@ $(document).ready(function () { </h3> </td> <td width="17px" align="right"></td> -<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td> -<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td> +<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14" height="14" class="more_info" /></a></td> +<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15" height="15" class="drag_handle" /></a></td> </tr></table> <?php @@ -235,8 +235,8 @@ $(document).ready(function () { </h3> </td> <td width="17px" align="right"></td> -<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td> -<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td> +<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14" height="14" class="more_info" /></a></td> +<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15" height="15" class="drag_handle" /></a></td> </tr></table> <?php diff --git a/mod/notifications/start.php b/mod/notifications/start.php index 873095b8b..fa36d5d69 100644 --- a/mod/notifications/start.php +++ b/mod/notifications/start.php @@ -23,6 +23,10 @@ function notifications_plugin_init() { // Unset the default notification settings unregister_plugin_hook('usersettings:save', 'user', 'notification_user_settings_save'); elgg_unextend_view('usersettings/user', 'notifications/settings/usersettings'); + + // update notifications based on relationships changing + register_elgg_event_handler('delete', 'member', 'notifications_relationship_remove'); + register_elgg_event_handler('delete', 'friend', 'notifications_relationship_remove'); } /** @@ -52,7 +56,7 @@ function notifications_page_handler($page) { } /** - * Notification settings page setup function + * Notification settings sidebar menu * */ function notifications_plugin_pagesetup() { @@ -65,9 +69,29 @@ function notifications_plugin_pagesetup() { } } +/** + * Update notifications when a relationship is deleted + * + * @param string $event + * @param string $object_type + * @param object $relationship + */ +function notifications_relationship_remove($event, $object_type, $relationship) { + global $NOTIFICATION_HANDLERS; + + $user_guid = $relationship->guid_one; + $object_guid = $relationship->guid_two; + + // loop through all notification types + foreach($NOTIFICATION_HANDLERS as $method => $foo) { + remove_entity_relationship($user_guid, "notify{$method}", $object_guid); + } +} + + register_elgg_event_handler('init', 'system', 'notifications_plugin_init', 1000); -// Register action + register_action("notificationsettings/save", FALSE, $CONFIG->pluginspath . "notifications/actions/save.php"); register_action("notificationsettings/groupsave", FALSE, $CONFIG->pluginspath . "notifications/actions/groupsave.php"); diff --git a/mod/profile/views/default/profile/icon.php b/mod/profile/views/default/profile/icon.php index ef1b32b36..bca4499fc 100644 --- a/mod/profile/views/default/profile/icon.php +++ b/mod/profile/views/default/profile/icon.php @@ -50,7 +50,7 @@ if ($vars['entity'] instanceof ElggUser) { if (!$override) { ?> <div class="usericon <?php echo $vars['size']; ?>"> - <div class="avatar_menu_button"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" border="0" width="15px" height="15px" /></div> + <div class="avatar_menu_button"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" border="0" width="15" height="15" /></div> <div class="sub_menu"> <h3 class="displayname"><a href="<?php echo $vars['entity']->getURL(); ?>"><?php echo $vars['entity']->name; ?> <span class="username"><?php echo "@" . $vars['entity']->username; ?></span></a></h3> @@ -104,7 +104,7 @@ if ($vars['entity'] instanceof ElggUser) { <?php /* original avatar method - <img src="<?php echo $vars['entity']->getIcon($vars['size']); ?>" border="0" <?php echo $align; ?> alt="<?php echo htmlentities($vars['entity']->name, ENT_QUOTES, 'UTF-8'); ?>" title="<?php echo htmlentities($vars['entity']->name, ENT_QUOTES, 'UTF-8'); ?>" <?php echo $vars['js']; ?> /> + <img src="<?php echo elgg_format_url($vars['entity']->getIcon($vars['size'])); ?>" border="0" <?php echo $align; ?> alt="<?php echo htmlentities($vars['entity']->name, ENT_QUOTES, 'UTF-8'); ?>" title="<?php echo htmlentities($vars['entity']->name, ENT_QUOTES, 'UTF-8'); ?>" <?php echo $vars['js']; ?> /> */ if (!$override) { diff --git a/simplecache/view.php b/simplecache/view.php index 01e4fe0e7..1f4aad018 100644 --- a/simplecache/view.php +++ b/simplecache/view.php @@ -53,7 +53,7 @@ if ($mysql_dblink = @mysql_connect($CONFIG->dbhost,$CONFIG->dbuser,$CONFIG->dbpa $contents = file_get_contents($filename); header("Content-Length: " . strlen($contents)); } else { - mysql_query("INSERT into {$CONFIG->dbprefix}datalists set name = 'simplecache_lastupdate', value = '0' ON DUPLICATE KEY UPDATE value='0'"); + mysql_query("INSERT into {$CONFIG->dbprefix}datalists set name = 'simplecache_lastupdate_$viewtype', value = '0' ON DUPLICATE KEY UPDATE value='0'"); echo ''; exit; } diff --git a/upgrade.php b/upgrade.php index d659d415c..4d83658e3 100644 --- a/upgrade.php +++ b/upgrade.php @@ -19,8 +19,7 @@ if (get_input('upgrade') == 'upgrade') { if (version_upgrade_check()) { version_upgrade(); } - datalist_set('simplecache_lastupdate',0); - + elgg_view_regenerate_simplecache(); elgg_filepath_cache_reset(); } else { global $CONFIG; diff --git a/version.php b/version.php index bfa62f449..b8d0efc3f 100644 --- a/version.php +++ b/version.php @@ -12,7 +12,7 @@ // YYYYMMDD = Elgg Date // XX = Interim incrementer -$version = 2010052601; +$version = 2010060101; // Human-friendly version name $release = '1.8-svn'; diff --git a/views/default/canvas/layouts/widgets.php b/views/default/canvas/layouts/widgets.php index fa0d2ab0c..d56b009d5 100644 --- a/views/default/canvas/layouts/widgets.php +++ b/views/default/canvas/layouts/widgets.php @@ -61,8 +61,8 @@ </h3> </td> <td width="17px" align="right"></td> -<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td> -<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td> +<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14" height="14" class="more_info" /></a></td> +<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15" height="15" class="drag_handle" /></a></td> </tr></table> <?php @@ -130,8 +130,8 @@ if(get_context() != "profile"){ /* on groups */ </h3> </td> <td width="17px" align="right"></td> - <td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td> - <td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td> + <td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14" height="14" class="more_info" /></a></td> + <td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15" height="15" class="drag_handle" /></a></td> </tr></table> <?php @@ -175,8 +175,8 @@ if(get_context() != "profile"){ /* on groups */ </h3> </td> <td width="17px" align="right"></td> -<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td> -<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td> +<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14" height="14" class="more_info" /></a></td> +<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15" height="15" class="drag_handle" /></a></td> </tr></table> <?php @@ -216,8 +216,8 @@ if(get_context() != "profile"){ /* on groups */ </h3> </td> <td width="17px" align="right"></td> -<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td> -<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td> +<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14" height="14" class="more_info" /></a></td> +<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15" height="15" class="drag_handle" /></a></td> </tr></table> <?php |