. * * @category UI * @package StatusNet * @author Evan Prodromou * @copyright 2010 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ if (!defined('STATUSNET')) { exit(1); } require_once INSTALLDIR.'/lib/noticelist.php'; /** * StatusNet, the distributed open-source microblogging tool * * Widget superclass for notice list items that remove rel=nofollow * * When nofollow|external = 'sometimes', notices get rendered and saved * with rel=nofollow for external links. We want to remove that relationship * on some pages (profile, single notice, faves). This superclass for * some noticelistitems will strip that bit of code out when showing * notice content * * @category UI * @package StatusNet * @author Evan Prodromou * @copyright 2010 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ class DoFollowListItem extends NoticeListItem { /** * show the content of the notice * * Trims out the rel=nofollow for external links * if nofollow|external = 'sometimes' * * @return void */ function showContent() { // FIXME: URL, image, video, audio $this->out->elementStart('article', array('class' => 'e-content')); if (!empty($this->notice->rendered)) { $html = $this->notice->rendered; } else { $html = common_render_content($this->notice->content, $this->notice); } if (common_config('nofollow', 'external') == 'sometimes') { // remove the nofollow part // XXX: cache the results here $html = preg_replace('/rel="(.*)nofollow ?/', 'rel="\1', $html); } $this->out->raw($html); $this->out->elementEnd('div'); } }