From 3f82ec2f757c62c25a31b461e0a0cddc14886117 Mon Sep 17 00:00:00 2001 From: Aaron Parecki Date: Sat, 24 May 2014 14:41:21 -0700 Subject: Working app! Copied signin logic from OwnYourGram. New "post" interface for writing a simple text post. Also supports browser geolocation. --- lib/Savant.php | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 lib/Savant.php (limited to 'lib/Savant.php') diff --git a/lib/Savant.php b/lib/Savant.php new file mode 100644 index 0000000..9a2d470 --- /dev/null +++ b/lib/Savant.php @@ -0,0 +1,95 @@ + + */ +class Savant extends \Slim\View +{ + /** + * @var string The path to the directory containing Savant3.php and the Savant3 folder without trailing slash. + */ + public static $savantDirectory = null; + + /** + * @var array The options for the Savant3 environment, see http://phpsavant.com/api/Savant3/ + */ + public static $savantOptions = array('template_path' => 'templates'); + + /** + * @var persistent instance of the Savant object + */ + private static $savantInstance = null; + + /** + * Renders a template using Savant3.php. + * + * @see View::render() + * @param string $template The template name specified in Slim::render() + * @return string + */ + public function render($template) + { + $savant = $this->getInstance(); + $savant->assign($this->data); + + return $savant->fetch($template); + } + + /** + * Creates new Savant instance if it doesn't already exist, and returns it. + * + * @throws RuntimeException If Savant3 lib directory does not exist. + * @return SavantInstance + */ + private function getInstance() + { + if (!self::$savantInstance) { + if (!is_dir(self::$savantDirectory)) { + throw new \RuntimeException('Cannot set the Savant lib directory : ' . self::$savantDirectory . '. Directory does not exist.'); + } + require_once self::$savantDirectory . '/Savant3.php'; + self::$savantInstance = new \Savant3(self::$savantOptions); + } + + return self::$savantInstance; + } +} \ No newline at end of file -- cgit v1.2.3