RkBlog

Hardware, programming and astronomy tutorials and reviews.

Kanały RSS dla 4images

4images posiada kanał rss - wystarczy otworzyć w przeglądarce plik /rss.php
Notka: niektóre skórki mogą nie mieć wszystkich szablonów - mogą nie być zgodne z najnowszymi wersjami a rss.php pojawiło się niedawno. Należy skopiować brakujące pliki z domyślnej skórki.
Poniższy kod generuje dodatkowe kanały RSS. Zapisujemy w pliku rss_extra.php i wrzucamy do głównego katalogu 4images gallery. Jeżeli tabele galerii mają inny prefiks to modyfikujemy nazwę tabeli "4images_images":
<?php
<?PHP
$sitename = '4images'; // nazwa strony
$sitelink = 'http://localhost/html/4images/'; //link do strony
$sitedesc = 'opis'; // opis strony
$sitelogo = 'logo'; // url do loga

define('GET_CACHES', 1);
define('ROOT_PATH', './');
define('GET_USER_ONLINE', 1);
include(ROOT_PATH.'global.php');
require(ROOT_PATH.'includes/sessions.php');
$user_access = get_permission();

// rss.php?type=last_img
IF($_GET['type'] == 'last_img')
	{
	$sql = "SELECT image_id, cat_id, image_name, image_thumb_file FROM 4images_images ORDER BY image_date DESC LIMIT 1";
	$result = $site_db->query($sql);
	$out = $site_db->fetch_array($result);
	header("Content-Type: text/xml; charset=iso-8859-2");
		echo '<?xml version="1.0" encoding="iso-8859-2"?><rss version="2.0">
		<channel>
		<title>'.$sitename.'</title>
		<link>'.$sitelink.'</link>
		<description>'.$sitedesc.'</description>';
		echo "
";
		echo '<image>
		<title>'.$sitename.'</title>
		<url>'.$sitelogo.'</url>
		<link>'.$sitelink.'</link>
		</image>';
		echo "
";
			echo '<item>
			<title>'.$out['image_name'].'</title>
			<description><![CDATA[<img src="'.$sitelink.'/data/thumbnails/'.$out['cat_id'].'/'.$out['image_thumb_file'].'" border="0">]]></description>
			<link>'.$sitelink.'details.php?image_id='.$out['image_id'].'</link>
			</item>';
			echo "
";
		echo '
		</channel>
		</rss>';
	}
// rss.php?type=random_img
IF($_GET['type'] == 'random_img')
	{
	$sql = "SELECT image_id, cat_id,image_name, image_thumb_file FROM 4images_images ORDER BY RAND() LIMIT 10";
	$result = $site_db->query($sql);
	header("Content-Type: text/xml; charset=iso-8859-2");
		echo '<?xml version="1.0" encoding="iso-8859-2"?><rss version="2.0">
		<channel>
		<title>'.$sitename.'</title>
		<link>'.$sitelink.'</link>
		<description>'.$sitedesc.'</description>';
		echo "
";
		echo '<image>
		<title>'.$sitename.'</title>
		<url>'.$sitelogo.'</url>
		<link>'.$sitelink.'</link>
		</image>';
		while ($res = $site_db->fetch_array($result))
			{
			echo '<title>'.$out['image_name'].'</title>
			<description><![CDATA[<img src="'.$sitelink.'/data/thumbnails/'.$res['cat_id'].'/'.$res['image_thumb_file'].'" border="0">]]></description>
					<link>'.$sitelink.'details.php?image_id='.$res['image_id'].'</link>';
			}
		echo '
		</channel>
		</rss>';
	}
// rss.php?type=last_list
elseIF($_GET['type'] == 'last_list')
	{
	$sql = "SELECT image_id, image_name FROM 4images_images ORDER BY image_date DESC LIMIT 5";
	$result = $site_db->query($sql);
	header("Content-Type: text/xml; charset=iso-8859-2");
		echo '<?xml version="1.0" encoding="iso-8859-2"?><rss version="2.0">
		<channel>
		<title>'.$sitename.'</title>
		<link>'.$sitelink.'</link>
		<description>'.$sitedesc.'</description>';
		echo "
";
		echo '<image>
		<title>'.$sitename.'</title>
		<url>'.$sitelogo.'</url>
		<link>'.$sitelink.'</link>
		</image>';
		echo "
";
		while ($res = $site_db->fetch_array($result))
			{
			echo '<item>
			<title>'.$res['image_name'].'</title>
			<link>'.$sitelink.'details.php?image_id='.$res['image_id'].'</link>
			</item>';
			echo "
";
			}
		echo '
		</channel>
		</rss>';
	}
// rss.php?type=last_list_cat&cat_num=LICZBA (liczba - numer kategorii/podkategorii)
elseIF($_GET['type'] == 'last_list_cat' and is_numeric($_GET['cat_num']))
	{
	$sql = "SELECT image_id, image_name FROM 4images_images WHERE cat_id = '".$_GET['cat_num']."' ORDER BY image_date DESC LIMIT 5 ";
	$result = $site_db->query($sql);
	header("Content-Type: text/xml; charset=iso-8859-2");
		echo '<?xml version="1.0" encoding="iso-8859-2"?><rss version="2.0">
		<channel>
		<title>'.$sitename.'</title>
		<link>'.$sitelink.'</link>
		<description>'.$sitedesc.'</description>';
		echo "
";
		echo '<image>
		<title>'.$sitename.'</title>
		<url>'.$sitelogo.'</url>
		<link>'.$sitelink.'</link>
		</image>';
		echo "
";
		while ($res = $site_db->fetch_array($result))
			{
			echo '<item>
			<title>'.$res['image_name'].'</title>
			<link>'.$sitelink.'details.php?image_id='.$res['image_id'].'</link>
			</item>';
			echo "
";
			}
		echo '
		</channel>
		</rss>';
	}
Wystarczy wejść na rss_extra.php:
- rss.php?type=last_img: ostatni screen
- rss.php?type=random_img: losowy screen
- rss.php?type=last_list: ostatnie 5 screenów, lista
- rss.php?type=last_list_cat&cat_num=LICZBA: ostatnie 5 screenów z danej kategorii/podkategorii (LICZBA = nr. kategorii/podkategorii), lista.
RkBlog

Zarządzanie Multimediami, 11 July 2008, Piotr Maliński

Comment article