/**
  * @return string Returns the CKEditor language configuration
  */
 protected function getLanguageOption()
 {
     $langPath = DIR_BASE . '/' . DIRNAME_PACKAGES . '/community_ckeditor/vendor/ckeditor/lang/';
     $useLanguage = 'en';
     $language = strtolower(str_replace('_', '-', Localization::activeLocale()));
     if (file_exists($langPath . $language . '.js')) {
         $useLanguage = $language;
     } elseif (file_exists($langPath . strtolower(Localization::activeLanguage()) . '.js')) {
         $useLanguage = strtolower(Localization::activeLanguage());
     }
     return $useLanguage;
 }
 public function setupLocalization(LocalizablePackageInterface $package, $locale = null, $translate = 'current')
 {
     if ($translate === 'current') {
         $translate = \Localization::getTranslate();
     }
     if (is_object($translate)) {
         if (!isset($locale) || !strlen($locale)) {
             $locale = Localization::activeLocale();
         }
         $languageFile = $package->getTranslationFile($locale);
         if (is_file($languageFile)) {
             $translate->addTranslationFile('gettext', $languageFile);
         }
     }
 }
<?php

use Concrete\Core\Localization\Localization;
header('Content-type: text/javascript; charset=UTF-8');
$locale = str_replace('_', '-', Localization::activeLocale());
if ($locale === 'en-US') {
    echo '// No needs to translate ' . $locale;
} else {
    $language = Localization::activeLanguage();
    $alternatives = array($locale);
    if (strcmp($locale, $language) !== 0) {
        $alternatives[] = $language;
    }
    $content = false;
    foreach ($alternatives as $alternative) {
        $path = DIR_BASE_CORE . '/' . DIRNAME_JAVASCRIPT . "/i18n/select2_locale_{$alternative}.js";
        if (is_file($path) && is_readable($path)) {
            $content = @file_get_contents($path);
            if (is_string($content)) {
                break;
            }
        }
    }
    if (is_string($content)) {
        echo $content;
    } else {
        echo '// No select2 translations for ' . implode(', ', $alternatives);
    }
}
Esempio n. 4
0
 /**
  * @return \Concrete\Core\Error\Error
  */
 public function configure()
 {
     $error = \Core::make('helper/validation/error');
     /* @var $error \Concrete\Core\Error\Error */
     try {
         $val = Core::make('helper/validation/form');
         $val->setData($this->post());
         $val->addRequired("SITE", t("Please specify your site's name"));
         $val->addRequiredEmail("uEmail", t('Please specify a valid email address'));
         $val->addRequired("DB_DATABASE", t('You must specify a valid database name'));
         $val->addRequired("DB_SERVER", t('You must specify a valid database server'));
         $password = $_POST['uPassword'];
         $passwordConfirm = $_POST['uPasswordConfirm'];
         $uh = Core::make('helper/concrete/user');
         $uh->validNewPassword($password, $error);
         if ($password) {
             if ($password != $passwordConfirm) {
                 $error->add(t('The two passwords provided do not match.'));
             }
         }
         if (is_object($this->fileWriteErrors)) {
             $error = $this->fileWriteErrors;
         }
         $error = $this->validateDatabase($error);
         $error = $this->validateSampleContent($error);
         if ($val->test() && !$error->has()) {
             // write the config file
             $vh = Core::make('helper/validation/identifier');
             $this->fp = @fopen(DIR_CONFIG_SITE . '/site_install.php', 'w+');
             $this->fpu = @fopen(DIR_CONFIG_SITE . '/site_install_user.php', 'w+');
             if ($this->fp) {
                 $config = isset($_POST['SITE_CONFIG']) ? (array) $_POST['SITE_CONFIG'] : array();
                 $config['database'] = array('default-connection' => 'concrete', 'connections' => array('concrete' => array('driver' => 'c5_pdo_mysql', 'server' => $_POST['DB_SERVER'], 'database' => $_POST['DB_DATABASE'], 'username' => $_POST['DB_USERNAME'], 'password' => $_POST['DB_PASSWORD'], 'charset' => 'utf8')));
                 $renderer = new Renderer($config);
                 fwrite($this->fp, $renderer->render());
                 fclose($this->fp);
                 chmod(DIR_CONFIG_SITE . '/site_install.php', 0700);
             } else {
                 throw new Exception(t('Unable to open config/app.php for writing.'));
             }
             if ($this->fpu) {
                 $hasher = new PasswordHash(Config::get('concrete.user.password.hash_cost_log2'), Config::get('concrete.user.password.hash_portable'));
                 $configuration = "<?php\n";
                 $configuration .= "define('INSTALL_USER_EMAIL', '" . $_POST['uEmail'] . "');\n";
                 $configuration .= "define('INSTALL_USER_PASSWORD_HASH', '" . $hasher->HashPassword($_POST['uPassword']) . "');\n";
                 $configuration .= "define('INSTALL_STARTING_POINT', '" . $this->post('SAMPLE_CONTENT') . "');\n";
                 $configuration .= "define('SITE', '" . addslashes($_POST['SITE']) . "');\n";
                 if (Localization::activeLocale() != '' && Localization::activeLocale() != 'en_US') {
                     $configuration .= "define('SITE_INSTALL_LOCALE', '" . Localization::activeLocale() . "');\n";
                 }
                 $res = fwrite($this->fpu, $configuration);
                 fclose($this->fpu);
                 chmod(DIR_CONFIG_SITE . '/site_install_user.php', 0700);
                 if (PHP_SAPI != 'cli') {
                     $this->redirect('/');
                 }
             } else {
                 throw new Exception(t('Unable to open config/site_user.php for writing.'));
             }
         } else {
             if ($error->has()) {
                 $this->set('error', $error);
             } else {
                 $error = $val->getError();
                 $this->set('error', $val->getError());
             }
         }
     } catch (Exception $ex) {
         $this->reset();
         $this->set('error', $ex);
         $error->add($ex);
     }
     return $error;
 }
Esempio n. 5
0
 /**
  * Run startup and localization events on any installed packages.
  */
 public function setupPackages()
 {
     $checkAfterStart = false;
     $config = $this['config'];
     foreach ($this->packages as $pkg) {
         // handle updates
         if ($config->get('concrete.updates.enable_auto_update_packages')) {
             $dbPkg = \Package::getByHandle($pkg->getPackageHandle());
             $pkgInstalledVersion = $dbPkg->getPackageVersion();
             $pkgFileVersion = $pkg->getPackageVersion();
             if (version_compare($pkgFileVersion, $pkgInstalledVersion, '>')) {
                 $currentLocale = Localization::activeLocale();
                 if ($currentLocale != 'en_US') {
                     Localization::changeLocale('en_US');
                 }
                 $dbPkg->upgradeCoreData();
                 $dbPkg->upgrade();
                 if ($currentLocale != 'en_US') {
                     Localization::changeLocale($currentLocale);
                 }
             }
         }
         $pkg->setupPackageLocalization();
         if (method_exists($pkg, 'on_start')) {
             $pkg->on_start();
         }
         if (method_exists($pkg, 'on_after_packages_start')) {
             $checkAfterStart = true;
         }
     }
     $config->set('app.bootstrap.packages_loaded', true);
     if ($checkAfterStart) {
         foreach ($this->packages as $pkg) {
             if (method_exists($pkg, 'on_after_packages_start')) {
                 $pkg->on_after_packages_start();
             }
         }
     }
 }
 public static function getJQueryUIJavascript($setResponseHeaders = true)
 {
     if ($setResponseHeaders) {
         static::sendJavascriptHeader();
     }
     $env = Environment::get();
     /* @var $env \Concrete\Core\Foundation\Environment */
     $alternatives = array(Localization::activeLocale());
     if (Localization::activeLocale() !== Localization::activeLanguage()) {
         $alternatives[] = Localization::activeLanguage();
     }
     $found = null;
     foreach ($alternatives as $alternative) {
         $r = $env->getRecord(DIRNAME_JAVASCRIPT . '/i18n/ui.datepicker-' . str_replace('_', '-', $alternative) . '.js');
         if (is_file($r->file)) {
             $found = $r->file;
             break;
         }
     }
     if (isset($found)) {
         readfile($found);
     } else {
         echo '// No jQueryUI translations for ' . Localization::activeLocale();
     }
 }
Esempio n. 7
0
 /**
  * Run startup and localization events on any installed packages.
  */
 public function setupPackages()
 {
     foreach ($this->packages as $pkg) {
         // handle updates
         if (Config::get('concrete.updates.enable_auto_update_packages')) {
             $pkgInstalledVersion = $pkg->getPackageVersion();
             $pkgFileVersion = $pkg->getPackageVersion();
             if (version_compare($pkgFileVersion, $pkgInstalledVersion, '>')) {
                 $currentLocale = Localization::activeLocale();
                 if ($currentLocale != 'en_US') {
                     Localization::changeLocale('en_US');
                 }
                 $pkg->upgradeCoreData();
                 $pkg->upgrade();
                 if ($currentLocale != 'en_US') {
                     Localization::changeLocale($currentLocale);
                 }
             }
         }
         $pkg->setupPackageLocalization();
         if (method_exists($pkg, 'on_start')) {
             $pkg->on_start();
         }
     }
     Config::set('app.bootstrap.packages_loaded', true);
 }
Esempio n. 8
0
<?php

use Concrete\Core\Localization\Localization;
header('Content-type: text/javascript; charset=' . APP_CHARSET);
$jh = Core::make('helper/json');
$locale = Localization::activeLocale();
?>
jQuery.Redactor.opts.langs[<?php 
echo $jh->encode($locale);
?>
] = {
    html: <?php 
echo $jh->encode(t('HTML'));
?>
,
    video: <?php 
echo $jh->encode(t('Insert Video'));
?>
,
    image: <?php 
echo $jh->encode(t('Insert Image'));
?>
,
    table: <?php 
echo $jh->encode(t('Table'));
?>
,
    link: <?php 
echo $jh->encode(t('Link'));
?>
,
Esempio n. 9
0
 /**
  * Run startup and localization events on any installed packages.
  */
 public function setupPackages()
 {
     $pla = \Concrete\Core\Package\PackageList::get();
     $pl = $pla->getPackages();
     $cl = ClassLoader::getInstance();
     /** @var \Package[] $pl */
     foreach ($pl as $p) {
         $p->registerConfigNamespace();
         if ($p->isPackageInstalled()) {
             $pkg = Package::getClass($p->getPackageHandle());
             if (is_object($pkg) && !$pkg instanceof \Concrete\Core\Package\BrokenPackage) {
                 $cl->registerPackage($pkg);
                 // handle updates
                 if (Config::get('concrete.updates.enable_auto_update_packages')) {
                     $pkgInstalledVersion = $p->getPackageVersion();
                     $pkgFileVersion = $pkg->getPackageVersion();
                     if (version_compare($pkgFileVersion, $pkgInstalledVersion, '>')) {
                         $currentLocale = Localization::activeLocale();
                         if ($currentLocale != 'en_US') {
                             Localization::changeLocale('en_US');
                         }
                         $p->upgradeCoreData();
                         $p->upgrade();
                         if ($currentLocale != 'en_US') {
                             Localization::changeLocale($currentLocale);
                         }
                     }
                 }
                 $pkg->setupPackageLocalization();
                 if (method_exists($pkg, 'on_start')) {
                     $pkg->on_start();
                 }
             }
         }
     }
     Config::set('app.bootstrap.packages_loaded', true);
 }