Güncelleme:
Çevrilmiş bakım sayfası için başka bir yol buldum:
https://github.com/OpenMage/magento-lts/blob/1.9.3.x/errors/processor.php#L160-L162
if (isset($_GET['skin'])) {
$this->_setSkin($_GET['skin']);
}
Bakım sayfası yapıcısı, skin
düzeni değiştirmek için bir POST parametresi kullanır. Kasıtlı yol gibi görünüyor, ama henüz belgelenmedi ...
URL'nize parametre .htaccess
ekleyen bazı yeniden yazma kuralları skin
ekleyin. Örneğin.
RewriteCond %{HTTP_HOST} ^french.example.com$
RewriteCond %{DOCUMENT_ROOT}/.maintenance.flag -f
RewriteCond %{QUERY_STRING} !(^|&)skin=french(&|$) [NC]
RewriteRule ^ %{REQUEST_URI}?skin=french[L]
Şuraya kopyala errors/default
:errors/french
- Şablon dosyalarını ihtiyaçlarınıza göre değiştirin / çevirin
Belki biraz geç, ama her alt klasöre dizin kopyalamadan iyi bir çalışma çözümü error
...
"Downsides":
- üç temel dosyayı düzenlemeniz gerekir. Çekirdek düzenlemeleri olabildiğince önlemek için hata / rapor sayfalarının yolunu değiştirdim ve
processor.php
değiştirilmiş bir okumayı okumak için uzattım local.xml
.
- hala her dil için şablon dosyaları gerektirir (şu anda çeviri yok - belki daha sonra )
Temel kurulum
Çoklu web sitesi çoklu mağaza kurulum böyle, sadece differnce ben kurdum olmasıdır MAGE_RUN_CODE
içinde .htaccess
yerine index.php
. 1. alan adı için hiçbirine RUN_CODE
benzemiyor.
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule .* - [E=MAGE_RUN_CODE:website1]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule .* - [E=MAGE_RUN_TYPE:website]
Bağlantılı cevap ek olarak belirlerim zorunda RewriteBase
içinde .htaccess
yerel dizin ve düzenle maç için index.php
de en
, fr
ve değişimi
$maintenanceFile = 'maintenance.flag';
...
if (file_exists($maintenanceFile)) {
include_once dirname(__FILE__) . '/errors/503.php';
exit;
}
için
$maintenanceFile = '../maintenance.flag';
...
if (file_exists($maintenanceFile)) {
include_once '../errors/503.php';
exit;
}
Düzen errors/404.php
, 503.php
vereport.php
değiştirmek
require_once 'processor.php';
$processor = new Error_Processor();
ile
require_once 'processor_multiwebsite.php';
$processor = new Error_Processor_Multiwebsite();
Ve bunu errors/processor_multiwebsite.php
<?php
require_once 'processor.php';
class Error_Processor_Multiwebsite extends Error_Processor
{
const DEFAULT_RUNCODE = 'default';
const DEFAULT_LOCALE = 'default';
/**
* Magento run code
*
* @var string
*/
protected $_runCode;
/**
* Magento run code
*
* @var string
*/
protected $_locale;
public function __construct()
{
$this->_runCode = self::DEFAULT_RUNCODE;
if (isset($_SERVER['MAGE_RUN_CODE'])) {
$this->_runCode = $_SERVER['MAGE_RUN_CODE'];
}
$this->_locale = self::DEFAULT_LOCALE;
$path = array_filter(explode('/', str_replace('index.php', '', $_SERVER['SCRIPT_NAME'])));
if (end($path)) {
$this->_locale = end($path);
}
parent::__construct();
}
/**
* Retrieve skin URL
*
* @return string
*/
public function getSkinUrl()
{
$baseUrl = str_replace($this->_locale . '/', '', $this->getBaseUrl());
return $baseUrl . self::ERROR_DIR. '/' . $this->_config->skin . '/';
}
/**
* Retrieve skin base URL
*
* @return string
*/
public function getSkinBaseUrl($file)
{
return $this->_config->skin_base ? "../{$this->_config->skin_base}/{$file}" : $file;
}
/**
* Prepare config data
*/
protected function _prepareConfig()
{
parent::_prepareConfig();
$local = $this->_loadXml(self::MAGE_ERRORS_LOCAL_XML);
if (!is_null($local)) {
if ((string)$local->{$this->_runCode}->{$this->_locale}->skin) {
$this->_config->skin = (string)$local->{$this->_runCode}->{$this->_locale}->skin;
}
# add skin base URL
if ((string)$local->{$this->_runCode}->{$this->_locale}->skin_base) {
$this->_config->skin_base = (string)$local->{$this->_runCode}->{$this->_locale}->skin_base;
}
}
}
}
Yeni local.xml
yapı
<skin>
İlk düzeyde ayarlamak yerine önce web sitesi runcode / locale arayın
<?xml version="1.0"?>
<config>
<!-- 1st domain w/o runcode -->
<default>
<!-- no locale sub dir -->
<default>
<skin>default-default</skin>
...
</default>
<en>
<skin>default-en</skin>
<skin_base>default-default</skin_base>
...
</en>
<fr>
<skin>default-fr</skin>
<skin_base>default-default</skin_base>
...
</fr>
</default>
<!-- runcode website1 -->
<website1>
<!-- no locale sub dir -->
<default>
<skin>website1-default</skin>
...
</default>
...
</website1>
</config>
Şablonlar
503.phtml
Eşleşen dizinlere CSS ekle , ...,<runcode>-<locale>
default-default
(1. alan adı varsayılan dili)
default-en
default-fr
website1-default
(2. alan adı varsayılan dili)
- ...
Yinelenen CSS / resim yok
- bir dizine web sitenizin belirli CSS / görüntü dosyalarını koymak ve eklemek
<skin_base>
için düğümlocal.xml
- değişim TÜM statik bağlantıları
page.phtml
ie dosyaları href="css/styles.css"
için<?php echo $this->getSkinBaseUrl('css/styles.css')?>