Jump to content

(Pav32) Selective quoting


Pavulon
 Share

Recommended Posts

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 :)

Edited by vBB
gallery_1_2_27047.jpg
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

DawPi, czy mógłbyś wyjaśnić skróty? :)

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Edited by vBB
gallery_1_2_27047.jpg
Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.