示例#1
0
    public function render($runData)
    {
        $sites = $runData->getParameterList()->getParameterValue("sites");
        // split sites by ", "
        $ss = preg_split('/,\\s*/', $sites);
        $out = '';
        $imageUrl = "/common--images/social/";
        if ($sites && $sites != "") {
            foreach ($ss as $siteName) {
                if ($this->sites[strtolower($siteName)]) {
                    $ss2[] = $this->sites[$siteName];
                }
            }
        } else {
            $ss2 = $this->sites;
        }
        // render
        $wikiSite = $runData->getTemp("site");
        $page = $runData->getTemp("page");
        $pageTitle = $wikiSite->getName();
        if ($page) {
            if ($page->getTitle() != '') {
                $pageTitle .= ': ' . $page->getTitle();
            }
            $pageName = $page->getUnixName();
        }
        $permalink = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
        $out = '';
        $id = 'social' . rand(1, 100000);
        $out .= '<span id="' . $id . '">';
        foreach ($ss2 as $key => $site) {
            $url = $site['url'];
            $url = str_replace('PERMALINK', urlencode($permalink), $url);
            $url = str_replace('BLOGNAME', urlencode($wikiSite->getName()), $url);
            $out .= '<a href="' . $url . '" style="margin: 0 2px" title="' . $site['name'] . '" ' . ($site['onclick'] ? ' onclick="' . $site['onclick'] . '"' : '');
            if (isset($site['onclick'])) {
                $out .= ' onclick="' . $site['onclick'] . '" ';
            }
            $out .= '>';
            $out .= '<img src="' . $imageUrl . $site['favicon'] . '" alt="' . $site['name'] . '"/></a>';
        }
        $out .= '</span>';
        // ok, now fix the d.... title
        $out .= '<script type="text/javascript">
			var socialspan = $("' . $id . '");
			var els = socialspan.getElementsByTagName("a");	
			for(var i=0;i<els.length;i++){
				els[i].href = els[i].href.replace("TITLE", encodeURIComponent(document.title));
			}
			</script>';
        // purify???
        $wt = new WikiTransformation();
        $out = $wt->purifyHtml($out);
        return $out;
    }