Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Rekomendowane odpowiedzi

Opublikowano

Troszkę szukałem ale nie znalazłem niczego co by ukróciło cytowanie ostatniego posta przez odpowiadającego w temacie. Użytkownik naciska przycisk "Odpowiedz" znajdujący się przy każdym poście zamiast "Dodaj odpowiedź" na samym dole.

- W związku z tym moje pytanie czy można np. poprzez modyfikacje "Selective quoting" zrobić aby gdy użytkownik nie zaznaczy nic w danym poście - po prostu nic nie cytowało się (nie wiem nie używam tego moda).

- Ewentualnie jak usunąć ten przycisk w ostatnim poście.

Opublikowano

Tak, chodzi o to żeby pod danym postem nie widniała odpowiedź z zacytowaną jego treścią w całości.

Dobra, to już nie rozumiem. :o

Takie cytowania ostatniego postu w całości nie są mile widzianą rzeczą na większości for, niestety początkujący użytkownicy często odpowiadają poprzez naciśnięcie przycisku odpowiedź przy ostatnim poście. Jak tego uniknąć?

  • Manager
Opublikowano

Nie pyknie to w kodzie bez dodatkowego zapytania przy tworzeniu odpowiedzi, ponieważ w tabeli topics nie jest zapisywana ta wartość.. Relatywnie prosto zrobić to jednak z dodatkowym zapytaniem..

Plik: admin/applications/forums/modules_public/post/post.php

Poniżej:

	public function showForm( $type )
{
	switch( $type )
	{
		case 'reply':

Dodaj:

			/* Block quoting last post reply */

			if( $this->request['qpid'] )
			{
				# Tmp topic
				$t = array(); # Build sql query to get last topic post ID

				# Check it
				if( $this->request['qpid'] == $t['last_post_id'] )
				{
					$this->registry->getClass('output')->showError( "You can't quote last post in this topic." );
				}
			}

Info: to pseudo kod!

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

  • Manager
Opublikowano

Oh, założyłem, że jesteś Batmanem i w sumie się dziwiłem, że coś tutaj pisze w sprawie kodowania, bo przecież sam doskonale sobie radzi. ;)

Mogę podać gotowy kod tylko kwestia czy interesuje Cię jedno dodatkowe zapytanie na każdy plik w przycisk Odpowiedz.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano

Racja, zbyt dobrze nie znam się na kodowaniu, także zdaje się na najlepsze rozwiązanie wg. specjalisty. Dla mnie mogłoby po prostu nie być przycisku odpowiedź przy ostatnim poście.

Choć najbardziej logicznym rozwiązaniem wydaje się być brak możliwości cytowania W CAŁOŚCI tylko i wyłącznie ostatniego postu.

Każde rozwiązanie utrudniające ten proceder będzie dla moderatorów wielkim udogodnieniem.

Dobrze jeszcze gdyby w przyszłości ta modyfikacja nie gryzła się z modem Selective Quoting.

Za wszystkie rozwiązania dziękuje.

  • Manager
Opublikowano

We wskazane wyżej miejsce wstaw taki kod:

			/* Block quoting last post reply */

               if( $this->request['qpid'] )
               {
                       /* Internal init */

                       $tid = intval( $this->request['t'] );

                       /* Do we have topic ID? */

                       if( $tid )
                       {
						# Tmp topic
                        $t = $this->DB->buildAndFetch( array( 'select' => 'pid as last_post_id', 'from' => 'posts', 'where' => 'new_topic = 0 AND topic_id = ' . $tid, 'order' => 'post_date DESC', 'limit' => array( 0, 1 )  ) );

                        # Check it
                        if( $this->request['qpid'] == $t['last_post_id'] )
                        {
                        	#$this->registry->getClass('output')->showError( "You can't quote last post in this topic." ); # English
                        	$this->registry->getClass('output')->showError( "Nie możesz cytować ostatniego postu." ); # Polish
                        }
					}
               }
			/* Do the rest job */

Sprawdzone działa.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano

Dziękuje bardzo, za to ułatwienie.

P.S. Jeśliby zamiast wyświetlania błędu po prostu ten przycisk zachowywałby się tak jak po naciśnięciu "dodaj odpowiedź" byłoby super - ale to nie jest sprawa pilna.

Jeszcze raz dzięki.

  • Manager
Opublikowano
			/* Block quoting last post reply */

               if( $this->request['qpid'] )
               {
                   /* Internal init */

                   $tid = intval( $this->request['t'] );

                   /* Do we have topic ID? */

                   if( $tid )
                   {
			     	# Tmp topic
                       $t = $this->DB->buildAndFetch( array( 'select' => 'pid as last_post_id', 'from' => 'posts', 'where' => 'new_topic = 0 AND topic_id = ' . $tid, 'order' => 'post_date DESC', 'limit' => array( 0, 1 )  ) );

                       # Check it
                       if( $this->request['qpid'] == $t['last_post_id'] )
                       {
                       	$this->registry->getClass('output')->silentRedirect( $this->settings['base_url'] . 'app=forums&module=post&section=post&do=reply_post&f='. $this->request['f'] . '&t='. $this->request['t'] );
                       }
                   }
               }
               /* Do the rest job */	

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

  • 1 miesiąc temu...
Opublikowano

A gdzie właściwie pojawia się ten link?

http://localhost/313/index.php?app=forums&module=post&section=post&do=reply_post&f=2&t=3

abstrahując od tego że wskazuje na localhosta :P

Wrzuciłem to do siebie i działa prawidłowo, ale tego linku nigdzie nie dostrzegam

Opublikowano (edytowane)

Aaaa.. już go widzę, siedzi w adresie przeglądarki. Faktycznie nie teges z nim :P

Edytowane przez kodif
Opublikowano (edytowane)

Mam wrażenie że kod powinien mieć postać

                               /* Block quoting last post reply */

               if( $this->request['qpid'] )
               {
                   /* Internal init */

                   $tid = intval( $this->request['t'] );

                   /* Do we have topic ID? */

                   if( $tid )
                   {
                                       # Tmp topic
                       $t = $this->DB->buildAndFetch( array( 'select' => 'pid as last_post_id', 'from' => 'posts', 'where' => 'new_topic = 0 AND topic_id = ' . $tid, 'order' => 'post_date DESC', 'limit' => array( 0, 1 )  ) );

                       # Check it
                       if( $this->request['qpid'] == $t['last_post_id'] )
                       {
                               $this->registry->getClass('output')->silentRedirect( $this->settings['base_url'] . 'app=forums&module=post&section=post&do=reply_post&f='. $this->request['f'] . '&t='. $this->request['t'] );

                       }
                   }
               }
               /* Do the rest job */   

czyli z tych dwóch linijek

$this->registry->getClass('output')->silentRedirect( $this->settings['base_url'] . 'http://localhost/313/index.php?app=forums&module=post&section=post&do=reply_post&f='. $this->request['f'] . '&t='. $this->request['t'] );
http://localhost/313/index.php?app=forums&module=post&section=post&do=reply_post&f=2&t=3

powinna byc jedna taka

$this->registry->getClass('output')->silentRedirect( $this->settings['base_url'] . 'app=forums&module=post&section=post&do=reply_post&f='. $this->request['f'] . '&t='. $this->request['t'] );

bo błędnie jest wsadzać "http://localhost/313" na swoje forum a linijka

http://localhost/313/index.php?app=forums&module=post&section=post&do=reply_post&f=2&t=3

jest moim zdaniem przez pomyłkę

Edytowane przez kodif
  • Lubię to 1

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.