Exemplo n.º 1
0
function pubsites_content(&$a)
{
    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="icon-check"></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="icon-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="icon-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="icon-eye-open"></i> ' . t('View') . '</a></td>' . $rate_links . '</tr>';
                }
            }
            $o .= '</table>';
            $o .= '</div></div>';
        }
    }
    return $o;
}
Exemplo n.º 2
0
function help_content(&$a)
{
    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", 'preg_callback_help_include', $content);
    return replace_macros(get_markup_template("help.tpl"), array('$title' => t('$Projectname Documentation'), '$content' => translate_projectname($content)));
}
Exemplo n.º 3
0
function linkinfo_content(&$a)
{
    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, '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 = 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();
}
Exemplo n.º 4
0
 public static function build_pagehead()
 {
     $user_scalable = local_channel() ? get_pconfig(local_channel(), 'system', 'user_scalable') : 1;
     if ($user_scalable === false) {
         $user_scalable = 1;
     }
     $preload_images = local_channel() ? get_pconfig(local_channel(), 'system', 'preload_images') : 0;
     if ($preload_images === false) {
         $preload_images = 0;
     }
     $interval = local_channel() ? get_pconfig(local_channel(), 'system', 'update_interval') : 80000;
     if ($interval < 10000) {
         $interval = 80000;
     }
     if (!x(self::$page, 'title')) {
         self::$page['title'] = self::$config['system']['sitename'];
     }
     if (!self::$meta->get_field('og:title')) {
         self::$meta->set('og:title', self::$page['title']);
     }
     self::$meta->set('generator', Zotlabs\Project\System::get_platform_name());
     /* put the head template at the beginning of page['htmlhead']
      * since the code added by the modules frequently depends on it
      * being first
      */
     $tpl = get_markup_template('head.tpl');
     self::$page['htmlhead'] = replace_macros($tpl, array('$preload_images' => $preload_images, '$user_scalable' => $user_scalable, '$query' => urlencode(self::$query_string), '$baseurl' => self::get_baseurl(), '$local_channel' => local_channel(), '$metas' => self::$meta->get(), '$update_interval' => $interval, 'osearch' => sprintf(t('Search %1$s (%2$s)', 'opensearch'), Zotlabs\Project\System::get_site_name(), t('$Projectname', 'opensearch')), '$icon' => head_get_icon(), '$head_css' => head_get_css(), '$head_js' => head_get_js(), '$js_strings' => js_strings(), '$zid' => get_my_address(), '$channel_id' => self::$profile['uid'])) . self::$page['htmlhead'];
     // always put main.js at the end
     self::$page['htmlhead'] .= head_get_main_js();
 }