Jump to content
DevFuse Forums
Sign in to follow this  

[IPB 2.3.x] Adding your own task


There is many reasons while you might need a task in your modification, from clearing out your mods logs to performing resource intensives tasks in the background, like updating categories views.

IP.Board allows you to add a task without editing any files. To start off we need to add a file to the sources/tasks/ folder. You can name this file what ever you want, in this example we are going to call it news.php.

[codebox]<?php

if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
exit();
}

class task_item
{
var $class = "";
var $root_path = "";
var $task = "";

function run_task()
{
// Run what ever we need in a task here, this is just like any other file and should be able to
// run what ever you had in components_public and want to run as a task.

// Add to task log?
$this->class->append_task_log( $this->task, 'Task news.php has run.' );

// Unlock Task
// leave this one alone, you need to unlock a task.
$this->class->unlock_task( $this->task );
}

function register_class(&$class)
{
$this->class = &$class;
$this->ipsclass =& $class->ipsclass;
$this->root_path = $this->class->root_path;
}

function pass_task( $this_task )
{
$this->task = $this_task;
}
}
?>[/codebox]

It's best to leave all the functions alone and just add your task code above $this->class->append_task_log( $this->task, 'Task news.php has run.' );

Next you will need to setup the task details in the admin cp. Go to Admin CP > Tools & Settings Tab > Task Manager > Add New Task button. I've added a screenshot of the example details we need to fill out. Remember to name the [b]Task PHP File To Run[/b] field the same name as your sources/tasks/ file with .php added to the end of it.

[attachment=162:task_manager.png]


Recommended Comments

There are no comments to display.

×