Język Super Palio jest językiem alternatywnym dla klasycznego języka jPALIO. Jego funkcjonalność jest identyczna z kodem jPALIO, ale sposób kodowania zupełnie inny. O ile kod jPALIO można przyrównać np. do kodu PHP gdzie w treści strony HTML są wstawki z instrukcjami, o tyle Super Palio bardziej przypomina klasyczny język programowania, taki jak C, składający się z bloków i instrukcji.
Język Super Palio w porównaniu z kodem klasycznym jPALIO:
Kod Super Palio jest umieszczany jako blok w obiektach typu jPALIO Classic. Taki blok jest rozpoczynany znakami ${ i kończony znakiem }.
Konstrukcja | Kod jPALIO | Kod Super Palio |
wypisanie tekstu na ekran | Ala ma kota | "Ala ma kota"; |
inicjalizacja zmiennej lokalnej | $=(@name, "Some value") $=("@name", Some value) $=(@name, Some value) $=("@name", "Some value") |
@name = "Some value"; |
konkatenacja ciągów znaków | $+(["Ala ma ", $@catName, " i ", $@dogName]) | "Ala ma " + @catName + " i " + @dogName; |
operacje arytmetyczne | $+($*($@i, 2), 1) | @i * 2 + 1; |
operacje logiczne | $>($@i, 3) | @i > 3; |
instrukcja if | $if($and($>($@i, 3), $<=($@j, 2)), { ... }) |
if(@i > 3 && @j <= 2, { "..."; }); |
trzyargumentowy warunek | $?($>($@i, 3), "more", "less") | @i > 3 ? "more" : "less"; |
instrukcja for | $for(@row, $@data, { ... }) | for("@row", @data, { "..."; }); |
Przykład 1: Lista użytkowników systemu z ilością sesji, oraz średnia ilość sesji na użytkownika.
Treść strony HTML generowana jest za pomocą klasycznego kodu jPALIO, natomiast inicjalizacja zmiennych i wszelkie obliczenia ujęte są we wstawkach Super Palio w celu skrócenia zapisu i poprawienia czytelności kodu.
${
@data = sql.read("select LOGIN,(select count(1) from P_SESSIONS where P_USER_ID=P_USERS.ID) from P_USERS order by LOGIN");
@i = (Object[])null;
@sum = 0;
}
<table border="1">
<tr><th>Login</th><th>Sesje</th></tr>
$for("@i", $@data, {
${ @sum = @sum + (Long)@i[1]; }
<tr><td>$@i[0]</td><td>$@i[1]</td></tr>
})
</table>
<p>Average sessions per user: ${ mth.round(@sum / util.length(@data)); }</p>
Przykład 2: To samo co poprzednio, ale w całości w kodzie Super Palio.
${
@data = sql.read("select LOGIN,(select count(1) from P_SESSIONS where P_USER_ID=P_USERS.ID) from P_USERS order by LOGIN");
@i = (Object[])null;
@sum = 0;
"<table border=\"1\">";
"<tr><th>Login</th><th>Sesje</th></tr>";
for("@i", @data, {
@sum = @sum + (Long)@i[1];
"<tr><td>"; @i[0]; "</td><td>"; @i[1]; "</td></tr>";
});
"</table>";
"<p>Average sessions per user: "; mth.round(@sum / util.length(@data)); "</p>";
}