RkBlog

Hardware, programming and astronomy tutorials and reviews.

Proste moduły w Postnuke i MD-Pro

Opis tworzenia prostych modułów w MD-Pro oraz Postnuke.

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");
?>
Następnie w panelu admina regeneruj listę modułów i aktywuj moduł "zabawa" :) Gdy już jest aktywny udaj się na swoją stronę pod adres modules.php?op=modload&name=zabawa&file=index. Powinien wyświetlić sie tekst "witaj w swoim pierwszym module" :) Tak właśnie stworzyłeś swój pierwszy moduł. Przyjżyj się kodowi. Między OpenTable(); a CloseTable(); wprowadzamy zawartość modułu. W tym przypadku prosty tekst, lecz równie dobrze może być to rozbudowany kod PHP. Oto przykład (kod umieść między Open i CloseTable):
<?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";
Wyświetli się coś takiego:
Badane liczby to 1 i 3. Ich suma wynosi 4.
Badany tekst to
jesszcze 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).

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;
}
?>
Wrzucamy cały kod (oczywiście bez 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");
?>
Następnie w panelu admina regeneruj listę modułów i aktywuj moduł "zabawa" :) Gdy już jest aktywny udaj się na swoją stronę pod adres modules.php?op=modload&name=zabawa&file=index. Powinien wyświetlić sie tekst "witaj w swoim pierwszym module" :) Tak właśnie stworzyłeś swój pierwszy moduł. Przyjżyj się kodowi. Między OpenTable(); a CloseTable(); wprowadzamy zawartość modułu. W tym przypadku prosty tekst, lecz równie dobrze może być to rozbudowany kod PHP. Oto przykład (kod umieść między Open i CloseTable):
<?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";
Wyświetli się coś takiego:
Badane liczby to 1 i 3. Ich suma wynosi 4.
Badany tekst to
jesszcze 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).

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;
}
?>
Wrzucamy cały kod.
RkBlog

11 July 2008;

Comment article