Example #1
0
function my_onWorkerStart($serv, $worker_id)
{
    processRename($serv, $worker_id);
    if (!$serv->taskworker) {
        swoole_process::signal(SIGUSR2, function ($signo) {
            echo "SIGNAL: {$signo}\n";
        });
    }
    //forkChildInWorker();
    //	setTimerInWorker($serv, $worker_id);
}
Example #2
0
function my_onWorkerStart(swoole_server $serv, $worker_id)
{
    processRename($serv, $worker_id);
    if (!$serv->taskworker) {
        swoole_process::signal(SIGUSR2, function ($signo) {
            echo "SIGNAL: {$signo}\n";
        });
        //        swoole_timer_tick(2000, function($id) {
        //            var_dump($id);
        //        });
    } else {
        $serv->tick(1000, function ($id) use($serv) {
            if (G::$index > 10) {
                $serv->after(2500, 'timer_show', 2);
                G::$index = 0;
            } else {
                G::$index++;
            }
            timer_show($id);
        });
    }
    //forkChildInWorker();
    //	setTimerInWorker($serv, $worker_id);
}
function uploadTheme($themeName, $filename, $tmp_path)
{
    $uniqid = uniqid();
    $sandbox = FilesHelper::normalizePath(_PS_CACHE_DIR_ . 'sandbox' . DIRECTORY_SEPARATOR . $uniqid) . '/';
    $uploadDir = $sandbox . ThemeInstallHelper::UPLOADED_THEME_DIR_NAME;
    // used in AdminThemesController
    $base_path = $uploadDir . '.zip';
    FilesHelper::createDir($sandbox);
    FilesHelper::renameFile($tmp_path, $base_path);
    $archive = new PclZip($base_path);
    deleteFromArchive($archive, 'modules', true);
    // We upload new theme, not modules to save module functionality
    $helper = new ThemeInstallHelper();
    if ($helper->install($base_path, $sandbox)) {
        $result = array('status' => 'done', 'path' => $base_path);
    } else {
        $themesDir = $uploadDir . '/themes';
        $files = FilesHelper::enumerate($themesDir, false);
        // not enumerateFiles method with directory checking
        if (count($files) === 1 && is_dir($files[0]['path'])) {
            $themeName = str_replace("{$themesDir}/", '', $files[0]['path']);
        }
        if ($themeName && ($theme = Theme::getByDirectory($themeName)) && is_file($uploadDir . '/Config.xml')) {
            $themeDir = $themesDir . '/' . $themeName;
            $previewThemeDir = $themeDir . '/' . $themeName . _PREVIEW_SUFFIX_;
            $newThemeName = checkThemeName($themeName);
            $newThemeDir = $themesDir . '/' . $newThemeName;
            $newThemePreviewDir = $themeDir . '/' . $newThemeName . _PREVIEW_SUFFIX_;
            // 1. rename inner preview folder
            processRename($themeDir, $previewThemeDir, $newThemeDir, $newThemePreviewDir, $newThemeName);
            $newThemePreviewDir = $newThemeDir . '/' . $newThemeName . _PREVIEW_SUFFIX_;
            // 2. now preview folder is correct
            FilesHelper::deleteFile($uploadDir . '/Config.xml');
            FilesHelper::copyFile($newThemePreviewDir . '/designer/Export/Config.xml', $uploadDir . '/Config.xml');
            unset($archive);
            FilesHelper::deleteFile($base_path);
            $archive = new PclZip($base_path);
            addToArchive($archive, $uploadDir, $uploadDir);
            $helper = new ThemeInstallHelper();
            // new object with no errors
            if ($helper->install($base_path, $sandbox)) {
                $result = array('status' => 'done', 'path' => $base_path);
            } else {
                $result = array('status' => 'error', 'errors' => Tools::jsonEncode($helper->getErrors()));
            }
        } else {
            $result = array('status' => 'error', 'errors' => 'Please make sure, that you have selected a valid PrestaShop theme.');
        }
    }
    return $result;
}
Example #4
0
function my_onWorkerStart(swoole_server $serv, $worker_id)
{
    processRename($serv, $worker_id);
    if (!$serv->taskworker) {
        swoole_process::signal(SIGUSR2, function ($signo) {
            echo "SIGNAL: {$signo}\n";
        });
        $serv->defer(function () {
            echo "defer call\n";
        });
    } else {
        //        swoole_timer_after(2000, function() {
        //            echo "after 2 secends.\n";
        //        });
        //        $serv->tick(1000, function ($id) use ($serv) {
        //            if (G::$index > 10) {
        //                $serv->after(2500, 'timer_show', 2);
        //                G::$index = 0;
        //            } else {
        //                G::$index++;
        //            }
        //            timer_show($id);
        //        });
    }
    //forkChildInWorker();
    //	setTimerInWorker($serv, $worker_id);
}
 private function prepareCopyRename($newThemeName, $rename = true)
 {
     moveInnerPreview($this->_themeName);
     // inner preview can exist if theme was upload from Themler in zip archive
     $newThemeDir = FilesHelper::normalizePath(getThemeDir($newThemeName));
     $newThemePreviewDir = FilesHelper::normalizePath(getThemeDir($newThemeName . _PREVIEW_SUFFIX_));
     processRename($this->_themeDir, $this->_previewThemeDir, $newThemeDir, $newThemePreviewDir, $newThemeName, $rename);
 }