/** * Callback function for url preg_replace_callback * * @param array $matches An array of matches * @return string */ public static function callbackUrl($matches) { if (empty($matches[2])) { return $matches[0]; } $text = $matches[2]; if (elgg_get_plugin_setting('linkify_url_titles', 'hypeScraper', true)) { $data = hypeapps_scrape($text, true); $text = !empty($data['title']) ? $data['title'] : $text; } return $matches[1] . elgg_format_element('a', array('class' => 'scraper-url', 'href' => $matches[2], 'data-qualifier' => 'url', 'rel' => 'nofollow'), $text); }
<?php $href = elgg_extract('href', $vars); $iframe = elgg_extract('iframe', $vars) || elgg_is_xhr(); $data = hypeapps_scrape($url); if (!$data) { return; } $title = $data['title']; if ($iframe) { $layout = elgg_view('output/player', ['href' => $href]); } else { $content = elgg_view('output/card', ['href' => $href, 'full_view' => true]); $layout = elgg_view_layout('content', ['filter' => false, 'title' => $title, 'content' => $content]); } $shell = $iframe ? 'iframe' : 'default'; echo elgg_view_page($title, $layout, $shell);
<?php $href = elgg_extract('href', $vars); $data = hypeapps_scrape($href); if (!$data) { return; } if (empty($data) || empty($data['url'])) { return; } $meta = (object) $data; $icon_url = elgg_extract('thumbnail_url', $data); if (!$icon_url) { $icon_url = elgg_get_simplecache_url('framework/scraper/placeholder.png'); } $module = elgg_extract('module', $vars, 'scraper-card'); $classes = array(elgg_extract('class', $vars)); $classes[] = 'scraper-card-block'; $classes[] = 'clearfix'; if ($meta->provider_name) { $classes[] = 'scraper-card-' . preg_replace('/[^a-z0-9\\-]/i', '-', strtolower($meta->provider_name)); } if (($meta->type == 'image' || $meta->type == 'photo') && $icon_url) { $vars['src'] = $icon_url; $vars['class'] = 'sraper-card-photo'; $img = elgg_view('output/img', $vars); $body = elgg_view('output/url', array('href' => $href, 'text' => $img)); } else { $body .= '<h3>' . $meta->title . '</h3>'; $body .= elgg_view('output/url', array('text' => parse_url($meta->url, PHP_URL_HOST), 'href' => $meta->url, 'class' => 'scraper-card-link')); $body .= elgg_view('output/longtext', array('value' => elgg_get_excerpt($meta->description), 'class' => 'scraper-card-description'));
/** * Output metatags for a URL * * @param string $hook 'extract:meta' * @param string $type 'embed' * @param array $return Metatags * @param array $params Hook params * @return array */ public static function getCard($hook, $type, $return, $params) { $url = elgg_extract('url', $params); return hypeapps_scrape($url); }