PDA

Zobacz pełną wersję : [1.5]Wtyczka zamieniająca tag prostym formularzem.



Kedor
13-12-2011, 15:00
Witam. Jestem nowy na forum joomli, ale już jakiś czas z niej korzystam.
Interesuje się javascript'em oraz php, i zdecydowałem sprawdzić się w pisaniu prostych wtyczek do joomli.
Mój cel, to stworzyć wtyczkę, która zamieniłaby jakiś tag (np {formularz}) na faktyczny formularz tj kilka text i checkboxów. Jak już bym doszedł do tego, to myślę, że dalej, z modyfikacjami bym sobie poradził.

Czytałem pare poradników, jak pisać proste wtyczki, np dodanie "Hello world" pod każdym artykułem, ale to sa bardzo proste przykłady. Czytałem także o kategoriach wtyczek jak i o zdarzeniach (onBeforeDisplay itp). Chciałem zapytać, jak mogę przeszukać tekst artykułu w poszukiwaniu tego tagu i zamienić go czymś innym (formularzem w tym wypadku). Albo, jeśli byłoby to łatwiejsze, aby cała treść artykułu została zmieniana jeśli link odpowiada pewnym kryteriom. Mam na myśli, jeśli link brzmi www.xxx.pl/joomla/artykul?id=2 to wtedy i tylko wtedy wtyczka zamieni treść tego artykułu wstawiając to co chcę.

Nie wiem jak osiągnąć żaden z tych sposobów, jako że nie wiem jak przeszukiwać text ani link. Byłbym wdzięczny za wszelkie wskazówki. Po prostu potrzebuję prostego formularza, który będę mógł edytować wg woli (CSS, zmianę pól formularza, oraz najważniejsze, czyli wysyłanie danych do bazy danych). Sprawdzałem kilka darmowych wtyczek, i nie za bardzo mnie zadowalają, tak więc postanowiłem napisać prosty formularz sam, ale niestety nie wiem od czego zacząć. (napisanie formularza w html+php to żaden problem, chodzi o samą budowę wtyczki)

Tutaj kod, jak napisałem wtyczkę, dodającą wszędzie hello world:

<?php
defined( '_JEXEC' ) or die( 'Error' );
class plgContentHelloWorld extends JPlugin {
function plgContentHelloWorld( & $subject ) {
parent::__construct( $subject );
}
function onAfterDisplayContent(& $article, & $params, $limitstart) {
$myOutput = "Hello World!";
return $myOutput;
}
}
$myPlugin =& new plgContentHelloWorld(JDispatcher::getInstance() );
?>

palyga007
13-12-2011, 16:16
Chciałem zapytać, jak mogę przeszukać tekst artykułu w poszukiwaniu tego tagu i zamienić go czymś innym (formularzem w tym wypadku).

Zerknij sobie do dodatku loadposition. Robi on dokładnie to o co Ci chodzi, czyli przeszukuje tekst w celu znalezienia określonej frazy.
Generalnie to samo w sobie nie jest to zagadnieniem dotyczącym Joomla!, tylko PHP i wyrażeń regularnych itp.

Co do wyciągania określonych danych z adresu można to zrobić np w ten sposób:


JRequest::getVar('view')=="article"

W linijce wyżej następuje sprawdzenie czy strona, która jest wyświetlana aktualnie to widok pojedynczego artykulu.

ogólnie to polecam api.joomla.org

Pozdrawiam.

Kedor
13-12-2011, 17:34
Super.
Dziękuję za naprowadzenie na loadposition.
Poczytałem troche, przejrzałem plik php wtyczki, i już co nie co sobie radzę. Zamieniam "{formularz_gielda}" na to co chcę. Na razie obchodzi się bez problemów.