[Customisation Database Commits] r729 - in /trunk/titania: ./ authors/ contributions/ includes/objects/ includes/overlords/ includes/tools/ manage/ styles/default/template/common/

Nathan Guse exreaction at phpbb.com
Sat Mar 13 02:18:23 GMT 2010


Author: exreaction
Date: Sat Mar 13 02:18:23 2010
New Revision: 729

Log:
Truncate attention table on conversion

Redid some of how the tracking was setup so we are now able to much more easily track multiple things (such as marking all items in one area as read).

I've tested the mark topics read quite a bit, but it's pretty complex and it's possible that it is buggy.

Modified:
    trunk/titania/ariel_convert.php
    trunk/titania/authors/support.php
    trunk/titania/contributions/support.php
    trunk/titania/includes/objects/topic.php
    trunk/titania/includes/overlords/contribs.php
    trunk/titania/includes/overlords/queue.php
    trunk/titania/includes/overlords/topics.php
    trunk/titania/includes/tools/tracking.php
    trunk/titania/manage/queue_discussion.php
    trunk/titania/styles/default/template/common/topic_list.html

Modified: trunk/titania/ariel_convert.php
==============================================================================
*** trunk/titania/ariel_convert.php (original)
--- trunk/titania/ariel_convert.php Sat Mar 13 02:18:23 2010
***************
*** 93,99 ****
  	break;
  
  	case 1 :
! 		$truncate = array(TITANIA_QUEUE_TABLE, TITANIA_ATTACHMENTS_TABLE, TITANIA_AUTHORS_TABLE, TITANIA_CONTRIBS_TABLE, TITANIA_CONTRIB_COAUTHORS_TABLE, TITANIA_CONTRIB_FAQ_TABLE, TITANIA_CONTRIB_IN_CATEGORIES_TABLE, TITANIA_POSTS_TABLE, TITANIA_RATINGS_TABLE, TITANIA_REVISIONS_TABLE, TITANIA_TOPICS_TABLE, TITANIA_TRACK_TABLE, TITANIA_WATCH_TABLE);
  
  		foreach ($truncate as $table)
  		{
--- 93,99 ----
  	break;
  
  	case 1 :
! 		$truncate = array(TITANIA_ATTENTION_TABLE, TITANIA_QUEUE_TABLE, TITANIA_ATTACHMENTS_TABLE, TITANIA_AUTHORS_TABLE, TITANIA_CONTRIBS_TABLE, TITANIA_CONTRIB_COAUTHORS_TABLE, TITANIA_CONTRIB_FAQ_TABLE, TITANIA_CONTRIB_IN_CATEGORIES_TABLE, TITANIA_POSTS_TABLE, TITANIA_RATINGS_TABLE, TITANIA_REVISIONS_TABLE, TITANIA_TOPICS_TABLE, TITANIA_TRACK_TABLE, TITANIA_WATCH_TABLE);
  
  		foreach ($truncate as $table)
  		{

Modified: trunk/titania/authors/support.php
==============================================================================
*** trunk/titania/authors/support.php (original)
--- trunk/titania/authors/support.php Sat Mar 13 02:18:23 2010
***************
*** 16,23 ****
--- 16,35 ----
  	exit;
  }
  
+ // Mark all topics read
+ if (request_var('mark', '') == 'topics')
+ {
+ 	foreach (titania::$cache->get_author_contribs(titania::$author->user_id) as $contrib_id)
+ 	{
+ 		titania_tracking::track(TITANIA_SUPPORT, $contrib_id);
+ 	}
+ }
+ 
  topics_overlord::display_forums_complete('author_support', titania::$author);
  
+ // Mark all topics read
+ phpbb::$template->assign_var('U_MARK_TOPICS', titania_url::build_url(titania::$author->get_url('support'), array('mark' => 'topics')));
+ 
  titania::page_header('AUTHOR_SUPPORT');
  
  titania::page_footer(true, 'contributions/contribution_support.html');
\ No newline at end of file

Modified: trunk/titania/contributions/support.php
==============================================================================
*** trunk/titania/contributions/support.php (original)
--- trunk/titania/contributions/support.php Sat Mar 13 02:18:23 2010
***************
*** 76,81 ****
--- 76,87 ----
  }
  else
  {
+ 	// Mark all topics read
+ 	if (request_var('mark', '') == 'topics')
+ 	{
+ 		titania_tracking::track(TITANIA_SUPPORT, titania::$contrib->contrib_id);
+ 	}
+ 
  	topics_overlord::display_forums_complete('support', titania::$contrib);
  
  	titania::page_header('CONTRIB_SUPPORT');
***************
*** 84,89 ****
--- 90,98 ----
  	{
  		phpbb::$template->assign_var('U_POST_TOPIC', titania_url::append_url(titania::$contrib->get_url('support'), array('action' => 'post')));
  	}
+ 
+ 	// Mark all topics read
+ 	phpbb::$template->assign_var('U_MARK_TOPICS', titania_url::append_url(titania::$contrib->get_url('support'), array('mark' => 'topics')));
  }
  
  titania::page_footer(true, 'contributions/contribution_support.html');
\ No newline at end of file

Modified: trunk/titania/includes/objects/topic.php
==============================================================================
*** trunk/titania/includes/objects/topic.php (original)
--- trunk/titania/includes/objects/topic.php Sat Mar 13 02:18:23 2010
***************
*** 49,59 ****
  	public $topic_posted = false;
  
  	/**
! 	* Unread
! 	*
! 	* @var bool
  	*/
  	public $unread = true;
  
  	/**
  	 * Constructor class for titania topics
--- 49,58 ----
  	public $topic_posted = false;
  
  	/**
! 	* Unread, additional unread fields to check array(unread_type => unread_id)
  	*/
  	public $unread = true;
+ 	public $additional_unread_fields = array();
  
  	/**
  	 * Constructor class for titania topics
***************
*** 192,198 ****
  	*/
  	public function assign_details()
  	{
! 		$this->unread = titania_tracking::is_unread(TITANIA_TOPIC, $this->topic_id, $this->topic_last_post_time);
  
  		$folder_img = $folder_alt = '';
  		$this->topic_folder_img($folder_img, $folder_alt);
--- 191,200 ----
  	*/
  	public function assign_details()
  	{
! 		// Tracking check
! 		$last_read_mark = titania_tracking::get_track(TITANIA_TOPIC, $this->topic_id, true);
! 		$last_read_mark = max($last_read_mark, titania_tracking::adv_is_unread($this->additional_unread_fields, $this->topic_type, $this->parent_id));
! 		$this->unread = ($this->topic_last_post_time > $last_read_mark) ? true : false;
  
  		$folder_img = $folder_alt = '';
  		$this->topic_folder_img($folder_img, $folder_alt);

Modified: trunk/titania/includes/overlords/contribs.php
==============================================================================
*** trunk/titania/includes/overlords/contribs.php (original)
--- trunk/titania/includes/overlords/contribs.php Sat Mar 13 02:18:23 2010
***************
*** 227,237 ****
  
  			$contrib->author->__set_array($row);
  
! 			// Store the tracking info we grabbed in the tool
! 			if (isset($row['track_time']))
! 			{
! 				titania_tracking::store_track(TITANIA_CONTRIB, $contrib->contrib_id, $row['track_time']);
! 			}
  
  			// Get the folder image
  			$folder_img = $folder_alt = '';
--- 227,234 ----
  
  			$contrib->author->__set_array($row);
  
! 			// Store the tracking info we grabbed from the DB
! 			titania_tracking::store_from_db($row);
  
  			// Get the folder image
  			$folder_img = $folder_alt = '';

Modified: trunk/titania/includes/overlords/queue.php
==============================================================================
*** trunk/titania/includes/overlords/queue.php (original)
--- trunk/titania/includes/overlords/queue.php Sat Mar 13 02:18:23 2010
***************
*** 154,164 ****
  
  		while ($row = phpbb::$db->sql_fetchrow($result))
  		{
! 			// Store the tracking info we grabbed in the tool
! 			if (isset($row['track_time']))
! 			{
! 				titania_tracking::store_track(TITANIA_TOPIC, $row['topic_id'], $row['track_time']);
! 			}
  
  			$queue_ids[] = $row['queue_id'];
  			$user_ids[] = $row['topic_first_post_user_id'];
--- 154,161 ----
  
  		while ($row = phpbb::$db->sql_fetchrow($result))
  		{
! 			// Store the tracking info we grabbed from the DB
! 			titania_tracking::store_from_db($row);
  
  			$queue_ids[] = $row['queue_id'];
  			$user_ids[] = $row['topic_first_post_user_id'];

Modified: trunk/titania/includes/overlords/topics.php
==============================================================================
*** trunk/titania/includes/overlords/topics.php (original)
--- trunk/titania/includes/overlords/topics.php Sat Mar 13 02:18:23 2010
***************
*** 164,169 ****
--- 164,170 ----
  
  $limit_topic_days = array(0 => $user->lang['ALL_TOPICS'], 1 => $user->lang['1_DAY'], 7 => $user->lang['7_DAYS'], 14 => $user->lang['2_WEEKS'], 30 => $user->lang['1_MONTH'], 90 => $user->lang['3_MONTHS'], 180 => $user->lang['6_MONTHS'], 365 => $user->lang['1_YEAR']);
  */
+ 		phpbb::$user->add_lang('viewforum');
  
  		self::display_forums($type, $object);
  		self::assign_common();
***************
*** 220,225 ****
--- 221,229 ----
  
  		titania_tracking::get_track_sql($sql_ary, TITANIA_TOPIC, 't.topic_id');
  
+ 		// Setup the topic we will use for parsing the output (before the switch so we are able to do type specific things for it)
+ 		$topic = new titania_topic();
+ 
  		// type specific things
  		switch ($type)
  		{
***************
*** 242,247 ****
--- 246,257 ----
  			case 'queue_discussion' :
  				$page_url = titania_url::build_url('manage/queue_discussion');
  				$sql_ary['WHERE'] .= ' AND t.topic_type = ' . TITANIA_QUEUE_DISCUSSION;
+ 
+ 				// Additional tracking fields
+ 				titania_tracking::get_track_sql($sql_ary, TITANIA_QUEUE_DISCUSSION, 0, 'tqt');
+ 				$topic->additional_unread_fields[] = array('type' => TITANIA_QUEUE_DISCUSSION, 'id' => 0, 'type_match' => true);
+ 				titania_tracking::get_track_sql($sql_ary, TITANIA_SUPPORT, 't.parent_id', 'tst');
+ 				$topic->additional_unread_fields[] = array('type' => TITANIA_SUPPORT, 'parent_match' => true);
  			break;
  
  			case 'author_support' :
***************
*** 251,256 ****
--- 261,274 ----
  
  				// We also display the queue discussion topic between validators and authors in the support area
  				$sql_ary['WHERE'] .= ' AND (t.topic_type = ' . TITANIA_SUPPORT . ' OR t.topic_type = ' . TITANIA_QUEUE_DISCUSSION . ')';
+ 
+ 				// Additional tracking fields
+ 				titania_tracking::get_tracks(array(TITANIA_SUPPORT, TITANIA_QUEUE_DISCUSSION), array_merge(array(0), $contrib_ids));
+ 				foreach ($contrib_ids as $contrib_id)
+ 				{
+ 					$topic->additional_unread_fields[] = array('type' => TITANIA_SUPPORT, 'parent_match' => true);
+ 					$topic->additional_unread_fields[] = array('type' => TITANIA_QUEUE_DISCUSSION, 'id' => 0, 'type_match' => true);
+ 				}
  			break;
  
  			case 'author_tracker' :
***************
*** 268,273 ****
--- 286,302 ----
  
  				// We also display the queue discussion topic between validators and authors in the support area
  				$sql_ary['WHERE'] .= ' AND (t.topic_type = ' . TITANIA_SUPPORT . ' OR t.topic_type = ' . TITANIA_QUEUE_DISCUSSION . ')';
+ 
+ 				// Additional tracking field (to allow marking all support/discussion as read)
+ 				titania_tracking::get_track_sql($sql_ary, TITANIA_SUPPORT, $object->contrib_id, 'tst');
+ 				$topic->additional_unread_fields[] = array('type' => TITANIA_SUPPORT, 'parent_match' => true);
+ 
+ 				// Track the queue stuff too if applicable
+ 				if (titania_types::$types[$object->contrib_type]->acl_get('view'))
+ 				{
+ 					titania_tracking::get_track_sql($sql_ary, TITANIA_QUEUE_DISCUSSION, 0, 'tqt');
+ 					$topic->additional_unread_fields[] = array('type' => TITANIA_QUEUE_DISCUSSION, 'id' => 0, 'type_match' => true);
+ 				}
  			break;
  		}
  
***************
*** 278,284 ****
  		$pagination->sql_count($sql_ary, 't.topic_id');
  		$pagination->build_pagination($page_url);
  
- 		$topic = new titania_topic();
  		$last_was_sticky = false;
  
  		// Get the data
--- 307,312 ----
***************
*** 286,296 ****
  
  		while ($row = phpbb::$db->sql_fetchrow($result))
  		{
! 			// Store the tracking info we grabbed in the tool
! 			if (isset($row['track_time']))
! 			{
! 				titania_tracking::store_track(TITANIA_TOPIC, $row['topic_id'], $row['track_time']);
! 			}
  
  			self::$topics[$row['topic_id']] = $row;
  
--- 314,321 ----
  
  		while ($row = phpbb::$db->sql_fetchrow($result))
  		{
! 			// Store the tracking info we grabbed from the DB
! 			titania_tracking::store_from_db($row);
  
  			self::$topics[$row['topic_id']] = $row;
  

Modified: trunk/titania/includes/tools/tracking.php
==============================================================================
*** trunk/titania/includes/tools/tracking.php (original)
--- trunk/titania/includes/tools/tracking.php Sat Mar 13 02:18:23 2010
***************
*** 93,98 ****
--- 93,135 ----
  		return ($last_update > self::get_track($type, $id, $no_query)) ? true : false;
  	}
  
+ 	/**
+ 	* Figure out the last read mark for an object
+ 	*
+ 	* @param mixed $unread_fields
+ 	* 	array(
+ 	* 		'type' => 0, (the object type to use when getting the tracking data)
+ 	* 		'id' => 0, (the object id to use when getting the tracking data)
+ 	* 		'parent_match' => false, (if isset and true, the 'id' field we search for is the $parent_id sent)
+ 	* 		'type_match' => false, (if isset and true we will only count when the $object_type that is sent matches the type we are requesting from the tracking data)
+ 	*	)
+ 	* @param mixed $object_type
+ 	* @param mixed $parent_id
+ 	*
+ 	* @return int last mark time
+ 	*/
+ 	public static function adv_is_unread($unread_fields, $object_type, $parent_id)
+ 	{
+ 		$last_read_mark = 0;
+ 
+ 		foreach ($unread_fields as $field_ary)
+ 		{
+ 			if (isset($field_ary['type_match']) && $field_ary['type'] != $object_type)
+ 			{
+ 				continue;
+ 			}
+ 
+ 			if (isset($field_ary['parent_match']))
+ 			{
+ 				$field_ary['id'] = $parent_id;
+ 			}
+ 
+ 			$last_read_mark = max($last_read_mark, titania_tracking::get_track($field_ary['type'], $field_ary['id'], true));
+ 		}
+ 
+ 		return $last_read_mark;
+ 	}
+ 
  	public static function get_track($type, $id, $no_query = false)
  	{
  		// Ignore
***************
*** 111,117 ****
  		$sql = 'SELECT track_time FROM ' . self::$sql_table . '
  			WHERE track_type = ' . (int) $type . '
  			AND track_id = ' . (int) $id . '
! 			AND track_user_id = ' . phpbb::$user->data['user_id'];
  		phpbb::$db->sql_query($sql);
  
  		self::$store[$type][$id] = (int) phpbb::$db->sql_fetchfield('track_time');
--- 148,154 ----
  		$sql = 'SELECT track_time FROM ' . self::$sql_table . '
  			WHERE track_type = ' . (int) $type . '
  			AND track_id = ' . (int) $id . '
! 			AND track_user_id = ' . (int) phpbb::$user->data['user_id'];
  		phpbb::$db->sql_query($sql);
  
  		self::$store[$type][$id] = (int) phpbb::$db->sql_fetchfield('track_time');
***************
*** 131,145 ****
  			return;
  		}
  
! 		$sql = 'SELECT track_id, track_time FROM ' . self::$sql_table . '
! 			WHERE track_type = ' . (int) $type . '
  			AND ' . phpbb::$db->sql_in_set('track_id', array_map('intval', $ids)) . '
! 			AND track_user_id = ' . phpbb::$user->data['user_id'];
  		$result = phpbb::$db->sql_query($sql);
  
  		while ($row = phpbb::$db->sql_fetchrow($result))
  		{
! 			self::$store[$type][$row['track_id']] = $row['track_time'];
  		}
  		phpbb::$db->sql_freeresult($result);
  	}
--- 168,182 ----
  			return;
  		}
  
! 		$sql = 'SELECT track_type, track_id, track_time FROM ' . self::$sql_table . '
! 			WHERE ' . ((!is_array($type)) ? 'track_type = ' . (int) $type : phpbb::$db->sql_in_set('track_type', array_map('intval', $type))) . '
  			AND ' . phpbb::$db->sql_in_set('track_id', array_map('intval', $ids)) . '
! 			AND track_user_id = ' . (int) phpbb::$user->data['user_id'];
  		$result = phpbb::$db->sql_query($sql);
  
  		while ($row = phpbb::$db->sql_fetchrow($result))
  		{
! 			self::$store[$row['track_type']][$row['track_id']] = $row['track_time'];
  		}
  		phpbb::$db->sql_freeresult($result);
  	}
***************
*** 151,166 ****
  			return;
  		}
  
  		$sql_ary['LEFT_JOIN'] = (!isset($sql_ary['LEFT_JOIN'])) ? array() : $sql_ary['LEFT_JOIN'];
  
  		$sql_ary['LEFT_JOIN'][] = array(
  			'FROM'	=> array(TITANIA_TRACK_TABLE => $prefix),
  			'ON'	=> "{$prefix}.track_type = $type
  				AND {$prefix}.track_id = $id_field
! 				AND {$prefix}.track_user_id = " . phpbb::$user->data['user_id'],
  		);
  
! 		$sql_ary['SELECT'] .= ", {$prefix}.track_time";
  	}
  
  	/**
--- 188,228 ----
  			return;
  		}
  
+ 		$type = (int) $type;
+ 		$id_field = phpbb::$db->sql_escape($id_field);
+ 		$prefix = phpbb::$db->sql_escape($prefix);
+ 
  		$sql_ary['LEFT_JOIN'] = (!isset($sql_ary['LEFT_JOIN'])) ? array() : $sql_ary['LEFT_JOIN'];
  
  		$sql_ary['LEFT_JOIN'][] = array(
  			'FROM'	=> array(TITANIA_TRACK_TABLE => $prefix),
  			'ON'	=> "{$prefix}.track_type = $type
  				AND {$prefix}.track_id = $id_field
! 				AND {$prefix}.track_user_id = " . (int) phpbb::$user->data['user_id'],
  		);
  
! 		$sql_ary['SELECT'] .= ", {$prefix}.track_time as track_time_{$type}";
! 		$sql_ary['SELECT'] .= ", {$id_field} as track_time_{$type}_id";
! 	}
! 
! 	public static function store_from_db($row)
! 	{
! 		foreach ($row as $name => $value)
! 		{
! 			if (strpos($name, 'track_time_') === 0 && strpos($name, '_id') === false)
! 			{
! 				$type = (int) substr($name, 11, 1);
! 
! 				if (!isset($row['track_time_' . $type . '_id']))
! 				{
! 					continue;
! 				}
! 
! 				$id = (int) $row['track_time_' . $type . '_id'];
! 
! 				self::store_track($type, $id, $value);
! 			}
! 		}
  	}
  
  	/**
***************
*** 183,189 ****
  		$sql = 'DELETE FROM ' . self::$sql_table . '
  			WHERE track_type = ' . (int) $type . '
  			AND track_id = ' . (int) $id . '
! 			AND track_user_id = ' . phpbb::$user->data['user_id'];
  		phpbb::$db->sql_query($sql);
  
  		self::$store[$type][$id] = 0;
--- 245,251 ----
  		$sql = 'DELETE FROM ' . self::$sql_table . '
  			WHERE track_type = ' . (int) $type . '
  			AND track_id = ' . (int) $id . '
! 			AND track_user_id = ' . (int) phpbb::$user->data['user_id'];
  		phpbb::$db->sql_query($sql);
  
  		self::$store[$type][$id] = 0;
***************
*** 202,208 ****
  	public static function clear_user()
  	{
  		$sql = 'DELETE FROM ' . self::$sql_table . '
! 			WHERE track_user_id = ' . phpbb::$user->data['user_id'];
  		phpbb::$db->sql_query($sql);
  
  		self::$store = array();
--- 264,270 ----
  	public static function clear_user()
  	{
  		$sql = 'DELETE FROM ' . self::$sql_table . '
! 			WHERE track_user_id = ' . (int) phpbb::$user->data['user_id'];
  		phpbb::$db->sql_query($sql);
  
  		self::$store = array();

Modified: trunk/titania/manage/queue_discussion.php
==============================================================================
*** trunk/titania/manage/queue_discussion.php (original)
--- trunk/titania/manage/queue_discussion.php Sat Mar 13 02:18:23 2010
***************
*** 16,21 ****
--- 16,27 ----
  	exit;
  }
  
+ // Mark all topics read
+ if (request_var('mark', '') == 'topics')
+ {
+ 	titania_tracking::track(TITANIA_QUEUE_DISCUSSION, 0);
+ }
+ 
  $authed = titania_types::find_authed('view');
  if (empty($authed))
  {
***************
*** 24,29 ****
--- 30,38 ----
  
  topics_overlord::display_forums_complete('queue_discussion');
  
+ // Mark all topics read
+ phpbb::$template->assign_var('U_MARK_TOPICS', titania_url::build_url('manage/queue_discussion/', array('mark' => 'topics')));
+ 
  titania::page_header('QUEUE_DISCUSSION');
  
  titania::page_footer(true, 'manage/queue_discussion.html');

Modified: trunk/titania/styles/default/template/common/topic_list.html
==============================================================================
*** trunk/titania/styles/default/template/common/topic_list.html (original)
--- trunk/titania/styles/default/template/common/topic_list.html Sat Mar 13 02:18:23 2010
***************
*** 8,14 ****
  
  	<!-- IF PAGINATION or TOTAL_RESULTS -->
  		<div class="pagination">
! 			<!-- IF U_VIEW_UNREAD_POST and not S_IS_BOT --><a href="{U_VIEW_UNREAD_POST}">{L_VIEW_UNREAD_POST}</a> &bull; <!-- ENDIF -->{TOTAL_RESULTS}
  			<!-- IF PAGE_NUMBER --><!-- IF PAGINATION --> &bull; <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE --> &bull; {PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
  		</div>
  	<!-- ENDIF -->
--- 8,14 ----
  
  	<!-- IF PAGINATION or TOTAL_RESULTS -->
  		<div class="pagination">
! 			<!-- IF not S_IS_BOT and U_MARK_TOPICS --><a href="{U_MARK_TOPICS}" accesskey="m">{L_MARK_TOPICS_READ}</a> &bull; <!-- ENDIF -->{TOTAL_RESULTS}
  			<!-- IF PAGE_NUMBER --><!-- IF PAGINATION --> &bull; <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE --> &bull; {PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
  		</div>
  	<!-- ENDIF -->
***************
*** 75,81 ****
  
  	<!-- IF PAGINATION or TOTAL_RESULTS -->
  		<div class="pagination">
! 			<!-- IF U_VIEW_UNREAD_POST and not S_IS_BOT --><a href="{U_VIEW_UNREAD_POST}">{L_VIEW_UNREAD_POST}</a> &bull; <!-- ENDIF -->{TOTAL_RESULTS}
  			<!-- IF PAGE_NUMBER --><!-- IF PAGINATION --> &bull; <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE --> &bull; {PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
  		</div>
  	<!-- ENDIF -->
--- 75,81 ----
  
  	<!-- IF PAGINATION or TOTAL_RESULTS -->
  		<div class="pagination">
! 			<!-- IF not S_IS_BOT and U_MARK_TOPICS --><a href="{U_MARK_TOPICS}" accesskey="m">{L_MARK_TOPICS_READ}</a> &bull; <!-- ENDIF -->{TOTAL_RESULTS}
  			<!-- IF PAGE_NUMBER --><!-- IF PAGINATION --> &bull; <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE --> &bull; {PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
  		</div>
  	<!-- ENDIF -->




More information about the customisationdb-commits mailing list