U mě na webu jsem si podobnou úpravu udělal. Úprava umožnuje vybrat si 3 druhy rubrik při jejich tvorbě.Buď rubriku jednoho typu, druhého a nebo neviditelnou. První dvě se pouze odděleně vypisují, jinak je možno jednu vypustit a mít pouze neviditelný typ a viditelný. Já to mám rozděleno na rubriky "Reportáže (země)", "Články a informace" a pak neviditelnou rubriku "Aktuality". Je to vidět na [
http://www.ww2-memorials.com/index.php?akce=temata] . Sand to bude aspoň trochu srozumitelný a někomu to pomůže. Upravené soubory přikládám...
PS: Je dobrý si nový slova přidat do slovníků.
První věc je přidat sloupec do tabulky rs_topic.
ALTER TABLE rs_topic
ADD (typ integer);
a upravit hodnoty null v tomto sloupci u všech rubrik na 0,1 nebo 2 například tímto:
UPDATE rs_topic SET typ=0 WHERE nazev =
(název nějaké rubriky);
Úpravu hodnot ve sloupci si samoudřejmě můžete udělat i jinak, hromadně a pak vše opravit v administraci.
admin/atopic.php
ve fci AddTopic() doplnit (červený text) před řádek 126:
<tr class=\"txt\">
<td align=\"left\"><b>Typ rubriky</b></td>
<td align=\"left\"><input type=\"radio\" name=\"typ\" value=\"1\" checked=\"checked\" />Nějaký druh<input type=\"radio\" name=\"typ\" value=\"0\" />Jiná <input type=\"radio\" name=\"typ\" value=\"2\" />Neviditelná</td></tr>
</table>
....
ve fci AcAddTopic() doplnit (červený text) ZA řádek 126:
...
$GLOBALS["probrazek"]=mysql_escape_string($GLOBALS["probrazek"]);
$GLOBALS["typ"]=mysql_escape_string($GLOBALS["typ"]);
...
a řádek 151 upravit na:
$dotaz.="values(null,'".$GLOBALS["prnazev"]."','".$GLOBALS["prpopis"]."','".$GLOBALS["probrazek"]."','0','".$prlevel."','0','".$pridpredek."','".$GLOBALS["typ"]."')";
ve fci EditTopic() upravit řádek 215:
$dotaztema=mysql_query("select nazev,popis,obrazek,pocitadlo,level,typ from ".$GLOBALS["rspredpona"]."topic where idt='".$GLOBALS["pridt"]."'",$GLOBALS["dbspojeni"]);
a taky doplnit (červený text) ZA řádek 241:
...
<tr class=\"txt\"><td align=left><b>".RS_TOP_SR_FORM_VNORENI."</b></td>
<tr class=\"txt\">
<td align=\"left\"><b>Typ rubriky</b></td>
<td align=\"left\"><input type=\"radio\" name=\"typ\" value=\"1\" ";
if ($poleprom["typ"]=="1"): echo "checked=\"checked\""; endif;
echo " />Nějaký druh<input type=\"radio\" name=\"typ\" value=\"0\" ";
if ($poleprom["typ"]=="0"): echo "checked=\"checked\""; endif;
echo " />Jiná<input type=\"radio\" name=\"typ\" value=\"2\" ";
if ($poleprom["typ"]=="2"): echo "checked=\"checked\""; endif;
echo " />Neviditelná</td></tr>
...
ve fci AcEditTopic() doplnit (červený text) ZA řádek 262:
$GLOBALS["probrazek"]=mysql_escape_string($GLOBALS["probrazek"]);
$GLOBALS["typ"]=mysql_escape_string($GLOBALS["typ"]);
a upravit řádek 264
@$error=mysql_query("update ".$GLOBALS["rspredpona"]."topic set nazev='".$GLOBALS["prnazev"]."', popis='".$GLOBALS["prpopis"]."', obrazek='".$GLOBALS["probrazek"]."', typ='".$GLOBALS["typ"]."' where idt='".$GLOBALS["pridt"]."'",$GLOBALS["dbspojeni"]);
engine.php
Funkci ShowTopics() jsem prakticky jen zkopíroval a upravil podmínky takže je to vlasně 2x se opakující kód.
function ShowTopics()
{
echo "<h1 class=\"nadpis\">Rubriky</h1>\n"; // nadpis
$dotaztopic=mysql_query("select idt,nazev,obrazek from ".$GLOBALS["rspredpona"]."topic where typ = 1 order by nazev",$GLOBALS["dbspojeni"]);
$pocettopic=mysql_num_rows($dotaztopic);
if ($pocettopi.................
Hafo řádků
................=$akt_sl;$pom<=$pocet_sl;$pom++):
echo "<td></td>\n";
endfor;
echo "</tr>\n";
endif;
// konec table
echo "</table>\n";
endif;
echo "<p style=\"height: 20px;\" ></p>\n";
// TADY TU SAMOU ČÁST KÓDU ZKOPÍRUJTE ALE UPRAVTE PODMÍNKU NA WHERE TYP=0
$dotaztopic0=mysql_query("select idt,nazev,obrazek from ".$GLOBALS["rspredpona"]."topic where typ = 0 order by nazev",$GLOBALS["dbspojeni"]);
$pocettopic0=mysql_num_rows($dotaztopic0);
if ($pocettopi................
Hafo řádků
................akt_sl;$pom<=$pocet_sl;$pom++):
echo "<td></td>\n";
endfor;
echo "</tr>\n";
endif;
// konec table
echo "</table>\n";
endif;
echo "<p></p>\n";
}
Dawe
[
http://ww2-memorials.com]
PHP antitalent