/** * Convert a single URL, assumes $url has been verified to be * a real URL * * @param string $url */ public function convertUrl($url) { $oembed = Oembed::get_oembed_from_url($url, false, $this->oembedOptions); if ($oembed) { return array('Title' => '', 'Content' => $oembed->forTemplate()); } $graph = OpenGraph::fetch($url); if ($graph) { foreach ($graph as $key => $value) { $data[$key] = Varchar::create_field('Varchar', $value); } if (isset($data['url'])) { return array('Title' => $graph->Title, 'Content' => MicroPost::create()->customise($data)->renderWith('OpenGraphPost')); } } // get the post and take its <title> tag at the very least $service = new RestfulService($url); $response = $service->request(); if ($response && $response->getStatusCode() == 200) { if (preg_match('/<title>(.*?)<\\/title>/is', $response->getBody(), $matches)) { $title = Convert::raw2xml(trim($matches[1])); return array('Title' => $title, 'Content' => "<a href='{$url}'>{$title}</a>"); } } }
public function MemberDetails() { $m = $this->securityContext->getMember(); if ($m) { return Varchar::create_field('Varchar', Convert::raw2json(array('Title' => $m->getTitle(), 'FirstName' => $m->FirstName, 'Surname' => $m->Surname, 'MemberID' => $m->ID))); } }
/** * Process and render search results */ function getSearchResults($data = null, $form = null) { $query = $this->owner->data()->getQuery(); $term = isset($_GET['Search']) ? Convert::raw2xml($_GET['Search']) : ''; $results = $query ? $query->getDataObjects(true) : ArrayList::create(); $elapsed = '< 0.001'; if ($query) { $resultData = array('TotalResults' => ($total = $query->getTotalResults()) ? $total : 0); $time = $query->getTimeTaken(); if ($time) { $elapsed = $time / 1000; } } else { $resultData = array(); } $data = array('Results' => $results, 'Query' => Varchar::create_field('Varchar', $term), 'Title' => $this->owner->data()->Title, 'ResultData' => ArrayData::create($resultData), 'TimeTaken' => $elapsed); return $data; }