[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