форум vBSupport.ru > vBulletin > Вопрос — Ответ
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
Mikhail10000
Простоузер
Default Массовое изменение названия тем
0

Господа, как мне, как администратору, можно менять и сохранять названия тем? Тоесть, я как админ, заходу в админку или еще куда и вижу все 30 000 тем, тоесть их названия и могу их скорректировать/изменить, а потом нажимаю сохранить, и все сохраняется.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
netwind
Гуру
 
netwind's Avatar
Default
0

Мечты-мечты.
Если это было ТЗ, то напрасно не указали сумму.
 
 
SAS1024
io.sys
 
SAS1024's Avatar
Default
0

Mikhail10000, как вариант - лезьте в phpmyadmin, и правьте данные в таблице thread. Там как раз выводится список тем, можно выделять нужные темы галочками, и после этого их редактировать ;)
 
 
kerk
k0t
 
kerk's Avatar
Default
0

а смысл всего этого?
ну сделал скрипт запрос, показал все темы (можно даже постранично)
выбирается редактирование и? дальше то что?
редактировать название можно только у каждой отдельно взятой темы
или имелось ввиду что то другое?
т.е. изменить название у всех тем одновременно?
 
 
Mikhail10000
Простоузер
Default
0

Нет конечно)))

Мне нужно выводить названия тем, например по 50 штук на странице, я их все меняю, точнее правлю в том ключе что они становятся для людей более понятными, и тем самым вписываю туда полное подробно про что тема, ибо народу влом писать нормальные названия. Я просто заметил что если хорошее название, то и народ посещает их чаще.
 
 
Андрюшкин
Знаток
vBSponsor
 
Андрюшкин's Avatar
Default
1

Mikhail10000, зачем вам этот геморой, можно ведь проще править названия тем:

Заходим в любой раздел и видим список тем, двойной клик мышью возле названия темы и ссылка на тему превратилась в поле с редактируемым текстом, правите как надо и жмете энтер..все название изменено, без лишний хождений по страницам
 
 
kerk
k0t
 
kerk's Avatar
Default
1

сделал я такой скриптик, на скорую руку, без украшательств и всего остального
нужно, самим доделать как продукт ничего сложного
но дефолт 20 тем на страницу, потому как датаманагер выполняется в цикле

**тут был скрин, он умер**

пользовать на свой стах и риск, кто не спрятался, я не виноват
ну вобщем смотрим код, может кто то что дельное предложит
PHP Code:
<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
$thisscript basename($_SERVER['PHP_SELF']);
define('THIS_SCRIPT'$thisscript);
define('CSRF_PROTECTION'true);

require_once(
'./global.php');
require_once(
DIR '/includes/adminfunctions.php');

if(!
can_administer())
{
      
print_no_permission();
}
if(empty(
$_REQUEST['do']))
{
      
$_REQUEST['do'] = 'getthreads';
}
if(
$_REQUEST['do'] == 'getthreads')
{
      
$vbulletin->input->clean_array_gpc('r', array(
            
'pagenumber' => TYPE_UINT,
            
'perpage' => TYPE_UINT,
      ));

      
$pagenumber intval($vbulletin->GPC['pagenumber']);
      
$perpage intval($vbulletin->GPC['perpage']);

      if(
$perpage == OR $perpage 20)
      {
            
$perpage 20;
      }
      if(
intval($pagenumber) == 0)
      {
            
$pagenumber 1;
      }
      
$limitlower = ($pagenumber 1) * $perpage 1;
      
$limitupper = ($pagenumber) * $perpage;

      
$req_total $db->query_read("
            SELECT thread.threadid
            FROM " 
TABLE_PREFIX "thread
      "
);
      
$totalthreads intval($db->num_rows($req_total));

      
$numberpages $totalthreads $perpage;
      
$numberpages ceil($numberpages);
      if(!isset(
$pagenumber) OR ($pagenumber 1) OR ($pagenumber $numberpages))
      {
            
$pagenumber 1;
      }
      
$pos = ($pagenumber 1) * $perpage;

      
$sorturl THIS_SCRIPT "?" $vbulletin->session->vars['sessionurl'];

      
$counter 0;
      
$count 0;
      if(
$totalthreads)
      {
            
sanitize_pageresults($totalthreads$pagenumber$perpage2020);
            
$req $db->query_read("
                 SELECT thread.threadid, thread.title, thread.dateline
                 FROM " 
TABLE_PREFIX "thread AS thread
                 ORDER BY thread.dateline DESC
                 LIMIT 
$pos$perpage
            "
);
            print 
'<form action="' THIS_SCRIPT '?do=changetitle" method="POST">'."\n";
            print 
'<input type="hidden" name="securitytoken" value="' $vbulletin->userinfo['securitytoken'] . '" />'."\n";
            print 
'<input type="hidden" name="do" value="changetitle" />'."\n";
            print 
'<input type="hidden" name="pagenumber" value="' $pagenumber '" />'."\n";
            while(
$thread $db->fetch_array($req) AND $counter++ < $perpage)
            {
                 print 
'<input type="text" size="50" name="threadtitle[' $thread['threadid'] . ']" value="' trim($thread['title']) . '" /><br />'."\n";
            }
            print 
'<input type="submit" value="Update Thread Title" />'."\n";
            print 
'</form>'."\n";
      }

      
$pagenav construct_page_nav($pagenumber$perpage$totalthreads$sorturl "do=getthreads"""
            
. (!empty($vbulletin->GPC['perpage']) ? "&amp;perpage=$perpage"")
      );
      if(
$pagenav)
      {
            print 
'<div style="float: left">' $pagenav '</div>';
      }
}
if(
$_POST['do'] == 'changetitle')
{
      
$vbulletin->input->clean_array_gpc('p', array(
            
'threadid' => TYPE_ARRAY_INT,
            
'threadtitle' => TYPE_ARRAY_STR,
            
'pagenumber' => TYPE_UINT,
      ));

      if(
is_array($vbulletin->GPC['threadtitle']) AND count($vbulletin->GPC['threadtitle']) > 0)
      {
           require_once(
DIR '/includes/functions_threadmanage.php');
           require_once(
DIR '/includes/functions_databuild.php');
           foreach(
$vbulletin->GPC['threadtitle'] AS $threadid => $threadtitle)
           {
                 if(empty(
$threadtitle))
                 {
                       continue;
                 }else{
                       
$threadman =& datamanager_init('Thread'$vbulletinERRTYPE_STANDARD'threadpost');
                       
$threadman->set_condition("threadid = " $threadid);
                       
$threadman->set('title'$threadtitle);
                       
$threadman->save();
                 }
           }

           
$redirect_url THIS_SCRIPT '?do=getthreads&page=' $vbulletin->GPC['pagenumber'];
           
header('Location: ' $redirect_url);
      }
}
?>
сохранить файл с любым именем и расширением php загрузить в дир. форума и выполнить в браузере
доступ к файлу только у админов
важно!
после выполнения всех нужных действий, обновить счетчики в разделе обслуживание
 
 
Кот Бегемот
Мартовский Кот
 
Кот Бегемот's Avatar
Default
0

У меня эту работу модераторы выполняют.
 
 
kerk
k0t
 
kerk's Avatar
Default
0

так собсно это и есть одна из работ модера =)
 
 
Mikhail10000
Простоузер
Default
0

Quote:
Originally Posted by Андрюшкин View Post
Mikhail10000, зачем вам этот геморой, можно ведь проще править названия тем:

Заходим в любой раздел и видим список тем, двойной клик мышью возле названия темы и ссылка на тему превратилась в поле с редактируемым текстом, правите как надо и жмете энтер..все название изменено, без лишний хождений по страницам
ОГРОМНОЕ СПАСИБО!!!
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 07:28 PM.


Powered by vBulletin® Version 3.6.0
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...