Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 6291 Просмотров
*

offshore

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Правка Joomla Extra News Plugin
« : 07.09.2011, 00:35:43 »
Привет Джумлончане!  ^-^ :D
Залила на сайт плагин Joomla Extra News, настроила... Всё класс!
Но вот только возник сразу вопросик... В каком файле править название "Похожие материалы:"?!
Очень хочется заменить на другую фразу, типа "Читайте также:"
Зараннее благодарна! :-*

P.S.
Сайт лежит не на локалке...
*

offshore

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Re: Правка Joomla Extra News Plugin
« Ответ #1 : 07.09.2011, 00:50:04 »
Извините за беспокойство...
Нашелся ответ...
..."Необходимо найти файлик en-GB.plg_content_extranews.ini, что находится в папке /language/en-GB. Необходимо отредактировать данный файл, то есть перевести фразы Related news items, Older news items и др. Также необходимо сохранить данный файл в кодировке UTF-8(без BOM)."...
Для особо ленивых (таких как я например) выкладываю измененную  кодировку, которую нужно всего лишь скопировать в en-GB.plg_content_extranews.ini.

Код
LBL_NEWERNAME=Следующие новости:
LBL_OLDERNAME=Предыдущие новости:
LBL_RELATEDNAME=Читайте также:
LBL_PREV_PAGE=<< Предыдущая страница
LBL_NEXT_PAGE=Следующая страница >>
« Последнее редактирование: 07.09.2011, 00:58:23 от offshore »
*

Mazur24

  • Новичок
  • 4
  • 0 / 0
Re: Правка Joomla Extra News Plugin
« Ответ #2 : 06.11.2011, 10:20:24 »
Здравствуйте.

Вопрос по extra news plugin.

Плагин позволяет выводить похожие статьи по мета в keywords следующим образом:

"Похожие статьи"(Related news Items)
"Следующие статьи"(Newer news Items)
"Предыдущие статьи"(Older news Items)

Дело в том, что "Похожие статьи" выводятся без ограничения по категории.
А вот "следующие" и "предыдущие" выводятся только в статьях этой же категории.

Собственно, проблема. Нужно сделать, чтобы "Следующие статьи" и "Предыдущие статьи" при выводе   были ограничены не рамками категории, а рамками раздела.

Помогите, пожалуйста.

Если готовы сделать платно - цену в личку.

Спасибо.

Код
<?php

/**

 * @version $Id: extranews.php  2008-05-05 18:42

 * @ Viet Nguyen Hoang - viet4777 - www.xahoihoctap.net & www.luyenkim.net $

 * @package     Joomla

 * @subpackage Content

 * @copyright  Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved.

 * @license    GNU/GPL, see LICENSE.php

 * Joomla! is free software. This version may have been modified pursuant

 * to the GNU General Public License, and as distributed it includes or

 * is derivative of works licensed under the GNU General Public License or

 * other free or open source software licenses.

 * See COPYRIGHT.php for copyright notices and details.

 *

 * Thanks Peter vd Hulst (petervanderhulst@hotmail.com) for correct DHTML display 

 */

// Check to ensure this file is included in Joomla!

defined( '_JEXEC' ) or die();

jimport( 'joomla.event.plugin' );



$enabled = JPluginHelper :: isEnabled  ('content','extranews');   

/**

 * Content Plugin

 *

 * @package    Joomla

 * @subpackage Content

 * @since      1.5

 */



class plgContentExtranews extends JPlugin

{

   /**

    * Constructor

    *

    * For php4 compatability we must not use the __constructor as a constructor for plugins

    * because func_get_args ( void ) returns a copy of all passed arguments NOT references.

    * This causes problems with cross-referencing necessary for the observer design pattern.

    *

    * @param object $subject The object to observe

    * @param object $params  The object that holds the plugin parameters

    * @since 1.5

    */

   function plgContentExtranews( &$subject, $params )

   { 

      parent::__construct( $subject, $params );

      $this->_plugin =& JPluginHelper::getPlugin('content','extranews');

      $this->params =& new JParameter( $this->_plugin->params );

        // Joomla's plugin-installer does not handle separate language files for

        // backend and frontend if installing a plugin (kind of silly, as it works

        // with components). Instead, it installs the language files always into the

        // JPATH_ADMINISTRATOR/languages. Therefore we have to specify this path

        // explicitely.

        //JPlugin::loadLanguage('plg_content_extranews', JPATH_ADMINISTRATOR);   //Call language file

        if (JPlugin::loadLanguage('plg_content_extranews')) ;  //Call language file

        else JPlugin::loadLanguage('plg_content_extranews', JPATH_ADMINISTRATOR);

        //JPlugin::loadLanguage('plg_content_extranews',JPATH_ROOT . DS . 'plugins'. DS .'content'. DS .'extranews'. DS .'i18n'. DS ); //Call language file       

      //JURI::base() va JURI::base(true),

      //JURI::base() -> http://xahoihoctap.net/webs/joomla15/

      //JURI::base(true) -> /webs/joomla15/

   }



   /**

    * prepare content method

    *

    * Method is called by the view

    *

    * @param   object      The article object.  Note $article->text is also available

    * @param   object      The article params

    * @param   int         The 'page' number

    */

function onAfterDisplayContent ( &$article, &$params, $limitstart ) //onAfterDisplayContent onPrepareContent

   {

      $db      =& JFactory::getDBO(); //Ket noi CSDL

      $user    =& JFactory::getUser(); //Thong tin user

      $option     = JRequest::getCmd('option'); //JRequest::getCmd

      $view    = JRequest::getCmd('view'); //JRequest::getCmd

      $plugin_enabled = $this->params->get('enabled','1');



      $config =& JFactory::getConfig();

      $offset = $config->getValue('config.offset');

      $aid     = $user->get('aid', 0);

      //$datetool = & new JDate();//strtotime("now"),

      //$datetool->setoffset($offset);

      //$content = ''.$datetool->toFormat()." ".$offset."<br/>".strtotime("now")."<br/>";



   if($plugin_enabled=="1" && $option=="com_content" && $view=="article"){

         

/******************Plugin Parameters*******************************/   





      $catid_list= $this->params->get( 'catid_list', '-');

      if($catid_list=='-') $catid_list = '';

      $sectionid_list= $this->params->get( 'sectionid_list', '-');

      if($sectionid_list=='-')$sectionid_list='';

      $catid_list = explode( ',', trim($catid_list));

      $sectionid_list = explode( ',', trim($sectionid_list));

      $id_list= $this->params->get( 'id_list', '-');

      if($id_list =='-') $id_list='';

      $id_list = explode( ',', trim($id_list));



      $title_chars= $this->params->get( 'char_count_title', 50);

      $relateditemscount = intval( $this->params->get( 'relateditemscount', 5) );

      $neweritemscount = intval( $this->params->get( 'neweritemscount', 5 ) );

      $oderitemscount = intval( $this->params->get( 'oderitemscount', 5 ) );

      $showdate = (int)$this->params->get( 'showdate', 1 );

      $showdateformat = $this->params->get( 'showdateformat', 'd/m/Y H:i' );

      $linkedtitleformat = $this->params->get( 'linkedtitleformat', '%1$s - %2$s' );

     

      $textbefore = $this->params->get( 'textbefore', '');

      $textafter = $this->params->get( 'textafter', '');

       

      $blockalign = $this->params->get( 'blockalign', 'left');

      $blockwidth = $this->params->get( 'blockwidth', '80%');

      $marginleft = $this->params->get( 'marginleft', '5%');

      $marginright = $this->params->get( 'marginright', '5%');



      //Tooltip

      $enable_tooltip     = $this->params->get( 'enable_tooltip','yes' );

      $script_tooltip     = $this->params->get( 'script_tooltip', 0 ); // 0:Joomla mootool 1:Overlib

      $scriptIE6_tooltip     = $this->params->get( 'scriptIE6_tooltip', 0 ); // 0:Dhtml tooltip 1:Overlib

      $load_mootools     = $this->params->get( 'load_mootools','no' );

      $tooltip_desc_chars  = $this->params->get( 't_char_count_desc', 150 );

      $tooltip_desc_images= $this->params->get( 'tooltip_desc_images', 'yes' );



      $img_width = $this->params->get( 'img_width', 80 );

      $img_height = $this->params->get( 'img_height', 80 );

      $tooltip_title_chars= $this->params->get( 't_char_count_title', 50 );



      $tooltip_width      = $this->params->get( 'tooltip_width','250' );

      $tooltip_height     = $this->params->get( 'tooltip_height','100' );

      $tooltip_bgcolor    = $this->params->get( 'tooltip_bgcolor','#24537d' );

      $tooltip_capcolor   = $this->params->get( 'tooltip_capcolor','#ffffff' );

      $tooltip_fgcolor    = $this->params->get( 'tooltip_fgcolor','#E1F0FF' );

      $tooltip_textcolor  = $this->params->get( 'tooltip_textcolor','#000000' );

      $tooltip_border     = $this->params->get( 'tooltip_border','1' );

      $img_width      = $this->params->get( 'img_width', 120 );

      $showtext_before_n_after = 0;

//JPATH_SITE, JPATH_ROOT, and JPATH_BASE Đường dẫn của host khong phia la www.xahoihoctap.net     





      $br = strtolower($_SERVER['HTTP_USER_AGENT']); // what browser they use.

      if(ereg("msie", $br) && !ereg("msie 7.0", $br)){ //IE 6.x

                        $script_tooltip = $scriptIE6_tooltip;

                }       

/****************************************************************************/

                $doc =& JFactory::getDocument();

                global $mainframe;

                $url = $mainframe->isAdmin()? $mainframe->getSiteURL() : JURI::base();

                $doc->addStyleSheet($url.'plugins/content/extranews/css/extranews.css');               

   if ($enable_tooltip == 'yes') {

   if($script_tooltip==1) $overlib = 1; else $overlib = 0;

      $tooltip_title_chars2 = ($tooltip_title_chars == 0)? 999 : $tooltip_title_chars;



      switch ($script_tooltip) {

      case 0: //Joomla mootool

           $initial_tooltip = "

         window.addEvent('load', function(){



         var JTooltips = new Tips($$('.Tips2'), {

            maxTitleChars: 100, fixed: false

            });

         var Tips2 = new Tips($$('.tooltip_extranews'), { maxTitleChars: " . $tooltip_title_chars2 . ", fixed: false}, {

            initialize:function(){

               this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);

            },

            onShow: function(toolTip) {

               this.fx.start(1);

            },

            onHide: function(toolTip) {

               this.fx.start(0);

            }

         });

            });";

                $initial_tooltip_css ='div.tool-tip { max-width: '.$tooltip_width.'px;}';

      if(($load_mootools = 'yes') && !$mainframe->get('loadMootoolslib')) {

         $doc->addScript($url.'plugins/content/extranews/js/mootools.js');

                  $mainframe->set( 'loadMootoolslib', true );

      }



      $doc->addStyleDeclaration($initial_tooltip_css);

      $doc->addScriptDeclaration($initial_tooltip);



      break;



      case 1: //Overlib

      if ( !$mainframe->get( 'loadOverlib' ) ) {

      $doc->addScript($url.'includes/js/overlib_mini.js');

      $doc->addScript($url.'includes/js/overlib_hideform_mini.js');

      $mainframe->set( 'loadOverlib', true );

         }

      break;



      default:

                if ( !$mainframe->get( 'loadDhtmllib' ) ) {

                $doc->addScript($url.'plugins/content/extranews/js/dhtmltooltip.js');

                $doc->addStyleSheet($url.'plugins/content/extranews/css/dhtmltooltip.css');

                $mainframe->set( 'loadDhtmllib', true );

                           }

         }

   }



/****************************************************************************/



      $contentConfig = &JComponentHelper::getParams( 'com_content' );

      $access     = !$contentConfig->get('shownoauth');



      $nullDate   = $db->getNullDate();

      jimport('joomla.utilities.date');

      $date = new JDate();

      $now = $date->toMySQL();

     

      $the_id = 0;



      $where      = 'a.state = 1'

         . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )'

         . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'

         ;



   

/************Get content Information****************************/

      //$the_id = (int) JRequest::getCmd('id') ; //::getVar

      $the_id = (int) $article->id; //ok

      $catquery = 'select catid, sectionid, created, modified,  metakey from #__content where id='. $the_id;

      $db->setQuery($catquery,0,1); //Lay gia tri cua categiry co chua id article nay

      //$db->loadResult();

      $tamthoi = $db->loadObjectList();

      $likes = array();   



      foreach ($tamthoi as $tamthoi_){

         $the_catid = (int)$tamthoi_->catid;

         $the_sectionid = (int)$tamthoi_->sectionid;

         $catCondition = ' AND cc.id='. $tamthoi_->catid;

         $acreated = $tamthoi_->created;

         $modified = $tamthoi_->modified;

   if ($metakey = trim( $tamthoi_->metakey )) {

      // explode the meta keys on a comma

      $keys = explode( ',', $metakey );

      // assemble any non-blank word(s)

      foreach ($keys as $key) {

         $key = trim( $key );

         if ($key) {

            $likes[] = $db->getEscaped( $key );

         }

      }

   }

      break; //thoat vong lap

      }//end of foreach





      // Ordering

      switch ($this->params->get( 'queryby'))

      {

         case 'i_dsc':

            $ordering      = ' a.id DESC';

            $ordering2     = ' a.id ASC';

            $ordering3     = ' b.id DESC';

            $where_cond_older = ' AND a.id < '. $the_id;

            $where_cond_newer = ' AND a.id > '. $the_id;

            break;

         case 'c_dsc':

         default:

            $ordering      = ' a.created DESC';

            $ordering2     = ' a.created ASC';

            $ordering3     = ' b.created DESC';

            $where_cond_older = ' AND a.created < '. $db->Quote($acreated);

            $where_cond_newer = ' AND a.created > '. $db->Quote($acreated);

            break;

      }



/*************

Kiem tra xem co thuoc vao list id, cat_id va section_id khong

*****************/

      if (in_array((int)$the_sectionid, $sectionid_list) || in_array((int)$the_catid, $catid_list) || in_array((int)$the_id, $id_list)) return;

      //Thoat va khong lam gi ca, exit and do nothing   

      /*

      foreach ( $sectionid_list as $sectionid_item ) if((int)$sectionid_item == (int)$the_sectionid) $disableshow = true;

      foreach ( $catid_list as $catid_item ) if((int)$catid_item == (int)$the_catid) $disableshow = true;

      foreach ( $id_list as $id_item ) if((int)$id_item == (int)$the_id) $disableshow = true;

      if($disableshow) return; //Thoat va khong lam gi ca, exit and do nothing

      */

/*************

Kiem tra xem co thuoc vao list cat_id va section_id khong

*****************/



      //the_id - the id of current article

      //$acreated - the created date of current article

      //$catCondition - the category of the current article



/************Related news Items***********************/

      //$relateditemscount, $neweritemscount, $oderitemscount

//       . "\n AND ( a.metakey LIKE '%" . implode( "%' OR a.metakey LIKE '%", $likes )."%' )"

      // Content Items only

  $where_ids_related = "";

  $content = '';

  $apre_next = '';

if (count( $likes ) && ($relateditemscount>0)) {

      $query = 'SELECT a.*, a.id as key1,' .

         ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.

         ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.

         ' FROM #__content AS a' .

         ' INNER JOIN #__categories AS cc ON cc.id = a.catid' .

         ' INNER JOIN #__sections AS s ON s.id = a.sectionid' .

         ' WHERE '. $where .' AND s.id > 0 AND '. 'a.id != ' . $the_id .

         "\n AND ( a.metakey LIKE '%" . implode( "%' OR a.metakey LIKE '%", $likes )."%' )" .

         ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid .

         ' AND s.published = 1' .

         ' AND cc.published = 1' .

         ' ORDER BY '. $ordering; //echo $query;

      $db->setQuery($query, 0, $relateditemscount);

      $rows = $db->loadObjectList();       



        //$content = '';

/**********************************************=================***/

   $ids_related = '0';



  if (count($rows)) {

  $content .= '<div id="relateditemtitle">'. JText::_('LBL_RELATEDNAME').'</div><ul id="relateditemlist">'."\n";





  foreach ( $rows as $row ){

   $content .= "<li>";

   $link   = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid.":testset"));

   if ($tooltip_desc_images=='yes') $image = $this->getImage($row, "left", 1, 1, $img_width , $img_height );

      else $image = '';

   $date_display = '';

   if($showdate) $date_display = '<span class="extranews_date">'.$this->mygetdate($row->created,$offset,$showdateformat).'</span>';



   $title_tip_str = ($tooltip_title_chars == 0)? strip_tags($row->title) : $this->chars(strip_tags($row->title),$tooltip_title_chars);

   $title_str = ($title_chars == 0)? strip_tags($row->title) : $this->chars(strip_tags($row->title),$title_chars);

   $tip_desc_str = ($tooltip_desc_chars == 0)? strip_tags($row->introtext):$this->chars(strip_tags($row->introtext), $tooltip_desc_chars);

   $tip_desc_str = $this->removetag($this->strip_newline($tip_desc_str));

   //$tip_desc_str = JFilterOutput::cleanText($row->introtext);



   if ($enable_tooltip == 'yes') 

   switch ($script_tooltip) {

   case 0:

      $linked_title_display = '<span class="tooltip_extranews" Title="'.htmlspecialchars($title_tip_str).

      '::'.htmlspecialchars($image . "<div class='extranews_tooltip'>". $tip_desc_str."</div>").'"><a href="'.$link.'">'.$title_str."</a>".'</span>';

   break;

   case 1:

      $text = htmlspecialchars(addslashes($image . "<div class='extranews_tooltip'>". $tip_desc_str."</div>"));

      //$text = htmlspecialchars(addslashes($image));



      $tooltip_title = htmlspecialchars(addslashes($title_tip_str));

      $tooltip = " onmouseover=\"overlib('".$text."', CAPTION, '".$tooltip_title."', FGCOLOR, '".$tooltip_fgcolor."', BGCOLOR, '".$tooltip_bgcolor."', WIDTH,'".$tooltip_width."', HEIGHT,'".$tooltip_height."', BORDER, ".$tooltip_border.", CAPCOLOR, '".$tooltip_capcolor."', TEXTCOLOR, '".$tooltip_textcolor."'".$tooltip_extra_invocation_string.");\" onmouseout=\"return nd();\" "; //assign mouseover text to put in title hyperlink

      $linked_title_display = '<a '.$tooltip.' href="'.$link.'">'.$title_str."</a>";

   break;

   default:

      //DHTML

      $linked_title_display = '<a href="'.$link.'" onmouseover="showttip(\''.addslashes(htmlspecialchars('<strong>'.strip_tags($row->title).'</strong><br/>'.$image . "<div class='extranews_tooltip'>".$tip_desc_str."</div>")).'\', '.$tooltip_width.');" onmouseout="hidettip();">'.$title_str."</a>";//



   }

   else $linked_title_display = '<a href="'.$link.'">'.$title_str.'</a>'; 

   $content .= ($showdate)?JText::sprintf($linkedtitleformat, $date_display, $linked_title_display):$linked_title_display;

   $content .= "</li>\n";   

   $ids_related .= ',' . $row->id;     

          }//foreach 

 

      $showtext_before_n_after = 1;

  $content .= '</ul>'."\n"; 

  }

 

 

   $ids_related = '('. $ids_related .')';

   $where_ids_related = "\n AND a.id NOT IN $ids_related";

   } //if (count( $likes ))

/****************************************************************************/





/************Newer news Items***********************/

      //$relateditemscount, $neweritemscount, $oderitemscount

      // Content Items only

if ($neweritemscount>0) {

      // Content Items only

      $neweritemscount = $neweritemscount + 1;

/*      $query = "SELECT * FROM (".

         ' SELECT a.id as key1, a.*, ' .

         ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.



         ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.

         ' FROM #__content AS a' .

         ' INNER JOIN #__categories AS cc ON cc.id = a.catid' .

         ' INNER JOIN #__sections AS s ON s.id = a.sectionid' .

         ' WHERE '. $where .' AND s.id > 0 AND '. 'a.id != ' . $the_id . $where_cond_newer .

         ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid .

         ($catCondition). $where_ids_related .

         ' AND s.published = 1' .

         ' AND cc.published = 1' .

         ' ORDER BY '.$ordering2.' limit '. $neweritemscount .

         ") as b ORDER by $ordering3"; //echo $query;

*/

      $query = ' SELECT a.id as key1, a.*, ' .

         ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.



         ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.

         ' FROM #__content AS a' .

         ' INNER JOIN #__categories AS cc ON cc.id = a.catid' .

         ' INNER JOIN #__sections AS s ON s.id = a.sectionid' .

         ' WHERE '. $where .' AND s.id > 0 AND '. 'a.id != ' . $the_id . $where_cond_newer .

         ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid .

         ($catCondition). $where_ids_related .

         ' AND s.published = 1' .

         ' AND cc.published = 1' .

         ' ORDER BY '.$ordering2.' limit '. $neweritemscount; //echo $query;         

      $db->setQuery($query);

      $rows = $db->loadObjectList();   



      $afirst = 0;

      if(count($rows)==$neweritemscount) $afirst = 1;     

   

  if (count($rows)){

  $content .= '<div id="neweritemtitle">'. JText::_('LBL_NEWERNAME').'</div><ul id="neweritemlist">'."\n"; 



  $num_items = count($rows);

  for ($i = 0; $i < $num_items; $i++ ) {

 //foreach ( $rows as $row ){



   $row = $rows [$num_items-$i-1];

    if($afirst==0){

   $content .= "<li>";

   $link   = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid.":testset"));

   if ($tooltip_desc_images=='yes') $image = $this->getImage($row, "left", 1, 1, $img_width , $img_height );

      else $image = '';

   $date_display = '';

   if($showdate) $date_display = '<span class="extranews_date">'.$this->mygetdate($row->created,$offset,$showdateformat).'</span>';



   $title_tip_str = ($tooltip_title_chars == 0)? strip_tags($row->title) : $this->chars(strip_tags($row->title),$tooltip_title_chars);

   $title_str = ($title_chars == 0)? strip_tags($row->title) : $this->chars(strip_tags($row->title),$title_chars);

   $tip_desc_str = ($tooltip_desc_chars == 0)? strip_tags($row->introtext):$this->chars(strip_tags($row->introtext), $tooltip_desc_chars);

   $tip_desc_str = $this->removetag($this->strip_newline($tip_desc_str));

   

   if ($enable_tooltip == 'yes') 

   switch ($script_tooltip) {

   case 0:

      $linked_title_display = '<span class="tooltip_extranews" Title="'.htmlspecialchars($title_tip_str).

      '::'.htmlspecialchars($image . "<div class='extranews_tooltip'>". $tip_desc_str."</div>").'"><a href="'.$link.'">'.$title_str."</a>".'</span>';

   break;

   case 1:

      $text = htmlspecialchars(addslashes($image . "<div class='extranews_tooltip'>". $tip_desc_str."</div>"));

      //$text = htmlspecialchars(addslashes($image));



      $tooltip_title = htmlspecialchars(addslashes($title_tip_str));

      $tooltip = " onmouseover=\"overlib('".$text."', CAPTION, '".$tooltip_title."', FGCOLOR, '".$tooltip_fgcolor."', BGCOLOR, '".$tooltip_bgcolor."', WIDTH,'".$tooltip_width."', HEIGHT,'".$tooltip_height."', BORDER, ".$tooltip_border.", CAPCOLOR, '".$tooltip_capcolor."', TEXTCOLOR, '".$tooltip_textcolor."'".$tooltip_extra_invocation_string.");\" onmouseout=\"return nd();\" "; //assign mouseover text to put in title hyperlink

      $linked_title_display = '<a '.$tooltip.' href="'.$link.'">'.$title_str."</a>";

   break;

   default:

      //DHTML

      $linked_title_display = '<a href="'.$link.'" onmouseover="showttip(\''.addslashes(htmlspecialchars('<strong>'.strip_tags($row->title).'</strong><br/>'.$image . "<div class='extranews_tooltip'>".$tip_desc_str."</div>")).'\', '.$tooltip_width.');" onmouseout="hidettip();">'.$title_str."</a>";//



   }

   else $linked_title_display = '<a href="'.$link.'" title="'.$row->title.'">'.$title_str.'</a>';

   $content .= ($showdate)?JText::sprintf($linkedtitleformat, $date_display, $linked_title_display):$linked_title_display;

   //$content .= sprintf($linkedtitleformat, $date_display, $linked_title_display);

   $content .= "</li>\n";   



     }else {

      $link   = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid.":testset"));

      $apre_next = '<span class="extranews_priviuospage"><a href="'. $link . '" title="'.$row->title.'">'.JText::_('LBL_PREV_PAGE').'</a></span>';

      $afirst = 0;

      }

     

       }

      $showtext_before_n_after = 1;

    $content .= '</ul>'."\n"; 

  }

}//if(count newer items)       



/****************************************************************************/

 

/************Older news Items***********************/

      // Content Items only

      //$ordering = 'a.created ASC'; //Newer news items

if ($oderitemscount>0) {     

      $oderitemscount = $oderitemscount + 1;

      $query = 'SELECT a.id as key1, a.*, ' .

         ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.

         ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.

         ' FROM #__content AS a' .

         ' INNER JOIN #__categories AS cc ON cc.id = a.catid' .

         ' INNER JOIN #__sections AS s ON s.id = a.sectionid' .

         ' WHERE '. $where .' AND s.id > 0 AND '. 'a.id != ' . $the_id . $where_cond_older .

         ' AND a.access <= ' .(int) $aid. ' AND cc.access <= ' .(int) $aid. ' AND s.access <= ' .(int) $aid .

         ($catCondition). $where_ids_related .

         ' AND s.published = 1' .

         ' AND cc.published = 1' .

         ' ORDER BY '. $ordering; //echo $query;

      $db->setQuery($query, 0, $oderitemscount);

      $rows = $db->loadObjectList();       



   

/**********************************************=================***/





      $alast = 9999999;

      if(count($rows)==$oderitemscount) $alast = $oderitemscount;

   $i = 0;

  if (count($rows)>0) {

  $content .= '<div id="olderitemtitle">'. JText::_('LBL_OLDERNAME').'</div><ul id="olderitemlist">'."\n";

 

  foreach ( $rows as $row ){

   $i++;

      if($i != $alast){

   $content .= "<li>";



   $link   = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid.":testset"));

   if ($tooltip_desc_images=='yes') $image = $this->getImage($row, "left", 1, 1, $img_width , $img_height );

      else $image = '';

   $date_display = '';

   if($showdate) $date_display = '<span class="extranews_date">'.$this->mygetdate($row->created,$offset,$showdateformat).'</span>';



   $title_tip_str = ($tooltip_title_chars == 0)? strip_tags($row->title) : $this->chars(strip_tags($row->title),$tooltip_title_chars);

   $title_str = ($title_chars == 0)? strip_tags($row->title) : $this->chars(strip_tags($row->title),$title_chars);

   $tip_desc_str = ($tooltip_desc_chars == 0)? strip_tags($row->introtext):$this->chars(strip_tags($row->introtext), $tooltip_desc_chars);

   $tip_desc_str = $this->removetag($this->strip_newline($tip_desc_str));

   

   if ($enable_tooltip == 'yes') 

   switch ($script_tooltip) {

   case 0:

      $linked_title_display = '<span class="tooltip_extranews" Title="'.htmlspecialchars($title_tip_str).

      '::'.htmlspecialchars($image . "<div class='extranews_tooltip'>". $tip_desc_str."</div>").'"><a href="'.$link.'">'.$title_str."</a>".'</span>';

   break;

   case 1:

      $text = htmlspecialchars(addslashes($image . "<div class='extranews_tooltip'>". $tip_desc_str."</div>"));

      //$text = htmlspecialchars(addslashes($image));



      $tooltip_title = htmlspecialchars(addslashes($title_tip_str));

      $tooltip = " onmouseover=\"overlib('".$text."', CAPTION, '".$tooltip_title."', FGCOLOR, '".$tooltip_fgcolor."', BGCOLOR, '".$tooltip_bgcolor."', WIDTH,'".$tooltip_width."', HEIGHT,'".$tooltip_height."', BORDER, ".$tooltip_border.", CAPCOLOR, '".$tooltip_capcolor."', TEXTCOLOR, '".$tooltip_textcolor."'".$tooltip_extra_invocation_string.");\" onmouseout=\"return nd();\" "; //assign mouseover text to put in title hyperlink

      $linked_title_display = '<a '.$tooltip.' href="'.$link.'">'.$title_str."</a>";

   break;

   default:

      //DHTML

      $linked_title_display = '<a href="'.$link.'" onmouseover="showttip(\''.addslashes(htmlspecialchars('<strong>'.strip_tags($row->title).'</strong><br/>'.$image . "<div class='extranews_tooltip'>".$tip_desc_str."</div>")).'\', '.$tooltip_width.');" onmouseout="hidettip();">'.$title_str."</a>";//



   }

   else $linked_title_display = '<a href="'.$link.'" title="'.$row->title.'">'.$title_str.'</a>';

   $content .= ($showdate)?JText::sprintf($linkedtitleformat, $date_display, $linked_title_display):$linked_title_display;

   //$content .= sprintf($linkedtitleformat, $date_display, $linked_title_display);

   $content .= "</li>\n";   

   

   } else {

      $link   = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid.":testset"));

      $apre_next = $apre_next . '<span class="extranews_nextpage"><a href="'. $link . '" title="'.$row->title.'">'.JText::_('LBL_NEXT_PAGE').'</a></span>';

      break;

      }

   }//for each 

 

      $showtext_before_n_after = 1; 

   $content .= '</ul>'."\n"; 

  }

 }// if (count of older items)

 

   $content .= "<div id=\"prev_next_buttom\" align=\"center\">".$apre_next."</div>";

/****************************************************************************/

      $blockalign = $this->params->get( 'blockalign', 'left');   

      $marginleft = $this->params->get( 'marginleft', '5%');

      $marginright = $this->params->get( 'marginright', '5%');



      //"<!-- 'Comments Title -->"

if($showtext_before_n_after) $content = $textbefore.$content.$textafter;

if($content != '') {

$content = '<div style="margin-left:'.$marginleft.'; margin-right:'.$marginright.'; text-align:left;">'.$content."</div>";

    switch ($this->params->get('joos_comment','0')) {

        case 0:

            $article->text .= $content;

            break;

        case 1:

            $article->text = str_replace("<!-- 'Comments Title -->",$content."<!-- 'Comments Title -->",$article->text);

            break;

        case 2:

            $article->text = str_replace("<!-- START of joscomment -->",$content."<!-- START of joscomment -->",$article->text);

            break;

        case 3:

            $article->text = str_replace("<!-- Comments Title -->",$content."<!-- Comments Title -->",$article->text);

            break;

        default:

          if($this->params->get('user_define','')!= '' ) $article->text = str_replace($this->params->get('user_define','0'),$content.$this->params->get('user_define','0'),$article->text);

          else $article->text .= $content;

            break;

    }

}

   } //Plugin On/off

   else return;



   }// End Function



/******************************************/

function mygetdate($date,$offset,$showdateformat){

//$date - date time, $offset - time offset, $showdateformat - the date format

   if($offset==0)return date("$showdateformat",strtotime($date));

   $_date = new DateTime($date);

   if(abs($offset) == 1)$offset_t = ($offset > 0)?'+1 hour':'-1 hour';

   else $offset_t = ($offset > 0)?'+'.$offset.' hours':'-'.abs($offset).' hour';

   $_date -> modify($offset_t);

   return date("$showdateformat",strtotime($_date->format('Y-m-d H:i:s')));

}



function chars($text_, $charnum,$more=''){

$text_ = JString::trim($text_);

if(($charnum >0) && (JString::strlen($text_) > $charnum)) return JString::substr($text_,0,$charnum).(($more=='')?"…":$more);

else return $text_;

}



//pch 26.9.2008 also strip new lines \r\n from introtext

function strip_newline($text){

//strip \r\n

$order = array("\r\n","\n","\r");

//$replace = '<br />';

$replace = ' ';

$text=str_replace($order,$replace,$text);

return $text;

}

function getImage( &$row, $align, $autoresize, $showimage, $width = 0, $height = 0 ) {

         $regex = "/\<img.*?src\s*=\s*\"([^\"]*)\"[^\>]*\>/";

    //$regex = "@\<img.+src\s*=\s*\"([^\"]*)\"[^\>]*\>@";

         preg_match ($regex, $row->introtext, $matches);

         if(!count($matches)) preg_match ($regex, $row->fulltext, $matches);

         $images = (count($matches))? $matches : array();

         $image = '';

         if (count($images)) $image = $images[1];

        $align = $align?"align=\"$align\"":"";

         if ($image && $showimage) {

            if ($autoresize && function_exists('imagecreatetruecolor')

               && ($image1 = $this->pImage ( $image, $width, $height ))) {

                  $image = "<img src=\"".$image1."\" alt=\"{$row->title}\" $align style=\"margin: 0px 6px;\"/>";

            } else {

               $width = $width?("width:$width"."px;"):"";

               $height = $height?("height:$height"."px;"):"";

               $style ='style="'.$width.' '.$height.' margin: 0px 6px;"';

               $image = "<img src=\"".$image."\" alt=\"{$row->title}\" $style $align />";

            }

         } else $image = '';

         // clean up globals

         return $image;

      }





function pImage ( &$img, $width, $height ) {

         if(!$img) return;

         $img = str_replace(JURI::base(),'',$img);

         $img = rawurldecode($img);

         $imagesurl = (file_exists(JPATH_SITE .'/'.$img))? $this->resizeImage($img,$width,$height) :  '' ;

         return $imagesurl;

      }

     

function removetag($string){

      $pattern = "|{[^}]+}(.*){/[^}]+}|U";

      $replacement = '';

      return preg_replace($pattern, $replacement, $string);

}



function resizeImage($image,$max_width,$max_height){

         $path = JPATH_SITE;

         $sizeThumb = getimagesize(JPATH_SITE.'/'.$image);

         $width = $sizeThumb[0];

         $height = $sizeThumb[1];

         if(!$max_width && !$max_height) {

        $max_width = $width;

        $max_height = $height;

      }else{

        if(!$max_width) $max_width = 1000;

        if(!$max_height) $max_height = 1000;

      }



         $x_ratio = $max_width / $width;

         $y_ratio = $max_height / $height;

         if (($width <= $max_width) && ($height <= $max_height) ) {

            $tn_width = $width;

            $tn_height = $height;

         } else if (($x_ratio * $height) < $max_height) {

            $tn_height = ceil($x_ratio * $height);

            $tn_width = $max_width;

         } else {

            $tn_width = ceil($y_ratio * $width);

            $tn_height = $max_height;

         }

         // read image

         $ext = strtolower(substr(strrchr($image, '.'), 1)); // get the file extension

         $rzname = strtolower(substr($image, 0, strpos($image,'.')))."_{$tn_width}_{$tn_height}.{$ext}"; // get the file extension

         $resized = $path.'/images/resized/'.$rzname;

         if(file_exists($resized)){

            $smallImg = getimagesize($resized);

            if (($smallImg[0] <= $tn_width && $smallImg[1] == $tn_height) ||

               ($smallImg[1] <= $tn_height && $smallImg[0] == $tn_width)) {

                  return JURI::base()."images/resized/".$rzname;

            }

         }

        if(!file_exists($path.'/images/resized/')){

                if(!mkdir($path.'/images/resized/',0755)) return '';

                $ffilename = $path.'/images/resized/index.html';

                if(!file_exists($ffilename)){

                        $filecontent = '<html><body bgcolor="#FFFFFF"></body></html>';

                        $handle = fopen($ffilename, 'x+');

                        fwrite($handle, $filecontent);

                        fclose($handle); 

                }

        }



         $_image = strtolower($image); // make the folders

         $folders = explode('/',$_image);         

         $tmppath = $path.'/images/resized/';

         for($i=0;$i < count($folders)-1; $i++){

        if(!file_exists($tmppath.$folders[$i]) && !mkdir($tmppath.$folders[$i],0755)) return '';



        $tmppath = $tmppath.$folders[$i].'/';

        //make a blank content

        $ffilename = $tmppath . 'index.html';

        if(!file_exists($ffilename)){

                $filecontent = '<html><body bgcolor="#FFFFFF"></body></html>';

                $handle = fopen($ffilename, 'x+');

                fwrite($handle, $filecontent);

                fclose($handle); 

        }       

         }

         switch ($ext) {

            case 'jpg':     // jpg

            case 'jpeg':    //jpeg

               $src = imagecreatefromjpeg(JPATH_SITE.'/'.$image);

               break;



            case 'png':     // png

               $src = imagecreatefrompng(JPATH_SITE.'/'.$image);

               break;

            case 'gif':     // gif

               $src = imagecreatefromgif(JPATH_SITE.'/'.$image);

               break;

            default:

         }

         $dst = imagecreatetruecolor($tn_width,$tn_height);

         $tmp = imageantialias ($dst, true);

         imagecopyresampled ($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);

         imagejpeg($dst, $resized, 90); // write the thumbnail to cache as well...

         return JURI::base()."images/resized/".$rzname;

      }

} // End Class





?>
*

oreh1

  • Новичок
  • 4
  • 0 / 0
Re: Правка Joomla Extra News Plugin
« Ответ #3 : 13.12.2013, 12:11:36 »
Добрый день форумчане!
У меня следующая проблема с этим плагином: все установил, все работает отлично, после установки плагина добавил еще одну категорию на сайт, и вот в ней не работает плагин( в настройках плагина пробовал ставить все категории, потом пробовал поставить именно эту категорию, не помогает)
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Правка Joomla Extra News Plugin
« Ответ #4 : 13.12.2013, 17:05:47 »
не выводится вовсе или что?
может быть на этой странице категории - конфликт скриптов?
хорошо бы ссылку на сайт
*

Germanik5

  • Новичок
  • 1
  • 0 / 0
Re: Правка Joomla Extra News Plugin
« Ответ #5 : 11.05.2014, 18:17:47 »
Добрый день. Установил плагин, но столкнулся с одной проблемой: на одной странице плагин выбивает кривые ссылки на "похожие статьи". На остальных страицах работает нормально, а на этой ссылки идут никуда (eror 404). Можно как-то это исправить или хотя бы отключить работу плагина конкретно на этой странице?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 1.5 как убрать кнопку редактировать материант с сайта

Автор andriy465

Ответов: 5
Просмотров: 1807
Последний ответ 12.11.2023, 23:37:03
от all_zer
Нужно wiki под Joomla

Автор THE KILLERS

Ответов: 9
Просмотров: 8728
Последний ответ 05.11.2020, 20:56:47
от Kijv
Поиск статьи по url сайта в админке Joomla 1.5

Автор Tema

Ответов: 5
Просмотров: 1274
Последний ответ 14.08.2020, 07:16:44
от rsn
Не могу войти в админку Joomla 1.5

Автор MrSkif

Ответов: 14
Просмотров: 9722
Последний ответ 12.09.2018, 19:36:32
от PaLyCH
Не войду в админку Joomla 1.5.26, пишет соединение с сервером было сброшено

Автор rom_4

Ответов: 4
Просмотров: 4903
Последний ответ 16.05.2018, 17:28:18
от Алексей MeRsOvOd