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

(Pav32) Selective quoting


Pavulon

Rekomendowane odpowiedzi

Z.A.J.E.B.I.Ś.C.I.E.! - tylko tak potrafię wyrazić swoją radość po zobaczeniu, że ktoś zrobił takiego moda :) Wielkie dzięki.

Dobra, teraz chwila pitolenia:

Czy testowałeś na 3.1.1? U siebie wgrałem, przycisk się pojawił, po kliknięciu coś się dzieje, ale tekst w SZ.ODP. się nie pojawia. Sprawdziłem edycję plików dwa razy. Nie wiem jak na domyślnym skinie, więc zaraz sprawdzę.

EDIT:

Na domyślnym skinie to samo, nie wiem co jest nie tak, popraw to i będzie ultra mega mod :)

Edytowane przez vBB
gallery_1_2_27047.jpg
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Pavulon: ma rację. Poprzedni kod z pliku ips.topic.js działa mi na Firefoxie - ten drugi ( z aktualnej paczki ) już nie działa..

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Odnośnik do komentarza
Udostępnij na innych stronach

no cóż, aż musiałem XP'ka włączyć...

tym razem testowałem na przeglądarkach IE, FF, Chrome, Opera(Win XP) i Iceweasel, Epiphany(Debian) - wszędzie działa.

ale przed uaktualnieniem załącznika prosiłbym o przetestowanie:

w instrukcji zmienia się tylko kod dodawany do pliku public/js/ips.topic.js

	/* ------------------------------ */
/**
 * Parsing ISO 8601 date by Daniel http://dansnetwork.com/2008/11/01/javascript-iso8601rfc3339-date-parser/
*/
parseIsoDate: function(s){
var re=new RegExp(/(\d\d\d\d)\D?(\d\d)\D?(\d\d)\D?(\d\d)\D?(\d\d\D?(\d\d\.?(\d*))?)(Z|[+-]\d\d?(:\d\d)?)?/);
var a=re.exec(s).slice(1).map(function(x,i){
if (i==6 && x) x=parseInt(x,10)/Math.pow(10,x.length)*1000;
return parseInt(x,10)||0;
});
return new Date(
Date.UTC(a[0],a[1]-1,a[2],a[3]-(a[7]||0),a[4],a[5],a[6]));
},

/* ------------------------------ */
/**
 * (Pav30) Selective quoting 1.0 by Pavulon
*/
selective_quote: function()
{
		// looking for selection
		var sel;
		if (window.getSelection)
		{
				sel = window.getSelection();
		}
		else if (document.getSelection)
		{
				sel = document.getSelection();
		}
		else if (document.selection)
		{
				//IE suxxx
				sel = document.selection.createRange();
		}
		else
				return alert(ipb.lang['no_selection']);

		if (sel.isCollapsed) { return alert(ipb.lang['no_selection']); }

		var post, name, timestamp, date, content;

		var parent = 0;

		// litle IE "fix"
		var parent1 = ( document.selection ) ? sel.parentElement() : sel.anchorNode.parentNode;
		var parent2 = ( document.selection ) ? sel.parentElement() : sel.focusNode.parentNode;

		// avoid infinite loop
		var num = 20;

		while ( ! parent && --num>0 )
		{
				// check 4 correct object at the begining
				if ( !parent1.id || (parent1.id && !parent1.id.match(/post_id_/ ) ) )
				{
						if ( parent1.parentNode )
						{
								parent1 = parent1.parentNode;
						}
						else
						{
								break;
						}
				}
				// and the end of selection
				if ( !parent2.id || (parent2.id && !parent2.id.match(/post_id_/ ) ) )
				{
						if ( parent2.parentNode )
						{
								parent2 = parent2.parentNode;
						}
						else
						{
								break;
						}
				}

				if ( parent1 == parent2 && parent1.id && parent1.id.match(/post_id_/ ) )
				{
						// we've got it =]
						parent = parent1;
				} else if ( parent1.id && parent1.id.match(/post_id_/ ) &&  parent2.id && parent2.id.match(/post_id_/ ) )
				{
						// starting post has another id than ending
						break;
				}
		}

		if ( parent )
		{
				post = parent.id.replace('post_id_', '');
				if ( ! isNaN(post) )
				{
						// we got post id and we look 4 another infos
						var childs = $('post_id_'+post).getElementsByTagName("a");
						for (i = 0; i < childs.length; i++)
						{
								// poster name link should have correct class
								if (childs[i].className == 'url fn')
								{
										name = childs[i].innerHTML;
								}
						}

						childs = $('post_id_'+post).getElementsByTagName("abbr");
						for (i = 0; i < childs.length; i++)
						{
								if (childs[i].className == 'published')
								{
										//convert ISO 8601 to timestamp
										var t = ipb.topic.parseIsoDate(childs[i].title)
										timestamp = t.getTime()/1000.0;
										date = childs[i].innerHTML;
										// another IE fix, cause "Internet Explorer for Windows does not support the <abbr> element"
										if ( !date )
										{
											var re=new RegExp(/<abbr([^>]*)>([^<]*)<\/abbr>/i);
											var b=re.exec($('post_id_'+post).innerHTML);
											date = b[b.length-1];
										}
								}
						}
				}
				content = ( document.selection ) ? sel.text : sel.toString();
		} else {
				return alert(ipb.lang['wrong_selection']);
		}

		// preparing content
		var quote = '[quote';
		if ( name ) { quote = quote + ' name=\'' + name + '\''; }
		if ( date ) { quote = quote + ' date=\'' + date + '\''; }
		if ( timestamp ) { quote = quote + ' timestamp=\'' + timestamp + '\''; }
		if ( post ) { quote = quote + ' post=\'' + post + '\''; }
		quote = quote + ']\n';
		quote = quote + content;
		quote = quote + '\n[/quote]'

		if ( $('fast-reply_textarea') )
		{
				// load fast-reply editor if it is not created before
				if( $('fast-reply_textarea').hasClassName('unloaded_editor') )
				{
						if( !in_use )
						{
								if( $('fast-reply_toolbar_1') ){
										$('fast-reply_toolbar_1').show();
								} 
								if( $('fast-reply_toolbar_2') ){
										$('fast-reply_toolbar_2').show();
								}

								$('fast-reply_textarea').removeClassName('unloaded_editor').value = '';

								// we're creating editor, so observing is no longer needed
								Event.stopObserving( $('fast-reply_textarea'), 'focus' );
								ipb.editors[ 'fast-reply' ] = new ipb.editor( 'fast-reply', USE_RTE );                                  
								$( ipb.editors['fast-reply'] ).resize_to( 250 );

								try {
										ipb.editors[ 'fast-reply' ].editor_window.focus();
								} catch(err) { }
								in_use = 1;
						}
				}
				$('fast-reply_textarea').value = $('fast-reply_textarea').value + quote;
				$('fast-reply_textarea').focus();
		}
},

A jeżeli nadal nie działa to proszę o informacje o błędach z konsoli javascript.

p.s.

jak ktoś ma konto to może sprawdzić na amxx.pl czy mu działa, bo i tam zainstalowałem

Odnośnik do komentarza
Udostępnij na innych stronach

Sprawdziłem na Twoim forum, u mnie działa. Ale jest chyba mały błąd: powinno być Cytuj selektywnie. :)

Nasz kolega już siedział za piracką wersję IPB, Ty też możesz
† Będziemy bronić SB po kres naszych sił †
Nie ma bolca na izolca!!!
Tłumaczes Power

Odnośnik do komentarza
Udostępnij na innych stronach

Skracasz całkiem jak Amerykanie. :)

P.S. W Resources screen jest za duży.

Nasz kolega już siedział za piracką wersję IPB, Ty też możesz
† Będziemy bronić SB po kres naszych sił †
Nie ma bolca na izolca!!!
Tłumaczes Power

Odnośnik do komentarza
Udostępnij na innych stronach

Pavulon, zmieniłem ten kod na ten, który podałeś w swoim poście (dla ips.topic.js), reszta bez zmian rozumiem? Przebudowałem jeszcze skiny i nadal to samo. Sprawdzę jeszcze na drugiej przeglądarce, czy to nie wina jej.

EDIT: Na innej, która nie miała w ogóle styczności z forum, również nie działa.

EDIT2: U Ciebie na amxx.pl działa. I to na tej samej przeglądarce.

Edytowane przez vBB
gallery_1_2_27047.jpg
Odnośnik do komentarza
Udostępnij na innych stronach

Czym objawia się "niedziałanie", bo wszedłem do ciebie na forum i jest ok.

[quote name='vBB' date='04 lipiec 2010 - 13:32' timestamp='1278243155' post='2472']
Witajcie. Wpadłem na pomysł aby zorganizować coś w rodzaju konkursu na font tygodnia
[/quote]
[quote name='TheQuoteMan' date='05 lipiec 2010 - 09:13' timestamp='1278314005' post='2473']
Co do wyboru przez 1 0s0bę to jestem na nie, ponieważ każdy ma inny gust
[/quote]
[quote name='FicuS' date='12 lipiec 2010 - 12:46' timestamp='1278931581' post='2492']
Pomysł dobry i tak jak TQM jestem za ankietą. 
[/quote]

Odnośnik do komentarza
Udostępnij na innych stronach

Pavulon, wyczyściłem cache w przeglądarce i nadal to samo co tutaj napisałem:

przycisk się pojawił, po kliknięciu coś się dzieje, ale tekst w SZ.ODP. się nie pojawia

Zaznaczam tekst, klikam przycisk, uaktywnia się szybk. odp. i pojawia się w niej kursor, ale żaden tekst się już nie pojawia.

gallery_1_2_27047.jpg
Odnośnik do komentarza
Udostępnij na innych stronach

Spróbuj odświeżyć cache przeglądarki.


@UP: byłeś szybszy :)

Nasz kolega już siedział za piracką wersję IPB, Ty też możesz
† Będziemy bronić SB po kres naszych sił †
Nie ma bolca na izolca!!!
Tłumaczes Power

Odnośnik do komentarza
Udostępnij na innych stronach

Cache czyściłem wiele razy.

Teraz zaktualizowałem forum do 3.1.2, wgrałem moda od nowa, zainstalowałem 2 przeglądarki (pierwszy raz widzą forum): Opere najnowszą i najnowszy Chrome, na obydwu zachowanie takie samo jak na Firefoxie. Spróbuję jeszcze wyczyścić wszystko za pomocą CCleaner.

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