Бормотухи.НЕТ

Вернуться   Бормотухи.НЕТ > Web-мастеру > vBulletin 3.х > vBadvanced CMPS
Расширенный поиск

vBadvanced CMPS Проблемы, вопросы и их решение на тему vBadvanced CMPS

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2012, 22:05 Вверх   #1
Коренной житель
 
Аватар для Sardelka
Sardelka вне форума
Доп. информация
По умолчанию Модуль News From Thread

News From Thread
Скачать его можно в этой теме, ссылка.

Что делает модуль? Модуль делает тоже самое, что и модуль новостей, только выводит не первые сообщения из новых тем, а выводит сообщения из определенных тем.

Демо.

Установка:
1) Скачиваем файл.
2) Заходим в админ панель -> в панель vBadvanced CMPS -> Скачать/Загрузить модуль.
а) Загрузка модуля. Нажимаем обзор и выбираем xml файл соответствующий вашей кодировки.
б) Активно. Ставим галочку да.
в) Стиль для установки. Выбираем все шаблоны.
г) Группы пользователей. Выделяем все группы.
нажимаем ок.

Далее модуль появится в списке модулях и добавляем его на страницу, как стандартный модуль.

Настройка:
Настройка модуля производитя ручками в файле newsfromthread.php.
Который находится Корень сайта/moduls/

Возможные настройки:
$threads_id = array(1826), 1826 - номер темы из которой будут выводиться сообщения, можно добавить несколько номеров разных тем через запятую.
- Максимальное количество сообщений, отображаемых на странице.
- Количество страниц, отображаемых в панели перехода по страницам.
- Максимальное количество символов, которые нужно отображать из сообщения, до ссылки '[Читать дальше]'.
- Формат даты и времени.
- Отображать вложения в новых сообщениях.
- Отображать аватары пользователей в каждом сообщении.
- Отображать иконки для каждого сообщения.
- Отображение сообщений вместе или отдельно.
- использовать строковые функции.

Добавлено через 5 минут 9 секунд

А теперь вопросы к великим веб программистам.

Вот до чего я довел:


Вот код:
PHP код:
<?php
// ++=========================================================================++
// || vBadvanced CMPS v3.2.1 (для vBulletin 3.6 - 3.8) - Русская версия
// || © 2003-2009 vBadvanced.com - Все права защищены
// || Русский перевод: Lazek и zCarot
// ++ ========================================================================++

// Настройки модуля
$threads_id = array(1826); // Список тем, которые будут выводится в модуле новостей.
$maxposts 10// Максимальное количество сообщений, отображаемых на странице.
$newsperpage 10// Количество страниц, отображаемых в панели перехода по страницам.
$cutoffdate 30// Здесь вы можете ввести количество дней, определяющих временной предел для новых сообщений. Любые сообщения, которые были созданы/обновлены до текущей даты минус это количество дней, не будут включены. Это предотвращает большие поисковые запросы по таблице на больших форумах. Установите параметр на 0 для снятия ограничения.
$maxchars 0// Максимальное количество символов, которые нужно отображать из сообщения, до ссылки '[Читать дальше]'. Установите здесь 0, чтобы показывать сообщения полностью.
$dateformat ""// Формат даты и времени. Установите значение в "", если не желаете отображать время создания сообщения.
$showattachments 1// Отображать вложения в новых сообщениях. Если "1", вложения отображаются. Если "0", вложения не отображаются.
$showavatar 0// Отображать аватары пользователей в каждом сообщении. Если "1", аватары отображаются. Если "0", аватары не отображаются.
$showicon 0// Отображать иконки для каждого сообщения. Если "1", иконки отображаются. Если "0", иконки не отображаются.
$news_legacy 1// Эта опция определяет, как отображать сообщения: вместе или раздельно. Если "1", отображаются вместе. Если "0", отображаются раздельно.
$utf8use 0// использовать строковые функции с поддержкой UTF8. Если "1" то поддержка включена.
$readmore "[Читать дальше]";
$messagefromtheme "Сообщение из темы ";

if (!
$newsprocessed[$mods['modid']])
{
    foreach (
$modules AS $omodid)
    {
        
$omods =& $vbulletin->adv_modules[$omodid];
        
// Archive comes first
        
if (($mods['parent'] AND $mods['parent'] == $omods['identifier']) OR (!$mods['parent'] AND $mods['modid'] == $omods['modid']))
        {
            
$newsmod $vbulletin->adv_modules[$omods['modid']];
        }
        else if ((
$mods['parent'] AND $mods['modid'] == $omods['modid']) OR (!$mods['parent'] AND $omods['parent'] == $mods['identifier']))
        {
            
$hasarchive true;
            
$archivemod $vbulletin->adv_modules[$omods['modid']];
        }
    }
}

$currentmodule = ($mods['modid'] == $newsmod['modid']) ? 'news' 'archive';

if (!
$newsprocessed[$newsmod['modid']] AND (!$newsprocessed[$archivemod['modid']] OR !$hasarchive))
{
    require_once(
DIR '/includes/functions_forumdisplay.php');

    
$newsprocessed[$newsmod['modid']] = true;
    
$newsprocessed[$archivemod['modid']] = true;
    
$newslimit 'LIMIT ' $maxposts;
    
$news_wrappername = ($newsmod['altshell']) ? $newsmod['altshell'] : 'adv_portal_module_wrapper';
    
$newspagevar $newsmod['identifier'] . '_page';

    
// Pagination limits
    
$vbulletin->input->clean_gpc('r'$newspagevarTYPE_INT);
    
$vbulletin->GPC[$newspagevar] = abs($vbulletin->GPC[$newspagevar]);

    if (
$vbulletin->GPC[$newspagevar])
    {
        if (
$vbulletin->GPC[$newspagevar] > $newsperpage)
        {
            
$vbulletin->GPC[$newspagevar] = $newsperpage;
        }

        
$newslimit 'LIMIT ' . (($vbulletin->GPC[$newspagevar] - 1) * $maxposts) . ', ' . ($maxposts);
    }

    
$newstids = array();
    
$newspids = array();
    
$limitapplied true;
    
$mods['inforums'] = $threads_id;

    if (!empty(
$mods['inforums']))
    {
        
$getnewsids $db->query_read("
        SELECT *
        FROM " 
TABLE_PREFIX "post as post
        WHERE post.visible = 1 
              AND threadid IN(" 
implode(','$threads_id) . ") 
              AND dateline > " 
iif($cutoffdate 0, (TIMENOW - ($cutoffdate 86400)), 0) . "
        ORDER BY dateline DESC
                
$newslimit
        "
);
            
        
// Reset the array here so the threads can be combined and to prevent pagination problems
        
$newstids = array();
        
$newspids = array();
        
    while (
$ids $db->fetch_array($getnewsids))
        {
            
$newspids[] = $ids['postid'];
        }
    }

    if (!empty(
$newspids))
    {
        
// Get Attachments
        
if ($showattachments == 1)
        {
            
$nattachcache = array();
            
$getnattach $db->query_read("
                SELECT attachmentid, filename, filesize, dateline, postid, IF(thumbnail_filesize > 0, 1, 0) AS hasthumbnail, counter, attachment.thumbnail, attachment.thumbnail_dateline, LENGTH(attachment.thumbnail) AS thumbnailsize, newwindow, visible
                FROM " 
TABLE_PREFIX "attachment AS attachment
                LEFT JOIN " 
TABLE_PREFIX "attachmenttype AS attachmenttype ON (attachment.extension = attachmenttype.extension)
                WHERE postid IN(" 
implode(','$newspids) . ")
                    AND visible = 1
                ORDER BY attachmentid
            "
);
            
      while (
$nattach $db->fetch_array($getnattach))
            {
                
$nattach['truedateline'] = $nattach['dateline'];

                
// only way to add &cmps=1 to [attach] tags 
                
$nattach['dateline'] = $nattach['dateline'] . '&amp;cmps=1';
                
$nattachcache[$nattach['postid']][$nattach['attachmentid']] = $nattach;
            }
        }

      
$newscount 0;
      
$parsedposts '';
      
$vba_news_fields '';
      
$vba_news_join '';
        
      
// Icons
      
if ($showicon == 1)
      {
          
$vba_news_fields .= ', post.iconid AS posticonid, iconpath AS posticonpath';
          
$vba_news_join .= ' LEFT JOIN ' TABLE_PREFIX 'icon AS icon ON (icon.iconid = post.iconid)';
      }
  
      
// Avatar
      
if ($showavatar == 1)
      {
          
$vba_news_fields .= ', avatarpath, NOT ISNULL(customavatar.userid) AS hascustom, customavatar.dateline AS avatardateline, avatarrevision';
          
$vba_news_join .= ' LEFT JOIN ' TABLE_PREFIX 'avatar as avatar ON (avatar.avatarid = user.avatarid)
              LEFT JOIN ' 
TABLE_PREFIX 'customavatar as customavatar ON (customavatar.userid = user.userid)';
      }        
          
      
$lightboxid '';
      if (
IS_VB_38)
      {
          
$bbcode_parser->containerid 'vba_news' $newsmod['modid'];
          
$lightboxid '_' $bbcode_parser->containerid;
      }        

      
$getnews $db->query_read("
        SELECT user.*, post.postid, post.threadid, post.username as postusername, post.userid as postuserid, 
                post.title, post.dateline AS postdateline, post.pagetext, post.attach, thread.title as threadtitle
              
$vba_news_fields
        FROM " 
TABLE_PREFIX "post AS post
        LEFT JOIN " 
TABLE_PREFIX "user AS user ON (post.userid = user.userid)
        LEFT JOIN " 
TABLE_PREFIX "thread AS thread ON (post.threadid = thread.threadid)
              
$vba_news_join
              WHERE post.threadid IN(" 
implode(','$threads_id) . ")
                AND post.dateline > " 
iif($cutoffdate 0, (TIMENOW - ($cutoffdate 86400)), 0) . "
        ORDER BY post.dateline DESC
              " 
$newslimit "
      "
);

      
$newsrows $db->num_rows($getnews);

      while (
$news $db->fetch_array($getnews))
      {
          
$newscount++;
          
$news['dateposted'] = vbdate($dateformat$news['postdateline'], '''');            
          
$news process_thread_array($news''$showicon);            
  
          
// News Avatar
          
if ($showavatar == AND $vbulletin->userinfo['showavatars'])
          {
              if (
$news['avatarpath'])
              {
                  
$news['avatarpath'] = $vbulletin->options['bburl'] . '/' $news['avatarpath'];
              }
              else if (
$news['hascustom'])
            {
                  
$news['avatarpath'] = $vbulletin->options['bburl'] . '/';
  
                  if (
$vbulletin->options['usefileavatar'])
                  {
                      
$news['avatarpath'] .= $vbulletin->options['avatarurl'] . '/avatar' $news['postuserid']. '_' $news['avatarrevision'] . '.gif';
                  }
                  else
                  {
                      
$news['avatarpath'] .= 'image.php?' $session['sessionurl'] . 'u=' $news['postuserid'] . '&amp;dateline=' $news['avatardateline'];
                  }
              }
          }            
  
          
$bbcode_parser->attachments =& $nattachcache[$news['postid']];
          
$news['message'] = $bbcode_parser->do_parse($news['pagetext'], 1,    11,    1);
          
$news['pagetext_html'] = $news['message'];
  
          
// #### Strip characters and add "read more"
          
if ($maxchars AND ($utf8use == 1) ? mb_strlen($news['message'], 'utf8') : strlen($news['message']) > $maxchars)
          {
              
$trimmedlength = ($utf8use == 1) ? 
                          
mb_strrpos(($utf8use == 1) ? 
                                      
mb_substr($news['message'], 0$maxchars'utf8') : 
                                      
substr($news['message'], 0$maxchars), ' ''utf8') : 
                          
strrpos(($utf8use == 1) ? 
                                      
mb_substr($news['message'], 0$maxchars'utf8') : 
                                      
substr($news['message'], 0$maxchars), ' ');
              
$news['message'] = ($utf8use == 1) ? 
                            
mb_substr($news['message'], 0$trimmedlength'utf8') : 
                            
substr($news['message'], 0$trimmedlength);
  
              
// Make sure we're not cutting off in the middle of tags
  
              // ##### <img>
              
$lastimage strripos($news['message'], '<img');
              if (
$lastimage !== false)
              {
                  
$imagecheck substr($news['message'], $lastimage);
  
                  
// Don't have the end, so find it
                  
if (strpos($imagecheck' />') === false)
                  {
                      
$remainstring substr($news['pagetext_html'], $trimmedlength);
                      
$endimgpos strpos($remainstring' />') + 3;
  
                      if (
$endimgpos != false)
                      {
                          
$news['message'] .= substr($remainstring0$endimgpos);
                          
$trimmedlength += $endimgpos;
                      }
                  }
              }
  
              
// ##### <a>
              
$lasthref strripos($news['message'], '<a');
              if (
$lasthref !== false)
              {
                  
$hrefcheck substr($news['message'], $lasthref);
  
                  
// Don't have the end, so just strip the tag
                
if (strpos($hrefcheck'>') === false)
                {
            
$news['message'] = substr($news['message'], 0$lasthref);
                    
$trimmedlength -= $lasthref;
                }
              }
  
              
// ##### <br />
              
$lastbr strripos($news['message'], '<br');
              if (
$lastbr !== false)
              {
                  
$brcheck substr($news['message'], $lastbr);
  
                  
// Don't have the end, so add it
                  
if (strpos($brcheck' />') === false)
                  {
                      
$news['message'] .= ' />';
                      
$trimmedlength += 3;
                  }
              }
  
              
// ##### <table>
              
$lasttable strripos($news['message'], '<table');
              if (
$lasttable !== false)
              {
                  
$tablecheck substr($news['message'], $lasttable);
  
                  
// Don't have the end, so strip the tag
                  
if (strpos($tablecheck'>') === false)
                  {
                      
$news['message'] = substr($news['message'], 0$lasttable);
                      
$trimmedlength -= $lasttable;
                  }
              }
  
              
// ##### <td>
              
$lasttd strripos($news['message'], '<td');
              if (
$lasttd !== false)
              {
                  
$tdcheck substr($news['message'], $lasttd);
  
                  
// Don't have the end, so find it
                  
if (strpos($tdcheck'>') === false)
                  {
                      
$remainstring substr($news['pagetext_html'], $trimmedlength);
                      
$endtdpos strpos($remainstring'>') + 1;
  
                      if (
$endtdpos != false)
                      {
                          
$news['message'] .= substr($remainstring0$endtdpos);
                          
$trimmedlength += $endtdpos;
                      }
                  }
              }
  
              
// ##### <object>
              
$lastobject strripos($news['message'], '<object');
              if (
$lastobject !== false)
              {
                  
$objectcheck substr($news['message'], $lastobject);
  
                  
// Don't have the end, so find it
                  
if (strpos($objectcheck'</object>') === false)
                  {
                      
$remainstring substr($news['pagetext_html'], $trimmedlength);
                      
$endobjectpos strpos($remainstring'</object>') + 9;
  
                      if (
$endobjectpos != false)
                      {
                          
$news['message'] .= substr($remainstring0$endobjectpos);
                          
$trimmedlength += $endobjectpos;
                      }
                  }
              }
  
              
// ##### Comment tags
              
$lastcom strripos($news['message'], '<!');
              if (
$lastcom)
              {
                  
$comcheck substr($news['message'], $lastcom);
  
                  
// Don't have the end, so add it
                  
if (strpos($comcheck'-->') === false)
                  {
                      
$news['message'] .= '-->';
                      
$trimmedlength += 3;
                  }
              }
  
              
// ##### <font>
              
$lastfont strripos($news['message'], '<font');
              if (
$lastfont !== false)
              {
                  
$fontcheck substr($news['message'], $lastfont);
  
                  if (
strpos($fontcheck'>') === false)
                  {
                      
$news['message'] = substr($news['message'], 0$lastfont);
                      
$trimmedlength -= $lastfont;
                  }
              }
  
              
// ##### Now check normal HTML tags
              
preg_match_all("/(<([\w]+)[^>]*>)/"$news['message'], $opentags);
              
preg_match_all("/(<\/([\w]+)[^>]*>)/"$news['message'], $closetags);
  
              
$opentags array_count_values(array_reverse($opentags[2]));
              
$closetags array_count_values(array_reverse($closetags[2]));
  
              foreach (
$opentags AS $otag => $value)
              {
                  
$otag trim($otag);
  
                  switch (
$otag)
                  {
                      case 
'br':
                      case 
'hr':
                      case 
'img':
                      case 
'param':
                      continue;
  
                      default:
  
                      if (
$closetags[$otag] != $value)
                      {
                          for (
$i $closetags[$otag]; $i $value$i++)
                          {
                              
$news['message'] .= '</' $otag '>';
                          }
                      }
                  }
              }
  
              
$news['message'] .= '... <a href="' $vbulletin->options['bburl'] . '/showpost.php?p=' $news['postid'] . '&goto=postid">' $readmore '</a>';
      }
  
          
// ##### Attachments
          
if ($nattachcache[$news['postid']] AND $showattachments == 1)
          {
              foreach (
$nattachcache[$news['postid']] AS $attachid => $attachment)
              {
                  
$attachment['filesize'] = vb_number_format($attachment['filesize'], 1true);
  
                  if (
$attachment['hasthumbnail'] AND $vbulletin->options['attachthumbs'] AND $vbulletin->userinfo['showimages'])
                  {
                      
$show['newwindow'] = $attachment['newwindow'];
                      eval(
'$news[\'attachment\'] .= "' fetch_template('adv_portal_newsbits_attach_thumb') . '";');
                  }
                  else
                  {
                      
$attachment['attachmentextension'] = file_extension($attachment['filename']);
                      eval(
'$news[\'attachment\'] .= "' fetch_template('adv_portal_newsbits_attach_inline') . '";');
                  }
              }
          }
  
          
// Icon
          
$blockbullet $vba_style['portal_blockbullet'];
          if (
$showicon == 1)
          {
              
$vba_style['portal_blockbullet'] = '';
              if (
$news['posticonpath'])
              {
                  
$vba_style['portal_blockbullet'] = '<img alt="" border="0" src="' $news['posticonpath'] . '" class="inlineimg" />';
              }
          }
  
          
// Separate the posts
          
if ($news_legacy == 0)
          {
        
$mod_options['portal_news_legacy'] = 0;
if(
$news['title'])
      
        {            
          
$mods['title'] = '<a href="' $vbulletin->options['bburl'] . '/showthread.php?' $vbulletin->session->vars['sessionurl'] . 'p=' $news['postid'] . '&goto=postid">' $news['title'] . '</a>';

        }
        else
        {
          
$mods['title'] = '<a href="' $vbulletin->options['bburl'] . '/showthread.php?' $vbulletin->session->vars['sessionurl'] . 'p=' $news['postid'] . '&goto=postid">' $messagefromtheme '"' .$news['threadtitle'] . '"' '</a>';

        }
  
$mods['collapse'] = $newsmod['modid'] . '_' $news['postid'];
  
              eval(
'$modulehtml = "' fetch_template('adv_portal_newsbits_for_thread') . '";');        
  
              if (
$newsmod['useshell'] & $vba_shellint['enable'])
              {
                  if (
$newsmod['useshell'] & $vba_shellint['collapse'])
                  {
                      
$modcollapse 'display: none';
                      
$modimgcollapse '_collapsed';
                  }

                  else
                  {
                  
$modcollapse $vbcollapse['collapseobj_module_' $mods['collapse']];
                      
$modimgcollapse $vbcollapse['collapseimg_module_' $mods['collapse']];    

                  }
                  eval(
'$home[$newsmod[\'modid\']][\'content\'] .= "' fetch_template($news_wrappername) . '";');
         
              }
              else
              {
                  
$home[$newsmod['modid']]['content'] .= $modulehtml;

              }
          }
          
// No separation
          
else
          {
        
 if(
$news['title'])
        {            
          
$post_title '<a href="' $vbulletin->options['bburl'] . '/showthread.php?' $vbulletin->session->vars['sessionurl'] . 'p=' $news['postid'] . '&goto=postid">' $news['title'] . '</a>';

        }
        else
        {
          
$post_title '<a href="' $vbulletin->options['bburl'] . '/showthread.php?' $vbulletin->session->vars['sessionurl'] . 'p=' $news['postid'] . '&goto=postid">' $messagefromtheme '"' .$news['threadtitle'] . '"' '</a>';
 
       }
  
 eval(
'$newsbits .= "' fetch_template('adv_portal_newsbits_for_thread') . '";');             

          }
      }

 
$db->free_result($getnews);


      
// ##### Process news module if not splitting posts and we have no module shell
      
if ($newsbits AND $news_legacy == 1)
      {
          
$mods['modcol'] = $newsmod['modcol'];
          
$mods['colspan'] = $newsmod['colspan'];
          
$mods['title'] = $newsmod['title'];
          
$mods['collapse'] = $newsmod['modid'];
          
$modcollapse $vbcollapse['collapseobj_module_' $newsmod['modid']];
          
$modimgcollapse $vbcollapse['collapseimg_module_' $newsmod['modid']];
  
          
$modulehtml $newsbits;
  
          if (
$newsmod['useshell'])
          {
              eval(
'$home[$newsmod[\'modid\']][\'content\'] = "' fetch_template($news_wrappername) . '";');
          }
          else
          {
              
$home[$newsmod['modid']]['content'] = $modulehtml;
          }
      }

      
// ##### Lightbox stuff
      
if ($vbulletin->options['lightboxenabled'])
      {
          if (!
defined('lightbox_js'))
          {
              
$headinclude .= "\r\n<script type=\"text/javascript\" src=\"" $vbulletin->options['bburl'] . '/clientscript/vbulletin_lightbox.js?v=' $vbulletin->options['simpleversion'] . '"></script>';
              
define('lightbox_js'true);
          }
  
          
$home[$newsmod['modid']]['content'] = '<div id="vba_news' $newsmod['modid'] . '">' $home[$newsmod['modid']]['content'] . '</div>
      <script type="text/javascript">
      <!--
      vBulletin.register_control("vB_Lightbox_Container", "vba_news' 
$newsmod['modid'] . '", ' $vbulletin->options['lightboxenabled'] . ');
      //-->
      </script>'
;
      }

      
// ##### Pagination
      
if ($newsrows >= $maxposts OR $vbulletin->GPC[$newspagevar])
      {
          
$newscount $db->query_first("
              SELECT COUNT(*) AS count
              FROM " 
TABLE_PREFIX "post
              WHERE visible = 1 AND threadid IN(" 
implode(','$threads_id) . ")
                      AND dateline > " 
iif($cutoffdate 0, (TIMENOW - ($cutoffdate 86400)), 0) . "
          "
);
  
          
$oldshowpopups $show['popups'];
          
$show['popups'] = false;
  
          
$newspagenav construct_page_nav(
              
max($vbulletin->GPC[$newspagevar], 1),
              
$maxposts,
              
min($newscount['count'], ($maxposts $newsperpage)),
              
$vba_options['portal_homeurl'] . '?' $vba_options['portal_pagevar'] . '=' $pages['name']
          );
  
          
$show['popups'] = $oldshowpopups;
  
          
$home[$newsmod['modid']]['content'] .= '<div style="padding-bottom: ' $vba_style['portal_vspace'] . 'px">' str_replace(
              
'&amp;page=',
              
'&amp;' $newspagevar '=',
              
$newspagenav
          
) . '</div>';
      }
  }
}

$mods['noshell'] = true;

?>
Подскажите как убрать имя автора и заднию серую полосу, виде заднего фона.
А то я уже все перепробывал.

Последний раз редактировалось Sardelka; 30.05.2012 в 02:31..
  Ответить с цитированием
Cказали cпасибо:
Старый 13.02.2013, 21:02 Вверх   #2
Местный житель
 
Аватар для viktor6
viktor6 вне форума
Доп. информация
По умолчанию

А как сделать чтоб одна новость постоянно была вверху
  Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 20:54. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
 

Время генерации страницы 0.29473 секунды с 11 запросами