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

[2.3.X] Cytowanie selektywne


bizon11

Rekomendowane odpowiedzi

Widziałem na forum że parę osób szukało funkcji cytowania selektywnego :)

Te cytowanie selektywne działa w szybkiej odpowiedzi ;]

Po za tym zamienia funkcję przycisku "Odpisz"

Jeśli ktoś chce korzystać również z tej funkcji musi w pierwszym kroku nie zastąpić lecz dodać pod i zmienić {P_QUOTE} na coś innego.

Ja również jej szukałem dlatego postanowiłem przerobić cytowanie selektywne - dodatek z wersji 2.0

Oto efekt mojej pracy:

Rozpocznijmy od edycji skinu:

Wybieramy używany skin

Wybieramy edycję HTML-a

Topic View -> RenderRow

Znajdź:

<a href="{$this->ipsclass->base_url}act=Post&CODE=02&f={$this->ipsclass->input['f']}&t={$this->ipsclass->input['t']}&qpid={$post['pid']}" title="{$this->ipsclass->lang['tt_reply_to_post']}"><{P_QUOTE}></a>

Zamień na:

<a onmouseover="copyQ('{$post['quote_info']}', '{$post['pid']}');" href='java script:pasteQ();' title='{ipb.lang['tt_reply_to_post']}'><{P_QUOTE}></a>

Proszę pamiętać o usunięciu spacji pomiędzy słowami java i script - IP.Board ze względów bezpieczeństwa dodaje tam spację.

Zapisz i wyślij.

Otwórz plik: /sources/action_public/topics.php

Znajdź:

		$row['post_date']	 = $this->ipsclass->get_date( $row['post_date'], 'LONG' );

Dodaj poniżej:

				$row['quote_info']	= str_replace(array(" ", "[", "]", "'"),

array("

Edytowane przez DawPi
Aktualizacja.
Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 rok później...
  • 1 miesiąc temu...

please correct this

array("�", "[", "]", "'"),

and i have not this

<a href="{$this->ipsclass->base_url}act=Post&CODE=02&f={$this->ipsclass->input['f']}&t={$this->ipsclass->input['t']}&qpid={$post['pid']}" title="{$this->ipsclass->lang['tt_reply_to_post']}"><{P_QUOTE}></a>

I Have this:

<a href="{$this->ipsclass->base_url}act=Post&CODE=02&f={$this->ipsclass->input['f']}&t={$this->ipsclass->input['t']}&qpid={$post['pid']}" title="{$this->ipsclass->lang['tt_reply_to_post']}"><{P_QUOTE}></a>

and please check i replace above line into

<a onmouseover="copyQ('{$post['quote_info']}', '{$post['pid']}');" href='javascript:pasteQ();' title='{ipb.lang['tt_reply_to_post']}'><{P_QUOTE}></a>

could it right ?

EDIT: i checked it through guest posting its worked. but when i try to login i have showed blank page.

Edytowane przez Intasar
Odnośnik do komentarza
Udostępnij na innych stronach

I update the above post please read.

actually this modification will working when you select any post text and click to "reply" button then selected text automatically appearing in Fast Reply as like "Quote" so members can easy to submit all replies without loading Full Reply page.

and its working i only checked it in forum where guest to allow posts. but after its installation i have not signed in and found a BLANK page after signed ID.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 rok później...

Jako że modyfikacja ma swój wątek to napiszę tu.

Dziś przestało mi działać to cytowanie. Po aktualiazacji FF do wersji 8. Co ciekawe przestało też działąć w IE. Sprawdziłem na laptopie, działą. Aktualizacja na laptopie do FF8.0 i nie działa ani w FF ani w IE.

O co tu chodzi?

Dokładnie wygląda to tak, że po zaznaczeniu tekstu i kliknięciu na cytowanie selektywne w oknie szybkiej odpowiedzi pojawia się wyłacznie cytowany tekst bez znaczników quote i oznaczenia kogo cytuję.

Edytowane przez AMIGAnTOMEK
Odnośnik do komentarza
Udostępnij na innych stronach

Co ciekawe po właczeniu w IE widoku zgodności wszystko działa jak trzeba. Szukam gdzie jest problem w FF .8

konsola wypluwa blad:

Błąd: txt.replace is not a function
Plik źródłowy: http://renaultlaguna.pl/forum/jscripts/ipb_topic.js
Wiersz: 1131

Edytowane przez AMIGAnTOMEK
Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki uprzejmości i wiedzy Pavulon'a udało się problem rozwiązać.

W chwili obecnej wygląda to tak:

Otwóz plik: /jscripts/ipb_topic.js

Wpisujemy na samym końcu


function copyQ(qinf,pid)
{
		txt='';
 if (document.selection)
 {
  txt = document.selection.createRange();
 } else if (window.getSelection)
 {
  txt = window.getSelection();
 }
 else if (document.getSelection)
 {
  txt = document.getSelection();
 }
 txt = ( document.selection ) ? txt.text : txt.toString();
 if ( txt.replace(" ","") != "" )
 {
txt='[quote='+qinf+']\n'+txt+'\n[/quote]\n'
 }
}
function pasteQ()
{
	if(document.REPLIER.Post)document.REPLIER.Post.value += txt
}

Niemniej działa to w FF8, dla IE9 aby funkcja działała wymagane jest właczenie trybu zgodności widoku.

Niestety plusika dać nie mogę bo przy PW nie ma takiej opcji, niemniej wielkie dzięki za pomoc Pavulon :D

Edytowane przez AMIGAnTOMEK
Odnośnik do komentarza
Udostępnij na innych stronach

I kolejna minimalna poprawka dzięki której działa i na IE bez widoku zgodności :D

function copyQ(qinf,pid)
{
	    txt='';
 if (document.selection)
 {
  txt = document.selection.createRange();
 } else if (window.getSelection)
 {
  txt = window.getSelection();
 }
 else if (document.getSelection)
 {
  txt = document.getSelection();
 }
 txt = ( document.selection ) ? txt.text : txt.toString();
 if ( txt.replace(" ","") != "" )
 {
   txt='[quote='+qinf+']\n'+txt+'\n[/quote]\n'
 }
};
function pasteQ()
{
    if(document.REPLIER.Post)document.REPLIER.Post.value += txt
}

Odnośnik do komentarza
Udostępnij na innych stronach

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ę.