Working app! Copied signin logic from OwnYourGram. New "post" interface for writing a simple text post. Also supports browser geolocation.
This commit is contained in:
commit
3f82ec2f75
40 changed files with 12990 additions and 0 deletions
106
lib/helpers.php
Normal file
106
lib/helpers.php
Normal file
|
@ -0,0 +1,106 @@
|
|||
<?php
|
||||
|
||||
ORM::configure('mysql:host=' . Config::$dbHost . ';dbname=' . Config::$dbName);
|
||||
ORM::configure('username', Config::$dbUsername);
|
||||
ORM::configure('password', Config::$dbPassword);
|
||||
|
||||
function render($page, $data) {
|
||||
global $app;
|
||||
return $app->render('layout.php', array_merge($data, array('page' => $page)));
|
||||
};
|
||||
|
||||
function partial($template, $data=array(), $debug=false) {
|
||||
global $app;
|
||||
|
||||
if($debug) {
|
||||
$tpl = new Savant3(\Slim\Extras\Views\Savant::$savantOptions);
|
||||
echo '<pre>' . $tpl->fetch($template . '.php') . '</pre>';
|
||||
return '';
|
||||
}
|
||||
|
||||
ob_start();
|
||||
$tpl = new Savant3(\Slim\Extras\Views\Savant::$savantOptions);
|
||||
foreach($data as $k=>$v) {
|
||||
$tpl->{$k} = $v;
|
||||
}
|
||||
$tpl->display($template . '.php');
|
||||
return ob_get_clean();
|
||||
}
|
||||
|
||||
function session($key) {
|
||||
if(array_key_exists($key, $_SESSION))
|
||||
return $_SESSION[$key];
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
function k($a, $k, $default=null) {
|
||||
if(is_array($k)) {
|
||||
$result = true;
|
||||
foreach($k as $key) {
|
||||
$result = $result && array_key_exists($key, $a);
|
||||
}
|
||||
return $result;
|
||||
} else {
|
||||
if(is_array($a) && array_key_exists($k, $a) && $a[$k])
|
||||
return $a[$k];
|
||||
elseif(is_object($a) && property_exists($a, $k) && $a->$k)
|
||||
return $a->$k;
|
||||
else
|
||||
return $default;
|
||||
}
|
||||
}
|
||||
|
||||
function get_timezone($lat, $lng) {
|
||||
try {
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, 'http://timezone-api.geoloqi.com/timezone/'.$lat.'/'.$lng);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
$response = curl_exec($ch);
|
||||
$tz = @json_decode($response);
|
||||
if($tz)
|
||||
return new DateTimeZone($tz->timezone);
|
||||
} catch(Exception $e) {
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function micropub_post($endpoint, $params, $access_token) {
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $endpoint);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
|
||||
'Authorization: Bearer ' . $access_token
|
||||
));
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array_merge(array(
|
||||
'h' => 'entry'
|
||||
), $params)));
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_HEADER, true);
|
||||
$response = curl_exec($ch);
|
||||
$error = curl_error($ch);
|
||||
return array(
|
||||
'response' => $response,
|
||||
'error' => $error,
|
||||
'curlinfo' => curl_getinfo($ch)
|
||||
);
|
||||
}
|
||||
|
||||
function static_map($latitude, $longitude, $height=180, $width=700, $zoom=14) {
|
||||
return 'http://static-maps.pdx.esri.com/img.php?marker[]=lat:' . $latitude . ';lng:' . $longitude . ';icon:small-blue-cutout&basemap=gray&width=' . $width . '&height=' . $height . '&zoom=' . $zoom;
|
||||
}
|
||||
|
||||
function relative_time($date) {
|
||||
static $rel;
|
||||
if(!isset($rel)) {
|
||||
$config = array(
|
||||
'language' => '\RelativeTime\Languages\English',
|
||||
'separator' => ', ',
|
||||
'suffix' => true,
|
||||
'truncate' => 1,
|
||||
);
|
||||
$rel = new \RelativeTime\RelativeTime($config);
|
||||
}
|
||||
return $rel->timeAgo($date);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue