Cześć. Szukałem, ale nigdzie nie znalazłem rozwiązania dotyczącego zmiany sortowania tematów na wybranych częściach forum. Chodzi o to by wybrane rozdziały forum sortować alfabetycznie a inne wg daty.
Skończyłem kodować, poniżej wyniki.
Dodałem ręcznie kolumnę w bazie danych:19 forum_sort tinyint(1) UNSIGNED Nie 0 w tabeli: TWOJPREFIX_forums
Oraz edytowałem plik: viewforum.php a dokładniej w lini około 160 za wierszem:
if ($rows) {
dodałem:
// tutaj sprawdza jak ma sortowac
$sortowanie = dbarray(dbquery(
"SELECT forum_sort
FROM ".DB_FORUMS."
WHERE forum_id='".$_GET['forum_id']."'"
));
if ($sortowanie['forum_sort']=='1'){$sortuj='thread_subject ASC';}else{$sortuj='thread_lastpost DESC';}
//
a zaraz za tym edytowałem poniższy kod który musicie zamienić na mój:
// tutaj pobiera dane z bazy danych
$result = dbquery(
"SELECT t.*, tu1.user_name AS user_author, tu1.user_status AS status_author,
tu2.user_name AS user_lastuser, tu2.user_status AS status_lastuser
FROM ".DB_THREADS." t
LEFT JOIN ".DB_USERS." tu1 ON t.thread_author = tu1.user_id
LEFT JOIN ".DB_USERS." tu2 ON t.thread_lastuser = tu2.user_id
WHERE t.forum_id='".$_GET['forum_id']."' AND thread_hidden='0'
ORDER BY thread_sticky DESC, ".$sortuj." LIMIT ".$_GET['rowstart'].",$threads_per_page"
);
//
A teraz modyfikacja pliku od ustawień, szukamy: administration/forums.php
I w tym pliku edytujemy:
około 100 lini po:
$forum_merge = (isset($_POST['forum_merge']) && isnum($_POST['forum_merge']) ? $_POST['forum_merge'] : 0);
dajemy:
$forum_sort = (isset($_POST['forum_sort']) && isnum($_POST['forum_sort']) ? $_POST['forum_sort'] : 0);
// tu zmienić by dodawało zmiany
następnie w około 176 lini dodajemy ",forum_sort" po czym część kodu wygląda tak:
} elseif (isset($_GET['t']) && $_GET['t'] == "forum") {
$result = dbquery(
// dodane sortowanie
"SELECT
forum_name, forum_description, forum_cat, forum_moderators,
forum_access, forum_post, forum_reply, forum_attach, forum_attach_download, forum_poll,
forum_vote, forum_merge, forum_sort
FROM ".DB_FORUMS."
WHERE forum_id='".$_GET['forum_id']."'
LIMIT 1"
);
a następnie w około 190 po:
$forum_merge = $data['forum_merge'];
dajemy:
// dodane sortowanie
$forum_sort = $data['forum_sort'];
i na koniec w około 320 lini dodajemy po:
echo "<td class='tbl2' colspan='2' style='font-weight:bold;'>".$locale['540']."</td>\n";
echo "</tr>\n<tr>\n";
echo "<td width='1%' class='tbl' style='white-space:nowrap'>".$locale['541']."</td>\n";
echo "<td class='tbl'><select name='forum_merge' class='textbox' style='width:150px;'>\n";
echo "<option value='1'>".$locale['542']."</option>\n";
echo "<option value='0' ".($forum_merge == 0 ? "selected='selected'" : "").">".$locale['543']."</option>\n";
echo "</select>\n</td>\n";
dodajemy:
// dodanie sortowania
echo "</tr>\n<tr>\n";
echo "<td width='1%' class='tbl' style='white-space:nowrap'>Ustawianie sortowania:</td>\n";;
echo "<td class='tbl'><select name='forum_sort' class='textbox' style='width:150px;'>\n";
echo "<option value='0'>Sortowanie wg daty</option>\n";
echo "<option value='1' ".($forum_sort == 1 ? "selected='selected'" : "").">Sortowanie abcd</option>
\n";
echo "</select>\n</td>\n";
// koniec
dla leniwych daje pliki już przerobione. wystarczy wrzucić je do właściwych katalogów.
PW od moderatora:
- Przeniesienie tematu - khaman 05.11.2012 15:31
B06US dodał/a następującą plik:
Edytowane przez B06US dnia 05.11.2012 22:38:25
|