Ejemplo n.º 1
0
function jnewsbot_k2_transformall(&$html, &$text, &$subject, $queueInfo = null)
{
    $mainframe = JFactory::getApplication();
    $livesite = $mainframe->getCfg("live_site");
    $sef = $mainframe->getCfg("sef");
    $k2_items = array();
    $k2_items_new = array();
    $k2_items_old = array();
    preg_match_all('/\\{k2item:(.{1,8})\\|(.{1})}/', $html, $k2_items_old, PREG_SET_ORDER);
    preg_match_all('/\\{k2item:(.{1,8})\\|(.{1})\\|(.{1})}/', $html, $k2_items_new, PREG_SET_ORDER);
    $k2_items = jnewsbot_class_transform_mergeArray($k2_items_new, $k2_items_old);
    foreach ($k2_items as $k2_item) {
        //j15
        if (version_compare(JVERSION, '1.6.0', '<')) {
            $Itemid = $mainframe->getItemId($k2_item[1]);
        }
        if (empty($Itemid)) {
            $Itemid = $GLOBALS[JNEWS . 'itemidAca'];
        }
        $replacement = jnewsbot_k2_getitem($k2_item[1]);
        if ($GLOBALS[JNEWS . 'show_author'] == 1) {
            $author = '<br />' . $replacement->created_by_alias;
        } else {
            $author = '';
        }
        $replacement->introtext = str_replace('{mospagebreak}', '<div style="clear: both;" ><div />', $replacement->introtext);
        $replacement->fulltext = str_replace('{mospagebreak}', '<div style="clear: both;" ><div />', $replacement->fulltext);
        //   [0] => {k2item:3|1|1}
        //    [1] => 3
        //    [2] => 1
        //    [3] => 1
        if (isset($k2_item[3])) {
            if ($k2_item[3] == 1 && $k2_item[2] != 2) {
                $replacement->title = "";
            }
        }
        if ($k2_item[2] == 0) {
            $html = str_replace($k2_item[0], '<div class="aca_content"><span class="aca_title">' . $replacement->title . '</span>' . "\r\n" . $author . '<br />' . $replacement->introtext . '<br />' . "\r\n" . $replacement->fulltext . "\r\n" . '</div>', $html);
        } else {
            if ($GLOBALS[JNEWS . 'use_sef'] == '1' and $sef == '1' and function_exists('sefRelToAbs')) {
                $link = sefRelToAbs('index.php?option=com_k2&view=item&id=' . $k2_item[1] . '&Itemid=' . $Itemid);
            } else {
                $link = $livesite . '/index.php?option=com_k2&view=item&id=' . $k2_item[1] . '&Itemid=' . $Itemid;
            }
            if ($k2_item[2] == 1) {
                $html = str_replace($k2_item[0], '<div class="aca_content"><span class="aca_title">' . $replacement->title . '</span>' . "\r\n" . $author . '<br />' . $replacement->introtext . '<br />' . "\r\n" . '<a href="' . $link . '"><span class="aca_readmore">' . _JNEWS_READMORE . '</span></a>' . "\r\n" . '</div>', $html);
            } else {
                $html = str_replace($k2_item[0], '<a href="' . $link . '"><span class="aca_title">' . $replacement->title . '</span></a>', $html);
            }
        }
        $image = jnewsbot_k2_getimage($replacement->image);
        if (version_compare(JVERSION, '1.6.0', '<')) {
            //j15
            $imgfolders = '/images/stories';
        } else {
            //j16
            $imgfolders = '/images/sampledata';
        }
        foreach ($image as $image) {
            $image_string = '<img src="' . $livesite . $imgfolders . $image['image'] . '" align="' . $image['align'] . '" alt="' . $image['alttext'] . '" border="' . $image['border'] . '" />';
            $html = preg_replace('/{mosimage}/', $image_string, $html, 1);
        }
    }
    $k2_items = array();
    $k2_items_new = array();
    $k2_items_old = array();
    preg_match_all('/\\{k2item:(.{1,5})\\|(.{1})}/', $text, $k2_items_old, PREG_SET_ORDER);
    preg_match_all('/\\{k2item:(.{1,5})\\|(.{1})\\|(.{1})}/', $text, $k2_items_new, PREG_SET_ORDER);
    $k2_items = jnewsbot_class_transform_mergeArray($k2_items_new, $k2_items_old);
    foreach ($k2_items as $k2_item) {
        //j15
        if (version_compare(JVERSION, '1.6.0', '<')) {
            $Itemid = $mainframe->getItemId($k2_item[1]);
        }
        if (empty($Itemid)) {
            $Itemid = $GLOBALS[JNEWS . 'itemidAca'];
        }
        $replacement = jnewsbot_k2_getitem($k2_item[1]);
        if ($GLOBALS[JNEWS . 'show_author'] == 1) {
            $author = "\r\n" . $replacement->created_by_alias;
        } else {
            $author = '';
        }
        $replacement->title = strtoupper(jNews_ProcessMail::htmlToText($replacement->title));
        $replacement->introtext = jNews_ProcessMail::htmlToText($replacement->introtext);
        $replacement->fulltext = jNews_ProcessMail::htmlToText($replacement->fulltext);
        if (isset($k2_item[3])) {
            if ($k2_item[3] == 1 && $k2_item[2] != 2) {
                $replacement->title = "";
            }
        }
        if ($k2_item[2] == 0) {
            $text = str_replace($k2_item[0], $replacement->title . $author . "\r\n" . $replacement->introtext . "\r\n" . $replacement->fulltext . "\r\n", $text);
        } else {
            if ($GLOBALS[JNEWS . 'use_sef'] == '1' and $sef == '1' and function_exists('sefRelToAbs')) {
                $link = sefRelToAbs('index.php?option=com_k2&view=item&id=' . $k2_item[1] . '&Itemid=' . $Itemid);
            } else {
                $link = $livesite . '/index.php?option=com_k2&view=item&id=' . $k2_item[1] . '&Itemid=' . $Itemid;
            }
            if ($k2_item[2] == 1) {
                $text = str_replace($k2_item[0], $replacement->title . $author . "\r\n" . $replacement->introtext . "\r\n" . '* ' . _JNEWS_READMORE . ' ( ' . $link . ' )' . "\r\n", $text);
            } else {
                $text = str_replace($k2_item[0], $replacement->title . ' ( ' . $link . ' )', $text);
            }
        }
        $text = str_replace('{mosimage}', '', $text);
    }
    $html = str_replace('{mospagebreak}', '<div style="clear: both;" ><div />', $html);
    $text = str_replace('{mospagebreak}', "\r\n \r\n", $text);
}
Ejemplo n.º 2
0
function jnewsbot_content_transformall(&$html, &$text, &$subject, $queueInfo = null)
{
    global $mainframe;
    $contentItemsNew = array();
    $contentItemsOld = array();
    preg_match_all('/\\{contentitem:(.{1,8})\\|(.{1})\\|(.{1})}/', $html, $contentItemsNew, PREG_SET_ORDER);
    preg_match_all('/\\{contentitem:(.{1,8})\\|(.{1})}/', $html, $contentItemsOld, PREG_SET_ORDER);
    $content_items = jnewsbot_class_transform_mergeArray($contentItemsNew, $contentItemsOld);
    /*$contentItemsNew
      [0] => {contentitem:10|0|1}
      [1] => 10
      [2] => 0
      [3] => 1   */
    foreach ($content_items as $content_item) {
        if (version_compare(JVERSION, '1.6.0', '<')) {
            $Itemid = $mainframe->getItemId($content_item[1]);
        }
        if (empty($Itemid)) {
            $Itemid = $GLOBALS[JNEWS . 'itemidAca'];
        }
        $replacement = jnewsbot_content_getitem($content_item[1]);
        if (empty($replacement)) {
            continue;
        }
        if ($GLOBALS[JNEWS . 'show_author'] == 1) {
            $author = '<br />' . $replacement->created_by_alias;
        } else {
            $author = '';
        }
        //hide title or no
        if (isset($content_item[3])) {
            if ($content_item[3] == 1 && $content_item[2] != 2) {
                $replacement->title = "";
            }
        }
        if ($content_item[2] == 0) {
            $html = str_replace($content_item[0], '<div class="aca_content"><span class="aca_title">' . $replacement->title . '</span>' . "\r\n" . $author . '<br />' . $replacement->introtext . '<br />' . "\r\n" . $replacement->fulltext . "\r\n" . '</div>', $html);
        } else {
            $link = 'option=com_content&view=article&id=' . $content_item[1] . '&Itemid=' . $Itemid;
            $link = jNews_Tools::completeLink($link, false, $GLOBALS[JNEWS . 'use_sef']);
            if ($content_item[2] == 1) {
                if (empty($replacement->fulltext) && !empty($GLOBALS[JNEWS . 'word_wrap'])) {
                    //Limit the number of words
                    if (strlen($replacement->introtext) > $GLOBALS[JNEWS . 'word_wrap']) {
                        static $requiredOnce = true;
                        if ($requiredOnce) {
                            require_once JNEWSPATH_CLASS . 'content.php';
                            $requiredOnce = false;
                        }
                        $convertContent = new jNews_Content();
                        $fulltext = $convertContent->HTMLtoText($replacement->introtext, false, false);
                        //             			$fulltext = strip_tags($replacement->introtext,'<br><img>');
                        if (strlen($fulltext) > $GLOBALS[JNEWS . 'word_wrap']) {
                            //We make sure we won't cut any html tag :
                            //	             			$open = 0;
                            //	             			$limitText = strlen($fulltext) - 1;
                            //	             			for($i=0;$i<strlen($fulltext);$i++){
                            //	             				if($replacement->introtext[$i] == '<'){ $open++; continue;}
                            //	             				if($replacement->introtext[$i] == '>'){$open--; continue;}
                            //	             				if($replacement->introtext[$i] == " " AND $i>$GLOBALS[JNEWS.'word_wrap'] AND $open == 0){
                            //	             					$limitText = $i-1;
                            //	             					break;
                            //	             				}
                            //	             			}
                            $replacement->introtext = substr($fulltext, 0, $GLOBALS[JNEWS . 'word_wrap'] - 3) . '...';
                        } else {
                            $replacement->introtext = $fulltext . '...';
                        }
                    }
                }
                $html = str_replace($content_item[0], '<div class="aca_content"><span class="aca_title">' . $replacement->title . '</span>' . "\r\n" . $author . '<br />' . $replacement->introtext . '<br />' . "\r\n" . '<a href="' . $link . '"><span class="aca_readmore">' . _JNEWS_READMORE . '</span></a>' . "\r\n" . '</div>', $html);
            } else {
                $html = str_replace($content_item[0], '<a href="' . $link . '"><span class="aca_title">' . $replacement->title . '</span></a>', $html);
            }
        }
        $images = jnewsbot_content_getimage($replacement->images);
        foreach ($images as $image) {
            $image_string = '<img src="' . JNEWS_JPATH_LIVE_NO_HTTPS . '/images/stories/' . $image['image'] . '" align="' . $image['align'] . '" alt="' . $image['alttext'] . '" border="' . $image['border'] . '" />';
            $html = preg_replace('/{mosimage}/', $image_string, $html, 1);
        }
    }
    //endfcy
    $contentItemsNew = array();
    $contentItemsOld = array();
    //use to be {contentitem:(.{1,5})\|(.{1})}
    preg_match_all('/\\{contentitem:(.{1,8})\\|(.{1})\\|(.{1})}/', $text, $contentItemsNew, PREG_SET_ORDER);
    preg_match_all('/\\{contentitem:(.{1,8})\\|(.{1})}/', $text, $contentItemsOld, PREG_SET_ORDER);
    $content_items = jnewsbot_class_transform_mergeArray($contentItemsNew, $contentItemsOld);
    foreach ($content_items as $content_item) {
        if (version_compare(JVERSION, '1.6.0', '<')) {
            $Itemid = $mainframe->getItemId($content_item[1]);
        }
        if (empty($Itemid)) {
            $Itemid = $GLOBALS[JNEWS . 'itemidAca'];
        }
        $replacement = jnewsbot_content_getitem($content_item[1]);
        if (empty($replacement)) {
            continue;
        }
        if ($GLOBALS[JNEWS . 'show_author'] == 1) {
            $author = "\r\n" . $replacement->created_by_alias;
        } else {
            $author = '';
        }
        $replacement->title = "<b>" . strtoupper(jNews_ProcessMail::htmlToText($replacement->title)) . "</b>";
        $replacement->introtext = jNews_ProcessMail::htmlToText($replacement->introtext);
        $replacement->fulltext = jNews_ProcessMail::htmlToText($replacement->fulltext);
        //hide title or no
        if (isset($content_item[3])) {
            if ($content_item[3] == 1 && $content_item[2] != 2) {
                $replacement->title = "";
            }
        }
        if ($content_item[2] == 0) {
            $text = str_replace($content_item[0], $replacement->title . $author . "\r\n" . $replacement->introtext . "\r\n" . $replacement->fulltext . "\r\n", $text);
        } else {
            $link = 'option=com_content&view=article&id=' . $content_item[1] . '&Itemid=' . $Itemid;
            $link = jNews_Tools::completeLink($link, false, $GLOBALS[JNEWS . 'use_sef']);
            if ($content_item[2] == 1) {
                if (empty($replacement->fulltext) and !empty($GLOBALS[JNEWS . 'word_wrap'])) {
                    if (strlen($replacement->introtext) > $GLOBALS[JNEWS . 'word_wrap']) {
                        $replacement->introtext = substr(strip_tags($replacement->introtext), 0, $GLOBALS[JNEWS . 'word_wrap']) . '...';
                    }
                }
                $text = str_replace($content_item[0], $replacement->title . $author . "\r\n" . $replacement->introtext . "\r\n" . '* ' . _JNEWS_READMORE . ' ( ' . $link . ' )' . "\r\n", $text);
            } else {
                $text = str_replace($content_item[0], $replacement->title . ' ( ' . $link . ' )', $text);
            }
        }
        $text = str_replace('{mosimage}', '', $text);
    }
    $html = str_replace('{mospagebreak}', '<div style="clear: both;" ></div>', $html);
    $text = str_replace('{mospagebreak}', "\r\n \r\n", $text);
}