// On regarde si user_email et user_password ont été postées\r
// Si c'est le cas, on les copie dans la session\r
$_SESSION['errorLogin'] = false;\r
- if (isset($_POST['user_email'])) {\r
- $_SESSION['user_email'] = $_POST['user_email'];\r
+ if (isset($_REQUEST['user_email'])) {\r
+ $_SESSION['user_email'] = $_REQUEST['user_email'];\r
}\r
\r
- if (isset($_POST['user_password'])) {\r
- $_SESSION['user_password'] = $_POST['user_password'];\r
+ if (isset($_REQUEST['user_password'])) {\r
+ $_SESSION['user_password'] = $_REQUEST['user_password'];\r
}\r
// Maintenant on vérifie si ces variables sont présentes dans la session\r
if (!isset($_SESSION['user_email']) || !isset($_SESSION['user_password'])) {\r
define('DB_DRIVER', 'mysql');\r
define('ROOT', dirname(__FILE__) . '/..');\r
\r
-$dev = stristr($_SERVER['HTTP_HOST'], 'dev.');\r
-$extranet = stristr($_SERVER['HTTP_HOST'], 'cubedesigners.com');\r
-$ws = stristr($_SERVER['HTTP_HOST'], 'fluidbook.com');\r
-\r
define('WEBROOT', '');\r
define('SITE_PATH', WEBROOT . '/');\r
define('FONT_PATH', ROOT . '/fluidbook/fonts/');\r
define('FTPROOT', '/home/extranet/ftp/');\r
-define('DEV', $dev);\r
define('WINDOWS', false);\r
define('CONVERTER_PATH', '/bin:/usr/bin:/usr/local/bin:/home/extranet/dev/fluidbook/tools:/usr/local/flex:/usr/local/secureSWF');\r
define('MXMLC_PATH', '/usr/local/flex/bin/mxmlc');\r
\r
define('MONITOR_PERFS', true);\r
\r
-if ($dev) {\r
- // Définition de la configuration sur l'environnement de développement\r
- define('DB_HOST', ':/var/run/mysqld/mysqld.sock');\r
- define('DB_NAME', 'extranet_dev');\r
- define('DB_USER', 'ws');\r
- define('DB_PASSWORD', '*arica*2');\r
-\r
- define('EXTRANET_URL', 'http://dev.extranet.cubedesigners.com');\r
- define('WS_URL', 'http://dev.ws.fluidbook.com');\r
-} else {\r
- // Définition des variables dans l'environnement de production\r
- define('DB_HOST', ':/var/run/mysqld/mysqld.sock');\r
- define('DB_NAME', 'extranet');\r
- define('DB_USER', 'ws');\r
- define('DB_PASSWORD', '*arica*2');\r
-\r
- define('EXTRANET_URL', 'http://extranet.cubedesigners.com');\r
- define('WS_URL', 'http://workshop.fluidbook.com');\r
-}\r
-\r
-if ($ws) {\r
- define('MODE', 'ws');\r
-} elseif ($extranet) {\r
- define('MODE', 'extranet');\r
-}\r
\r
define('PLAYER_SOURCES', AS3_SOURCES . '/com/fluidbook/player');\r
define('COMPOSER_SOURCES', AS3_SOURCES . '/com/fluidbook/ws');\r
\r
-define('STATIC_SERVER', 'http://static.' . $_SERVER['HTTP_HOST'] . WEBROOT);\r
// Workshop\r
define('THEMES', WEBROOT . '/fluidbook/themes/');\r
define('ICONS', WEBROOT . '/fluidbook/icones/');\r
\r
define('JS_PATH', WEBROOT . '/js');\r
define('JS', JS_PATH);\r
-define('CSS_PATH', WEBROOT . '/style/' . MODE);\r
-define('STYLE', CSS_PATH);\r
-define('SYSSTYLE', ROOT . '/style/' . MODE);\r
-\r
-define('SYSIMG', ROOT . '/images/' . MODE);\r
-define('IMG', WEBROOT . '/images/' . MODE);\r
-\r
-define('TYPOGRAPHP_PATH', ROOT . '/typo/' . MODE);\r
-define('TYPOGRAPHP_WEBROOT', IMG . '/typographp');\r
\r
define('JOURNEE', 8);\r
define('TAUX_JOURNALIER', 500);\r
--- /dev/null
+<?php\r
+\r
+$dev = stristr($_SERVER['HTTP_HOST'], 'dev.');\r
+$extranet = stristr($_SERVER['HTTP_HOST'], 'cubedesigners.com');\r
+$ws = stristr($_SERVER['HTTP_HOST'], 'fluidbook.com');\r
+\r
+define('DEV', $dev);\r
+\r
+if ($dev) {\r
+ // Définition de la configuration sur l'environnement de développement\r
+ define('DB_HOST', ':/var/run/mysqld/mysqld.sock');\r
+ define('DB_NAME', 'extranet_dev');\r
+ define('DB_USER', 'ws');\r
+ define('DB_PASSWORD', '*arica*2');\r
+\r
+ define('EXTRANET_URL', 'http://dev.extranet.cubedesigners.com');\r
+ define('WS_URL', 'http://dev.ws.fluidbook.com');\r
+} else {\r
+ // Définition des variables dans l'environnement de production\r
+ define('DB_HOST', ':/var/run/mysqld/mysqld.sock');\r
+ define('DB_NAME', 'extranet');\r
+ define('DB_USER', 'ws');\r
+ define('DB_PASSWORD', '*arica*2');\r
+\r
+ define('EXTRANET_URL', 'http://extranet.cubedesigners.com');\r
+ define('WS_URL', 'http://workshop.fluidbook.com');\r
+}\r
+\r
+if ($ws) {\r
+ define('MODE', 'ws');\r
+} elseif ($extranet) {\r
+ define('MODE', 'extranet');\r
+}\r
+\r
+define('STATIC_SERVER', 'http://static.' . $_SERVER['HTTP_HOST'] . WEBROOT);\r
+\r
+define('CSS_PATH', WEBROOT . '/style/' . MODE);\r
+define('STYLE', CSS_PATH);\r
+define('SYSSTYLE', ROOT . '/style/' . MODE);\r
+\r
+define('SYSIMG', ROOT . '/images/' . MODE);\r
+define('IMG', WEBROOT . '/images/' . MODE);\r
+\r
+define('TYPOGRAPHP_PATH', ROOT . '/typo/' . MODE);\r
+define('TYPOGRAPHP_WEBROOT', IMG . '/typographp');\r
+\r
+?>
\ No newline at end of file
require_once(dirname(__FILE__) . '/config.inc.php');\r
// Chargement de la classe cube\r
require_once(dirname(__FILE__) . '/cube/_common.php');\r
+// Inclusion de la post configuration\r
+require_once(dirname(__FILE__) . '/postconfig.inc.php');\r
+\r
// Inclusion des classes communes\r
require_once(dirname(__FILE__) . '/commons/_common.php');\r
\r
protected $bookId = null;\r
public $reload = false;\r
\r
+ protected $nb_threads = 4;\r
+ protected $threads;\r
+\r
public function __construct($guid)\r
{\r
$this->guid = $guid;\r
return $this->documents[$id];\r
}\r
\r
+ protected function initThreads()\r
+ {\r
+ if (!cubeThread::available()) {\r
+ return;\r
+ }\r
+ $this->threads = array();\r
+ for ($i = 0;$i <= $this->nb_threads;$i++) {\r
+ $this->threads[] = new cubeThread();\r
+ }\r
+ }\r
+\r
public function process()\r
{\r
global $core;\r
+\r
+ $this->initThreads();\r
+\r
$this->processing = true;\r
$this->initDocuments();\r
$this->serialize();\r
foreach($docPages as $i => $page) {\r
$this->currentDocPage = $i + 1;\r
$this->totalDocPage = count($docPages);\r
+\r
$this->setProgress(($this->processedPages / $this->totalPages) * 100);\r
- $this->currentDoc->processOnePage($page, true);\r
+\r
+ if (cubeThread::available()) {\r
+ $t = $this->threads[$i % $this->nb_threads];\r
+ while ($t->isAlive()) {\r
+ usleep(500000);\r
+ }\r
+ $t->setRunnable(array($this->currentDoc, 'processOnePage'));\r
+ $t->start($page, true);\r
+ } else {\r
+ $this->currentDoc->processOnePage($page, true);\r
+ }\r
$this->processedPages++;\r
}\r
$doc = $dao->updateFromObject($doc);\r
unset($_SESSION['conversionSessionReload']);\r
$session->serialize();\r
\r
- $http = new cubeHTTP($_SERVER['HTTP_HOST']);\r
- $http->setDataTimeout(1);\r
- try {\r
- $http->post('/flash/processConversionSessionAsync', array('user_email' => $_SESSION['user_email'], 'user_password' => $_SESSION['user_password'], 'sessionConversionGUID' => $sessionConversionGUID));\r
- }\r
- catch(Exception $e) {\r
- }\r
+ $php = new cubeCommandLine('php');\r
+ $php->setPath(CONVERTER_PATH);\r
+ $php->setArg('f', ROOT . '/index.php');\r
+ $php->setManualArg('--');\r
+ $php->setArg('user_email', $_SESSION['user_email']);\r
+ $php->setArg('user_password', $_SESSION['user_password']);\r
+ $php->setArg('sessionConversionGUID', $sessionConversionGUID);\r
+ $php->setArg('PATH_INFO', '/flash/processConversionSessionAsync');\r
+ $php->setArg('HTTP_HOST', $_SERVER['HTTP_HOST']);\r
+ $php->setNohup(true);\r
+ $php->execute('exec');\r
+\r
+ $this->xml->addChild('command', html::escapeHTML($php->command));\r
+ exit;\r
}\r
\r
public function processConversionSessionAsync()\r
{\r
cubePHP::neverStop();\r
try {\r
- $conversion = wsConversionSession::openFromGUID($_POST['sessionConversionGUID']);\r
+ $conversion = wsConversionSession::openFromGUID($_REQUEST['sessionConversionGUID']);\r
$conversion->process();\r
}\r
catch(Exception $e) {\r
if (is_null($this->conversionInfos)) {\r
$this->conversionInfos = new wsDocumentConversionInfos();\r
}\r
+\r
+\r
}\r
\r
public function copyOriginalFromUpload($tmp_file)\r
{\r
// $this->makeRealShot($page);\r
if ($force) {\r
- if ($page % 100 == 0) {\r
- sleep(1);\r
- }\r
-\r
$this->addToLog('Processing page #' . $page);\r
$this->makeMiniShot($page);\r
$this->makeSWFFiles($page);\r