• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

How to run a xenforo class from PHP CLI

cedivad

Active member
#1
I've created a file that using something like this:

PHP:
<?php

$startTime = microtime(true);

$fileDir = dirname(__FILE__);

require('/w/web/library/XenForo/Autoloader.php');
XenForo_Autoloader::getInstance()->setupAutoloader('/w/web/library');

XenForo_Application::initialize('/w/web/library', $fileDir);
XenForo_Application::set('page_start_time', $startTime);

$inputHandler = new XenForo_Input(new Zend_Controller_Request_Http());

$input = $inputHandler->filter(array(
    't' => XenForo_Input::UINT,
    'p' => XenForo_Input::UINT
));

$importModel = XenForo_Model::create('XenForo_Model_Import');

$target = false;
if ($input['t'])
{
    if ($newId = $importModel->mapThreadId($input['t']))
    {
        $target = XenForo_Link::buildPublicLink('canonical:threads', array('thread_id' => $newId));
    }
}
else if ($input['p'])
{
    $newId = $importModel->mapPostId($input['p']);
    if ($newId)
    {
        $target = XenForo_Link::buildPublicLink('canonical:posts', array('post_id' => $newId));
    }
}

if (!$target)
{
    $target = XenForo_Link::buildPublicLink('canonical:index');
}

die('hello');

$response = new Zend_Controller_Response_Http();
$response->setRedirect(XenForo_Link::convertUriToAbsoluteUri($target), 301);
$response->sendResponse();
The file call a class without the REQUEST parameter. (the file is copied as it is from the old vbulletin redirect plugin, nothing special).

The problem is that while when i see the page on the browser everything works, when i look at it from the command line, it won't work:

root@#:~# php -f /w/web/upload_to_youtube.php
An unexpected error occurred. Please try again later.

How can i fix this?