Przenoszenie postów pomiędzy tematami na forum
|
BenLomax |
Dodany dnia 19.11.2009 23:01:46
|
Bywalec
Postów: 426 Pomógł: 25 Ostrzeżeń: 1
Data rejestracji: 25.06.2008 09:48
|
Witam.
Jak w temacie. Spotkał się ktoś z Was z taką modyfikacją? Znalazłem identyczny temat ale dotyczy on PF v6.
Wydaje mi się, że tu na supporcie moderatorzy posiadają taką dodatkową opcję - gdzieś mi mignęły przenoszone pojedyńcze posty - choć mogę się mylić.
Fajnie jeśli taka modyfikacją by powstała .
Edytowane przez Pieka dnia 20.11.2009 07:35:38
|
|
|
|
Wścibski Gość |
Dodany dnia 25.11.2024 22:34:31
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
PtRM |
Dodany dnia 20.11.2009 11:45:22
|
Przedszkolak
Postów: 11 Pomógł: 4
Data rejestracji: 24.06.2009 09:20
|
Podpisuję się pod propozycją BenLomaksa. Modyfikacja ta ułatwiłaby mi życie, nie grzebałbym już z bazie danych, a reszta adminów i modów miałaby ułatwione zadanie (zamiast się prosić PtRM o ingerencję w bazie, sami przenieśliby co gdzie trzeba). Please .
The Real Mendosa=mendosa=Pablo the Real Mendosa=PtRM
|
|
|
|
jantom |
Dodany dnia 20.11.2009 12:19:49
|
Weteran
Postów: 3460 Pomógł: 123
Data rejestracji: 31.03.2005 20:10
|
Zainteresujcie się plikami dla v7.01 (w SVN). Jest tam to, czego potrzebujecie. |
|
|
|
BenLomax |
Dodany dnia 20.11.2009 14:30:41
|
Bywalec
Postów: 426 Pomógł: 25 Ostrzeżeń: 1
Data rejestracji: 25.06.2008 09:48
|
Dzięki @jantom. Looknołem coś tam se pogrzebałem :P (w kodzie oczywiście) no i niby działa przenoszenie postów na testowej stronie. Jak znajdę chwilkę czasy to napiszę co i jak :)
Zanim to zrobicie zastanówcie się dwa razy! Robicie to na własną odpowiedzialność - działać -> działa!
Zróbcie backup BD oraz folderu forum (to nic nie kosztuje a lepiej dmuchać na zimne)
A więc tak:
1. Podmieniamy kod w pliku forum/viewthread.php na:
https://php-fusio...thread.php
2. Tworzymy plik w /forum/ o nazwie viewthread_options.php o zawartości:
https://php-fusio...ptions.php
3. Dodajemy w locale/forum/main.php na samym końcu kod:
Moje nie pełne tłumaczenie na kolanie:
// Move Posts
$locale['600'] = "Przenieś posty";
$locale['601'] = "Wybierz nowe forum";
$locale['602'] = "Dalej";
$locale['603'] = "Wybierz nowy temat";
$locale['604'] = "Przenieś posty";
$locale['605'] = "You are trying to move the first post in this thread!<br />The first post <strong>will not be moved</strong> and has been removed from list becouse there are still posts left in the thread.";
$locale['606'] = "You are trying to move the first post in this thread!<br />The first post <strong>will be moved </strong> and thread will be deleted.";
$locale['607'] = "Brak postów do przesunięcia.";
$locale['608'] = "Brak wątków w tym forum.";
$locale['609'] = "Powrót do wątku.";
$locale['610'] = "No threads to move posts.";
// Move Posts Errors
$locale['error-MP000'] = "Przesnieś posty - błąd";
$locale['error-MP001'] = "New thread doesn't exist.";
$locale['error-MP002'] = "Posts which you're marked to move don't exists or someone else already moved them.";
$locale['error-MP003'] = "No posts to move.";
Oraz
$locale['517a'] = "Przenieś posty";
$locale['518a'] = "Przenieść zaznaczone posty?";
Oryginalne EN kod:
// Move Posts
$locale['600'] = "Move posts";
$locale['601'] = "Select new forum";
$locale['602'] = "Next";
$locale['603'] = "Select new thread";
$locale['604'] = "Move posts";
$locale['605'] = "You are trying to move the first post in this thread!<br />The first post <strong>will not be moved</strong> and has been removed from list becouse there are still posts left in the thread.";
$locale['606'] = "You are trying to move the first post in this thread!<br />The first post <strong>will be moved </strong> and thread will be deleted.";
$locale['607'] = "No posts to move.";
$locale['608'] = "No threads in this forum.";
$locale['609'] = "Back to thread.";
$locale['610'] = "No threads to move posts.";
// Move Posts Errors
$locale['error-MP000'] = "Move posts - error";
$locale['error-MP001'] = "New thread doesn't exist.";
$locale['error-MP002'] = "Posts which you're marked to move don't exists or someone else already moved them.";
$locale['error-MP003'] = "No posts to move.";
$locale['517a'] = "Move posts";
$locale['518a'] = "Move selected posts?";
4. Wszystkie zmiany zapisujemy, wysyłamy na serwer i cieszymi sie na forum opcją Przenieś posty/Move posts.
5. Guzik widoczny jest koło guzika Usuń posty
U mnie na stronce działa - jeśli ta modyfikacja spowoduje błędy lub coś przestanie działać poprawnie na forum piszcie!
Edytowane przez BenLomax dnia 20.11.2009 15:20:58
|
|
|
|
slawekneo |
Dodany dnia 20.11.2009 16:23:00
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
Hyyy jednak Hans wstawil do v7.01 moj skrypt przenoszenia ;] ale nowsza wersja skryptu chyba bedzie dodana w 7.02.
@BenLomax - skrypt na 100% bedzie dzialac Zapomniales dodacz ze: aby dodac post do listy przenoszenia nalezy zaznaczyc checkbox przy poscie (tak jak przy kasowaniu postow) dopiero potem nacisnac przycisk przenies posty.
Pozdro!!
Edytowane przez khaman dnia 20.11.2009 16:25:45
|
|
|
|
szymon |
Dodany dnia 20.11.2009 16:54:21
|
Bywalec
Postów: 434 Pomógł: 20
Data rejestracji: 05.02.2006 21:20
|
http://www.php-fu...ost_129333
Zawiera wyżej wymienione funkcje i działa. Podziel/Połącz temat - na zasadzie zaznaczania postów.
Edytowane przez szymon dnia 20.11.2009 16:55:10
|
|
|
|
BenLomax |
Dodany dnia 20.11.2009 17:16:27
|
Bywalec
Postów: 426 Pomógł: 25 Ostrzeżeń: 1
Data rejestracji: 25.06.2008 09:48
|
@slawekneo dzięki za informację.
Jedno pytanie do Ciebie - jako twórcy tej modyfikacji. Czy mogę zamienić (w już mocno zmodyfikowanym pliku viewthread.php oryginalny kod:
if ((iMOD || iSUPERADMIN) && isset($_POST['delete_posts']) && (isset($_POST['delete_post'])) && is_array($_POST['delete_post']) && count($_POST['delete_post'])) {
$del_posts = ""; $i = 0; $post_count = 0;
foreach ($_POST['delete_post'] as $del_post_id) {
if (isnum($del_post_id)) { $del_posts .= ($del_posts ? "," : "").$del_post_id; $i++; }
}
if ($del_posts) {
$result = dbquery("SELECT post_author, COUNT(post_id) as num_posts FROM ".DB_POSTS." WHERE post_id IN (".$del_posts.") GROUP BY post_author");
if (dbrows($result)) {
while ($pdata = dbarray($result)) {
$result2 = dbquery("UPDATE ".DB_USERS." SET user_posts=user_posts-".$pdata['num_posts']." WHERE user_id='".$pdata['post_author']."'");
$post_count = $post_count + $pdata['num_posts'];
}
}
$result = dbquery("SELECT attach_name FROM ".DB_FORUM_ATTACHMENTS." WHERE post_id IN (".$del_posts.")");
if (dbrows($result)) {
while ($data = dbarray($result)) {
unlink(FORUM."attachments/".$data['attach_name']);
}
}
$result = dbquery("DELETE FROM ".DB_FORUM_ATTACHMENTS." WHERE thread_id='".$_GET['thread_id']."' AND post_id IN(".$del_posts.")");
$result = dbquery("DELETE FROM ".DB_POSTS." WHERE thread_id='".$_GET['thread_id']."' AND post_id IN(".$del_posts.")");
}
if (!dbcount("(post_id)", DB_POSTS, "thread_id='".$_GET['thread_id']."'")) {
$result = dbquery("DELETE FROM ".DB_THREADS." WHERE thread_id='".$_GET['thread_id']."'");
$result = dbquery("DELETE FROM ".DB_THREAD_NOTIFY." WHERE thread_id='".$_GET['thread_id']."'");
$result = dbquery("DELETE FROM ".DB_FORUM_POLL_VOTERS." WHERE thread_id='".$_GET['thread_id']."'");
$result = dbquery("DELETE FROM ".DB_FORUM_POLL_OPTIONS." WHERE thread_id='".$_GET['thread_id']."'");
$result = dbquery("DELETE FROM ".DB_FORUM_POLLS." WHERE thread_id='".$_GET['thread_id']."'");
$thread_count = false;
} else {
$result = dbquery("SELECT post_datestamp, post_author, post_id FROM ".DB_POSTS." WHERE thread_id='".$_GET['thread_id']."' ORDER BY post_datestamp DESC LIMIT 1");
$ldata = dbarray($result);
$result = dbquery("UPDATE ".DB_THREADS." SET thread_lastpost='".$ldata['post_datestamp']."', thread_lastpostid='".$ldata['post_id']."', thread_postcount=thread_postcount-1, thread_lastuser='".$ldata['post_author']."' WHERE thread_id='".$_GET['thread_id']."'");
$thread_count = true; unset($ldata);
}
$result = dbquery("SELECT post_datestamp, post_author FROM ".DB_POSTS." WHERE forum_id='".$fdata['forum_id']."' ORDER BY post_datestamp DESC LIMIT 1");
if (dbrows($result)) {
$ldata = dbarray($result);
$forum_lastpost = "forum_lastpost='".$ldata['post_datestamp']."', forum_lastuser='".$ldata['post_author']."'";
} else {
$forum_lastpost = "forum_lastpost='0', forum_lastuser='0'";
}
$result = dbquery("UPDATE ".DB_FORUMS." SET ".$forum_lastpost.(!$thread_count ? "forum_threadcount=forum_threadcount-1," : ",")." forum_postcount=forum_postcount-".$post_count." WHERE forum_id = '".$fdata['forum_id']."'");
if (!$thread_count) { redirect("viewforum.php?forum_id=".$fdata['forum_id']); }
}
if (isset($_GET['pid']) && isnum($_GET['pid'])) {
$reply_count = dbcount("(post_id)", DB_POSTS, "thread_id='".$fdata['thread_id']."' AND post_id<='".$_GET['pid']."'");
if ($reply_count > $posts_per_page) { $_GET['rowstart'] = ((ceil($reply_count / $posts_per_page)-1) * $posts_per_page); }
}
if (iMOD && (((isset($_POST['delete_posts']) || isset($_POST['move_posts'])) && isset($_POST['delete_post'])) || isset($_GET['error']))) {
require_once FORUM."viewthread_options.php";
}
if (isset($_GET['pid']) && isnum($_GET['pid'])) {
$reply_count = dbcount("(post_id)", DB_POSTS, "thread_id='".$fdata['thread_id']."' AND post_id<='".$_GET['pid']."'");
if ($reply_count > $posts_per_page) { $_GET['rowstart'] = ((ceil($reply_count / $posts_per_page)-1) * $posts_per_page); }
}
na kod z wersji 7.01
if (iMOD && (((isset($_POST['delete_posts']) || isset($_POST['move_posts'])) && isset($_POST['delete_post'])) || isset($_GET['error']))) {
require_once FORUM."viewthread_options.php";
}
if (isset($_GET['pid']) && isnum($_GET['pid'])) {
$reply_count = dbcount("(post_id)", DB_POSTS, "thread_id='".$fdata['thread_id']."' AND post_id<='".$_GET['pid']."'");
if ($reply_count > $posts_per_page) { $_GET['rowstart'] = ((ceil($reply_count / $posts_per_page)-1) * $posts_per_page); }
}
+ kod odpowiedzialny za wyświetlanie guzika.
Sprawdziłem - działa. Pytanie, czy tak można zrobić?
|
|
|
|
slawekneo |
Dodany dnia 20.11.2009 17:36:27
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
Tu masz porownanie i zastosuj sie do niego: http://php-fusion...mp;r2=1386
Pozdro!!
Zaktualizowalem link/Pieka
Edytowane przez Pieka dnia 09.02.2010 00:37:36
|
|
|
|
BenLomax |
Dodany dnia 20.11.2009 17:54:05
|
Bywalec
Postów: 426 Pomógł: 25 Ostrzeżeń: 1
Data rejestracji: 25.06.2008 09:48
|
Dzięki!
|
|
|
|
PtRM |
Dodany dnia 20.11.2009 21:35:22
|
Przedszkolak
Postów: 11 Pomógł: 4
Data rejestracji: 24.06.2009 09:20
|
"Doszlifowane" :D locale:
// Move Posts
$locale['600'] = "Przenieś posty";
$locale['601'] = "Wybierz nowe forum";
$locale['602'] = "Dalej";
$locale['603'] = "Wybierz nowy temat";
$locale['604'] = "Przenieś posty";
$locale['605'] = "Próbujesz przenieść pierwszy post tego tematu<br />Pierwszy post <strong>nie zostanie przeniesiony </strong> i nie ma go na liście, ponieważ nadal istnieją posty zamieszczone po nim <Użyj opcji przenoszenia tematów>.";
$locale['606'] = "Przenosisz <strong>jedyny post </strong>tego tematu!<br /><strong> Zostanie on przeniesiony </strong> a temat ulegnie kasacji.";
$locale['607'] = "Brak postów do przeniesienia.";
$locale['608'] = "Brak tematów na tym forum.";
$locale['609'] = "Powrót do tematu.";
$locale['610'] = "Nie wybrano tematu, do przeniesienia posta.";
// Move Posts Errors
$locale['error-MP000'] = "Błąd przenoszenia postów";
$locale['error-MP001'] = "Nie wybrano nowego tematu.";
$locale['error-MP002'] = "Zaznaczone posty nie istnieją, możliwe iż zostały już przeniesione.";
$locale['error-MP003'] = "Nie wybrano postów.";
$locale['517a'] = "Przenieś posty";
$locale['518a'] = "Czy przenieść zaznaczone posty?";
A podziękowania to, potem, ryczałtem (jak se sprawdzę) ;) .
The Real Mendosa=mendosa=Pablo the Real Mendosa=PtRM
|
|
|
|
jantom |
Dodany dnia 20.11.2009 22:47:04
|
Weteran
Postów: 3460 Pomógł: 123
Data rejestracji: 31.03.2005 20:10
|
Muszę wykopać swoją wersję tłumaczenia - wiem, że była już zrobiona, tylko to było tak dawno temu... |
|
|
|
PtRM |
Dodany dnia 21.11.2009 21:47:57
|
Przedszkolak
Postów: 11 Pomógł: 4
Data rejestracji: 24.06.2009 09:20
|
Modyfikacja działa, dzięki wielkie .
Administatorzy i moderatorzy Adventure-Zone, wychwalać po wsze czasy będą wszystkich, którzy wypowiedzieli się w tym temacie.
Szczególne podziękowania dla:
Jantoma - za cenną wskazówkę,
Sławkaneo - za to, że wykonał taką modyfikację,
BenaLomaksa - za to ... żeś mnie wyprzedził ,
Szymona - za zwrócenie uwagi na istniejącą już modyfikację o zbliżonym działaniu.
Raz jeszcze dzię-ku-je-my .
Edytowane przez PtRM dnia 21.11.2009 21:49:07
The Real Mendosa=mendosa=Pablo the Real Mendosa=PtRM
|
|
|
|
Krzysiek1312 |
Dodany dnia 28.11.2009 17:59:12
|
Przedszkolak
Postów: 55
Data rejestracji: 14.08.2008 11:01
|
Mam prośbę. Czy zamiast udostępniać cały plik viewthread.php mógłby ktoś podać gdzie co i jak zmienić/dodać ? Mam już zmodyfikowany ten plik i podmiana jest niemożliwa |
|
|
|
BenLomax |
Dodany dnia 28.11.2009 23:01:04
|
Bywalec
Postów: 426 Pomógł: 25 Ostrzeżeń: 1
Data rejestracji: 25.06.2008 09:48
|
@Krzysiek1312 tu masz wszystko co potrzeba http://www.php-fu...ost_137052
|
|
|
|
Krzysiek1312 |
Dodany dnia 28.11.2009 23:38:41
|
Przedszkolak
Postów: 55
Data rejestracji: 14.08.2008 11:01
|
Udało mi się. Świetnie wszystko działa. Dziękuję serdecznie.
Edytowane przez Krzysiek1312 dnia 28.11.2009 23:38:48
|
|
|
|
seba13 |
Dodany dnia 08.02.2010 20:07:36
|
Przedszkolak
Postów: 6
Data rejestracji: 08.02.2010 20:00
|
Witam.
Staram się zainstalować ta modyfikacje , niestety chyba linki wygasły i nie wiem co ma być np: w viewthread.php .Czy mógł by ktoś odświeżyć temat . Przeszukałem forum ale nic innego na ten temat nie znalazłem .
Pozdrawiam.
Dzięki za linka , niestety dalej nie potrafię dodać tej modyfikacji
Edytowane przez seba13 dnia 09.02.2010 15:45:41
|
|
|
|
PtRM |
Dodany dnia 14.02.2010 12:41:54
|
Przedszkolak
Postów: 11 Pomógł: 4
Data rejestracji: 24.06.2009 09:20
|
Podaję poprawiony link :
http://php-fusion...les/forum/
The Real Mendosa=mendosa=Pablo the Real Mendosa=PtRM
|
|
|