Kód:
##############################################################
## MOD Title: Sort Topics Alphabetically
## MOD Author: pentapenguin < pentapenguin@bluebottle.com > (Jeremy Conley) http://www.pentapenguin.com
## MOD Description: This MOD allows you to sort topics alphabetically within a forum.
## MOD Version: 0.2.0
##
## Installation Level: Easy
## Installation Time: 10 Minutes
##
## Files To Edit: 3
## viewforum.php
## langauge/lang_english/lang_main.php
## templates/subSilver/viewforum_body.tpl
##
## Included Files: n/a
##
## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2
##############################################################
## For security purposes, please check: http://www.phpbb.com/mods/
## for the latest version of this MOD. Although MODs are checked
## before being allowed in the MODs Database there is no guarantee
## that there are no security problems within the MOD. No support
## will be given for MODs not found within the MODs Database which
## can be found at http://www.phpbb.com/mods/
##############################################################
## Author Notes:
## Optional step: if you have CyberAlien's eXtreme Styles MOD (http://www.phpbb.com/phpBB/viewtopic.php?t=125251),
## you can copy the file in contrib/admin/xs_sort_topics_alphabetically.cfg to admin/xs_sort_topics_alphabetically.cfg and you will
## be automatically notified if there's an update available when you use the "check for updates" function.
##
## This MOD is EasyMOD friendly! (http://area51.phpbb.com/phpBB/viewforum.php?sid=&f=17)
##
## For additional language and style downloads, please visit http://www.pentapenguin.com/forum/viewtopic.php?t=206
##
## To update to 0.2.0, see update_sort_topics_alphabetically_from_0.1.0_to_0.2.0.txt
##############################################################
## MOD History:
## 2005-11-15 - Version 0.2.0
## - Fixed many bugs.
## - Enabled better customization for more letters or letters in other non Latin based alphabets.
##
## 2004-11-10 - Version 0.1.0
## - First Public Beta
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
#
#-----[ OPEN ]------------------------------------------
#
viewforum.php
#
#-----[ FIND ]------------------------------------------
#
else
{
$mark_read = '';
}
#
#-----[ AFTER, ADD ]------------------------------------------
#
// Start Sort Topics Alphabetically MOD
$letters_array = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
$start_letter = ( isset($HTTP_GET_VARS['start_letter']) ) ? htmlspecialchars($HTTP_GET_VARS['start_letter']) : '';
$start_letter = str_replace("\'", "''", $start_letter);
if ( !in_array($start_letter, $letters_array) )
{
$start_letter = '';
}
// End Sort Topics Alphabetically MOD
#
#-----[ FIND ]------------------------------------------
#
$topics_count = ( $forum_row['forum_topics'] ) ? $forum_row['forum_topics'] : 1;
$limit_topics_time = '';
$topic_days = 0;
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// Start Sort Topics Alphabetically MOD
if ( $start_letter )
{
$sql = 'SELECT COUNT(topic_id) AS forum_topics
FROM ' . TOPICS_TABLE . "
WHERE forum_id = $forum_id
AND topic_title LIKE '$start_letter%'";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get topic counts for letter search', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$topics_count = ( $row['forum_topics'] ) ? $row['forum_topics'] : 1;
$db->sql_freeresult($result);
}
else
{
// End Sort Topics Alphabetically MOD
#
#-----[ AFTER, ADD ]------------------------------------------
#
# Note: add the following after the code in the FIND statement above.
#
// Start Sort Topics Alphabetically MOD
}
// End Sort Topics Alphabetically MOD
#
#-----[ FIND ]------------------------------------------
#
# Note: this is part of a large SQL query but this part is on its own line.
#
AND t.topic_type <> " . POST_ANNOUNCE . "
#
#-----[ AFTER, ADD ]------------------------------------------
#
AND t.topic_title LIKE '$start_letter%'
#
#-----[ FIND ]------------------------------------------
#
# Note: the full line to find on a fresh phpBB installation is: 'S_POST_DAYS_ACTION' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum_id . "&start=$start"))
#
'S_POST_DAYS_ACTION' =>
#
#-----[ IN-LINE FIND ]------------------------------------------
#
start=$start
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
&start_letter=$start_letter
#
#-----[ FIND ]------------------------------------------
#
# Note: the full line to find on a fresh phpBB installation is: 'PAGINATION' => generate_pagination("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&topicdays=$topic_days", $topics_count, $board_config['topics_per_page'], $start),
#
'PAGINATION' =>
#
#-----[ IN-LINE FIND ]------------------------------------------
#
$topic_days
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
&start_letter=$start_letter
#
#-----[ FIND ]------------------------------------------
#
$template->pparse('body');
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// Start Sort Topics Alphabetically MOD
// Begin Configuration Section
// Change this to whatever you want the divider to be. Be sure to keep both apostrophies.
$divider = ', ';
// End Configuration Section
// Do not change anything below this line.
$total_letters_count = count($letters_array);
$this_letter_number = 0;
$template->assign_vars(array(
'L_SORT_ALPHABETICALLY' => $lang['Sort_alphabetically'],
'L_ALL_TOPICS' => $lang['All_Topics'],
'DIVIDER' => $divider,
'U_ALL_TOPICS' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&start_letter=&topicdays=$topic_days"),
));
foreach ( $letters_array as $letter )
{
$this_letter_number++;
$template->assign_block_vars("alphabetical_sort", array(
'LETTER' => $letter,
'U_LETTER' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&start_letter=$letter&topicdays=$topic_days"),
'DIVIDER' => ( $this_letter_number != $total_letters_count ) ? $divider : '',
));
}
//End Sort Topics Alphabetically MOD
#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_main.php
#
#-----[ FIND ]------------------------------------------
#
# Note: the full line to find on a fresh phpBB installation is: $lang['Display_topics'] = 'Display topics from previous';
#
$lang['Display_topics']
#
#-----[ AFTER, ADD ]------------------------------------------
#
// Start Sort Topics Alphabetically MOD
$lang['Sort_alphabetically'] = 'Sort topics alphabetically';
// End Sort Topics Alphabetically MOD
#
#-----[ FIND ]------------------------------------------
#
# Note: the full line to find on a fresh phpBB installation is: $lang['No_topics_post_one'] = 'There are no posts in this forum.<br />Click on the <b>Post New Topic</b> link on this page to post one.';
#
$lang['No_topics_post_one']
#
#-----[ REPLACE WITH ]------------------------------------------
#
// Variable changed by the Sort Topics Alphabetically MOD
$lang['No_topics_post_one'] = 'Either there are no posts in this forum, or there are no matches for the letter you selected.<br />Click on the <b>Post New Topic</b> link on this page to start a new post or select another letter.';
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/viewforum_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<th align="center" class="thCornerR" nowrap="nowrap"> {L_LASTPOST} </th>
</tr>
#
#-----[ AFTER, ADD ]------------------------------------------
#
<tr>
<td class="catBottom" align="center" valign="middle" colspan="6" height="28">
<span class="genmed">{L_SORT_ALPHABETICALLY}: <a href="{U_ALL_TOPICS}" style="font-weight: bold;">{L_ALL_TOPICS}</a>{DIVIDER}
<!-- BEGIN alphabetical_sort -->
<a href="{alphabetical_sort.U_LETTER}" style="font-weight: bold;">{alphabetical_sort.LETTER}</a>{alphabetical_sort.DIVIDER}
<!-- END alphabetical_sort -->
</span>
</td>
</tr>
#
#-----[ FIND ]------------------------------------------
#
<input type="submit" class="liteoption" value="{L_GO}" name="submit" />
</span></td>
</tr>
#
#-----[ AFTER, ADD ]------------------------------------------
#
<tr>
<td class="catBottom" align="center" valign="middle" colspan="6" height="28">
<span class="genmed">{L_SORT_ALPHABETICALLY}: <a href="{U_ALL_TOPICS}" style="font-weight: bold;">{L_ALL_TOPICS}</a>{DIVIDER}
<!-- BEGIN alphabetical_sort -->
<a href="{alphabetical_sort.U_LETTER}" style="font-weight: bold;">{alphabetical_sort.LETTER}</a>{alphabetical_sort.DIVIDER}
<!-- END alphabetical_sort -->
</span>
</td>
</tr>
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM