sorbetcms/api.php

151 lines
5.9 KiB
PHP

<?php
if(!defined('entry')) define('entry',true);
/* ===========================
gelato CMS - A PHP based tumblelog CMS
development version
http://www.gelatocms.com/
gelato CMS is a free software licensed under the GPL 2.0
Copyright (C) 2007 by Pedro Santana <pecesama at gmail dot com>
=========================== */
?>
<?php
header("Content-type: text/xml; charset=utf-8");
$isFeed = true;
require('entry.php');
global $user, $conf, $tumble;
$f = new feeds();
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<gelato version="1.0">
<?php
if (isset($_GET["action"]) && $_GET["action"] == "read") {
if (isset($_GET["start"])) { $start = $_GET["start"]; } else { $start = 0; }
if (isset($_GET["total"])) { $total = $_GET["total"]; } else { $total = 20; }
if (isset($_GET["type"])) { $hasType = true; } else { $hasType = false; }
if ($total > 50) { $total = 50; }
$user = new user();
$userData = $user->getUserByID(1);
$username = ($userData["name"] == "") ? "gelato" : $userData["name"];
?>
<tumblelog name="<?php echo $username;?>" timezone="<?php echo $conf->offsetCity;?>" title="<?php echo $conf->title;?>">
<?php
echo "\n\t".$conf->description."\n";
?>
<feeds>
<?php
$actual_feeds = $f->getFeedList();
foreach($actual_feeds as $feed){
$error_text = ($feed["error"]>0) ? "false" : "true";
?>
<feed id="<?php echo $feed["id_feed"];?>" url="<?php echo htmlspecialchars($feed["url"]);?>" import-type="<?php echo type2Text($feed["type"]);?>" next-update-in-seconds="<? echo $f->getNextUpdate($feed["id_feed"]);?>" title="<?php echo htmlspecialchars($feed["title"]);?>" error-text="<? echo $error_text;?>"/>
<?php
}
?>
</feeds>
</tumblelog>
<?php
if ($hasType) {
$postType = type2Number($_GET["type"]);
}
$rs = $tumble->getPosts($total, $start);
if ($db->contarRegistros()>0) {
?>
<posts start="<?php echo $start; ?>" total="<?php echo $total; ?>">
<?php
while($register = mysql_fetch_array($rs)) {
$desc = util::trimString($register["description"]);
$strEnd = ($conf->urlFriendly) ? "/" : "";
$url = $conf->urlGelato.($conf->urlFriendly ? "/post/" : "/index.php?post=").$register["id_post"].$strEnd;
$formatedDate = gmdate("D, d M Y H:i:s", strtotime($register["date"]) + util::transform_offset($conf->offsetTime));
switch ($register["type"]) {
case "1":
$tit = (empty($register["title"])) ? $desc : strip_tags($register["title"]);
?>
<post id="<?php echo $register["id_post"]; ?>" url="<?php echo $url;?>" type="regular" date="<?php echo $formatedDate;?>">
<regular-title><?php echo $tit;?></regular-title>
<regular-body><?php echo $desc;?></regular-body>
</post>
<?php
break;
case "2":
$tit = (empty($register["description"])) ? "Photo" : $desc;
?>
<post id="<?php echo $register["id_post"]; ?>" url="<?php echo $url;?>" type="photo" date="<?php echo $formatedDate;?>">
<?php
$photoPath = str_replace("../", $conf->urlGelato."/", $register["url"]);
?>
<photo-caption><?php echo stripslashes($tit);?></photo-caption>
<photo-url><?php echo $photoPath;?></photo-url>
</post>
<?php
break;
case "3":
?>
<post id="<?php echo $register["id_post"]; ?>" url="<?php echo $url;?>" type="quote" date="<?php echo $formatedDate;?>">
<quote-text><?php echo $desc; ?></quote-text>
<quote-source><?php echo strip_tags($register["title"]); ?></quote-source>
</post>
<?php
break;
case "4":
$tit = (empty($register["title"])) ? $register["url"] : strip_tags($register["title"]);
?>
<post id="<?php echo $register["id_post"]; ?>" url="<?php echo $url;?>" type="link" date="<?php echo $formatedDate;?>">
<link-text><?php echo $tit; ?></link-text>
<link-url><?php echo $register["url"]; ?></link-url>
</post>
<?php
break;
case "5":
$lines = explode("\n", $desc);
$line = $lines[0];
$tit = (empty($register["title"])) ? trimString($line) : $register["title"];
$desc = $tumble->formatConversation($desc);
?>
<post id="<?php echo $register["id_post"]; ?>" url="<?php echo $url;?>" type="conversation" date="<?php echo $formatedDate;?>">
<conversation-title><?php echo $tit; ?></conversation-title>
<conversation-text><?php echo $desc; ?></conversation-text>
<?php echo $tumble->formatApiConversation($desc); ?>
</post>
<?php
break;
case "6":
$tit = (empty($register["description"])) ? "Video" : $desc;
$desc = $tumble->getVideoPlayer($register["url"]);
?>
<post id="<?php echo $register["id_post"]; ?>" url="<?php echo $url;?>" type="video" date="<?php echo $formatedDate;?>">
<video-caption><?php echo $tit; ?></video-caption>
<video-source><?php echo $register["url"]; ?></video-source>
<video-player><?php echo htmlspecialchars($desc); ?></video-player>
</post>
<?php
break;
case "7":
$tit = (empty($register["description"])) ? "Audio" : $desc;
$desc = $tumble->getMp3Player($register["url"]);
?>
<post id="<?php echo $register["id_post"]; ?>" url="<?php echo $url;?>" type="audio" date="<?php echo $formatedDate;?>">
<audio-caption><?php echo $tit; ?></audio-caption>
<audio-player><?php echo htmlspecialchars($desc); ?></audio-player>
</post>
<?php
break;
}
}
?>
</posts>
<?php
}
}
?>
</gelato>