হালনাগাদ:
অনুবাদকৃত রক্ষণাবেক্ষণ পৃষ্ঠার জন্য অন্য একটি উপায় খুঁজে পেয়েছে:
https://github.com/OpenMage/magento-lts/blob/1.9.3.x/errors/processor.php#L160-L162
if (isset($_GET['skin'])) {
$this->_setSkin($_GET['skin']);
}
রক্ষণাবেক্ষণ পৃষ্ঠার কনস্ট্রাক্টর একটি skin
বিন্যাস পরিবর্তন করার জন্য একটি পোষ্ট প্যারামিটার অ্যাক্সেসপেট করে । এটি ইচ্ছাকৃত উপায় বলে মনে হচ্ছে, তবে এটি দলিল করা হয়নি (এখনও) ...
আপনার কিছু পুনর্লিখনের নিয়ম যুক্ত করুন .htaccess
যা skin
আপনার URL এ একটি প্যারামিটার যুক্ত করে। যেমন।
RewriteCond %{HTTP_HOST} ^french.example.com$
RewriteCond %{DOCUMENT_ROOT}/.maintenance.flag -f
RewriteCond %{QUERY_STRING} !(^|&)skin=french(&|$) [NC]
RewriteRule ^ %{REQUEST_URI}?skin=french[L]
অনুলিপি errors/default
করুনerrors/french
- আপনার প্রয়োজন অনুসারে টেমপ্লেট ফাইলগুলি পরিবর্তন / অনুবাদ করুন
হয়তো দেরী বিট, কিন্তু একটি ভাল কাজ সমাধান, অনুলিপি ছাড়া error
প্রত্যেক subfolder করার ডিরেক্টরির ...
"Downsides":
- আপনাকে তিনটি মূল ফাইল সম্পাদনা করতে হবে। যতটা সম্ভব মূল সম্পাদনাগুলি এড়ানোর জন্য আমি কেবল ত্রুটি / প্রতিবেদনের পৃষ্ঠাগুলির পথ অন্তর্ভুক্ত করেছি এবং
processor.php
পরিবর্তিত পড়তে বর্ধিত করেছি local.xml
।
- এটি এখনও প্রতিটি ভাষার জন্য টেমপ্লেট ফাইলের প্রয়োজন (এই মুহুর্তে কোনও অনুবাদ নেই - সম্ভবত পরে )
বেসিক সেটআপ
মাল্টি ওয়েবসাইট বহু-দোকান সেট-আপ ভালো, শুধুমাত্র পার্থক্য যে আমি সেট করেছি MAGE_RUN_CODE
এ .htaccess
পরিবর্তে index.php
। 1 ম ডোমেনের জন্য আমি RUN_CODE
অন্য কোনওটিকে ব্যবহার করার মতো লাগে না ...
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule .* - [E=MAGE_RUN_CODE:website1]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule .* - [E=MAGE_RUN_TYPE:website]
লিঙ্ক উত্তর ছাড়াও আমি সেট করতে ছিল RewriteBase
মধ্যে .htaccess
লোকেল ডিরেক্টরি ও সম্পাদন করা মেলে index.php
মধ্যে en
, fr
এবং পরিবর্তন
$maintenanceFile = 'maintenance.flag';
...
if (file_exists($maintenanceFile)) {
include_once dirname(__FILE__) . '/errors/503.php';
exit;
}
প্রতি
$maintenanceFile = '../maintenance.flag';
...
if (file_exists($maintenanceFile)) {
include_once '../errors/503.php';
exit;
}
সম্পাদনা করুন errors/404.php
, 503.php
এবংreport.php
প্রতিস্থাপন করা
require_once 'processor.php';
$processor = new Error_Processor();
সঙ্গে
require_once 'processor_multiwebsite.php';
$processor = new Error_Processor_Multiwebsite();
এবং এটি যুক্ত করুন 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;
}
}
}
}
নতুন local.xml
কাঠামো
<skin>
প্রথম স্তরে সেট করার পরিবর্তে প্রথমে ওয়েবসাইটগুলি রানকোড / লোকেল সন্ধান করুন
<?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>
টেমপ্লেট
যোগ 503.phtml
, ..., ডিরেক্টরি মিলে যাওয়া সিএসএস<runcode>-<locale>
default-default
(প্রথম ডোমেন ডিফল্ট ভাষা)
default-en
default-fr
website1-default
(২ য় ডোমেন ডিফল্ট ভাষা)
- ...
কোনও সদৃশ সিএসএস / চিত্র নেই
- আপনার ওয়েবসাইটের নির্দিষ্ট সিএসএস / চিত্র ফাইলগুলিকে একটি ডিরেক্টরিতে রেখে
<skin_base>
নোড যুক্ত করুনlocal.xml
- পরিবর্তন সব স্ট্যাটিক লিঙ্ক
page.phtml
অর্থাত থেকে ফাইল href="css/styles.css"
থেকে<?php echo $this->getSkinBaseUrl('css/styles.css')?>