Blog

Dziś dłuższy czas borykałem się z tym problemem, szukając rozwiązania (parę godzin), grzebiąc w plikach komponentu, ustawieniach Joomli i przeszukując internet. Problem polega na tym, że przy załączaniu niektórych typów plików (np. doc tudzież mp3), na końcu zostaje dodane rozszerzenie ".txt". Odpowiedź w końcu udało mi się znaleźć na forum K2, udzielił jej Vassilis. Aby problem zażegnać, wystarczy w pliku \administrator\components\com_k2\lib\class.upload.php

$this->file_src_mime = mime_content_type($this->file_src_pathname);

Zamienić na:

$this->file_src_mime = mime_content_type($this->file_src_name);

Co ciekawe, problem występuje także w najnowszej wersji komponentu (2.54).

Jeśli dodając produkt do koszyka w sklepie Prestashop zobaczysz taki komunikat, może to oznaczać, że na zapleczu w opcjach produtku nie zaznaczyłeś opcji "Sprzedaż" (produkt ma ustawiony tryb katalogu).

Angielska wersja komunikatu to "You already have the maximum quantity available for this product".

piątek, 16 grudnia 2011 12:39

ReCaptcha i Phoca Guestbook

Redaktor: Łukasz

Niektórzy spośród użytkowników rewelacyjnej księgi gości z serii produktów Phoca mogli mieć do czynienia z uciążliwym atakiem spamów na ten skrypt. I mimo, że firma na stronie podawała listę kilkunastu metod, jakimi można było sobie radzić z tym problemem, nie zawsze to wystarczyło. Przyszedł jednak ratunek, bo w najnowszej wersji księgi gości pojawiła się możliwość skorzystania z modułu reCaptcha.

recaptha_2

Aby uruchomić ten system, wystarczy wygenerować dwa klucze na stronie google.com/recaptcha i dodać je w formularzu preferencji. Oczywiście trzeba mieć rękę na pulsie, jednak na jednej ze stron, gdzie skorzystaliśmy z tej metody pół roku temu, do tej pory nie pojawił się ani jeden spam.

Prestashop daje możliwość łatwego dostępu do tłumaczenia poszczególnych elementów sklepu; z małą jednak różnicą. Dotyczy to choćby zakładek na zapleczu czy nazw państw, tłumaczenie których ukryte jest w bazie danych (tabele ps_country_lang i ps_tab_lang). W przypadku zakładek może nie ma to takiego znaczenia (może utrudnić co najwyżej orientację obcojęzycznego współpracownika, operującego na zapleczu), w przypadku tłumaczeń nazw państw ma to o tyle znaczenie, że nieprzetłumaczone frazy będą widoczne w fakturach wygenerowanych w PDF-ie. Rozwiązaniem jest ręczna edycja wymienionych tabelek, bądź wykorzystanie modułu w rodzaju tego, o którym mowa jest w tym wątku na forum Prestashop.

Ten komunikat może się pojawić na zapleczu sklepu Prestashop (w moim przypadku wersja 1.4.4.1 PL) podczas ręcznego tworzenia miniaturek produktów.

Rozwiązanie jest tyle proste, co niespodziewane. Wystarczy przejść do katalogu img/, i dalej do podkatalogu, w którym są nasze miniaturki (np. dla kategorii to katalog "c"), teraz skopiować znajdujący się tam pliczek en.jpg z nową nazwą z symbolem kraju, w którym funkcjonuje nasz sklep (np. pl.jpg).

czwartek, 17 listopada 2011 10:38

Joomla_1.5.23_to_1.5.25-Stable-Patch_Package ?

Redaktor: Łukasz

Od niedawna Joomla! wprowadziła nową politykę publikacji łatek aktualizacyjnych. Teraz dostępna jest tylko aktualizacja z ostatniej wersji i aktualizacja od pierwszego wydania. Jeśli chcemy zaktualizować Joomlę z przedostatniej wersji, musimy skorzystać z aktualizacji od wersji 1.5.0.

Sytuację ratuje fakt, że starsze łatki nadal dostępne są na stronach plikowni (choć trzeba się do nich dokopać). Chcąc zaktualizować pliki z wersji 1.5.23 do 1.5.25, wystarczy zrobić aktualizację do 1.4.24, a potem do 1.5.25.

Przyznam, że nie dziwi mnie takie podejście do tematu. Naprawdę byłem pełen podziwu dla autorów kolejnych łatek od każej dotychczasowej wersji.

środa, 16 listopada 2011 14:42

Joomla nagrodzona

Redaktor: Łukasz
System Joomla! otrzymał 1. miejsce w kategorii Open Source CMS w tegorocznej edycji konkursu, zorganizowanego przez uznane wydawnictwo Packt Publishing. Szczegóły można przejrzeć pod adresem packtpub.com.

Format zapisu CSV to, najkrócej mówiąc, prosty plik tekstowy z danymi po przecinku, np.: Odzież, Koszulka, 25
Odzież, Koszulka, 25
Odzież, Koszulka, 30
Powyżej mamy zbiór danych dotyczących trzech produktów: kategoria, nazwa i cena brutto. Kolejność nie ma znaczenia, ważne, by każda linijka miała ten sam zestaw parametrów, w tej samej kolejności, wszystkie oddzielone przecinkiem (bywa, że innym znakiem).

Pokażę, jak dodać zbiór produktów wraz ze zdjęciami na przykładzie sklepu Prestashop 1.4.4.1 PL, który posiada opcję importu z pliku CSV.

Na początek przygotujmy sobie pliki ilustracji, może być jedna na produkt, kilka lub wcale. Najlepiej, jeśli będą miały niewielki rozmiar, szerokość ok. 800px. Zdjęcia należy skopiować w dowolne miejsce w internecie, w naszym przypadku to będzie katalog admin_/import w katalogu sklepu.

Teraz pozostaje utworzyć plik CSV, najlepiej wykorzystać do tego celu arkusz kalulacyjny (np. Excel albo OpenOffice.org Calc). W tym celu wystarczy utworzyć nowy dokument, a na koniec zapisać go jako .csv.

csv_1

Kolejność poszczególnych pozycji nie ma znaczenia, ważne, by we wszystkich kolejość była taka sama. Jedyny obowiązkowy parametr to nazwa produktu. W powyższym pliku znalazły się takie informacje jak kategoria (dwie po przecinku, zatem produkt zostanie umieszczony w obu), nazwa, numer ID podatku (ten numer da się sprawdzić w zakładce Płatności/Reguły podatku), ilość w magazynie, krótki opis, opis oraz url obrazka (dokładny, http://jakasdomena.pl/... itd.).

Kolejność może być inna, jeśli wiele pozycji będzie identycznych, można je umieścić po kolei, skopiować z pierwszej linijki, zaznaczyć wszystkie linijki, w których mają się znaleźć takie pozycje i wkleić. Wszystkie komórki uzupełnią się automatycznie (ilustracje poniżej).

csv_2

csv_3

csv_4

W ten sposób można wprowadzić także szereg innych informacji o produkcie, w swoim pliku podałem tylko wybrane (przy czym obowiązkowa jest tylko Nazwa). Oto pełna lista możliwych pozycji:

  • ID
  • Aktywny (0 lub 1)
  • Nazwa *
  • Kategorie (x,y,z...)
  • Cena bez podatku. (netto)
  • Numer ID podatku
  • Cena hurtowa
  • W sprzedaży (0 lub 1)
  • Wartość rabatu
  • Procent rabatu
  • Rabat od dnia (rrrr-mm-dd)
  • Rabat do dnia (rrrr-mm-dd)
  • Indeks #
  • Kod dostawcy
  • Dostawca
  • Producent
  • EAN13
  • Kod kreskowy UPC
  • podatek Eco
  • Waga
  • Ilość
  • Krótki opis
  • Opis
  • Tagi (x,y,z...)
  • Meta-tytuł
  • Meta-słowa
  • Meta-opis
  • URL przepisany
  • Tekst, gdy na stanie
  • Tekst jeśli zamówienie zwrotne zezwolone (tow. spr. na zam.)
  • Dostępny na zamówienie
  • Data dodania produktu
  • Pokaż ceny
  • Adresy URL zdjęcia (x,y,z...)
  • Usuń istniejące obrazy (0 = nie, 1 = tak)
  • Funkcja
  • Dostępny wyłącznnie online
  • Warunek

Warto zauważyć, że w tym przypadku nie da się uzupełnić parametrów produktu, takich jak kolor, rodzaj itd. Będzie to możliwe dopiero w drugim etapie importu, po utworzeniu kolejnego pliku csv (podobnie, jak produkty czy parametry - czyli kombinacje, można także hurtowo dodać kategorie, klientów, adresy, producentów i dostawców.

Po utworzeniu tabeli z listą produktów, kliknij Plik/Zapisz jako... i wybierz Tekst CSV.

csv_5

Kodowanie: UTF-8 (Unicode).

csv_6

Po zapisaniu pliku, przejdź do zaplecza sklepu Prestashop i otwórz zakładkę Narzędzia/Import. Tutaj w polu Prześlij wgraj swój plik csv na serwer, następnie w polu Import w zakładce "Wybierz jednostkę do importu" wybierz Produkty (ilustracja poniżej).

csv_7

Po zakończeniu tej operacji, kliknij Następny krok.

W tym kroku masz możliwość zdefiniowania, co oznaczają poszczególne kolumny. Jeśli chcesz pominąć import jednej z kolumn, po prostu ustaw "Ignoruj tę kolumnę".

csv_8

Teraz kliknij "Importuj dane CSV". Produkty zostaną zaimportowane do sklepu.

Jak dodać parametry (kombinacje) produktów?

We wcześniejszym kroku dodałem kilka płyt CD. Załóżmy, że chciałbym nadać im takie parametry (kombinacje), by każda z nich była do wyboru w wersji Standard i Digipack, przy czym waga to odpowiednio: 120 g i 110 g, a cena: 25 i 30 zł. Każda z płyt dostępna jest w wersji niebieskiej lub zielonej. Natomiast domyślna jest wersja digipack niebieski, a ilość każdej płyty w magazynie to 70 sztuk.

Tworzę nowy dokument arkusza kalulacyjnego. Tym razem obowiązkowe są kolumny Identyfikator Produktu (ID) oraz Opcje (Grupa: Wartość). Ponadto można podać kilka innych parametrów, specyficznych dla danej kombinacji. Poniżej lista wszystkich możliwości:

  • Identyfikator Produktu (ID)*
  • Opcje (Grupa: Wartość)*
  • Kod produktu
  • Kod dostawcy
  • EAN13
  • Kod kreskowy UPC
  • Cena hurtowa
  • Cena (różnica, netto)
  • podatek Eco
  • Ilość
  • Waga (różnica)
  • Domyślny
  • Położenie obrazu
  • URL zdjęcia


Jeśli nie znasz ID produktu, przejdź do zakładki Katalog, ID można odczytać w tabeli produktów (pierwsza kolumna). Gotowy arkusz będzie wyglądał tak:

csv_9

Przy czym tutaj trzeba wspomnieć o dwóch rzeczach. Wprowadzana cena oraz waga to wartość, o jaką wzrosnąć te liczby, przy czym cena to wartość netto. Jako, że waga płyty nie zostala na początku ustawiona, więc praktycznie jest to 0, zatem w tym miejscu podałem wagę całkowitą, nie zaś różnicę. Co zaś tyczy ceny, jako, że potrzebujemy kwoty netto, utworzyłem dwie kolumny, kolumna F to cena brutto i tutaj wpisujemy po prostu różnicę, o jaką ma zmienić się cena digipacków (5 zł, bo podstawowa cena produktu to 30 zł). Natomiast dla kolumny E należy nadać regułę, która obliczy kwotę bez podatku wg wzoru =F1/1,23 (F to kolumna z ceną brutto) - wzór ten dotyczy przypadku, gdy podatek, tak jak w Polsce, wynosi 23% dla płyt CD, jeśli podatek jest inny, wystarczy podmienić ułamek, w przypadku 7% wzór wyglądałby tak: =F1/1,07. Następnie wystarczy ustawić regułę w jednej komórce, po czym zaznaczyć wszystkie, w których ma być taka sama reguła i kliknąć ctrl+v.

Druga ważna rzecz, to konieczność kropki w kwocie netto. Jeśli pozostawimy w tym miejscu przecinek, skrypt uzna, że wpisaliśmy dwie ceny po przecinku i weźmie tylko to, co jest przed przecinkiem, co może przyprawić o frustrację. By zmienić przecinek na kropkę w programie OpenOffice.org Calc wystarczy zaznaczyć potrzebną kolumnę, kliknąć prawym, wybrać "Formatuj komórki...", i w polu Język wybrać Angielski (Wielka Brytania).

Tak przygotowany plik można już zaimportować na zapleczu sklepu tak, jak w przypadku Produktów, przy czym w pozycji "Wybierz jednostkę do importu" trzeba należy tym razem "Kombinacje".

Tak wygląda lista pozycji tuż przed importem:

csv_9a

Podobnie, jak poprzednim razem, należy zdefiniować, co oznaczają informacje w poszególnych kolumnach. Kolumnę z ceną brutto można zignorować, potrzebna nam była, by utworzyć ceny netto (cen brutto nie można tutaj importować).

Na ilustracji niewidoczna jest ostatnia kolumna, w której ustawiliśmy 1 dla cechy domyślnej i 0 dla pozostałych. Tę kolumnę należy zdefiniować jako Domyślne.

Efekt: działa!

csv_9b

Pobierz pliki:

  1. produkty.csv
  2. kombinacje.csv
wtorek, 07 czerwca 2011 13:31

Joomla 1.7

Redaktor: Łukasz

Dopiero (w styczniu) pojawiła się stabilna wersja 1.6, wczoraj na stronie joomla.org można się było zapoznać z informacją o możliwości pobrania wersji 1.7 Alpha 1. W ten sposób dynamika rozwoju Joomli rośnie, szczególnie jeśli wziąć pod uwagę, że wcześniejsza - 1.5 - pojawiła się w 2007 roku, a jej poprzedniczka (1.0) w 2005.

Co to oznacza? Ma to swoje złe i dobre strony. Minusem jest konieczność adaptacji do nowej wersji silnika. Początkowo - niewielka ilość dodatków. Plusów jest znacznie więcej. Przede wszystkim jeszcze szybszy rozwój kodu. Co za tym idzie - bezpieczeństwa, które wynika, po pierwsze, z nowoczesnego silnika, po drugie, z wielości wersji (hakerom trudniej tworzyć skrypty atakujące wiele niezależnych wersji systemu).

Wygląda na to, że wersja Joomla! 2.0 to nie tak znowu odległa perspektywa :)

Stało się. Po kilku miesiącach funkcjonowania komentarzy na jednej z administrowanych przez nas stron internetowych, zaczęły pojawiać się spamy. Przedwczoraj wieczorem co kilka minut w losowym artykule - nowy wpis o abstrakcyjnej treści w języku angielskim. Po prostu bałgan.

W efekcie zdecydowaliśmy się uruchomić skrypt weryfikacji obrazkowej. Od tamtej pory nie pojawił się ani jeden nowy spam.

Mechanizm, z którego skorzystaliśmy, nie jest jednak zwykłym systemem captcha, ale jego nowoczesnym wcieleniem, który trud, jaki użytkownik poświęca na wpisywanie niewyraźnego słowa, przekłada na realną korzyść kulturalną. Ten rodzaj captcha wykorzystywany jest bowiem do przenoszenia książek do wersji cyfrowej. A w okienku captcha pojawia się słowo, z którym nie poradził sobie system mechnicznego zczytywania tekstu (ORC).

Jak to działa? - Użytkownik w momencie, gdy chce wysłać wiadomość za pomocą formularza, musi przepisać dwa wyrazy, widoczne na obrazku. Treść jednego z nich jest znana przez system, natomiast drugi wyraz to słowo, z którym ORC sobie nie poradził (nie wiadomo który to który). Użytkownik (jako, że człowiek lepiej sobie radzi z odczytywaniem niewyraźnych słów) wpisuje tekst  do komputera, a system weryfikuje poprawność wpisu na podstawie prawidłowości drugiego wyrazu. Jedno niejasne słowo pojawia się kilka razy dla kilku różnych użytkowników, dzięki czemu system upewnia się co do jego poprawności.

Jak podaje Wikipedia - w ciągu pierwszego roku funkcjonowania reCaptcha, system przyczynił się do wprowadzenia do internetu 17 tyś. książek. Są one dostępne w serwisie Internet Archive.

Strona 1 z 3