PDA

Zobacz pełną wersję : PHP w artykułach



komóra
02-11-2010, 18:41
Witam.
Używam Joomli 1.5.20 i mam problem z PHP. Otóż planuję zrobić formularz rekrutacyjny, mniejsza gdzie, i chcę go umieścić w artykule. Cały kod wygląda tak:

<?php
if (count($_POST))
{
////////// USTAWIENIA //////////
$email = 'rekrutacja@gkteam.xaa.pl'; // Adres e-mail adresata
$subject = 'Rekrutacja'; // Temat listu
$message = 'Dziękujemy za wysłanie formularza'; // Komunikat
$error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat błędu
$charset = 'iso-8859-2'; // Strona kodowa
////////////////////////////////

$head =
"MIME-Version: 1.0\r\n" .
"Content-Type: text/plain; charset=$charset\r\n" .
"Content-Transfer-Encoding: 8bit";
$body = '';
foreach ($_POST as $name => $value)
{
if (is_array($value))
{
for ($i = 0; $i < count($value); $i++)
{
$body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
}
}
else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
}
echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
}
else
{
?>

<form action="?" method="post">
<!-- Podstawowe pole tekstowe -->
Imię:<br />
<input name="Imię" /><br />
Wiek:<br />
<input name="Wiek" /><br />
Nickname(ksywa pod jaka grasz):<br />
<input name="Nickname" /><br />
Miasto, w ktorym mieszkasz:<br />
<input name="Miasto" /><br />
Zainteresowania:<br />
<input name="Zainteresowania" /><br />
Twój staż:<br />
<input name="Staż" /><br />
<!-- Pola typu RADIO -->
<p>Posiadasz Black Ops?:</p>
<input type="radio" name="black_ops" value="yes" />Tak.
<input type="radio" name="black_ops" value="no" />Nie.
<p>Posiadasz Modern Warfare 2?:</p>
<input type="radio" name="modern_warfare2" value="yes" />Tak.
<input type="radio" name="modern_warfare2" value="no" />Nie.
<!-- Pole komentarza (o powiększonych rozmiarach oraz z tekstem domyślnym) -->
<p>Podaj swoj komentarz(Dlaczego wlasnie Ty, cos od siebie itp.):</p>
<textarea name="Komentarz" cols="30" rows="5"></textarea>
<br /><br /><br />
<!-- Przycisk WYŚLIJ -->
<input type="submit" value="Wyślij formularz" />
<!-- Przycisk WYCZYŚĆ DANE -->
<input type="reset" value="Wyczyść dane" />
</div>
</form>
<?php
}
?>

Wziąłem to z jakiejś strony, podobno nie wymaga użycia programu do wysłania wiadomości email, jednak kiedy wchodzę w tworzenie artykułu, klikam na "przełącz edytor", wklejam kod PHP i znów przełączam, ukazuje mi się fragment tego kodu oraz wszystkie pola formularza.

Fragment kodu wygląda tak:

$value) { if (is_array($value)) { for ($i = 0; $i < count($value); $i++) { $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n"; } } else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n"; } echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error; } else { ?>

No i mam pytanie jak zrobić, abym mógł wrzucić PHP do artykułu. Jakiś dodatek do Joomli czy jak?
Z góry dziękuję za pomoc,
Pozdrawiam.

alex51
02-11-2010, 19:02
Twoje hasło do naszej forumowej wyszukiwarki i Centralnego Katalogu rozszerzeń to JIncludes. Są i inne dodatki osadzające m.in. kod php w treści artykułu, polecam jednak ten jako sprawdzony i poprawnie działający.

PS.
Sprawdziłem i faktycznie w treści artykułu przed polami formularza jest wspomniany kod. Podejrzewam, że musisz mieć jakiś błąd w samym skrypcie formularza.
Jednak przewagą proponowanego dodatku jest to, że wstawiony za jego pomocą kod nie jest zmieniany przez używany edytor.

mjmartino
02-11-2010, 19:10
Nie prościej skorzystać z komponentu do formularzy niż wklejać obcy kod w stronę ;>

komóra
02-11-2010, 20:18
Zainstalowałem i włączyłem JIncludes, w #1 code wrzuciłem cały skrypt, w #1 type zaznaczyłem "PHP (input code)" i jak to wstawić do artykułu?

alex51
03-11-2010, 07:04
Zainstalowałem i włączyłem JIncludes, w #1 code wrzuciłem cały skrypt, Ok.

w #1 type zaznaczyłem "PHP (input code)" Tu nie należy zmieniać proponowanego ustawienia, powinieneś zostawić "HTML (input code)"

i jak to wstawić do artykułu? Zostało najważniejsze, należy wpisać nazwę w pozycji # 1 key i następnie tą nazwę objętą dwoma nawiasami {{wybrana nazwa}} wstawić w treści artykułu. Jeśli w # 1 key wpisałeś nazwę skrypt_01, to w treści artykułu powinieneś dodać wpis {{skrypt_01}}.
Od razu widać, że nie zastosowałeś się do mojej sugestii przeszukania forum, bo to co napisałem powyżej było już wcześniej w >>TYM WĄTKU<< (http://forum.joomla.pl/showthread.php?30536-Zincludowanie-kodu-php-do-artyku%C5%82u&highlight=JIncludes) objaśniane przez @trzepiza.
Otwartą pozostaje nadal kwestia błędu w proponowanym przez Ciebie skrypcie.

Jola
03-11-2010, 18:01
Witam,
kod wstawiany przez @komóra może być dobry (nie sprawdzałam), ale to jest kod PHP, a nie HTML, więc należy użyć dodatku do wstawiania kodu PHP.
W innym przypadku kod ten będzie traktowany jako tekst i po prostu wyświetlany. :)

komóra
03-11-2010, 18:07
Zrobiłem, tak jak napisałeś i niestety nie działa. Pozostaje sam napis {{skrypt1}}, czy dodam normalnie czy w edytorze HTML. Nawet po zapisaniu i wejściu w artykuł nie ma żadnych zmian.

alex51
04-11-2010, 07:09
W Centralnym Katalogu Rozszerzeń (http://extensions.joomla.org/extensions/edition/custom-code-in-modules) są inne propozycje dodatków umożliwiających osadzenie kodu php w treści artykułu. Jeśli nie sprawdza Ci się dodatek JInclude, który mi bardzo odpowiada, to przetestuj moduły (http://www.fijiwebdesign.com/products/joomla-php-module.html) lub dodatki (http://www.fijiwebdesign.com/products/joomla-php-plugin.html) z tej strony.
(http://www.fijiwebdesign.com/products/joomla-php-module.html)

templer00
19-03-2011, 18:23
Zrobiłem, tak jak napisałeś i niestety nie działa. Pozostaje sam napis {{skrypt1}}, czy dodam normalnie czy w edytorze HTML. Nawet po zapisaniu i wejściu w artykuł nie ma żadnych zmian.
CZy ktos moze rozwiazal ten problem ? Mam taka sama sytuacje. W artykule wyswietla sie tylko {{nazwa_skryptu}}. Tak jakby Jincludes nie "widzialo" tego artykulu i odwrotnie...
ku

alex51
19-03-2011, 18:47
Jeśli podasz zawartość wstawianego skryptu, to możemy sprawdzić czy nam również on nie zadziała w JIncludes. Bez tego każda dyskusja będzie czysto "akademicka".

Gall Anonim
19-03-2011, 22:27
O rany, to znajdź moduł który umożliwia osadzanie w nim kodu PHP (są na JED) i wrzuć go do artykułu lub na oczekiwaną pozycję struktury templaki.
All

templer00
20-03-2011, 13:59
Dziekuje za ponowne zainteresowanie tematem. Nie podalem skryptu poniewaz jest on 'identyczny" jak podal @komóra, który zaczal ten watek. Kod ten pochozi z kursu html.boo i jest ogolnie dostepny. Jednakze sprawa sie wyjasnila, wiec opisuje co i jak na przyszlosc.
Po pierwsze, to parokrotnie instalowalem i odinstalowywalem Jincludes, nie wiem czy to wina dodaku, czy mojego serwera, czy kto to tam wie.... Ale dopiero za ktoryms razem wszystko zadzialalo. A po drugie, to przy wklejaniu kodu PHP w JIncluds w pozycji "#1 type" i ustawieniu "PHP (input code) nie nalezy umieszczac znacznika "<?php " rozpoczynajacego kod. Jest to zreszta opisane w uwagach od autora... I wszystko w tym temacie.