예제 #1
0
 function get()
 {
     require_once 'include/dir_fns.php';
     $dirmode = intval(get_config('system', 'directory_mode'));
     if ($dirmode == DIRECTORY_MODE_PRIMARY || $dirmode == DIRECTORY_MODE_STANDALONE) {
         $url = z_root() . '/dirsearch';
     }
     if (!$url) {
         $directory = find_upstream_directory($dirmode);
         $url = $directory['url'] . '/dirsearch';
     }
     $url .= '/sites';
     $o .= '<div class="generic-content-wrapper">';
     $o .= '<div class="section-title-wrapper"><h2>' . t('Public Hubs') . '</h2></div>';
     $o .= '<div class="section-content-tools-wrapper"><div class="descriptive-text">' . t('The listed hubs allow public registration for the $Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself <strong>may</strong> provide additional details.') . '</div>' . EOL;
     $ret = z_fetch_url($url);
     if ($ret['success']) {
         $j = json_decode($ret['body'], true);
         if ($j) {
             $o .= '<table class="table table-striped table-hover"><tr><td>' . t('Hub URL') . '</td><td>' . t('Access Type') . '</td><td>' . t('Registration Policy') . '</td><td colspan="2">' . t('Ratings') . '</td></tr>';
             if ($j['sites']) {
                 foreach ($j['sites'] as $jj) {
                     if ($jj['project'] !== \Zotlabs\Project\System::get_platform_name()) {
                         continue;
                     }
                     $host = strtolower(substr($jj['url'], strpos($jj['url'], '://') + 3));
                     $rate_links = local_channel() ? '<td><a href="rate?f=&target=' . $host . '" class="btn-btn-default"><i class="fa fa-check-square-o"></i> ' . t('Rate') . '</a></td>' : '';
                     $location = '';
                     if (!empty($jj['location'])) {
                         $location = '<p title="' . t('Location') . '" style="margin: 5px 5px 0 0; text-align: right"><i class="fa fa-globe"></i> ' . $jj['location'] . '</p>';
                     } else {
                         $location = '<br />&nbsp;';
                     }
                     $urltext = str_replace(array('https://'), '', $jj['url']);
                     $o .= '<tr><td><a href="' . ($jj['sellpage'] ? $jj['sellpage'] : $jj['url'] . '/register') . '" ><i class="fa fa-link"></i> ' . $urltext . '</a>' . $location . '</td><td>' . $jj['access'] . '</td><td>' . $jj['register'] . '</td><td><a href="ratings/' . $host . '" class="btn-btn-default"><i class="fa fa-eye"></i> ' . t('View') . '</a></td>' . $rate_links . '</tr>';
                 }
             }
             $o .= '</table>';
             $o .= '</div></div>';
         }
     }
     return $o;
 }
예제 #2
0
 function get()
 {
     logger('linkinfo: ' . print_r($_REQUEST, true));
     $text = null;
     $str_tags = '';
     $br = "\n";
     if (x($_GET, 'binurl')) {
         $url = trim(hex2bin($_GET['binurl']));
     } else {
         $url = trim($_GET['url']);
     }
     $url = strip_zids($url);
     if (substr($url, 0, 1) != '/' && substr($url, 0, 4) != 'http') {
         $url = 'http://' . $url;
     }
     if ($_GET['title']) {
         $title = strip_tags(trim($_GET['title']));
     }
     if ($_GET['description']) {
         $text = strip_tags(trim($_GET['description']));
     }
     if ($_GET['tags']) {
         $arr_tags = str_getcsv($_GET['tags']);
         if (count($arr_tags)) {
             array_walk($arr_tags, 'self::arr_add_hashes');
             $str_tags = $br . implode(' ', $arr_tags) . $br;
         }
     }
     logger('linkinfo: ' . $url);
     $result = z_fetch_url($url, false, 0, array('novalidate' => true, 'nobody' => true));
     if ($result['success']) {
         $hdrs = array();
         $h = explode("\n", $result['header']);
         foreach ($h as $l) {
             list($k, $v) = array_map("trim", explode(":", trim($l), 2));
             $hdrs[$k] = $v;
         }
         if (array_key_exists('Content-Type', $hdrs)) {
             $type = $hdrs['Content-Type'];
         }
         if ($type) {
             $zrl = is_matrix_url($url);
             if (stripos($type, 'image/') !== false) {
                 if ($zrl) {
                     echo $br . '[zmg]' . $url . '[/zmg]' . $br;
                 } else {
                     echo $br . '[img]' . $url . '[/img]' . $br;
                 }
                 killme();
             }
             if (stripos($type, 'video/') !== false) {
                 if ($zrl) {
                     echo $br . '[zvideo]' . $url . '[/zvideo]' . $br;
                 } else {
                     echo $br . '[video]' . $url . '[/video]' . $br;
                 }
                 killme();
             }
             if (stripos($type, 'audio/') !== false) {
                 if ($zrl) {
                     echo $br . '[zaudio]' . $url . '[/zaudio]' . $br;
                 } else {
                     echo $br . '[audio]' . $url . '[/audio]' . $br;
                 }
                 killme();
             }
         }
     }
     $template = $br . '#^[url=%s]%s[/url]%s' . $br;
     $arr = array('url' => $url, 'text' => '');
     call_hooks('parse_link', $arr);
     if (strlen($arr['text'])) {
         echo $arr['text'];
         killme();
     }
     $x = oembed_process($url);
     if ($x) {
         echo $x;
         killme();
     }
     if ($url && $title && $text) {
         $text = $br . '[quote]' . trim($text) . '[/quote]' . $br;
         $title = str_replace(array("\r", "\n"), array('', ''), $title);
         $result = sprintf($template, $url, $title ? $title : $url, $text) . $str_tags;
         logger('linkinfo (unparsed): returns: ' . $result);
         echo $result;
         killme();
     }
     $siteinfo = self::parseurl_getsiteinfo($url);
     // If this is a Red site, use zrl rather than url so they get zids sent to them by default
     if (x($siteinfo, 'generator') && strpos($siteinfo['generator'], \Zotlabs\Project\System::get_platform_name() . ' ') === 0) {
         $template = str_replace('url', 'zrl', $template);
     }
     if ($siteinfo["title"] == "") {
         echo sprintf($template, $url, $url, '') . $str_tags;
         killme();
     } else {
         $text = $siteinfo["text"];
         $title = $siteinfo["title"];
     }
     $image = "";
     if (sizeof($siteinfo["images"]) > 0) {
         /* Execute below code only if image is present in siteinfo */
         $total_images = 0;
         $max_images = get_config('system', 'max_bookmark_images');
         if ($max_images === false) {
             $max_images = 2;
         } else {
             $max_images = intval($max_images);
         }
         foreach ($siteinfo["images"] as $imagedata) {
             if ($url) {
                 $image .= sprintf('[url=%s]', $url);
             }
             $image .= '[img=' . $imagedata["width"] . 'x' . $imagedata["height"] . ']' . $imagedata["src"] . '[/img]';
             if ($url) {
                 $image .= '[/url]';
             }
             $image .= "\n";
             $total_images++;
             if ($max_images && $max_images >= $total_images) {
                 break;
             }
         }
     }
     if (strlen($text)) {
         $text = $br . '[quote]' . trim($text) . '[/quote]' . $br;
     }
     if ($image) {
         $text = $br . $br . $image . $text;
     }
     $title = str_replace(array("\r", "\n"), array('', ''), $title);
     $result = sprintf($template, $url, $title ? $title : $url, $text) . $str_tags;
     logger('linkinfo: returns: ' . $result, LOGGER_DEBUG);
     echo trim($result);
     killme();
 }
예제 #3
0
 function init()
 {
     header("Content-Type: text/xml");
     echo replace_macros(get_markup_template('rsd.tpl'), array('$project' => \Zotlabs\Project\System::get_platform_name(), '$baseurl' => z_root(), '$apipath' => z_root() . '/api/'));
     killme();
 }
예제 #4
0
 function get()
 {
     nav_set_selected('help');
     if ($_REQUEST['search']) {
         $o .= '<div id="help-content" class="generic-content-wrapper">';
         $o .= '<div class="section-title-wrapper">';
         $o .= '<h2>' . t('Documentation Search') . ' - ' . htmlspecialchars($_REQUEST['search']) . '</h2>';
         $o .= '</div>';
         $o .= '<div class="section-content-wrapper">';
         $r = search_doc_files($_REQUEST['search']);
         if ($r) {
             $o .= '<ul class="help-searchlist">';
             foreach ($r as $rr) {
                 $dirname = dirname($rr['sid']);
                 $fname = basename($rr['sid']);
                 $fname = substr($fname, 0, strrpos($fname, '.'));
                 $path = trim(substr($dirname, 4), '/');
                 $o .= '<li><a href="help/' . ($path ? $path . '/' : '') . $fname . '" >' . ucwords(str_replace('_', ' ', notags($fname))) . '</a><br />' . str_replace('$Projectname', \Zotlabs\Project\System::get_platform_name(), substr($rr['text'], 0, 200)) . '...<br /><br /></li>';
             }
             $o .= '</ul>';
             $o .= '</div>';
             $o .= '</div>';
         }
         return $o;
     }
     global $lang;
     $doctype = 'markdown';
     $text = '';
     if (argc() > 1) {
         $path = '';
         for ($x = 1; $x < argc(); $x++) {
             if (strlen($path)) {
                 $path .= '/';
             }
             $path .= argv($x);
         }
         $title = basename($path);
         $text = load_doc_file('doc/' . $path . '.md');
         \App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('-', ' ', notags($title)));
         if (!$text) {
             $text = load_doc_file('doc/' . $path . '.bb');
             if ($text) {
                 $doctype = 'bbcode';
             }
             \App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('_', ' ', notags($title)));
         }
         if (!$text) {
             $text = load_doc_file('doc/' . $path . '.html');
             if ($text) {
                 $doctype = 'html';
             }
             \App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('-', ' ', notags($title)));
         }
     }
     if (!$text) {
         $text = load_doc_file('doc/Site.md');
         \App::$page['title'] = t('Help');
     }
     if (!$text) {
         $doctype = 'bbcode';
         $text = load_doc_file('doc/main.bb');
         \App::$page['title'] = t('Help');
     }
     if (!strlen($text)) {
         header($_SERVER["SERVER_PROTOCOL"] . ' 404 ' . t('Not Found'));
         $tpl = get_markup_template("404.tpl");
         return replace_macros($tpl, array('$message' => t('Page not found.')));
     }
     if ($doctype === 'html') {
         $content = $text;
     }
     if ($doctype === 'markdown') {
         require_once 'library/markdown.php';
         # escape #include tags
         $text = preg_replace('/#include/ism', '%%include', $text);
         $content = Markdown($text);
         $content = preg_replace('/%%include/ism', '#include', $content);
     }
     if ($doctype === 'bbcode') {
         require_once 'include/bbcode.php';
         $content = bbcode($text);
         // bbcode retargets external content to new windows. This content is internal.
         $content = str_replace(' target="_blank"', '', $content);
     }
     $content = preg_replace_callback("/#include (.*?)\\;/ism", 'self::preg_callback_help_include', $content);
     return replace_macros(get_markup_template("help.tpl"), array('$title' => t('$Projectname Documentation'), '$content' => translate_projectname($content)));
 }