PDA

Zobacz pełną wersję : komponent kod php



mlody2
27-04-2007, 22:57
Witam,

mam problem : mam skrypt w php'ie i chciałbym go wstawic do joomli jako komponent ( nie jako content) :rolleyes:. Nie mam kompletnie pojecia jak to zrobic :confused:.

Sova
27-04-2007, 23:35
Wszystko zależy co to za skrypt... Można stworzyć normalną stronę i wyświetlić to w Joomla! we wrapper'ze

mlody2
28-04-2007, 00:38
Wszystko zależy co to za skrypt... Można stworzyć normalną stronę i wyświetlić to w Joomla! we wrapper'ze
nie chce uzywac ramek ... Wrapper odpada... :(

Sova
28-04-2007, 10:19
Napisać komponent, albo to komuś zlecić - skoro nie chcesz tego wstawiać w artykuł.

flashmaniak
28-04-2007, 10:45
apropo napisal ktos wlasny komponent ?

mlody2
28-04-2007, 10:49
Napisać komponent, albo to komuś zlecić - skoro nie chcesz tego wstawiać w artykuł.
A jest gdzies jakis tutorial jak to zrobic ? Bo w wstawiać to w content - to bedzie z tego artykul ( i bedzie sie wyswietlal w "ostatnich wiadomosciach" - a chce tego uniknac.). Poza tym bawiłem się już z tym (tj. instalowanie botów kl_php, wylaczenie edytora WYSiWYG itd. ) i nie uzyskalem efektu jakiego sie spodziewalem.:confused:

Myslalem, zeby zrobic to tak jak z wlasnym modulem ( bierzesz najprostszy modul i przerabiasz go na wlasny - to bylo proste , bo znalazlem gdzies tutorial jak to zrobic )

mlody2
28-04-2007, 16:49
apropo napisal ktos wlasny komponent ?
Coś próbuje tworzyć jednak nie jest to tak proste jak z własnym modułem. Może ktoś by napisał jakiegoś tutoriala jak stworzyć komponent dla kodu php ?....

zwiastun
28-04-2007, 17:33
Co to znaczy wstawić skrypt php jako komponent? Nie bardzo rozumiem.
Jeśli to ma być odrębna jakas pozycja menu, nie musi być wkładany do artykułu, mozna zastosować materiał statyczny

{mosldposition nazwapozycji} - cała treść materiału
Do osadzenia użyć bota - jest ich kilka

Drugie rozwiązanie to podpowiedziany przez Sovę wraper.
Trzeciego - komponentu który umieści w komponencie!!!!!!!!!!!!!!! skrypt nie ma.
Można ten skrypt przerobić na komponent do Joomla!. Opis tworzenia komponentu jest na joomla.pl/pomoc

mlody2
28-04-2007, 19:55
Co to znaczy wstawić skrypt php jako komponent? Nie bardzo rozumiem.
Jeśli to ma być odrębna jakas pozycja menu, nie musi być wkładany do artykułu, mozna zastosować materiał statyczny

{mosldposition nazwapozycji} - cała treść materiału
Do osadzenia użyć bota - jest ich kilka

Drugie rozwiązanie to podpowiedziany przez Sovę wraper.
Trzeciego - komponentu który umieści w komponencie!!!!!!!!!!!!!!! skrypt nie ma.
Można ten skrypt przerobić na komponent do Joomla!. Opis tworzenia komponentu jest na joomla.pl/pomoc

Dzięki Zwiastun - pomogło!:). Zrobiłem tak jak napisałeś - wgrałem jako moduł a potem osadziłem w materiale statycznym botem:D. Tylko dziwne bo tabela wyświetla się dwa razy ( jedna pod drugą ) a powinna tylko raz:confused:. Wiesz może o co chodzi ? jak zrobić żeby wyświetliła się tylko raz ? Skrypt jest dobrze napisany bo jak wrzucę na serwer to wykonuje się tylko raz , a przez joomla dwa razy.

zwiastun
28-04-2007, 22:34
Gdyby jeszcze ktokolwiek wiedział, o czym piszesz

Sova
29-04-2007, 23:15
apropo napisal ktos wlasny komponent ?

Tak, tu masz przykład funcjonowania:
http://www.joomla.pl/index.php/index.php/component/option,com_josresource/Itemid,56/


wgrałem jako moduł a potem osadziłem w materiale statycznym botem

Fantastico...
:D

devphyl
10-07-2007, 14:18
piszecie, ze mozna to wstawic jako artykul statyczny
albo wlozyc do wrapera
czy tez skontruowac jakis z link do naszego pliku

a co jesli nasz plik posiada linie:
defined( '_VALID_MOS' ) or die( 'Restricted access' );

bo nie chcemy, zeby byl uruchamiany samodzielnie, tylko wylacznie przez joomle
wowczas powyzsze porady nie zadzialaja.

mam wlasnie taki plik php (mini komponent) i chce go podlinkowac pod joomle
w jaki sposob ?
powiedzmy, ze bedzie to kolejna pozycja dla usermenu, a komponent bedzie widoczny tylko dla uzytkownikow ze specjalnymi prawami (acl)
no wlasnie tylko ta linijka defined( '_VALID_MOS' ) jest mi potrzebna do szczescia - bo komponent dziala na bazie i nie moze byc uruchomiony samodzielnie.

jest jakis bot do tego?
ewentualnie jak to samemu dodac do kodu ?

zwiastun
11-07-2007, 03:21
zwał sobie jak chciał, choć oczywiście, to nie tak, bo wiadomo, co komponent, a co moduł.
Jeśli jest to skrypt, który ma być obsługiwany przez Joomla!, to musi być na tyle zintegrowany z Joomla!, żeby mógł być obsłużony. Jedna linia nie wystarczy. Opis (PO POLSKU) tworzenia komponentu co prawda do Mambo, ale poza szczegółami różnic mnie ma - jest tutaj:
http://www.pomoc.joomla.pl/content/view/67/30/

daniofantasy
18-02-2008, 05:11
Jeżeli chodzi o wstawianie kodu php do joomli to zamiast kombinować na wszystkie strony, najłatwiej jest zrobić z niego komponent - jak to zrobić, tak jak powiedział zwiastun, jest dokładnie opisane w pomocy joomli - i w dodatku po polsku. Aby to zrobić jest wymagana podstawowa wiedza o programowaniu w php i jestem pewien, że każdy, kto taką elementarną wiedzę posiada, da sobie z tym radę. a robi się to tak:

Do każdego pliku z kodu w php, powinna być dodana linia:

// CHECKING FOR PERMISSION TO ACCESS FILE
defined ('_VALID_MOS') or die ('Direct Access to this location is not allowed');

Robi się to po to, aby nie obniżyć poziomu bezpieczeństa kodu joomli. Następną rzeczą jest zrobienie instalatora i dezinstalatora komponentu (opisane w pomocy). I do tego wszystkiego należy stworzyć plik XML, który będzie tworzył tabele, używane przez kod php w bazie danych joomli i instalował pliki komponentu w odpowiednie miejsce. Jak go zrobić jest również bardzo ładnie opisane w pomocy (ewentualnie można podejrzeć jeszcze pliki XML wersji instalacyjnych innych komponentów.

I w tym momencie komponent zaczyna działać. Jeżeli ktoś chce mieć do niego administracje (lub ma własną, tylko chce, aby działała pod joomlą), to pliki które mają znajdować się w adminie dorzuca do instalatora w XMLu między tagi <administration> i </administration> analogicznie, jak dla plików użytkownika. Tutaj jedna uwaga - pliki w adminie muszą nazywać się w inny sposób, jak dla części usera - bo inaczej instalator je nadpisze. Aby ponownie nie naruszyć bezpieczeństwa joomli, oprócz wcześniej wspomnianej w moim poście linii kodu należy dodać kolejną, sprawdzającą prawa użytkwonika do przeglądania tej części administracji:

// ENSURE USER HAS ACCESS TO THIS FUNCTION
if (!($acl->acl_check('administration','edit','users',
$my->usertype,'components','all')
| $acl->acl_check('administration','edit','users',

$my->usertype, 'components','com_newsfeeds'))) {

mosRedirect('index2.php', _NOT_AUTH);
}

Ok - w tym momencie administracja działa. Teraz pozostaje ostatni problem - przechodzenie pomiędzy podstronami serwisu. W joomli realizowane jest ono przez element zmiennej tablicy serwerowej $_SERVER['QUERY_STRING'] oraz element tablicy $_GET['option'] Używając tych dwóch zmiennych razem z $PHP_SELF spokojnie wystarczy, żeby zrobić sprawne przechodzenie pomiędzy kolejnymi podstronami kodu, podmieniając urle w nim zawarte na utworzony przez nas ciąg. U mnie działa to w następujący sposób:

$url_array = url_resender($_SERVER['QUERY_STRING']);
$url = $PHP_SELF . '?option='. $_GET['option'] . $url_array[0];

function url_resender($url) {

$pattern = "[&[a-z],[0-9]=[a-z],[0-9]&]";
$return_array = preg_match($pattern,$url,$return_array);

return $return_array;
}

Po takich zabiegach można przerobić dowolną aplikację, napisaną w php, aby działała pod joomlą. Jeżeli ktoś chce, to mogę się podjąć takiej przeróbki (oczywiście odpłatnie) i zmusić praktycznie każde oprogramowanie, aby działało pod joomlą. Kontakt do naszej firmy znajduje się na stronie www.alien.net.pl (http://www.alien.net.pl)