[Customisation Database Commits] r849 - in /trunk/titania/includes: core/cache.php overlords/contribs.php

Nathan Guse exreaction at phpbb.com
Tue Mar 23 17:49:47 GMT 2010


Author: exreaction
Date: Tue Mar 23 17:49:46 2010
New Revision: 849

Log:
Display the manage/etc buttons for authors on their contributions list

YOU MUST PURGE YOUR CACHE AFTER UPDATING!

Modified:
    trunk/titania/includes/core/cache.php
    trunk/titania/includes/overlords/contribs.php

Modified: trunk/titania/includes/core/cache.php
==============================================================================
*** trunk/titania/includes/core/cache.php (original)
--- trunk/titania/includes/core/cache.php Tue Mar 23 17:49:46 2010
***************
*** 185,191 ****
  	*
  	* @return array Array of contrib_id's
  	*/
! 	public function get_author_contribs($user_id)
  	{
  		$user_id = (int) $user_id;
  
--- 185,191 ----
  	*
  	* @return array Array of contrib_id's
  	*/
! 	public function get_author_contribs($user_id, $active = false)
  	{
  		$user_id = (int) $user_id;
  
***************
*** 210,228 ****
  
  			while ($row = phpbb::$db->sql_fetchrow($result))
  			{
! 				$author_block[$user_id][$row['contrib_id']] = $row['contrib_status'];
  			}
  
  			phpbb::$db->sql_freeresult($result);
  
  			// Now get the lists where the user is a co-author
! 			$sql = 'SELECT cc.contrib_id, c.contrib_status FROM ' . TITANIA_CONTRIB_COAUTHORS_TABLE . ' cc, ' . TITANIA_CONTRIBS_TABLE . ' c
  				WHERE cc.user_id = ' . $user_id . '
  					AND c.contrib_id = cc.contrib_id';
  			$result = phpbb::$db->sql_query($sql);
  			while ($row = phpbb::$db->sql_fetchrow($result))
  			{
! 				$author_block[$user_id][$row['contrib_id']] = $row['contrib_status'];
  			}
  			phpbb::$db->sql_freeresult($result);
  
--- 210,228 ----
  
  			while ($row = phpbb::$db->sql_fetchrow($result))
  			{
! 				$author_block[$user_id][$row['contrib_id']] = array('status' => $row['contrib_status'], 'active' => true);
  			}
  
  			phpbb::$db->sql_freeresult($result);
  
  			// Now get the lists where the user is a co-author
! 			$sql = 'SELECT cc.contrib_id, c.contrib_status, cc.active FROM ' . TITANIA_CONTRIB_COAUTHORS_TABLE . ' cc, ' . TITANIA_CONTRIBS_TABLE . ' c
  				WHERE cc.user_id = ' . $user_id . '
  					AND c.contrib_id = cc.contrib_id';
  			$result = phpbb::$db->sql_query($sql);
  			while ($row = phpbb::$db->sql_fetchrow($result))
  			{
! 				$author_block[$user_id][$row['contrib_id']] = array('status' => $row['contrib_status'], 'active' => $row['active']);
  			}
  			phpbb::$db->sql_freeresult($result);
  
***************
*** 232,243 ****
  
  		$contribs = array();
  
! 		foreach ($author_block[$user_id] as $contrib_id => $status)
  		{
  			// If approved, or new and doesn't require approval, or the user is viewing their own, or TITANIA_ACCESS_TEAMS, add them to the list
! 			if (phpbb::$user->data['user_id'] == $user_id || (!titania::$config->require_validation && $status == TITANIA_CONTRIB_NEW) || $status == TITANIA_CONTRIB_APPROVED || titania::$access_level == TITANIA_ACCESS_TEAMS)
  			{
! 				$contribs[] = $contrib_id;
  			}
  		}
  
--- 232,246 ----
  
  		$contribs = array();
  
! 		foreach ($author_block[$user_id] as $contrib_id => $data)
  		{
  			// If approved, or new and doesn't require approval, or the user is viewing their own, or TITANIA_ACCESS_TEAMS, add them to the list
! 			if (phpbb::$user->data['user_id'] == $user_id || (!titania::$config->require_validation && $data['status'] == TITANIA_CONTRIB_NEW) || $data['status'] == TITANIA_CONTRIB_APPROVED || titania::$access_level == TITANIA_ACCESS_TEAMS)
  			{
! 				if (!$active || $data['active'])
! 				{
! 					$contribs[] = $contrib_id;
! 				}
  			}
  		}
  

Modified: trunk/titania/includes/overlords/contribs.php
==============================================================================
*** trunk/titania/includes/overlords/contribs.php (original)
--- trunk/titania/includes/overlords/contribs.php Tue Mar 23 17:49:46 2010
***************
*** 136,142 ****
  		}
  		$pagination->result_lang = 'TOTAL_CONTRIBS';
  
! 		$select = 'c.contrib_id, c.contrib_name, c.contrib_name_clean, c.contrib_status, c.contrib_downloads, c.contrib_views, c.contrib_rating, c.contrib_rating_count, c.contrib_type, c.contrib_last_update,
  						u.username, u.user_colour, u.username_clean';
  		switch ($mode)
  		{
--- 136,142 ----
  		}
  		$pagination->result_lang = 'TOTAL_CONTRIBS';
  
! 		$select = 'c.contrib_id, c.contrib_name, c.contrib_name_clean, c.contrib_status, c.contrib_downloads, c.contrib_views, c.contrib_rating, c.contrib_rating_count, c.contrib_type, c.contrib_last_update, c.contrib_user_id,
  						u.username, u.user_colour, u.username_clean';
  		switch ($mode)
  		{
***************
*** 243,248 ****
--- 243,249 ----
  		$contrib = new titania_contribution();
  		$contrib->author = new titania_author();
  		$versions = titania::$cache->get_phpbb_versions();
+ 		$author_contribs = titania::$cache->get_author_contribs(phpbb::$user->data['user_id'], true);
  
  		foreach ($contrib_ids as $contrib_id)
  		{
***************
*** 252,257 ****
--- 253,262 ----
  
  			$contrib->author->__set_array($row);
  
+ 			// Author contrib variables
+ 			$contrib->is_author = ($contrib->contrib_user_id == phpbb::$user->data['user_id']) ? true : false;
+ 			$contrib->is_active_coauthor = (in_array($contrib->contrib_id, $author_contribs)) ? true : false;
+ 
  			// Store the tracking info we grabbed from the DB
  			titania_tracking::store_from_db($row);
  




More information about the customisationdb-commits mailing list