форум vBSupport.ru > vBulletin > vBulletin 4.2.x > Вопросы по vBulletin 4.2.x
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
M.C.
Продвинутый
Default CRON - перенос закрытых тем из раздела в раздел
0

Никто случайно не имеет крона для переноса закрытых тем из раздел(ов) "А/Б/В..." в раздел "Ю"? Заранее спасибо!
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
OldEr
Специалист
Master
 
OldEr's Avatar
Default
3

PHP Code:
<?php

// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
if (!
is_object($vbulletin->db))
{
    exit;
}

$from '1, 2, 3'// Перенести из
$to 10// Перенести в

$q $vbulletin->db->query_write("UPDATE " TABLE_PREFIX "thread SET forumid = $to WHERE forumid IN ($from) AND open = 0");

log_cron_action(''$nextitem1);
 
 
capriz
Простоузер
Default
0

OldEr, а возможно ли подобный перенос темы с префиксом?
суть такова - в разделе есть темы с объявлением например, она закрытая, включить задачу по закрытой теме, объявление автоматом переместится в другой раздел, а хотелось бы тему на месте оставить и не держать её открытой.
но есть префикс "решено", например, тема автоматом закрывается при присвоение префикса.
как бы тему с нужным префиксом переместить в другой форум?
ну и спрошу сразу - обратное действие, если перемещение по префиксу возможно... перемещение темы, с которой сняли префикс, из раздела в раздел.
спасибо!
 
 
AleX
Гость
Default

@capriz, в таблице "thread" так же имеется поле, которое отвечает за присвоение префикса — prefixid. Поэтому, перемещать темы по префиксу, в принципе, возможно.
Заходите в "Управление префиксами тем" и смотрите ID этого профикса:
PHP Code:
./prefix.php?do=editprefix&prefixid=1_1 
В данном случае у нас ID = 1_1.
Немного допилив крон OldEr-а, получим что-то вроде:
PHP Code:
<?php

// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
if (!
is_object($vbulletin->db))
{
    exit;
}

$from '1, 2, 3'// Перенести из
$to 10// Перенести в

$q $vbulletin->db->query_write("UPDATE " TABLE_PREFIX "thread SET forumid = $to WHERE forumid IN ($from) AND open = 0 AND prefixid = 'XXX'");

log_cron_action(''$nextitem1);
Вместо XXX указать ID для префикса "Решено". Следственно, все темы имеющие префикс "Решено" и при этом закрыты (open = 0. 0 - закрыто, 1 - открыто) будут перемещены в соответствующий раздел, что был указан выше в скрипте.

Last edited by AleX : 04-06-2017 at 05:59 PM.
 
 
capriz
Простоузер
Default
0

@AleX, спасибо что откликнулись.
=) уточнение можно? этот код (с моими поправками) писать при создании новой задачи?
просто тестового нет, прийдётся экспериментировать на живом.

capriz добавил 05.04.2017 в 23:34
@AleX, хм, вместо ид числом у префикса вот такое -
PHP Code:
/prefix.php?do=editprefix&prefixid=solvedthread_solved 
capriz добавил 06.04.2017 в 00:06
=) а в базе ид прописано именно так... но результат = Unknown column 'solvedthread_solved' in 'where clause'

capriz добавил 06.04.2017 в 00:13
при этом крон работает и перемещает темы, только если убрать AND prefixid = XXX

capriz добавил 06.04.2017 в 00:29
или может от противного? если тема закрыта но тема важная её не перемещать? =) ток не пойму как это реализовать.

capriz добавил 06.04.2017 в 01:08
а... применение продукта "Решено" вносит коррективы. рабочий код такой

PHP Code:
<?php

// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
if (!
is_object($vbulletin->db))
{
    exit;
}

$from 1// Перенести из
$to 2// Перенести в

$q $vbulletin->db->query_write("UPDATE " TABLE_PREFIX "thread SET forumid = $to WHERE forumid IN ($from) AND open = 0 AND is_solved = 1 ");

log_cron_action(''$nextitem1);
спасибо всем!

capriz добавил 06.04.2017 в 01:33
удалить темы из определённого раздела кроном, с учётом даты последнего поста + 30 дней, возможно?

Last edited by capriz : 04-06-2017 at 02:33 AM. Reason: Добавлено сообщение
 
 
AleX
Гость
Default

Quote:
Originally Posted by capriz View Post
удалить темы из определённого раздела кроном, с учётом даты последнего поста + 30 дней, возможно?
http://vbsupport.ru/forum/showthread.php?t=29340
Можно попросить Керка за отдельную плату интегрировать туда и условие переноса по префиксу. Тогда получится всё, что Вы хотите.
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by capriz View Post
перемещает темы, только если убрать AND prefixid = XXX
XXX (prefixid) нужно помещать в одинарные кавычки в коде запроса (и не обязательно присваивать какой то переменной результат выполнения, если не собираетесь его использовать далее)
PHP Code:
$vbulletin->db->query_write("UPDATE " TABLE_PREFIX "thread SET forumid = $to WHERE forumid IN ($from) AND open = 0 AND prefixid = 'prefix_id'"); 
 


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 02:19 PM.


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