Exemplo n.º 1
0
 public function chmod($path, $permissions, Log $logger)
 {
     $logger->add(str_repeat('-', 10));
     $logger->add(sprintf('Changing permissions of "%s" to %o', $path, $permissions));
     $logger->add('Using chmod()... ', true, true, false);
     $result = @chmod($path, $permissions);
     $logger->add($result ? 'OK' : 'FAILED', true, false, true);
     if (!$result) {
         $logger->add('Using FTP...');
         $ftp_connection = Registry::get('ftp_connection');
         if (is_resource($ftp_connection)) {
             $logger->add('Connection is already established');
             $ftp_ready = true;
         } elseif (fn_ftp_connect($this->settings, true)) {
             $logger->add('Connection established');
             $ftp_ready = true;
         } else {
             $logger->add('Failed to establish connection');
             $ftp_ready = false;
         }
         if ($ftp_ready) {
             $result = fn_ftp_chmod_file($path, $permissions, false);
             $logger->add(sprintf('FTP chmod result: %s', $result ? 'OK' : 'FAILED'));
         }
     }
     $logger->add(str_repeat('-', 10));
     return $result;
 }
Exemplo n.º 2
0
 /**
  * @param array  $package_content_schema Package content schema
  * @param Log    $logger                 Logger instance
  * @param string $package_content_path   Package content path
  *
  * @return array First element is a list of languages to be installed, second element is a list languages failed to install
  */
 public function installLanguages($package_content_schema, Log $logger, $package_content_path)
 {
     $failed_to_install = array();
     $installed_languages = array_keys(Languages::getAvailable('A', true));
     if (empty($package_content_schema['languages'])) {
         $logger->add('Installing languages using upgraded *.po files');
         $po_pack_basepath = $this->config['dir']['lang_packs'];
         $lang_codes_to_install = $this->getLangCodesToReinstallFromContentSchema($package_content_schema);
     } else {
         $logger->add('Installing languages provided by package');
         $po_pack_basepath = $package_content_path . 'languages/';
         $lang_codes_to_install = (array) $package_content_schema['languages'];
     }
     $logger->add(sprintf('Already installed languages: %s', implode(', ', $installed_languages)));
     $logger->add(sprintf('Languages to be installed: %s', implode(', ', $lang_codes_to_install)));
     if (in_array(CART_LANGUAGE, $lang_codes_to_install)) {
         $fallback_lang_code = CART_LANGUAGE;
     } elseif (in_array('en', $lang_codes_to_install)) {
         $fallback_lang_code = 'en';
     } else {
         $fallback_lang_code = null;
     }
     foreach ($installed_languages as $lang_code) {
         $logger->lineStart(sprintf('Installing "%s" language... ', $lang_code));
         if (in_array($lang_code, $lang_codes_to_install)) {
             Output::display(__('install') . ': ' . $lang_code, '', false);
             if (false === Languages::installCrowdinPack($po_pack_basepath . $lang_code, array('install_newly_added' => true, 'validate_lang_code' => $lang_code, 'reinstall' => true))) {
                 $logger->lineEnd('FAILED');
                 $failed_to_install[] = $lang_code;
             } else {
                 $logger->lineEnd('OK');
             }
         } elseif ($fallback_lang_code !== null) {
             if (false === Languages::installCrowdinPack($po_pack_basepath . $fallback_lang_code, array('reinstall' => true, 'force_lang_code' => $lang_code, 'install_newly_added' => true))) {
                 $logger->lineEnd('FAILED');
                 $failed_to_install[] = $lang_code;
             } else {
                 $logger->lineEnd('OK');
             }
         } else {
             $logger->lineEnd('SKIPPED');
         }
     }
     return array($lang_codes_to_install, $failed_to_install);
 }