Lexx59
Профессор
- Регистрация
- 9 Янв 2009
- Сообщения
- 183
- Реакции
- 38
- Автор темы
- #1
Есть сниппет-парсер:
[[parseRSS]]
У него внутри есть параметр - $url - выделен зеленым.
Как переделать снипет так, чтобы url можно было задавать параметром при вызове сниппета?
Типа [[parseRSS?URL=`http://rss.org/catalog.php?ID=CZduXYymiAJ`]]
Пытался разобраться как передаются параметры в WayFinder - но слишком сложно для меня на текущий момент
[[parseRSS]]
Код:
<?php
/**********************************************************
* Parse XML data into an array structure *
* Usage: array parse_rss ( string data ) *
**********************************************************/
function parse_rss($reg_exp, $xml_data) {
preg_match_all($reg_exp, $xml_data, $temp);
return array(
'count'=>count($temp[0]),
'title'=>$temp[1],
'link'=>$temp[2],
'desc'=>$temp[3],
'pubdate'=>$temp[4] //добавлено
);
}
/**********************************************************
* Parse Array data into an HTML structure *
* Usage: string parse_rss ( array data ) *
**********************************************************/
function output_rss($pattern, $rss_data) {
$temp = "";
for($i=0; $i<$rss_data['count']; $i++) {
$temp .= sprintf($pattern,
$rss_data['link'][$i],
html_entity_decode($rss_data['title'][$i]),
html_entity_decode($rss_data['desc'][$i]),
$rss_data['pubdate'][$i] //добавлено
);
}
return $temp;
}
/**********************************************************
* Settings *
**********************************************************/
[SIZE="5"][COLOR="SeaGreen"][B]$url = 'http://rss.org/catalog.php?ID=CZduXYymiAJ';[/B][/COLOR][/SIZE]
$reg_exp = '#<item>.*?<title>(.*?)<\/title>.*?';
$reg_exp .='<link>(.*?)<\/link>.*?<description>';
$reg_exp .='(.*?)<\/description>.*?<pubDate>'; //исправлено
$reg_exp .= '(.*?)<\/pubDate>.*?<\/item>#si'; //добавлено
$pattern = '<a href="%s">%s</a><br>Date: %s<hr>';
/**********************************************************
* Main script *
**********************************************************/
if ( $xml_data = file_get_contents($url) ) {
$rss_data = parse_rss($reg_exp, $xml_data);
echo output_rss($pattern, $rss_data);
}
/**********************************************************
* The END *
**********************************************************/
?>
Как переделать снипет так, чтобы url можно было задавать параметром при вызове сниппета?
Типа [[parseRSS?URL=`http://rss.org/catalog.php?ID=CZduXYymiAJ`]]
Пытался разобраться как передаются параметры в WayFinder - но слишком сложно для меня на текущий момент
