Joomla 5.2.2 Security & Bugfix Release
Joomla 5.2.2 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 5.x.
Stránka s vlastním PHP
28. úno 2015 11:17 #120484
Odpověď od Jakub Filip
Uživatel
Zdravím,
Dle dokumentace Joomly jsem vytvořil jednoduchou komponentu, ale má problém s instalací. Na lokálu (WampServer, Apache 2.2.22. PHP 5.3.13) mi instalace proběhne úspěšně ale na stránkách mi to hodí chybu:
Warning
JInstaller: :Install: Cannot find XML setup file
JInstaller: :Install: Cannot find XML setup file
Copy failed
Joomla je verze 3.3.6 a s instalací jiných komponent jsem problém neměl. Zkoušel jsem jak instalovat balík, tak i ze složky tmp.
zde obsah xml souboru:
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.3.0" method="upgrade">
<name>Krouzky</name>
<!-- The following elements are optional and free of formatting constraints -->
<creationDate>February 2015</creationDate>
<author>Autor</author>
<authorEmail>Email</authorEmail>
<authorUrl>h</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
<!-- The version string is recorded in the components table -->
<version>0.0.1</version>
<!-- The description is optional and defaults to the name -->
<description>Vypis krouzku z Domecku</description>
<update> <!-- Runs on update; New since J2.5 -->
<schemas>
<schemapath type="mysql">sql/updates/mysql</schemapath>
</schemas>
</update>
<!-- Site Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /site/ in the package -->
<files folder="site">
<filename>index.html</filename>
<filename>krouzky.php</filename>
</files>
<administration>
<!-- Administration Menu Section -->
<menu link='index.php?option=com_krouzky'>Kroužky</menu>
<!-- Administration Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /admin/ in the package -->
<files folder="admin">
<!-- Admin Main File Copy Section -->
<filename>index.html</filename>
<filename>krouzky.php</filename>
<!-- SQL files section -->
<folder>sql</folder>
</files>
</administration>
</extension>
Projíždím fóra, kde se dá. Ale zatím se mi to nepodařilo vyřešit. Máte nějaký nápad. Díky
Dle dokumentace Joomly jsem vytvořil jednoduchou komponentu, ale má problém s instalací. Na lokálu (WampServer, Apache 2.2.22. PHP 5.3.13) mi instalace proběhne úspěšně ale na stránkách mi to hodí chybu:
Warning
JInstaller: :Install: Cannot find XML setup file
JInstaller: :Install: Cannot find XML setup file
Copy failed
Joomla je verze 3.3.6 a s instalací jiných komponent jsem problém neměl. Zkoušel jsem jak instalovat balík, tak i ze složky tmp.
zde obsah xml souboru:
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.3.0" method="upgrade">
<name>Krouzky</name>
<!-- The following elements are optional and free of formatting constraints -->
<creationDate>February 2015</creationDate>
<author>Autor</author>
<authorEmail>Email</authorEmail>
<authorUrl>h</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
<!-- The version string is recorded in the components table -->
<version>0.0.1</version>
<!-- The description is optional and defaults to the name -->
<description>Vypis krouzku z Domecku</description>
<update> <!-- Runs on update; New since J2.5 -->
<schemas>
<schemapath type="mysql">sql/updates/mysql</schemapath>
</schemas>
</update>
<!-- Site Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /site/ in the package -->
<files folder="site">
<filename>index.html</filename>
<filename>krouzky.php</filename>
</files>
<administration>
<!-- Administration Menu Section -->
<menu link='index.php?option=com_krouzky'>Kroužky</menu>
<!-- Administration Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /admin/ in the package -->
<files folder="admin">
<!-- Admin Main File Copy Section -->
<filename>index.html</filename>
<filename>krouzky.php</filename>
<!-- SQL files section -->
<folder>sql</folder>
</files>
</administration>
</extension>
Projíždím fóra, kde se dá. Ale zatím se mi to nepodařilo vyřešit. Máte nějaký nápad. Díky
28. úno 2015 11:48 #120487
Odpověď od Cony
Moderátor
No pokud to na lokále funguje, problém bude spíš na serveru. Opravdu vám (i nyní) instalace jiných komponent funguje?
28. úno 2015 11:54 #120488
Odpověď od Jakub Filip
Uživatel
Pro upřesnění uvádím strukturu vytvořené komponenty.
v balíčku ZIP mám:
admin
- sql
- - updates
- - - mysql
- - - - 0.0.1.sql
- - - - index.html
- - - index.html
- - index.html
- krouzky.php
- index.html
site
- krouzky.php
- index.html
krouzky.xml
Obsah souboru krouzky.xml viz předchozí příspěvek
Obsah všech souborů index.html je stejný a to <html><body bgcolor="#FFFFFF"></body></html>
Obsah souboru 0.0.1.sql je prázdný
Obsah souboru admin / krouzky.php je prostý text
Obsah souboru site / krouzky.php je můj PHP kód
Prosím poraďte
v balíčku ZIP mám:
admin
- sql
- - updates
- - - mysql
- - - - 0.0.1.sql
- - - - index.html
- - - index.html
- - index.html
- krouzky.php
- index.html
site
- krouzky.php
- index.html
krouzky.xml
Obsah souboru krouzky.xml viz předchozí příspěvek
Obsah všech souborů index.html je stejný a to <html><body bgcolor="#FFFFFF"></body></html>
Obsah souboru 0.0.1.sql je prázdný
Obsah souboru admin / krouzky.php je prostý text
Obsah souboru site / krouzky.php je můj PHP kód
Prosím poraďte
28. úno 2015 11:55 #120489
Odpověď od Jakub Filip
Uživatel
Ano, nyní jsem zkusil instalaci komponenty DircetPHP a v pořádku
28. úno 2015 12:01 #120491
Odpověď od Jakub Filip
Uživatel
Na lokále sice proběhne instalace v pořádku, ale stránka s mým PHP kódem vyhazuje chyby. Pokud ovšem můj PHP kód hodím na stránky do zvláštní složky, tak to běhá bez problémů.
Můj PHP kód. Tečkama jsem skryl "citlivá" data:
<meta charset="utf8">
<link rel="stylesheet" href="/templates/protostar/css/krouzky.css" type="text/css">
<div class="krouzky">
<?php
$domain = ....;
$key = ".......";
if($_GET["id"] == "") {
$kategorie = json_decode(file_get_contents("https:/........./admin/json/1.0/api.php?domain=".$domain."&key=".$key."&action=hobby&task=get_categories"));
if($_GET["den"] == "") {
$den = 0;
} else {
$den = $_GET["den"];
}
if($_GET["kat"] == "") {
$kat = "";
} else {
$kat = $_GET["kat"];
}
echo "<div class='kr_kat'><h2>Kategorie</h2>";
echo '<a href="krouzky.php?kat=&den='.$den.'">Všechny kategorie</a><br>';
foreach($kategorie->data as $k => $v) {
echo '<a href="krouzky.php?kat='.$k.'&den='.$den.'">'.$v.'</a><br>';
}
echo "</div>";
echo "<div class='kr_den'><h2>Den konání</h2>";
echo '<a href="krouzky.php?kat='.$kat.'&den=0">Všechny dny</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=1">Pondělí</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=2">Úterý</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=3">Středa</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=4">Čtvrtek</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=5">Pátek</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=6">Sobota</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=7">Neděle</a><br>';
echo "</div>";
$list = json_decode(file_get_contents("https://........./admin/json/1.0/api.php?domain=".$domain."&key=".$key."&action=hobby&task=get_list&day=".$den."&category=".$kat.""));
if($list->error->code == 0) {
echo '<table class="kr_tab">';
echo '<tr><th width="80">Kód</th><th width="300">Název</th><th width="50">Věk</th><th width="80">Cena</th><th></th></tr>';
foreach($list->data as $v) {
echo '<tr><td>'.$v->kod.'</td>';
echo '<td class="nazev">'.$v->nazev.'</td>';
echo '<td>'.$v->vek_od.'-'.$v->vek_do.'</td>';
echo '<td>'.$v->cena_rok.' Kč</td>';
echo '<td><a href="krouzky.php?id='.$v->id.'">info</a></td></tr>';
}
echo '</table>';
}
} else {
$data = json_decode(file_get_contents("https://............./admin/json/1.0/api.php?domain=".$domain."&key=".$key."&action=hobby&task=get_id&id=".$_GET["id"]));
$detail = $data->data;
echo "<h2>Detail kroužku</h2>";
echo 'Název: '.$detail->nazev.'<br>';
echo 'Kód: '.$detail->kod.'<br>';
echo 'Místo: '.$detail->misto.'<br>';
echo 'Lektor: '.$detail->keltor.'<br>';
echo 'Kapacita 1. pol: '.$detail->kapacita_1pol.'<br>';
echo 'Kapacita 2. pol: '.$detail->kapacita_2pol.'<br>';
echo 'Věk od: '.$detail->vek_od.'<br>';
echo 'Věk do: '.$detail->vek_do.'<br>';
echo 'Cena vstup: '.$detail->cena_vstup.'<br>';
echo 'Cena 1. pol: '.$detail->cena_1pol.'<br>';
echo 'Cena 2. pol: '.$detail->cena_2pol.'<br>';
echo 'Cena rok: '.$detail->cena_rok.'<br>';
echo 'Zahájení: '.$detail->datum_zahajeni.'<br>';
echo 'Ukončení: '.$detail->datum_ukonceni.'<br>';
echo "<h3>Obrázky</h3>";
foreach($detail->obrazky as $obr) {
echo '<a href="'.$obr->obrazek.'" title="'.$obr->popis.'"><img src="'.$obr->nahled.'"></a> <br>';
echo '<a href="'.$obr->stazeni.'" title="'.$obr->popis.'">stáhnout</a> <br><br>';
}
echo "<h3>Dokumenty</h3>";
foreach($detail->dokumenty as $doc) {
echo '<a href="'.$doc->stazeni.'" title="'.$doc->popis.'">'.$doc->nazev.'</a><br>';
}
echo '<br><a href="krouzky.php">zpět</a>';
}
?>
</div>
Můj PHP kód. Tečkama jsem skryl "citlivá" data:
<meta charset="utf8">
<link rel="stylesheet" href="/templates/protostar/css/krouzky.css" type="text/css">
<div class="krouzky">
<?php
$domain = ....;
$key = ".......";
if($_GET["id"] == "") {
$kategorie = json_decode(file_get_contents("https:/........./admin/json/1.0/api.php?domain=".$domain."&key=".$key."&action=hobby&task=get_categories"));
if($_GET["den"] == "") {
$den = 0;
} else {
$den = $_GET["den"];
}
if($_GET["kat"] == "") {
$kat = "";
} else {
$kat = $_GET["kat"];
}
echo "<div class='kr_kat'><h2>Kategorie</h2>";
echo '<a href="krouzky.php?kat=&den='.$den.'">Všechny kategorie</a><br>';
foreach($kategorie->data as $k => $v) {
echo '<a href="krouzky.php?kat='.$k.'&den='.$den.'">'.$v.'</a><br>';
}
echo "</div>";
echo "<div class='kr_den'><h2>Den konání</h2>";
echo '<a href="krouzky.php?kat='.$kat.'&den=0">Všechny dny</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=1">Pondělí</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=2">Úterý</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=3">Středa</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=4">Čtvrtek</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=5">Pátek</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=6">Sobota</a><br>';
echo '<a href="krouzky.php?kat='.$kat.'&den=7">Neděle</a><br>';
echo "</div>";
$list = json_decode(file_get_contents("https://........./admin/json/1.0/api.php?domain=".$domain."&key=".$key."&action=hobby&task=get_list&day=".$den."&category=".$kat.""));
if($list->error->code == 0) {
echo '<table class="kr_tab">';
echo '<tr><th width="80">Kód</th><th width="300">Název</th><th width="50">Věk</th><th width="80">Cena</th><th></th></tr>';
foreach($list->data as $v) {
echo '<tr><td>'.$v->kod.'</td>';
echo '<td class="nazev">'.$v->nazev.'</td>';
echo '<td>'.$v->vek_od.'-'.$v->vek_do.'</td>';
echo '<td>'.$v->cena_rok.' Kč</td>';
echo '<td><a href="krouzky.php?id='.$v->id.'">info</a></td></tr>';
}
echo '</table>';
}
} else {
$data = json_decode(file_get_contents("https://............./admin/json/1.0/api.php?domain=".$domain."&key=".$key."&action=hobby&task=get_id&id=".$_GET["id"]));
$detail = $data->data;
echo "<h2>Detail kroužku</h2>";
echo 'Název: '.$detail->nazev.'<br>';
echo 'Kód: '.$detail->kod.'<br>';
echo 'Místo: '.$detail->misto.'<br>';
echo 'Lektor: '.$detail->keltor.'<br>';
echo 'Kapacita 1. pol: '.$detail->kapacita_1pol.'<br>';
echo 'Kapacita 2. pol: '.$detail->kapacita_2pol.'<br>';
echo 'Věk od: '.$detail->vek_od.'<br>';
echo 'Věk do: '.$detail->vek_do.'<br>';
echo 'Cena vstup: '.$detail->cena_vstup.'<br>';
echo 'Cena 1. pol: '.$detail->cena_1pol.'<br>';
echo 'Cena 2. pol: '.$detail->cena_2pol.'<br>';
echo 'Cena rok: '.$detail->cena_rok.'<br>';
echo 'Zahájení: '.$detail->datum_zahajeni.'<br>';
echo 'Ukončení: '.$detail->datum_ukonceni.'<br>';
echo "<h3>Obrázky</h3>";
foreach($detail->obrazky as $obr) {
echo '<a href="'.$obr->obrazek.'" title="'.$obr->popis.'"><img src="'.$obr->nahled.'"></a> <br>';
echo '<a href="'.$obr->stazeni.'" title="'.$obr->popis.'">stáhnout</a> <br><br>';
}
echo "<h3>Dokumenty</h3>";
foreach($detail->dokumenty as $doc) {
echo '<a href="'.$doc->stazeni.'" title="'.$doc->popis.'">'.$doc->nazev.'</a><br>';
}
echo '<br><a href="krouzky.php">zpět</a>';
}
?>
</div>
28. úno 2015 12:14 #120492
Odpověď od Jakub Filip
Uživatel
Ještě jedno doplnění. V komponentě nemám naprogramován Controller ani View. Musí být tato část naprogramována, když z Joomly budu chtít jen zobrazit šablonu a moduly?