[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