0
29 Lipiec 2009

Abduru.pl – kompletnie od początku

Abduru.plSwego czasu pisałem o tym, iż zamierzam z lekka jedynie, zmodyfikować Abduru.pl, nie wprowadzając jednak żadnych zmian w szablonie. Po ukazaniu się studioGallery, zdanie zmieniłem i od kilku dni tworzę nową wersję AbduruCMS. Ma to być System Zarządzania Treścią, jakiego jeszcze nie było. To znaczy, może i był (a może i jest), jednak ten system ma być dostosowany do tego, co mi jest najbardziej potrzebne, dlatego będzie inny niż wszystkie istniejące.

Od swojego poprzednika różnić go będzie wiele. Przede wszystkim od samego początku postawiłem na jQuery, a nie jak to miało miejsce wcześniej – Prototype. Poza tym wykorzystywać będzie system wtyczek, który zastosowałem przy tworzeniu studioGallery. Dzięki czemu, dodawanie nowych funkcjonalności będzie stosunkowo proste i nie trzeba będzie ingerować w strukturę szablonów przy ich instalowaniu.

Najważniejszą zmianą będzie ta, że… mimo iż będzie to System Zarządzania Treścią… nie uświadczy się w nim odrębnego panelu administracyjnego. Będzie on bowiem zintegrowany z szablonem witryny; coś takiego istnieje już w Abduru, jednak w obecnej wersji jest dalekie od ideału.

Abduru.plPodstawowa wersja (bez żadnych wtyczek) będzie dostępna na licencji GPL w wersji 2, i rozdawać ją będę za darmo. Dlatego (jak łatwo się domyślić) prawdziwe wodotryski będą możliwe dopiero po zainstalowaniu wtyczek, które zmienią AbduruCMS w potężne narzędzie.

Mimo iż czeka mnie jeszcze sporo pracy, to postęp jest już widoczny. Działa sporo rzeczy, a kilka nowych powstanie w najbliższym czasie. W przeciwieństwie do wcześniejszego projektu, tym razem nie zamierzam prorokować, za ile pojawi się finalna wersja, gdyż nauczony doświadczeniem, zdaję sobie sprawę, że mogą pojawiać się po drodze nieoczekiwane zdarzenia.

0
10 Lipiec 2009

Codehighlighting do TinyMCE

Spodobał mi się sposób kolorowania składni, jaki wykorzystuje SyntaxHighlighter, zachciało mi się na jego podstawie zrobić sobie plugin do studio Gallery, i nie byłoby problemu, jednak… jednocześnie wykorzystuję TinyMCE, a ten edytorek, albo podmieniał wklepywany kod na encje, albo nie tykał go wcale i traktował całość jako HTML, szkoda, że nie potrafił podmieniać jedynie zawartości pomiędzy tagami <pre>.

Już zaprzęgałem do dzieła moje ulubione preg_replace_callback… gdy nagle przypomniałem sobie, że na stronie SyntaxHighlighting rzucił mi się w oczy plugin do TinyMCE.

Okrężną drogą, ale trafiłem w końcu na stronę Nawafa. Stworzył on plugin, który współpracuje niemal idealnie z Tinym w wersji 3.0.
Jednak i tutaj nie wszystko przebiegało po mojej myśli…

Tak jak sądziłem, pojawił się problem ze znacznikami HTML, które Tiny przekształcał lub nie wyświetlał ich w ogóle. Kolejne poszukiwania i powstała mała poprawka do Codehighlighting. Wystarczy wyedytować plik codehighlighting.js w katalogu js i dodać na początku

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
references = {
'ą': '&#261;',  'Ą': '&#260;',  'ć': '&#263;',  'Ć': '&#262;',  'ę': '&#281;',  'Ę': '&#280;',
'ł': '&#322;',  'Ł': '&#321;',  'ń': '&#324;',  'Ń': '&#323;',  'ó': '&#243;',  'Ó': '&#211;',
'ś': '&#347;',  'Ś': '&#346;',  'ż': '&#380;',  'Ż': '&#379;',  'ź': '&#378;',  'Ź': '&#377;',
'À': '&#192;',  'Á': '&#193;',  'Â': '&#194;',  'Ã': '&#195;',  'Ä': '&#196;',  'Å': '&#197;',
'Æ': '&#198;',  'Ç': '&#199;',  'È': '&#200;',  'É': '&#201;',  'Ê': '&#202;',  'Ë': '&#203;',
'Ì': '&#204;',  'Í': '&#205;',  'Î': '&#206;',  'Ï': '&#207;',  'Ð': '&#208;',  'Ñ': '&#209;',
'Ò': '&#210;',  'Ó': '&#211;',  'Ô': '&#212;',  'Õ': '&#213;',  'Ö': '&#214;',  'Ø': '&#216;',
'Ù': '&#217;',  'Ú': '&#218;',  'Û': '&#219;',  'Ü': '&#220;',  'Ý': '&#221;',  'Þ': '&#222;',
'ß': '&#223;',  'à': '&#224;',  'á': '&#225;',  'â': '&#226;',  'ã': '&#227;',  'ä': '&#228;',
'å': '&#229;',  'æ': '&#230;',  'ç': '&#231;',  'è': '&#232;',  'é': '&#233;',  'ê': '&#234;',
'ë': '&#235;',  'ì': '&#236;',  'í': '&#237;',  'î': '&#238;',  'ï': '&#239;',  'ð': '&#240;',
'ñ': '&#241;',  'ò': '&#242;',  'ó': '&#243;',  'ô': '&#244;',  'õ': '&#245;',  'ö': '&#246;',
'ø': '&#248;',  'ù': '&#249;',  'ú': '&#250;',  'û': '&#251;',  'ü': '&#252;',  'ý': '&#253;',
'þ': '&#254;',  'ÿ': '&#255;'
};
html = {
'&': '&amp;',   '<': '&lt;',    '>': '&gt;',    '"': '&quot;',      "'": '&#39;'
}

oraz zastąpić istniejącą wartość val, następującym kodem:

28
29
30
31
32
33
34
35
36
 var val =  document.getElementById("CodeArea").value;
	 for (i in html){
                var re = new RegExp(i, "g")
                val = val.replace(re, html[i])
            }
        for (i in references){
            var re = new RegExp(i, "g")
            val = val.replace(re, references[i])
        }

Jak ktoś nie chce edytować, może sobie podmienić na ten:
codehighlighting.js
(kodowanie oczywiście w utf-8)

0
10 Lipiec 2009

Przeglądarka Flock i Firebug…

Flock + FirebugDzisiaj wpadła mi w ręce przeglądarka Flock, jest to Firefox po przeróbkach, głównie ukierunkowany na serwisy społecznościowe. Z nich i tak nie korzystam, więc to mnie mało cieszy, ale wygląd owej przeglądarki jest dość przyjemny, i ogólnie prezentuje się dość ciekawie. Pozostałe opcje i funkcje są niemal identyczne jak w przypadku Firefox’a.

Skoro jest tak podobna, to powinny działać także wtyczki. Działają… częściowo i nie wszystkie. Bynajmniej nie od razu. Mi najbardziej zależało na Firebug’u. Poczytałem, poszperałem i pobrałem wersję 1.4.0b7 pod Firefox’a, małe poprawki zgodnie z tym co zalecane jest na stronie Mozillazine i… Firebug działa aż miło.

Swoją drogą nie miałem go w tej wersji nawet na Firefox’ie…
Jeśli ktoś chce, może zainstalować Firebug’a pod Flocka, wystarczy zapisać poniższy link i otworzyć go w przeglądarce.

firebug-1.4.0b7-flock

3
6 Lipiec 2009

jQuery+PHP sposób na krótką sesję…

Tworząc studioGallery napotkałem na pewien problem związany z zabezpieczeniem pliku, który zapisuje dane do bazy. Zakładając, że tradycyjna sesja w PHP trwa 180 sekund (3. minuty), a napisanie tekstu (artykułu) często może zająć więcej czasu, zacząłem szukać innego sposobu przekazania klucza, który byłby zgodny z tym, zapisanym w sesji.
Tradycyjna metoda polega na wstawieniu ukrytego pola formularza z wartością równą wygenerowanemu kluczowi, i zapisaniu do sesji takiej samej wartości.
W pliku docelowym sprawdzamy przekazany klucz z formularza z wartością sesji i jeśli są równe, wykonujemy dalszą część kodu. Jednak jeśli na stronie będziemy przebywać więcej, pisząc np. bardzo długi artykuł, sesja w PHP wygaśnie i nie będzie zgodna z wartością pola formularza.

Rozwiązanie tego problemu jest bajecznie proste. Wystarczy utworzyć jakiś plik PHP, którego zadaniem będzie wygenerowanie klucza, zapisanie go do sesji i wyświetlenie jego wartości.
Teraz z pomocą przychodzi jQuery.
Przed przesłaniem formularza do pliku, który zapisuje dane do bazy, metodą GET łączymy się z plikiem, pobieramy wartość klucza, podstawiamy do zmiennej i przesyłamy dalej formularz metodą POST.

W efekcie za każdym razem, kiedy będziemy przesyłali dane z formularza, skrypt wcześniej będzie pobierał aktualną wartość klucza, którą równocześnie zapisywać będzie do sesji, co będzie równoznaczne z tym, że klucz zawsze będzie taki sam, jak ten w sesji.

Przykładowy wygląd skryptu jQuery może mieć następującą postać:

$.get('plik_generujacy_klucz.php', function(sResopnse) {
	var key = sResponse;
	var dane_z_formularza = $('#nasz-formularz').serialize()+'&key='+key;
	$.post('plik_do_zapisu_danych.php', dane_z_formularza, function() {
	    // dalsza część kodu po przesłaniu danych...
	});
});

Oczywiście, zamiast przesyłać go metodą POST, można dodać go po adresie jako wartość GET.
Należy jednak pamiętać, że nie zwalnia nas to od przefiltrowania pól formularza i usunięcia ewentualnej niepotrzebnej treści. Nie zalecałbym tej metody w przypadku dodawania komentarzy, gdyż może to zwiększyć ilość spamu (choć wcale nie musi).

Sposób, który opisałem tyczy się raczej panelu administracyjnego i służyć ma jedynie użytkownikom, którzy potrzebują dużo czasu na dodanie treści na stronę, a w przypadku tradycyjnej metody przesyłania wartości KLUCZA, ograniczani byli 3.minutową żywotnością sesji.
Często bowiem spotykałem się z sytuacjami, że pisząc jakiś post, news, czy artykuł musiałem dość często stosować metodę ctrl+a, ctrl+c, ctrl+v, gdyż zdarzało się, że po przesłaniu formularza witał mnie tekst z informacją, że wykonałem niedozwoloną operację, bowiem mój klucz sesji wygasł i nie był zgodny z wartością przesyłaną przez formularz.

Opisałem zatem prosty sposób na rozwiązanie tego problemu.

0
4 Lipiec 2009

studioGallery już prawie było i…

studio GalleryJuż dwa tygodnie temu mogłem udostępnić galerię, jednak… zawsze coś stawało na przeszkodzie. Ostatecznie uznałem, że znakomitym rozwiązaniem może być możliwość dodawania w przyszłości różnego rodzaju wtyczek, tak, aby zwiększyć funkcjonalność i możliwości galerii. Stąd, między innymi, opóźnienie. Aktualnie istnieje już możliwość dodawania pluginów, i sam nawet wykonałem dwa – przyjazne adresy URL, oraz tagi, które można dodawać do zdjęć i do wpisów, a także wyszukiwać wpisy i zdjęcia po nich. Dodatek ten rysuje także chmurkę tagów, którą w razie potrzeby można wyłączyć. Podobnie jak i wykorzystywanie przez ten plugin przyjaznych adresów URL.

Widać zatem, że studioGallery zaczyna stawać się czymś więcej niż tylko małą galeryjką, jaką miało być z początku. Z czasem będzie z pewnością rozbudowywana o kolejne możliwości, dodatki i szablony. Na pierwszy ogień (już po wydaniu wersji 1.0.0) będzie przebudowa systemu zarządzania. Zmianie ulegnie nie tylko wygląd panelu administracyjnego, ale także  menu i ogólne zarządzanie stać się ma jeszcze bardziej intuicyjne i prostsze.

Póki co, galeria przechodzi fazę testów. Przebudowie ulegną także trzy szablony, jakie będą dostępne w wersji finalnej, gdyż w międzyczasie pojawiła się nawigacja w galerii i doszło kilka innych, większych bądź mniejszych poprawek w kodzie.

Bardo chciałem aby skrypt ten był dostępny na licencji GPL, i tak też się stanie!
Jednak ze względu na nieciekawą sytuację w jakiej aktualnie się znalazłem, zmuszony jestem galerię sprzedawać…
Biorąc również pod uwagę, fakt, że przesiadywałem nad nią nieprzerwanie ponad miesiąc po kilka, kilkanaście godzin, zarywając noce i dnie. Uważam, że ostateczna kwota, nie jest wygórowana i wynosi 89pln

[ Strona 3 z 16 ] «12345»...Ostatnia »