Post by fyg50 » Wed Feb 07, 2018 9:09 am

Merhaba arkadaşlar,
Opencart için bir eklenti geliştirmekteyim, daha doğrusu eklentiyi yaptım herşey güzel.
Tek sorun eklentiye çoklu dil desteği ekleyemiyorum.
Yaptığım eklentideki metinler veritabanında güncelleme yapmadan çalışıyor sorun yok fakat çoklu giriş dilini

yapmayı bir türlü beceremedim.

Modülün herhangi metin girişi ile ilgili Admin / Ayarlar kısmında ki ekran görüntüm:
Image

Uyguladığım adımlar ve kodlarım şu şekilde:

1) admin/view/template/setting/setting.tpl

Code: Select all

<div class="form-group required">
            <label class="col-sm-2 control-label">Module test</label>
            <div class="col-sm-10">
              <?php foreach ($languages as $language) { ?>
              <div class="input-group"><span class="input-group-addon"><img src="language/<?php echo $language

['code']; ?>/<?php echo $language['code']; ?>.png" title="<?php echo $language['name']; ?>" /></span>
                <textarea name="config_fatih_test[<?php echo $language['language_id']; ?>]" cols="40" 

rows="5"><?php echo isset($config_fatih_test[$language['language_id']]) ? $config_fatih_test[$language

['language_id']] : ''; ?></textarea>
              </div>
              
              <?php } ?>
            </div>
          </div>
2) admin/controller/setting/setting.php

Code: Select all

$this->load->model('localisation/language');
        $data['languages'] = $this->model_localisation_language->getLanguages();
        
        
        if (isset($this->request->post['config_fatih_test'])) {
            $data['config_fatih_test'] = $this->request->post['config_fatih_test'];
        } else {
            $data['config_fatih_test'] = $this->config->get('config_fatih_test');
        }
Ön yüzde yansıtmak istediğim ürün sayfası
3) catalog/controller/product/product.php

Code: Select all

$this->load->model('localisation/language');
        $data['languages'] = $this->model_localisation_language->getLanguages();
        
        $data['config_fatih_test'] = $this->config->get('config_fatih_test');
        
4) catalog/view/theme/default/template/product/product.tpl
Bir kaç çeşit yansıtmak için denediğim kodlar;

Code: Select all

<?php echo $config_fatih_test[$language['language_id']]; ?>
<?php echo $config_fatih_test; ?>
Kodlarım yukarıdaki gibidir.
Yaşadığım sorun şudur: Ürün sayfasındaki sadece bu kodu çalıştırabildim <?php echo $config_fatih_test[$language['language_id']]; ?>
Ama sitenin dilini değiştirdiğimde o dilde ki metin ile değişmiyor, alttaki dil ile sabit kalıyor, bu konuda

yardımcı olabilecek varmıdır?

Saygılar

Newbie

Posts

Joined
Wed Dec 13, 2017 12:47 am

Post by eka7a » Wed Feb 07, 2018 9:13 pm

Merhaba,
Aşağıdaki şekilde ön yüzde kullanabilirsiniz. Hata oluşmaması için değerin var olduğunu isset ile kontrol edebilirsiniz.

Code: Select all

$test = $this->config->get('config_fatih_test');
$data['test'] = $test[$this->config->get('config_language_id')];


User avatar
Active Member

Posts

Joined
Sun Apr 12, 2009 12:59 am
Location - Türkiye

Post by fyg50 » Thu Feb 08, 2018 12:46 am

eka7a wrote:
Wed Feb 07, 2018 9:13 pm
Merhaba,
Aşağıdaki şekilde ön yüzde kullanabilirsiniz. Hata oluşmaması için değerin var olduğunu isset ile kontrol edebilirsiniz.

Code: Select all

$test = $this->config->get('config_fatih_test');
$data['test'] = $test[$this->config->get('config_language_id')];

Merhaba hocam bahsettiğiniz kodlar catalog/controller/product/product.php için doğrumudur ?
Denedim fakat hata alıyorum, isset ile de denedim yine hatalı belkide isset ile ben hatalı kodluyor olabilirim, isse ile yazılışını paylaşırmısınız hocam ?

Newbie

Posts

Joined
Wed Dec 13, 2017 12:47 am

Post by fyg50 » Thu Feb 08, 2018 2:50 am

eka7a wrote:
Wed Feb 07, 2018 9:13 pm
Merhaba,
Aşağıdaki şekilde ön yüzde kullanabilirsiniz. Hata oluşmaması için değerin var olduğunu isset ile kontrol edebilirsiniz.

Code: Select all

$test = $this->config->get('config_fatih_test');
$data['test'] = $test[$this->config->get('config_language_id')];
SORUN ÇÖZÜLDÜ

Tekrar merhaba sorunu çözdüm hocam :)

verdiğiniz kod:

Code: Select all

$test = $this->config->get('config_fatih_test');
$data['test'] = $test[$this->config->get('config_language_id')];
Bu koddaki $data['test'] kısmını $data['config_fatih_test'] ile değiştirdim

değişen kod:

Code: Select all

$test = $this->config->get('config_fatih_test');
$data['config_fatih_test] = $test[$this->config->get('config_language_id')];
Artık çalışıyor, yardımlarınız için teşekkür ederim hocam

Newbie

Posts

Joined
Wed Dec 13, 2017 12:47 am
Who is online

Users browsing this forum: No registered users and 6 guests