<?php
if (!defined('entry') || !entry) {
    die('Not a valid page');
}
/* ===========================

  Sorbet CMS - A PHP based tumblelog CMS forked from Gelato CMS

  Sorbet CMS is a free software licensed under the GPL 3.0

  =========================== */
$util_class = new util();
class sorbet
{
    public $db;
    public $conf;

    public function __construct()
    {
        global $db;
        global $conf;

        $this->db = $db;
        $this->conf = $conf;
    }

    public function saveSettings($fieldsArray)
    {
        if ($this->db->modificarDeFormulario($this->conf->tablePrefix."config", $fieldsArray)) {
            header("Location: ".$this->conf->urlSorbet."/admin/settings.php?modified=true");
            die();
        } else {
            header("Location: ".$this->conf->urlSorbet."/admin/settings.php?error=1&des=".$this->db->merror);
            die();
        }
    }

    public function saveOption($value, $name)
    {
        $sqlStr = "UPDATE ".$this->conf->tablePrefix."options SET val='".$value."' WHERE name='".$name."' LIMIT 1";
        if ($this->db->ejecutarConsulta($sqlStr)) {
            return true;
        } else {
            return true;
        }
    }

    public function addPost($fieldsArray)
    {
        if ($this->db->insertarDeFormulario($this->conf->tablePrefix."data", $fieldsArray)) {
            return true;
        } else {
            return false;
        }
    }

    public function modifyPost($fieldsArray, $id_post)
    {
        if ($this->db->modificarDeFormulario($this->conf->tablePrefix."data", $fieldsArray, "id_post=$id_post")) {
            header("Location: ".$this->conf->urlSorbet."/admin/index.php?modified=true");
            die();
        } else {
            header("Location: ".$this->conf->urlSorbet."/admin/index.php?error=2&des=".$this->db->merror);
            die();
        }
    }

    public function deletePost($idPost)
    {
        $this->db->ejecutarConsulta("DELETE FROM ".$this->conf->tablePrefix."data WHERE id_post=".$idPost);
    }

    public function getPosts($limit="10", $from="0")
    {
        $sqlStr = "select * from ".$this->conf->tablePrefix."data ORDER BY date DESC LIMIT $from,$limit";
        $this->db->ejecutarConsulta($sqlStr);
        return $this->db->mid_consulta;
    }

    public function getPost($id="")
    {
        $this->db->ejecutarConsulta("select * from ".$this->conf->tablePrefix."data WHERE id_post=".$id);
        return $this->db->mid_consulta->fetch();
    }

    public function getPostsNumber()
    {
        $this->db->ejecutarConsulta("select count(*) as total from ".$this->conf->tablePrefix."data");
        $row = $this->db->mid_consulta->fetch();
        return $row['total'];
    }

    public function getType($id)
    {
        if ($this->db->ejecutarConsulta("select type from ".$this->conf->tablePrefix."data WHERE id_post=".$id)) {
            if ($this->db->contarRegistros()>0) {
                while ($registro = $this->db->mid_consulta->fetch()) {
                    return $registro[0];
                }
            }
        } else {
            return "0";
        }
    }

    public function formatConversation($text)
    {
        $formatedText = "";
        $odd=true;

        $lines = explode("\n", $text);

        $formatedText .= "<ul>\n";
        foreach ($lines as $line) {
            $pos = strpos($line, ":") + 1;

            $label = substr($line, 0, $pos);
            $desc = substr($line, $pos, strlen($line));

            if ($odd) {
                $cssClass = "odd";
            } else {
                $cssClass = "even";
            }
            $odd=!$odd;


            $formatedText .= "	<li class=\"".$cssClass."\">\n";
            $formatedText .= "		<span class=\"label\">".$label."</span>\n";
            $formatedText .= "		".$desc."\n";
            $formatedText .= "	</li>\n";
        }
        $formatedText .= "</ul>\n";
        return $formatedText;
    }

    public function formatApiConversation($text)
    {
        $formatedText = "";

        $lines = explode("\n", $text);

        foreach ($lines as $line) {
            $pos = strpos($line, ":") + 1;

            $name = substr($line, 0, $pos-1);
            $label = substr($line, 0, $pos);
            $desc = substr($line, $pos, strlen($line));

            $formatedText .= "<conversation-line name=\"".$name."\" label=\"".$label."\">".$desc."</conversation-line>\n";
        }

        return $formatedText;
    }

    public function saveMP3($remoteFileName)
    {
        if ($util_class->getMP3File($remoteFileName)) {
            return true;
        } else {
            return false;
        }
    }

    public function savePhoto($remoteFileName)
    {
        if ($util_class->getPhotoFile($remoteFileName)) {
            return true;
        } else {
            return false;
        }
    }

    public function getVideoPlayer($url)
    {
        $util_class = new util();
        if ($util_class->isYoutubeVideo($url)) {
            $id_video = $util_class->getYoutubeVideoUrl($url);
            return "\t\t\t<iframe width=\"640\" height=\"360\" src=\"https://www.youtube.com/embed/".$id_video."\" frameborder=\"0\" allowfullscreen></iframe>\n";
        } elseif ($util_class->isVimeoVideo($url)) {
            $id_video = $util_class->getVimeoVideoUrl($url);
            return "\t\t\t<iframe src=\"https://player.vimeo.com/video/".$id_video."\" width=\"640\" height=\"360\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>\n";
        } elseif ($util_class->isDailymotionVideo($url)) {
            $id_video = $util_class->getDailymotionVideoUrl($url);
            return "\t\t\t<iframe frameborder=\"0\" width=\"640\" height=\"360\" src=\"//www.dailymotion.com/embed/video/".$id_video."\" allowfullscreen></iframe><br />\n";
        } elseif ($util_class->isYahooVideo($url)) {
            $id_video = $util_class->getYahooVideoCode($url);
            return "\t\t\t<object type=\"application/x-shockwave-flash\" style=\"width:500px;height:393px\" data=\"http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf\"><param name=\"quality\" value=\"high\" /><param name=\"FlashVars\" value=\"event_function=YAHOO.yv.Player.SWFInterface&amp;id=".$id_video[1]."&amp;vid=".$id_video[0]."&amp;onsite=1&amp;site=video.yahoo.com&amp;page=792730258&amp;lang=en-US&amp;intl=us\" /><param name=\"wmode\" value=\"transparent\" /></object>\n";
        } elseif ($util_class->isSlideSharePresentation($url)) {
            $id_video = $util_class->getSlideSharePresentationCode($url);
            return "\t\t\t<object type=\"application/x-shockwave-flash\" style=\"width:500px;height:393px\" data=\"http://www.slideshare.net/swf/player.swf?presentationId=".$id_video[0]."&amp;doc=".$id_video[1]."&amp;inContest=0&amp;startSlide=1\"><param name=\"quality\" value=\"high\" /><param name=\"wmode\" value=\"transparent\" /></object>\n";
        } elseif ($util_class->isGoogleVideoUrl($url)) {
            $id_video = $util_class->getGoogleVideoCode($url);
            return "\t\t\t<object type=\"application/x-shockwave-flash\" style=\"width:500px;height:393px\" data=\"http://video.google.com/googleplayer.swf?docid=".$id_video."&amp;hl=es&amp;fs=true\"><param name=\"movie\" value=\"http://video.google.com/googleplayer.swf?docid=".$id_video."&amp;hl=es&amp;fs=true\" /><param name=\"allowFullScreen\" value=\"true\" /><param name=\"allowScriptAccess\" value=\"always\" /><param name=\"wmode\" value=\"transparent\" /></object>\n";
        } elseif ($util_class->isMTVVideoUrl($url)) {
            $id_video = $util_class->getMTVVideoCode($url);
            return "\t\t\t<object type=\"application/x-shockwave-flash\" style=\"width:500px;height:393px\" data=\"http://media.mtvnservices.com/mgid:uma:video:mtvmusic.com:".$id_video."\"><param name=\"movie\" value=\"http://media.mtvnservices.com/mgid:uma:video:mtvmusic.com:".$id_video."\" /><param name=\"allowFullScreen\" value=\"true\" /><param name=\"allowScriptAccess\" value=\"never\" /><param name=\"wmode\" value=\"transparent\" /></object>\n";
        } else {
            return "This URL is not a supported video (YouTube, Google Video, Vimeo, DailyMotion, Yahoo Video, MTV or SlideShare)";
        }
    }
    public function getMp3Player($url)
    {
        if ($util_class->isMP3($url)) {
            $playerUrl = $conf->urlSorbet."/admin/scripts/player.swf?soundFile=".$url;
            return "\t\t\t<object type=\"application/x-shockwave-flash\" data=\"" . $playerUrl . "\" width=\"290\" height=\"24\"><param name=\"movie\" value=\"" . $playerUrl . "\" /><param name=\"quality\" value=\"high\" /><param name=\"menu\" value=\"false\" /><param name=\"wmode\" value=\"transparent\" /></object>\n";
        } elseif ($util_class->isGoEar($url)) {
            return "\t\t\t<object type=\"application/x-shockwave-flash\" data=\"http://www.goear.com/files/external.swf\" width=\"366\" height=\"130\"><param name=\"movie\" value=\"http://www.goear.com/files/external.swf\" /><param name=\"quality\" value=\"high\" /><param name=\"FlashVars\" value=\"file=".$util_class->getGoEarCode($url)."\" /><param name=\"wmode\" value=\"transparent\" /></object>\n";
        } elseif ($util_class->isOdeo($url)) {
            return "\t\t\t<object type=\"application/x-shockwave-flash\" data=\"http://media.odeo.com/flash/odeo_player.swf?v=3\" width=\"366\" height=\"75\"><param name=\"quality\" value=\"high\" /><param name=\"FlashVars\" value=\"type=audio&amp;id=".$util_class->getOdeoCode($url)."\" /><param name=\"wmode\" value=\"transparent\" /></object>\n";
        } else {
            return "This URL is not an MP3 file.";
        }
    }

    public function getPermalink($post_id)
    {
        $strEnd = ($this->conf->urlFriendly) ? "/" : "";
        $out = $this->conf->urlSorbet;
        $out .= ($this->conf->urlFriendly) ? "/post/" : "/index.php?post=";
        $out .= $post_id.$strEnd;
        return $out;
    }
}