PDA

Zobacz pełną wersję : kod PHP ...



Postal
09-01-2006, 19:37
Witam

Mam pytanko odnosnie kodu PHP i joomli.

Czy jest mozliwosc umieszczenia kodu php we własnych modolach???

Szukalem dosc dlugo w sieci... i na forum... no i jedynymi informacjami jakie znalazlem to info odnosnie kl_php i wstawiania kodu php w tresci artykulow (co u mnie tez sie sypie)... np {kl_php} echo date();{/kl_php} wywala jakies bledy w kl_php.php ... moze sciagnolem jakas stara wersje tego zip`a?

a wracajac do tematu to...
utworzylem sobie nowy modol w ktorym chcial bym zamieszczac jakies informacjie o swoim serwerz przy uzyciu php... no ale w module nie moge uzywac {kl_php} ... {/kl_php} tak jak w artykulach... i zastanawiam sie czy jest jakis sposob ze by tego dokonac :)

Z gory dziekuje za pomoc i czekam na odpowiedzi :)

livio
09-01-2006, 19:53
A nie możesz tak po prostu wsadzić we własnym module [nowym] kodu php?

<?php echo date(); ?>

Postal
09-01-2006, 20:18
hmmm... moze napisze po kolei jak robie ten modol:

1. Wybieram z menu Modules -> Site Modules
2. Nastepnie klikam obrazek z podpisem New i tworze nowy modol
3. podczas tworzenia w sekcji "Custom Output" chcialem umiescic kod php.

no i niestety nie moge... jak wpisze centralnie w ten edytor to wyswietla na stronie dokladny kod a nie jego wykonanie... a jak wybiore wpisywanie w trybie html to po wybraniu Update i zamknieciu okna wpisywania w formie HTML kod php znika.

jest na to jakas rada?

livio
09-01-2006, 20:53
Pewnie, że jest rada...
Na chwilkę w konfiguracji Mambo / Joomla! zmień edytorka na NO WYSIWYG i wtedy twórz moduł - będziesz widział kod źródłowy.
Zapisz moduł. Zmień edytorka, jak wyżej, ale na innego [Twojego ulubionego].
Opublikuj moduł. Sprawdź działanie.

magic
09-01-2006, 20:56
W konfiguracji edytora wyłącz skrypty jako niedozwolony element wstawiany poprzez edytor. Np. w TinyMCE masz pole "Zabronione", a w tym polu skasuj "scripts" ...

Postal
09-01-2006, 21:27
Na poczatku dzieki za odpowiedzi :)

livio <- zrobilem tak jak mi radziles i nic... tzn teraz kod php wodczny jest w opcji edycji modulu ale nie widac nic na stronie a zrobilem zwykle echo - <?php echo "slowo"; ?>

magic <- nie wiem czy cos moze knoce ale robie tak: wybieram z menu Mambots -> Site Mambots ... tam odnajduje Edytor TinyMCE (http://192.168.0.101/administrator/index2.php?option=com_mambots&client=&task=editA&hidemainmenu=1&id=10)
niestety panel administratora mam w wersji angielskiej i nei mam pola "Zabronione" ale jak sie domyslam chodzi tu o pole "Prohibited Elements" w ktorym mam tylko applet. wiecej nie znalazlem innych miejsc gdzie to moglo by byc.

moze sa jakies zmienne globalne joomli w ktorych mogl bym wylaczyc ignorowanie kodu php wprowadzanego przez admina? albo jeszcze jakis inny sposob ?

w kazdym razie ja siedze nad tym caly czas i kombinuje... jestem wdzieczny za wasza pomoc.

stone
09-01-2006, 23:14
Kodu php nie dasz rady umiescic w module z poziomu panelu administratora.
Jedeny sposob napisac i zainstalowac moduł.
Najprosciej jest wziac pierwszy lepszy (jak najprostrzy ) modul i zmienic nazwy plikow na swoje, wyedytować plik php i wstawic swoja zawartosc, oraz plik instalacyjny xml gdzie takze trzeba zmienic nazwy plikow.
Jak sie to juz raz zrobi to potem szybko idzie:)
W razie watpliwosci pytaj

Postal
10-01-2006, 20:25
stone <- dzieki za odpowiedz... musze przyznac ze tez o tym myslalem ale traktowalem to jako ostatecznosc... no i wychodzi ze bede musial sie grzebac w kodzie :P

W zwiazku z tym wsyztskim zastanawiam sie czy nie mozna stworzyc jakiegos modulu w panelu administratora (pustego modulu... tylko z nazwa) a potem odszukac go gdzies w plikach i w nim poustawiac to co sie chce... bo w sumie tak by chyba bylo najlatwiej... niestety poki co nie moge znalesc tych plikow od nowych moduluw (tzn. tworzonych z panelu admina).

Czy one sie do bazy zapisuja i dlatego nei mozna ich edytowac? hmmm zastanawia mnie to...

teraz pewnie rusze przerabiac jakies istniejace moduly... tylko ze z tym jest kupa roboty... no coz ide kombinowac :)

Prosze o jeszcze jakies podpowiedzi :)

stone
10-01-2006, 20:39
Tak tez sie nie da. Modul zalozony w panely admina nie staje sie plikiem ale jest zapisywany w bazie. Aby miec mozliwosc kodu php musisz modul zainstalowac z paczki. Zrób tak jak mowie, wez pierwszy lepszy modul do instalcji i tylko pozmieniaj dane w pliku xml na swoje oraz nazwy plikow i paczki i potem mozesz z nim robic co chcesz:)

Postal
10-01-2006, 21:34
stone <- wielkie dzieki za pomoc... troche sie z tym pomeczylem ale juz teraz widze ze nie jest to takie trodne jak sie wydaje :) dzieki tobie bede mogl zrobic modul obslugujacy statystyki uptime systemow operacyjnych zarejestrowanych na stronie http://en.uptime-project.net :)

Dziekuje wszystkim ktorzy udzielali mi pomocy :)

Pozdrawiam serdecznie.

zwiastun
11-01-2006, 00:20
A jak go już zrobisz, to przejdź sobie do Konfiguracji, ustaw w zakładce Statystyki parametry tak, żeby gromadził statystyki, po czym po paru dniach sprawdź, jakie Ci gromadzi statystyki. Między innymi systemów operacyjnych, z jakich korzystają ludzie odwiedzajacy serwis.
Pomyślnych przerrrrrrrrrróbek kodu, twórrrrrrrrrrczych pomysłów,
a niezależnie dobra rada: sprawdzić, czy już czegoś przypadkiem nie ma, zapytać, poczytać.

Postal
11-01-2006, 08:43
Jeszcze raz dzieki wsyztskim za pomoc odnosnie modulu... teraz jednak pojawil sie nowy problem, tez zwiazany z php.

Mianowicie:
1. mam modul w ktorym uzywam kodu php
zasada kodu jest taka (w duzym skrocie):
a) sprawdza czy istnieje plik jak nie istnieje to go tworzy a jak istnieje to stara sie go otworzyc... standartowe fopen($filename,'w'); jak sie uda otworzyc to zapisuje do niego np "test"
b) jezeli pliku nie moze otworzyc to wypisuje na ekran info ze nie udalo sie zapisac do pliku.
2. wykonujac (uruchamiajac) ten modul za pomoca wpisania odwolania do niego w przegladarce... inaczej mowiac bezposrednio z serwera... wszytsko jest ok. Zapisuje sie do pliku string "test"
3. po wejsciu na strone gdzie mam zainstaloany serwis na joomli w miejscu gdzie powiedzmy powinna wyswietlic sie zawartosc pliku zapisanego wczesniej (przy otwarciu strony serwisu) czyli "test". U mnie natomiast wyswietla sie info ze nei moge pisac do pliku... tak jak by nie dzialal standartowy fopen (ktory dzialal z wywolania bezposredniego).

Plik modulu jest w katalogu /var/www/htdocs/modules/ powiedzmy ze nazywa sie xyz.php ... uruchamialem go z tej samej lokalizacji podajac dokladny jego adres (pkt 2) jak i poprzez wejscie na strone serwisu (pkt 3).

Powiedzcie mi czemu bezposrednio wsyztsko dziala... tzn otwracie i zapis do pliku a w momencie kiedy wchodze na strone serwisu nei umie otworzyc pliku??

zmienialem juz dostep do wsyztskich plikow joomli na 777 i nadal taka sama reakcja... szczerze mowiac to nie wiem w czym tkwi problem :confused:

Wiecie co moze byc nie tak? Moze jakies ustawienia w joomli? ja tymczasowo nie mam pomyslow.

stone
11-01-2006, 09:11
Hmm, nie umiem powiedziec czemu tak sie dzieje, bo powinno działąc, ale wewentualnie może rozważ czy nie wolałbyś przechowywać informacji w bazie danych, bylo by to lepszym roziwązaniem niż fizyczny plik.

Postal
11-01-2006, 09:19
W sumie to jest jakies rozwiazanie... zastanawiam sie rowniez nad przeniesieniem pliku do ktorego zapisuje w jakies inne miejsce na serwerze i sprawdzenie czy moze tam zapisze... ale nie spodziewam sie powodzenia... pewnie bede musial to do bazy zapisywac tak jak napisales stone.

w kazdym razie jeszcze poprobuje.

Update 11-01-2006 08:44 ;]
Jednak przeniesienie pliku do /var/www/htdocs/ dalo oczekiwany rezultat... w sumie to nei wiem czemu nie chcial pisac z joomli do pliku znajdujacego sie w katalogu modules... w kazdym razie teraz juz wszytsko jest ok :)

Thx for help :)