Opencart Admin Çevrimiçi Olanlar Saat Farkı Çözümü-Zaman Dilimi Ayarı Timezone
Bu yazımızda Opencart Admin Çevrimiçi Olanlar Saat Farkı Çözümü-Zaman Dilimi Ayarı Timezone konusunu işleyeceğiz. Opencart admin sayfasında Çevrimiçi Olanlar sekmesinde ziyaretçilerin aktif oldukları zaman dilimi düzgün göstermemektedir. Bizim yerel saatimiz ile ziyaretçilerin saatlerini eşleştirmek için aşağıdaki adımları yapmamız gerekiyor.
Opencart 3.0.2.0 sürümü için denedim. Çalışmaktadır. diğer sürümleri siz test edebilirsiniz. Denemeden önce yedek almanız tavsiye edilir.
admin/controller/setting/setting.php açalım. Aşağıdaki satırı bulalım. Ben de 883. satırda gözükmekte idi.
$this->response->setOutput($this->load->view('setting/setting', $data));
Yukarıdaki satırın öncesine aşağıdaki kodları ekleyelim.
$data['config_timezone'] = $this->config->get('config_timezone');
$data['timezones'] = DateTimeZone::listIdentifiers(DateTimeZone::ALL);
Daha sonra admin/language/en-gb/setting/setting.php dosyasını açalım. Aşağıdaki kod satırını bulalım.
$_['entry_country'] = 'Country';
Yukarıdaki satırın öncesine aşağıdaki satırı ekleyelim.
$_['entry_timezone'] = 'Timezone';
Eğer Türkçe dilini kullanıyorsanız aynı işlemi Türkçe dil dosyası içerisinde gerçekleştirelim.
admin/language/tr-tr/setting/setting.php açalım. Aşağıdaki kod satırını bulalım.
$_['entry_country'] = 'Ülke';
Yukarıdaki satırın öncesine aşağıdaki satırı ekleyelim.
$_['entry_timezone'] = 'Zaman Dilimi';
Daha sonra admin/view/template/setting/setting.twig dosyasını açalım. Aşağıdaki kod satırını bulalım. (Ben de 192. satır)
<div class="tab-pane" id="tab-local">
Yukarıdaki satırın altına aşağıdaki satırları ekleyiniz.
<div class="form-group">
<label class="col-sm-2 control-label" for="input-timezone">{{ entry_timezone }}</label>
<div class="col-sm-10">
<select name="config_timezone" id="input-timezone" class="form-control">
{% for timezone in timezones %}
{% if timezone == config_timezone %}
<option value="{{ timezone }}" selected="selected">{{ timezone }}</option>
{% else %}
<option value="{{ timezone }}">{{ timezone }}</option>
{% endif %}
{% endfor %}
</select>
</div>
</div>
Daha sonra system/library/db.php dosyasını açalım. Aşağıdaki kod satırını bulalım.
$this->adaptor = new $class($hostname, $username, $password, $database, $port);
Yukarıdaki satırın altına aşağıdaki satırları ekleyiniz.
$query = $this->adaptor->query("SELECT value FROM " . DB_PREFIX . "setting WHERE `code` = 'config' AND `key` = 'config_timezone' ");
if (!empty($query->row)) {
$timezone = $query->row['value'];
date_default_timezone_set($timezone);
$now = new DateTime();
$mins = $now->getOffset() / 60;
$sgn = ($mins < 0 ? -1 : 1);
$mins = abs($mins);
$hrs = floor($mins / 60);
$mins -= $hrs * 60;
$offset = sprintf('%+d:%02d', $hrs * $sgn, $mins);
$this->adaptor->query("SET time_zone='" . $offset . "'");
}
Bu işlemi yaptıktan sonra Admin sayfası Kontrol Paneli sekmesinde sağ üstteki çark simgesine tıklayarak Tema ve SASS refresh (yenile) butonlarına tıklamak gerekiyor. Aynı zamanda Eklentiler – Modifikasyonlar içerisinden sağ üstteki Yenile tuşuna basmak gerekiyor.
Yukarıdaki işlemleri yaptıktan sonra Admin panelinde Sistem – Mağazalar – Yerel sekmesinde Zaman Dilimi (Timezone) adında yeni bir satır gözükecektir. Zaman dilimi içerisinde Europe/Istanbul seçeneği seçilir ve kaydet butonuna tıklanır.
Artık Kontrol Paneli içerisinde Çevrimiçi Olanlar içerisinde aktif olan ziyaretçilerin zaman dilimi doğru saati gösterecektir.
Opencart Admin Çevrimiçi Olanlar Saat Farkı Çözümü-Zaman Dilimi Ayarı Timezone
Yazımız hakkında yorumlarınızı aşağıdaki yorum kısmına yazabilirsiniz. Youtube kanalımızda da ilginizi çekebilecek videolar bulabilirsiniz. Youtube kanalıma abone olmayı da unutmayınız.
https://www.youtube.com/@candemirahmet
Yorum Yap