Mam praktycznie wszystko gotowe. Ale wróćmy do początku, założenia komponentu. W treści wybranych artykułów wstawiamy odpowiednie znaczniki, w tym wypadku: {zaplac_dotpay}coś tam coś tam{/zaplac_dotpay}. W miejsce tego tekstu ma się pojawić odpowiedni formularz (mikropłatności dotpay), po wpisaniu kodu otrzymanego np SMSem z pomocą metody GET następuje sprawdzenie poprawności kodu i jeżeli jest on poprawny, wyświetla się treść, która w oryginale była pomiędzy znacznikami. Wszystko można zobaczyć na stronie głónwej - aptekastatim.pl/portal
Plugin się pięknie instaluje, wszystko ładnie i w ogóle, poza faktem, że nie podmienia tekstu.
Kod:
<?php // no direct access function dotpay($artykul, $this_is) { // podpięcie parametrów pod ładne zmienne - premium SMS $numer = $this_is->params->get('numer'); $tresc = $this_is->params->get('tresc'); $koszt = $this_is->params->get('koszt'); $siec = $this_is->params->get('siec'); $reg = $this_is->params->get('reg'); $kto = $this_is->params->get('kto'); // podpięcie parametrów pod zmienne - przelew $koszt_przelew = $this_is->params->get('koszt_przelew'); $reg_przelew = $this_is->params->get('reg_przelew'); // tworzenie formularza $form = '<div id="dotpay-platnosci"> <div id="premium-sms"> <div class="co"><h3>Premium SMS</h3></div> <div class="instrukcja">Zyskaj dostęp jednorazowy do wybranego przez Ciebie wzoru. Poprzez wysłanie SMSa o treści ' . $tresc . ' na numer ' . $numer . '.</div> <div class="formularz"><form name="premium-sms" method="get">Wpisz kod z SMSa:<br /><input type="text" name="kod" /><input type="hidden" name="typ_dotpay" value="sms" /><br /><input type="submit" value="Dostęp" /></div> <div class="pouczenie">Premium SMS jest usługą dostępną dla sieci: ' . $siec . '<br />Koszt jednej wiadomości: ' . $koszt . '<br /><a href="' . $reg . '" class="a-regulamin">Regulamin usługi"><br />Usługę świadczy ' . $kto . '.<br />Właściciel serwisu: mail@mail.com<br /></div> </div> <div id="premium-przelew"> <div class="co"><h3>Kod za przelew</h3></div> <div class="instrukcja">Zyskaj nieograniczony dostęp do wszystkich wzorów na tydzień.</div> <div class="formularz"><form name="premium-przelew" method="get">Wpisz kod z SMSa:<br /><input type="text" name="kod" /><input type="hidden" name="typ_dotpay" value="przelew" /><input type="hidden" name="timestamp" value="' . time() . '" /><br /><input type="submit" value="Dostęp" /></div> <div class="pouczenie">Koszt przelewu: ' . $koszt_przelew . '<br /><a href="' . $reg_przelew . '" class="a-regulamin">Regulamin usługi"><br />Usługę świadczy ' . $kto . '.<br />Właściciel serwisu: mail@mail.com<br /></div> </div> </div>'; } class plgContentdotpay_platnosci extends JPlugin { public function onContentPrepare($context, &$row, &$params, $page = 0) { $artykul = $row->text; // sprawdzenie czy w treści artykułu zawiera się szukana fraza: // sprawdzenie czy nie został podany kod if($_GET['kod']) { // sprawdzenie czy podany kod jest poprawny $db =& JFactory::getDBO(); $kod = $_GET['kod']; // sprawdzanie typu kodu if ($_GET['typ_dotpay'] = 'sms') { $typ = 'sms'; } elseif ($_GET['typ_dotpay'] = 'przelew') { $typ = 'przelew'; } // sprawdzenie czy kod jest w bazie i jest aktywny $query = "SELECT * FROM `jos_dotpay_platnosci` WHERE `kod` = '$kod' and `typ` = '$typ'"; $db->setQuery( $query ); $ile = $db->loadObjectList(); // sprawdzenie aktywności kodu if ($typ == 'przelew') { if ($ile['czas'] > $_GET['timestamp']) { } elseif ($ile['czas'] == '0') { $timestamp = $_GET['timestamp'] + 7*86400; $qr = "UPDATE `jos_dotpay_platnosci` SET `time` = '$timestamp' WHERE `kod` = '$kod' and `typ` = 'przelew'"; $db->setQuery( $query ); } else { $qr = "DELETE FROM `jos_dotpay_platnosci` WHERE `kod` = '$kod'"; $db->setQuery( $query ); } dotpay($artykul, $this); } } elseif ($typ == 'sms') { $qr = "DELETE FROM `jos_dotpay_platnosci` WHERE `kod` = '$kod'"; $db->setQuery( $query ); } else { // podmienienie frazy na prośbę o wpisanie kodu dotpay($artykul, $this); } } } else { // podmienienie frazy na prośbę o wpisanie kodu dotpay($artykul, $this); } } } ?>