InDesign Non Print Object



InDesign Sayfasını Yazdırırken Bazı Nesneleri Gizleme

InDesign'da sayfanızdaki bazı nesneler görünsün fakat yazdırma sırasında kağıda basılmasın isteyebilirsiniz. Bu durumda bu nesneleri seçili hale getirip nonprinting olarak işaretlemek gereklidir:

- Öncelikle Window / Output / Attributes panelini açın
- Yazdırılmasını istemediğiniz nesneyi seçin
- Attributes panelinden Nonprinting kutucuğunu işaretleyin.
- Bunu yazdırılmasını istemediğiniz tüm nesneler için yapın.

Wordpress'de Next, Previous, Tags gibi ifadeleri Türkçeye Çevirme

 

Wordpress translate Next, Previous, Tags etc.

Bazı kelimeleri çevirmek istediğiniz ve bunu normal yollarla yapamadıysanız o halde js ve css kullanarak denemenizi öneririm.

1. Simple Custom CSS and JS eklentisini kurun. Bu eklenti benim tercih ettiğim ve kullandığım basit kullanımlı bir eklentidir. Kolayca sitenize ek js ve css kodları eklemenizi sağlar.
2. Eklentinin menüsünden "Özel JS Ekle" tıklanarak aşağıdaki kodu yapıştırın.
jQuery(document).ready(function( $ ){
    $('.nav-next .meta-nav').text('Sonraki yazı');
    $('.nav-previous .meta-nav').text('Önceki yazı');
});
3. Bu koda benzer şekilde translate yapacağınız tüm elementleri ekleyin.

Ajax Metodunda Form Datalarının Yanında Ek Veriler Göndermek

Ajax Method: Form Serialize + Additional Datas

Ajax methodunu kullanarak form verilerini $('#form').serialize() kullanarak kolayca gönderebiliyoruz. Fakat bu form verilerinin dışında ek datalar göndermek istediğinizde, aşağıdaki yöntemlerden birini kullanabilirsiniz.

Yöntem 1:
var data_ajax = $('#form').serialize() + '&quantity='+quantity+'&name=Ali';
$.ajax({
    url: 'index.php',
    type: 'POST',
    data: data_ajax,
    dataType: 'json',
    beforeSend: function() {
        $('#button').button('loading');
    },
    complete: function() {
        $('#button').button('reset');
    },
    success: function(json) {
        //..
    },
    error: function(xhr, ajaxOptions, thrownError) {
        alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    }
});
 
Yöntem 2:
var data_ajax = $('#form').serializeArray();
data_ajax.push({name: 'quantity', value: quantity});
data_ajax.push({name: 'name', value: 'Ali'});
$.ajax({
    url: 'index.php',
    type: 'POST',
    data: data_ajax,
    dataType: 'json',
    beforeSend: function() {
        $('#button').button('loading');
    },
    complete: function() {
        $('#button').button('reset');
    },
    success: function(json) {
        //..
    },
    error: function(xhr, ajaxOptions, thrownError) {
        alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    }
});

Opencart Gmail SMTP Ayarları (Google Erişimi Sonlandırdı!)

Bu yazıda bahsettiğim Gmail'in "Güvenliği düşük uygulama erişimi" hizmeti 2022 Mayıs ayı sonunda sonlandırıldı. Malesef Google bu erişimi kapatma kararı aldı. Bu nedenle farklı bir mail hizmeti kullanmanız gerekmektedir.

Opencart mail ayarlarınızda GMAIL hesabınızı kullanmak istiyorsanız aşağıdaki adımları sırayla uygulayın:

1. Opencart Admin Ayarları:
  • E-Posta Protokol: SMTP Mail
  • SMTP Host Adı: ssl://smtp.gmail.com
  • SMTP Kullanıcı Adı: your_mail_address@gmail.com
  • SMTP Parola: your_password
  • SMTP Port: 465
  • SMTP Zaman Aşımı: 60

2. Gmail Güvenlik Ayarları:




Bu ayarlardan sonra artık hazırsınız. Mağazanızdan deneme yapabilirsiniz. Üye olarak, sipariş durumunu güncelleyerek, yorum yazarak, ..vb bir işlem ile sistemin mail göndermesini test ediniz. Mümkünse farklı birkaç mail adresi ile test ediniz (gmail, hotmail, icloud, yahoo, ...vb).

Son Güncelleme: 28/12/2021

Terminal - Autocomplete Eklentisi




Terminal'de bir komut yazarken otomatik tamamlama önerileri almak ister misiniz? Bunun için iki yöntem vereceğim fakat benim tercihim birincisidir (popup autocomplete). Tabiki ikisini aynı zamanda kullanabilirsiniz.

1. Popup Autocomplete


Popup pencere içinde komut önerilerini listeleyen harika bir eklenti. fig.io adresinden eklentinin sayfasına ulaşabilirsiniz.


2. Standard Autocomplete


MacOs işletim sisteminde input autocomplete varsayılan olarak kapalıdır. Bu özelliği açarsanız komutun birkaç harfini yazıp "tab" tuşuna bastığınızda otomatik tamamlanır. Örneğin "cd des" + Tab yaptığınızda otomatik olarak "cd desktop" olacaktır. Tabiki burada birkaç farklı sonuç listelenmiyor, yada komut önerisi/yardımcısı gibi bir tamamlama yapmıyor. Yine de faydalı bir özellik ve açmak isterseniz terminalde sırayla şu işlemleri yapınız:

nano ~/.inputrc

.inputrc dosyası nano (terminal editörü) editöründe açılacaktır. (Bu dosya Users/KulanıcıAdınız/.inputrc konumundadır ve gizlidir. Farklı bir editörle bu dosyayı açarak da yapabilirsiniz. Eğer bu dosya yok ise kendiniz oluşturunuz.) Ardından aşağıdaki satırları kopyalayıp .inputrc dosyasına ekleyin ve kaydedip çıkın (kntrl + x tuşlarına basın ve kaydedilsin mi sorusuna Y ile cevap verin).

set completion-ignore-case on
set show-all-if-ambiguous on
TAB: menu-complete

Terminalden çıkıp tekrar açınız. Artık cd des yazıp tab tuşuna basarak deneyebilirsiniz.

Opencart'da "Error while sending QUERY packet. PID=" Hatası ve Çözümü


PHP Warning:  Error while sending QUERY packet. PID=29811 in /public_html/system/library/db/mpdo.php on line 57 gibi bir hata alıyorsanız bunun nedeni sorgulamalarınızın izin verilen maksimum değeri geçmesi olabilir. 

Bu hatanın çözümü için, ilgili dosyaya (system/library/db/mpdo.php) aşağıdaki satırı eklemenizi öneririm:
$this->connection->exec("SET GLOBAL max_allowed_packet=524288000");

Ben bu şekilde sorunu çözdüm. Kodu eklediğinizde aşağıdaki gibi olacaktır:

public function __construct($hostname, $username, $password, $database, $port = '3306') {
    try {
        $this->connection = new \PDO("mysql:host=" . $hostname . ";port=" . $port . ";dbname=" . $database, $username, $password, array(\PDO::ATTR_PERSISTENT => true));
    } catch(\PDOException $e) {
        throw new \Exception('Failed to connect to database. Reason: \'' . $e->getMessage() . '\'');
    }

    $this->connection->exec("SET NAMES 'utf8'");
    $this->connection->exec("SET CHARACTER SET utf8");
    $this->connection->exec("SET CHARACTER_SET_CONNECTION=utf8");
    $this->connection->exec("SET SQL_MODE = ''");
    $this->connection->exec("SET GLOBAL max_allowed_packet=524288000");
}


Opencart Ajax Filter by Dreamvention


Opencart standart yapısında kullanılışlı bir filtreleme maalesef bulunmuyor. Ajax yani sayfa yenilenmeden filtreleme yapabileceğiniz ücretsiz bir eklenti arıyorsanız Dreamvention tarafından yayınlanan Ajax Filter Free eklentisini öneririm:

MODÜL İÇİN TAVSİYE ETTİĞİM AYARLAR:
Aşağıdaki ayarlar tavsiye niteliğindedir fakat bazı ayarlar modülün çalışmasını direk etkilediği için önemlidir.







GÖRDÜĞÜM HATALAR ve ÇÖZÜMLERİ:

Buradan sonra yazacaklarım Opencart 2.3.0.2 versiyonu ve eklentisi için geçerlidir, diğer versiyonlarda benzer sorunlar mevcut ise uygulayabilirsiniz. 

Sorun 1: Bir kategori sayfasını açtınız diyelim ve hiç beklemeden menüden başka bir kategoriye tıkladınız. Bu durumda hala ilk tıkladığınız kategorinin ürünlerini görmeye devam ediyorsanız, bunun nedeni Ajax Filter eklentisinin veritabanındaki TEMP tablodan işlem yapmasıdır. Arada az zaman geçtiği için hala eski sorgudaki ürünleri listelemektedir.

Çözüm: Eklentiyi indirip kurduktan sonra aşağıdaki kodları bir xml dosyası olarak kaydedip vqmod/xml klasörünüze ekleyiniz. Vqmod kullanmıyorsanız ilgili dosyalardan bu değişiklikleri manuel olarak yapabilirsiniz. Burada HTTP_USER_AGENT hatası ile ilgili ek olarak bir düzeltme daha var, onu da eklemenizi tavsiye ederim.
  <file path="catalog/controller/extension/module/d_ajax_filter.php">
  <operation info="HTTP_USER_AGENT error">
      <search><![CDATA[if (preg_match('/(iPhone|iPod|iPad|Android|Windows Phone)/', $this->request->server['HTTP_USER_AGENT'])) {]]></search>
      <add position="replace"><![CDATA[
      if ( isset($this->request->server['HTTP_USER_AGENT']) && preg_match('/(iPhone|iPod|iPad|Android|Windows Phone)/', $this->request->server['HTTP_USER_AGENT']) ) {
      ]]></add>
  </operation>
  </file>
  <file path="catalog/model/extension/module/d_ajax_filter.php">
  <operation info="fix temp database">
      <search><![CDATA[$this->db->query($sql);]]></search>
      <add position="before" index="1"><![CDATA[
      $this->db->query("DROP TEMPORARY TABLE IF EXISTS `".DB_PREFIX."af_temporary`");
      ]]></add>
  </operation>
  </file>

Sorun 2: "Kurdum, ayarlamaları yaptım, fakat ajax mode çalışmıyor. Yani filtreleme yaptığımda hiçbir değişiklik olmuyor." diyorsanız bunun nedeni muhtemelen modülün ayarlarında bulunan Content Path'in doğru girilmemesidir. Burada bir jquery seçici girilmiştir. Fakat sizin temanıza ait kategori listeleme sayfasında bu id'ye sahip bir div elemanı bulunmadığı için ajax modu çalışmamaktadır.

Çözüm: Kendi temanıza ait kategori listeleme sayfasını açın ve <div id="content"> elemanından sonra gelen ilk div'e ait id'yi bulup buraya girin. Bu düzenlemeyi yukarıdaki modül ayarlarına ait resimlerde görebilirsiniz.