[TYPO3-UG Russia] Расширения с CLI скриптами

Pavel Antonov softzilla at richmd.ru
Thu Nov 9 21:59:11 CET 2006


Приветствую, Артем.

Без юзера никак. Что важно, он не может быть админом!

Пример cli-скрипта:
--------------------------------------------------------------------------------
xmli_cli.php:
--------------------------------------------------------------------------------
define('TYPO3_cliMode', TRUE);
$path = dirname(__FILE__);
$_SERVER['SCRIPT_FILENAME'] = __FILE__;

require($path.'/conf.php');
require($path.'/'.$BACK_PATH.'init.php');
require_once(t3lib_extMgm::extPath('xmli').'lib/class.jobmanager.php');

$conf = array();
$extConf = unserialize($TYPO3_CONF_VARS['EXT']['extConf']['xmli']);
$conf['archive'] = $extConf['archive'];    
$conf['extractor'] = $extConf['extractor'];    

for ($i=1; $i < sizeof($_SERVER['argv']); $i++) {
        $param = $_SERVER['argv'][$i];
        if (substr($param, 0, 2) == '--') {
                list($param_cmd, $param_value) = split('=', substr($param, 2));
                $conf[$param_cmd] = $param_value;
        } else {
                $conf['source'] = $param;
        }
}

$conf['mode'] = 'cli_import'; // Extension workin in CLI mode

if (!isset($conf['v'])) {
        $showHelp = false;
        echo("XMLI Extension: Command line tool\n");
        echo("-------------------------------------------------------------------------------\n\n");    
        if (!$conf['source']) { echo("ERROR: Input file not specified.\n"); $showHelp = true; }
        if (!$conf['uid']) { echo("ERROR: Page UID for import no specified.\n"); $showHelp = true; }
        
        if ($showHelp) {
                echo("\nSyntax: xmli.php --xsl='xsl path' --v --uid=UID --insert=[0|1] --log='log file' file\n");
                echo("  --xsl\t\tPath to XSL file for transformation (optional)\n");
                echo("  --v\t\tVerbose (optional)\n");
                echo("  --uid\t\tPage UID for import\n");
                echo("  --insert\t0 - Insert into (default), 1 - Insert after (optional)\n");
                echo("  --deltree\t1 - Remove pages subtree\n");
                echo("  --log\t\tPath to log file\n");
                echo("\n-------------------------------------------------------------------------------\n");    
                echo("Extension required user '_cli_xmli' for correct using. User must be include\n".
                        "into group with rights to modify/create pages/content in target (UID) subtree.\n");    
                return 1;
        }
        $conf['verbose'] = 1;
}

//print_r($conf);

$jobmanager = t3lib_div::makeInstance('JobManager');
$jobmanager->init($conf);
$res = $jobmanager->start();
?>

--------------------------------------------------------------------------------
conf.php:
--------------------------------------------------------------------------------
<?php

define('TYPO3_MOD_PATH', '../typo3conf/ext/xmli/cli/');
$BACK_PATH='../../../../typo3/';
$MCONF['name'] = '_CLI_XMLI';

?>
--------------------------------------------------------------------------------


-- 
С уважением, Павел Антонов.


AM> Добрый вечер, TYPO3 Usergroup Russia.

AM> CLI нужен для запуска по cron. Дефолтовая инициализация скрипта,
AM> рекомендованная Каспером предполагает создание пользователя с именем
AM> _cli_txyourextkey. Без этого пользователя скрипт не запустится.

AM> http://typo3.org/documentation/document-library/core-documentation/doc_core_inside/current/view/3/5/#id2802854

AM> Здесь внесены кое-какие поправки
AM> http://lists.netfielders.de/pipermail/typo3-dev/2004-December/007427.html

AM> Кто делал такие расширения, как вы инициализировали свои CLI скрипты?
AM> В принципе, из Typo3 мне нужно только $GLOBALS['TYPO3_DB']. И
AM> желательно чтобы не надо было создавать никаких пользователей.






More information about the TYPO3-russia mailing list