W swoim serwisie postanowiłem wdrożyć płatny dostęp do wybranych materiałów. Wybór padł na atomsms.pl ponieważ oferują gotowe pluginy dla joomla!:
http://www.atomsms.pl/opisy/sms-dostep/joomla/1.5.x/
Jednak ten plugin ma mały mankament - po wejściu do płatnego artykułu nie pokazuje się jego wstęp, tylko od razu informacja o płatności. Uważam, że nad tabelą z cennikiem sms powinien znaleźć się wstęp artykułu.
Jak dokonać odpowiednich zmian, żeby to poprawić? Czy ktoś ma już jakieś doświadczenia w tym temacie?
Domyślam się, że zmodyfikować należy plik sms-dostep-j15.php w folderze plugins/content, ale jak dokładnie go zmienić?
kurtz
23-10-2010, 10:28
ja myślę, że pisz do ich programistów. niech reagują na sugestie klientów. jak już zrobią poprawkę to daj wszystkim znać.
myshol
23-10-2010, 11:20
Tak, dokładnie od tego zacząłem :)
Ale usłyszałem, że jeśli umiem to mogę sobie to sam zrobić :) oni nie mają tego raczej w planach.
kurtz
23-10-2010, 12:15
o, czyli nie będą krzyczeć jak ktoś pogrzebie w ich kodzie ?
dla mnie bomba, co prawda integracja w innym zakresie, ale ... pasi
myshol
23-10-2010, 16:58
Zatem skoro wolno grzebać w kodzie to grzebiemy :)
Plugin (do pobrania tutaj (http://www.atomsms.pl/content/joomla15-atomsms-dostep.zip)) składa się raptem z 3 plików:
plugins/content/atomsms-dostep.php
plugins/content/atomsms/sms-dostep-j15.php
plugins/content/atomsms-dostep.xml
Najwazniejsze są pierwsze dwa, a w atomsms-dostep.php znaleźc można taki kod:
if($paid) { // oplacone
$row->text = preg_replace('/\{sms-dostep[^}]*\}/', '', $row->text);
}
else { // nie oplacone
$row->text = sms_dostep_pokaz($strefa, $row->title);
}
Czyli interesuje mnie funkcja sms_dostep_pokaz wyświetlająca informacje przed zakupem artykułu. Nad formularzem chcę dodać wstęp tegoż tekstu.
Odszukuję funkcję sms_dostep_pokaz w pliku sms-dostep-j15.php i tam mamy:
Pomijając definicję stylów w środku dokumentu prowadzącą do błędu walidacji wnioskuję, że korzystając z funkcji wbudowanych w Joomla! można dołączyć wstęp artykułu do zmiennej $html. Nie bardzo wiem jak do tego się zabrać.
A może poszedłem zupełnie złym tropem?
Dla przykładu wdrożyłem sobie plugin tutaj: http://www.nad-bugiem.com/
Przykład artykułu z pluginem: http://www.nad-bugiem.com/kultura/na-ludowo/90-metody-konserwowania-grzybow
Jak widać, na głównej wstęp jest widoczny, ale po wejściu w materiał już nie. To uważam jest duża niedogodność ponieważ utrudnia zaczytanie materiału przez roboty wyszukiwarek i jest średnio zachęcające dla potencjalnych klientów.
Jeszcze udało mi się znaleźć opis modułu ze wstępem aktualnego artykułu:
http://nodwell.net/in-dev/extension-article-intro
Może stąd uda się wykorzystać jakiś kod?
---------- Post dodany o 16:58 ---------- Poprzedni post był o 13:03 ----------
Rozwiązanie okazało się prostsze niż myślałem.
W pliku atomsms-dostep.php pobierane są parametry wybranego artykułu więc dopisujemy składnię pobierającą też wstęp. wtedy wygląda to następująco (linia 76):
if($paid) { // oplacone
$row->text = preg_replace('/\{sms-dostep[^}]*\}/', '', $row->text);
}
else { // nie oplacone
$row->text = sms_dostep_pokaz($strefa, $row->title, $row->introtext);
}
Ponieważ dodajemy do funkcji nowe parametry musimy w pliku sms-dostep-j15.php zmienić jej definicję i przekazywane dalej parametry (u mnie linia 54):
function sms_dostep_pokaz($strefa='', $tytul='', $art_int) {
return sms_dostep_form($strefa, $tytul,$art_int);
}
Wtedy możemy zmodyfikować już ostatecznie funkcję sms_dostep_form, która u mnie wygląda następująco (podaję tylko ten fragment gdzie coś zmieniałem - około linii 77):
function sms_dostep_form($zone, $title, $art_intro) {
$html = $title . "<br /><br />";
$html .= $art_intro;
$html .= "
I od tej pory można się cieszyć wstępem artykułu nad formularzem płatności.
Prawdopodobnie dało się to zrobić lepiej i ładniej :) ale działa :)