vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   How to move thread and send PM simultaneously via Cron (https://vborg.vbsupport.ru/showthread.php?t=272346)

career 10-19-2011 11:03 AM

How to move thread and send PM simultaneously via Cron
 
Good day

How to move thread and send PM simultaneously via Cron?
Move thread made with datamanager_init the same as send PM.

The Problem is PM doesn't send, only if run this Cron Task manually (press button in AdminCP).

The code like is something like this:
Code:

$check=$vbulletin->db->query_read(".........................");
while ($check2 = $vbulletin->db->fetch_array($check))
{       
  // Send PM
  $pm =& datamanager_init('PM', $vbulletin, ERRTYPE_ARRAY);
                $pm->set('fromuserid', 1);
                $pm->set('fromusername', 'system');
                $pm->set('title', 'lalala');
                $pm->set('dateline', TIMENOW);
       
                $threadlink = ' . '/showthread.php?t=' . $check2[threadid] . ']' . $check2[title] . '';
                $pm->set('message', construct_phrase($vbphrase['XXXXXXX'], $threadlink));
       
                $recipients = $check2[postusername];
               
                if ($recipients) {
       
                        $pm->set_recipients($recipients, $botpermissions);
                        if (!count($pm->errors)) $pm->save();
                       
                }

  require_once('./includes/functions_databuild.php');               
  $threadman =& datamanager_init('Thread', $vbulletin, ERRTYPE_ARRAY, 'threadpost');
                                       
                $threadman->set_existing($check2);
                $threadman->set('forumid', $vbulletin->options['forumarchive']);
                $threadman->set('sticky', 0);
                $threadman->save();
                build_forum_counters($check2['forumid']);
                build_forum_counters($to);
                        echo "Auto Move Threads:<i>".$check2[title]."</a></i><br>";
log_cron_action('Move thread and send PM', $nextitem);
}


kh99 10-19-2011 01:59 PM

Maybe try this: add a call to $pm->pre_save() before the call to save, then echo $pm->errors if it's not empty. And also echo something if the "if ($recipients)" fails"


Code:

if ($recipients)
{
        $pm->set_recipients($recipients, $botpermissions);
        $pm->pre_save();
        if (!count($pm->errors))
                $pm->save();
        else
                echo "pm errors" . explode(',', $pm->errors);
}
else
        echo "No recipients for pm";


career 10-19-2011 06:47 PM

I'll try it, thanks

--------------- Added [DATE]1319126544[/DATE] at [TIME]1319126544[/TIME] ---------------

No, I tried that code, but doesn't help.

Still can send PM only if press button near Cron task in Admincp

--------------- Added [DATE]1319130532[/DATE] at [TIME]1319130532[/TIME] ---------------

finally, i found that problem occured when use "construct_phrase"

--------------- Added [DATE]1319130729[/DATE] at [TIME]1319130729[/TIME] ---------------

btw, thanks kh99


All times are GMT. The time now is 04:08 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.00979 seconds
  • Memory Usage 1,722KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete