Si scarica la MOD di Ameeck se la si vuole conservare ( si installa anche semplicemente seguendo le istruzioni a seguire)
Questa modifica non implica nessun file aggiuntivo va solamente a integrare nuovo codice atto al funzionamento della medesima, con settaggi impostabili da PCA.
Si accede al database relazionale del forum tramite il front-end grafico PhpMyAdmin
si avrà una pagina del tipo
si tratterà di aprire il database cliccando sul nome in azzurro, nel mio caso my_silvermaledetto
ora si vedranno le singole tabelle che costituiscono il database MySQL
Dovendo integrare una tabella, si procede direttamente cliccando sul pulsante SQL in alto a sinistra
e si aprirà una pagina del tipo
-> http://www.silvermaledetto.altervista.org/guida/3.png
in cui bisognerà solo inserire nell'apposito spazio questo codice
Codice:
ALTER TABLE phpbb_forums ADD sort_alphabet TINYINT( 1 ) NOT NULL DEFAULT '0';
dare ovviamente l'Esegui
Il che dovrebbe modificare la tabella phpbb_forums ( dove phpbb è il prefisso tabellare di default , ma se avete una board non installata manualmente, questo potrebbe pure essere diverso )
Aprire: viewforum.php
cerca
Codice:
if (!$forum_data)
{
trigger_error('NO_FORUM');
}
Aggiungi dopo
In una nuova linea creata
Codice:
// Begin Sort topics alphabetically
$letter = request_var('letter', '');
if (!in_array($letter, range('A', 'Z')) && $letter != 'other' || !$forum_data['sort_alphabet'])
{
$letter = '';
}
// End Sort topics alphabetically
Cerca
Codice:
gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param);
Aggiungi dopo
In una nuova linea creata
Codice:
// Begin sort topics alphabetically
// A bit of phpBB code from memberlist, thank you
$sql_where_letter = '';
if ($letter == 'other')
{
for ($i = 97; $i < 123; $i++)
{
$sql_where_letter .= ' AND topic_title NOT ' . $db->sql_like_expression(chr($i) . $db->any_char);
}
}
else if ($letter)
{
$sql_where_letter .= ' AND topic_title ' . $db->sql_like_expression(substr($letter, 0, 1) . $db->any_char);
}
// End sort topics alphabetically
Cerca
Codice:
if ($sort_days)
{
$min_post_time = time() - ($sort_days * 86400);
Rimpiazza con
Codice:
if ($sort_days || $letter)
{
$min_post_time = ($sort_days) ? time() - ($sort_days * 86400) : 0;
Cerca
Codice:
OR topic_type = " . POST_ANNOUNCE . ")
Aggiungi dopo
Codice:
$sql_where_letter
Cerca
Codice:
'GOTO_PAGE_IMG' => $user->img('icon_post_target', 'GOTO_PAGE'),
Aggiungi dopo
In una nuova linea creata
Codice:
'U_ALL_TOPICS' => append_sid("viewforum.$phpEx", "f=$forum_id&letter=&st=$sort_days&sk=$sort_key&sd=$sort_dir"),
'S_SORT_ALPHABET' => $forum_data['sort_alphabet'],
Cerca
Codice:
// Grab icons
$icons = $cache->obtain_icons();
Aggiungi prima
In una nuova linea creata
Codice:
// Begin sort topics alphabetically
foreach (range('A', 'Z') as $single_letter)
{
$template->assign_block_vars('alphabet', array(
'LETTER' => $single_letter,
'U_LETTER' => append_sid("viewforum.$phpEx", "f=$forum_id&letter=$single_letter&$u_sort_param"),
'DIVIDER' => ',',
));
}
$template->assign_block_vars('alphabet', array(
'LETTER' => "#",
'U_LETTER' => append_sid("viewforum.$phpEx", "f=$forum_id&letter=other&$u_sort_param"),
'DIVIDER' => '',
));
// End sort topics alphabetically
Cerca
Codice:
else
{
$topics_count--;
}
Rimpiazza con
Codice:
elseif(empty($letter))
{
$topics_count--;
}
Cerca
Codice:
{
$get_forum_ids = array_diff($active_forum_ary['forum_id'], $active_forum_ary['exclude_forum_id']);
$sql_where = (sizeof($get_forum_ids)) ? $db->sql_in_set('t.forum_id', $get_forum_ids) : 't.forum_id = ' . $forum_id;
}
Aggiungi dopo
In una nuova linea creata
Codice:
// Sort topic alphabetically
// We need to edit the once generated where part of the query, since table shortcuts are used
$sql_where_letter = str_replace('topic_title', 't.topic_title', $sql_where_letter);
Cerca
Aggiungi dopo
In una nuova linea creata
Codice:
$sql_where_letter
Cerca
Codice:
'PAGINATION' => generate_pagination(append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id&$u_sort_param"), $topics_count, $config['topics_per_page'], $start),
Rimpiazza con
Codice:
'PAGINATION' => generate_pagination(append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id&letter=$letter&$u_sort_param"), $topics_count, $config['topics_per_page'], $start),
Aprire: includes/acp/acp_forums.php
Cerca
Codice:
'forum_password_unset' => request_var('forum_password_unset', false),
Aggiungi dopo
In una nuova linea creata
Codice:
'sort_alphabet' => request_var('sort_alphabet', 0),
cerca
Codice:
'forum_password_confirm'=> '',
Agiungi dopo
In una nuova linea creata
Codice:
'sort_alphabet' => 0,
Cerca
Codice:
'S_FORUM_PASSWORD_SET' => (empty($forum_data['forum_password'])) ? false : true,
Aggiungi dopo
In una nuova linea creata
Codice:
'S_SORT_ALPHABETICALLY' => $forum_data['sort_alphabet'],
Aprire: language/en/viewforum.php
I file di linguaggio vanno modificati solo con codifica UTF-8 senza BOM!!
Cerca
Codice:
'POST_FORUM_LOCKED' => 'Forum is locked',
Aggiungi dopo
In una nuova linea creata
Codice:
'SORT_ALPHABETICALLY' => 'Sort alphabetically',
da riportare nella cartella it nella medesima posizione ( se si vuole una traduzione, ma la modifica funzionerà ugualmente)
'SORT_ALPHABETICALLY' => 'Indice alfabetico',
Aprire: language/en/acp/forums.php
Cerca
Codice:
'REDIRECT_ACL' => 'Now you are able to %sset permissions%s for this forum.',
Aggiungere dopo
In una nuova linea creata
Codice:
'SORT_ALPHABETICALLY' => 'Allow sorting by first letters',
'SORT_ALPHABETICALLY_EXPLAIN' => 'Displays a panel which lets users to choose to display topics starting with a specific letter or character.',
come prima per la cartella speculare in it
'SORT_ALPHABETICALLY' => 'Abilita una lista alfabetica di ordinamento argomenti',
'SORT_ALPHABETICALLY_EXPLAIN' => 'Visualizza un pannello che permette agli utenti
di scegliere di ordinare gli argomenti che iniziano con una lettera specifica o un carattere',
Aprire: styles/prosilver/template/viewforum_body.html
Cerca
Codice:
<!-- BEGIN topicrow -->
Aggiungi prima
In una nuova linea creata
Codice:
<!-- IF S_SORT_ALPHABET -->
<div class="panel">
<div class="inner"><span class="corners-top"><span></span></span>
<ul class="linklist">
<li><strong style="font-size: 0.95em;">{L_SORT_ALPHABETICALLY}: <a href="{U_ALL_TOPICS}" style="font-weight: bold;">{L_ALL_TOPICS}</a>,
<!-- BEGIN alphabet -->
<a href="{alphabet.U_LETTER}" style="font-weight: bold;">{alphabet.LETTER}</a>{alphabet.DIVIDER}
<!-- END alphabet --></strong>
</ul>
<span class="corners-bottom"><span></span></span></div>
</div>
<!-- ENDIF -->
Aprire: adm/style/acp_forums.html
Cerca
Codice:
<dl>
<dt><label for="topics_per_page">{L_FORUM_TOPICS_PAGE}:</label><br /><span>{L_FORUM_TOPICS_PAGE_EXPLAIN}</span></dt>
<dd><input type="text" id="topics_per_page" name="topics_per_page" value="{TOPICS_PER_PAGE}" size="4" maxlength="4" /></dd>
</dl>
Aggiungi dopo
In una nuova linea creata
Codice:
<dl>
<dt><label for="sort_alphabet">{L_SORT_ALPHABETICALLY}:</label><br /><span>{L_SORT_ALPHABETICALLY_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="sort_alphabet" value="1"<!-- IF S_SORT_ALPHABETICALLY --> id="sort_alphabet" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="sort_alphabet" value="0"<!-- IF not S_SORT_ALPHABETICALLY --> id="sort_alphabet" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
Salva tutti i file, entra nel PCA e cancella la cache generale del forum.La MOD è finita.
Da PCA quando si creerà un nuovo forum o si andrà a modificarne uno esistente, ora si vedrà questo nuovo settaggio
Nella normale navigazione di quel forum si vedrà invece
la lista alfabetica e dei caratteri specali, cliccabile.