Proste moduły w Postnuke i MD-Pro
11 July 2008
Comments
Niniejszy tutorial nauczy cię tworzyć proste moduły do Postnuka, MD-Pro i Envolution. Proste moduły czyli takie, które nie mają swego panelu w panelu admin i nie są zbyt skomplikowane jeżeli chodzi o kod. Znajomość PHP wymagana.
Zaczynamy
Na początek w katalogu modules stwórz katalog np "zabawa". Następnie w katalogu tym dodaj plik index.php o następującym kodzie:<?php
$module_name = "zabawa";
if (!eregi("modules.php", $PHP_SELF)) { die ("You can't access this file directly..."); }
$index = 0;
global $admin, $user, $module_name;
include("header.php");
OpenTable();
echo 'Witaj w swoim pierwszym module';
CloseTable();
include ("footer.php");
?>
<?php
$a = 1;
$b = 3;
$tekst = 'jesszcze jeeden i jesszcze ras...';
$wynik = $a+$b;
IF (strlen($tekst)>10) {
$koment = 'tekst jest długi';
} else {
$koment = 'tekst jest krótki';
}
echo "Badane liczby to $a i $b. Ich suma wynosi $wynik.<br />
Badany tekst to <b><center>$tekst</center></b> komentarz: $koment";
Badane liczby to 1 i 3. Ich suma wynosi 4.
Badany tekst tojesszcze jeeden i jesszcze ras... komentarz: tekst jest długi
Gdy już opanowaliśmy podstawy tworzenia modułów przejdziemy do "konwertowania" skryptów zewnętrznych na moduły. Powracając na chwilę do linku modules.php?op=modload&name=zabawa&file=index. Jego "składnia" jest prosta: modules.php?op=modload&name=[nazwa modułu]&file=[plik modułu], np dla modułu o nazwie "dmoz" i pliku "odp.php" link wyglądałby tak: modules.php?op=modload&name=dmoz&file=odp (nie ma .php).Badany tekst to
Konwertowanie
- W przypadku skryptów składających się z 1 pliku, które tylko coś wyświetlają sprawa jest prosta. Cały kod umieszczamy między Open i CloseTable. Np. mamy taki skrypt czytający plik XML ze wskazanego adresu:<?php
< ? php
/*
RSS parser written for bMachine feed.
Written by Kailash Nadh,
http://bnsoft.net , kailash@bnsoft.net
*/
$url="http://localhost/html/rkcms/backend.php";
$data=@fread(fopen("$url","r"),10000) or die("Cant open $url!");
$myar=getXmlData($data);
for($i=0;$i<=count($myar[TITLE]);$i++) {
$title=$myar[TITLE][$i];
$link=$myar[LINK][$i];
IF ($i==1) {
echo "<b>$title</b>";
}
IF ($i>=2 and $title!='') {
echo "<LI><a href="$link">$title</a><br />";
}
}
// This is the function. It returns the array of the parsed XML data
function getXmlData($xml_doc) {
$n=0;
$ar=array();
$parser = xml_parser_create();
xml_parse_into_struct($parser,$xml_doc,$vals,$index) or die(xml_error_string(xml_get_error_code($parser)));
xml_parser_free($parser);
$ttags=array();
for($n=0;$n<=count($vals)-1;$n++) {
if(trim($vals[$n][value])) {
$ar[$vals[$n][tag]][count($ar[$vals[$n][tag]])]=$vals[$n][value];
$ttags[$vals[$n][tag]]=$vals[$n][tag];
}
}
$tags=array();
foreach($ttags as $tagi) { array_push($tags,$tagi); }
return $ar;
}
?>
Zaczynamy
Na początek w katalogu modules stwórz katalog np "zabawa". Następnie w katalogu tym dodaj plik index.php o następującym kodzie:<?php
$module_name = "zabawa";
if (!eregi("modules.php", $PHP_SELF)) { die ("You can't access this file directly..."); }
$index = 0;
global $admin, $user, $module_name;
include("header.php");
OpenTable();
echo 'Witaj w swoim pierwszym module';
CloseTable();
include ("footer.php");
?>
<?php
$a = 1;
$b = 3;
$tekst = 'jesszcze jeeden i jesszcze ras...';
$wynik = $a+$b;
IF (strlen($tekst)>10) {
$koment = 'tekst jest długi';
} else {
$koment = 'tekst jest krótki';
}
echo "Badane liczby to $a i $b. Ich suma wynosi $wynik.<br />
Badany tekst to <b><center>$tekst</b></center> komentarz: $koment";
Badane liczby to 1 i 3. Ich suma wynosi 4.
Badany tekst tojesszcze jeeden i jesszcze ras... komentarz: tekst jest długi
Gdy już opanowaliśmy podstawy tworzenia modułów przejdziemy do "konwertowania" skryptów zewnętrznych na moduły. Powracając na chwilę do linku modules.php?op=modload&name=zabawa&file=index. Jego "składnia" jest prosta: modules.php?op=modload&name=[nazwa modułu]&file=[plik modułu], np dla modułu o nazwie "dmoz" i pliku "odp.php" link wyglądałby tak: modules.php?op=modload&name=dmoz&file=odp (nie ma .php).Badany tekst to
Konwertowanie
- W przypadku skryptów składających się z 1 pliku, które tylko coś wyświetlają sprawa jest prosta. Cały kod umieszczamy między Open i CloseTable. Np. mamy taki skrypt czytający plik XML ze wskazanego adresu:<?php
< ? php
/*
RSS parser written for bMachine feed.
Written by Kailash Nadh,
http://bnsoft.net , kailash@bnsoft.net
*/
$url="http://localhost/html/rkcms/backend.php";
$data=@fread(fopen("$url","r"),10000) or die("Cant open $url!");
$myar=getXmlData($data);
for($i=0;$i<=count($myar[TITLE]);$i++) {
$title=$myar[TITLE][$i];
$link=$myar[LINK][$i];
IF ($i==1) {
echo "<b>$title</b>";
}
IF ($i>=2 and $title!='') {
echo "<LI><a href="$link">$title</a><br />";
}
}
// This is the function. It returns the array of the parsed XML data
function getXmlData($xml_doc) {
$n=0;
$ar=array();
$parser = xml_parser_create();
xml_parse_into_struct($parser,$xml_doc,$vals,$index) or die(xml_error_string(xml_get_error_code($parser)));
xml_parser_free($parser);
$ttags=array();
for($n=0;$n<=count($vals)-1;$n++) {
if(trim($vals[$n][value])) {
$ar[$vals[$n][tag]][count($ar[$vals[$n][tag]])]=$vals[$n][value];
$ttags[$vals[$n][tag]]=$vals[$n][tag];
}
}
$tags=array();
foreach($ttags as $tagi) { array_push($tags,$tagi); }
return $ar;
}
?>
RkBlog
Comment article