WordPress Rev Slider etkinleştirme hatası

Bir WordPress temasında Rev Slider önerilen eklentilerden bir tanesi ve kurulduktan sonra aktif etmeye çalıştığımda

“Eklenti etkinleştirilemedi, çünkü önlenemeyen bir hataya sebep oldu.”

Uncaught Error: [] operator not supported for strings in

 hatası alıyordum. Biraz araştırdıktan sonra çözümünü buldum aynı hata ile karşılaşanların işine yarayacaktır. Eklentinin bulunduğu dizine girdikten sonra sırasıyla includes/framework klasörünü buluyoruz burada base-admin.class.php dosyası var. 21. satırda yer alan

 private static $arrMetaBoxes = '';

kod parçacağını

 private static $arrMetaBoxes = array();

şeklinde değiştiriyoruz.

tam yol şu şekilde :

 public_html/wp-content/plugins/revslider/includes/framework/base-admin.class.php

Centos web panel wildcard subdomain

Bir müşterimize çoklu dil desteğini subdomain üzerinden yaptırmak istedik ve CentOS web panelin yönetim arayüzünde Cpanel gibi “*” ile wildcard subdomain açmayı denedik fakat special character hatası verdi. Uğraşmamak için subdomain yerine GET veya klasör şeklinde url yapısı yapalım diye düşünürken, Mert kendi sunucusunda ki Apache vHosts dosyasını editleyerek (/usr/local/apache/conf.d/vhosts.conf) :


# vhost_start *.domainadi.com

ServerName _wildcard_.domainadi.com
ServerAlias *.domainadi.com
ServerAdmin erdemoralalp@gmail.com
DocumentRoot "/home/domainadi/public_html"
ErrorLog "/home/domainadi/public_html/error.log"
ScriptAlias /cgi-bin/ /home/domainadi/public_html/cgi-bin/
#
# Custom settings are loaded below this line (if any exist)
# Include "/usr/local/apache/conf/userdata/domainadi/*.domainadi.com/*.conf

SuexecUserGroup domainadi domainadi

suPHP_UserGroup domainadi domainadi

<Directory "/home/domainadi/public_html">
AllowOverride All

# vhost_end *.domainadi.com

 

şu şekilde çalıştırmayı başardı.

domainadi yazan yere kendi alan adınızı yazın dememe gerek yok sanırım 🙂

Centos Web Panel Roundcube SPAM klasörü

Cpanel lisansını ödememek için Ufuk‘un tavsiyesi ile kurmuş olduğum CenOS Web Paneli ücretsiz bir sisteme göre gayet başarılı buluyorum. Tabi ki bazı eksiklikleri var ama ücretsiz olması bunları gözardı etmeye yetiyor sanırım. Websitesini hazırlayıp aynı zamanda barındırma hizmetini de vermiş olduğum rahatsız(!) bir müşterim webmaile giriş yaptığında SPAM klasörünü görmek istediğini ve bunun burada olması gerektiğini söyledi. Gerçekten webmaile giriş yapıp baktığımda sadece “Gelen Kutusu” klasörünün aktif olduğunu gördüm.

Ayarları biraz kurcaladım belki buradadır sorun diye ama nafile.

Daha sonra Roundcube config.php dosyasını biraz kurcalamaya başladım ve aynı dizinde yer alan defaults.inc.php dosyasında :


// automatically create the above listed default folders on user login
$config['create_default_folders'] = false;

bu ayarı true olarak değiştirdim ve webmail oturumunu kapatıp, tekrar giriş yaptığımda tüm klasörler olması gerektiği gibiydi.

Bu arada CWP’deki bahsi geçen defaults.inc.php şurada bulunuyor : /usr/local/cwpsrv/var/services/roundcube/defaults.inc.php

WHMCS 7 premium domain özelliği

Eğer WHMCS 7 güncellemesini yaptıysanız ve premium özelliğini aktif etmek istiyorsanız bu sayfadaki bilgiler işinize yarayacaktır. Premium domain özelliğini aktif etmeniz; ödeme yapmış ama domaini alamamış olan sinirli müşteriye o domainin aslında fiyatı şuydu ve özel bir domaindir açıklaması yapmanızın önüne geçecektir. Panelden özelliği aktif etmeniz için varsayılan lookup servisini “ResellerClub” ile değiştirmeniz gerekiyor.

Değiştirdiniz ve olmadı mı? Bunun sebebi büyük ihtimalle modules/registrars/dottk klasöründe ki dottk.php IonCube uyumsuz bir versiyonu ile şifrelendiği için sorun yaratıyor, klasöre giderek silin.

$.post('cart.php', {
	dataType: 'json',
	domain: domainName,
	token: $("input[name='token']").val(),
	'a' : 'checkDomain',
	'type' : 'domain'
}, function(response) {
	var domain_adi = response.result[0]['domainName'];
	
	if(response.result[0]['isPremium'])
	{
		$('.sorgulanan-sag h3').html(domain_adi + ' 
<div class="badge badge-warning">Premium</div>

');
	}else{
		$('.sorgulanan-sag h3').html(domain_adi);
	}
	
	if(response.result[0].tld.substr(response.result[0].tld.length - 2) == 'tr')
	{
		var dadi = response.result[0]['domainName'];
		$.ajax({
			url: "nic-whois.php",
			method : 'POST',
			dataType: 'json',
			data : { domain : dadi},
			success : function(cevap)
				{

Şimdi bu işlemi yaptığınız da karşınıza başka bir sorun çıkıyor, ResellerClub “tr” uzantılarını false döndürüyor. (com.tr, av.tr, biz.tr vbg.) Her halükarda müşteriye bu alan adları satın alınmış olarak gözükecektir. Bunu önlemek için aklıma gelen ilk yöntem sisteme hook atmak olduysa da dökümantasyonu okumak eziyet geldi onun yerine nic.tr’ye bir sorgu yapıp tld eğer tr uzantılı ise isRegister değerini nic.tr’den gelen cevaba göre güncelledim.

Daha iyi bir çözüm bulana kadar kısaca izlemeniz gereken yol :
Bizim üzerinde uğraştığımız WHMCS sistemde post JQuery ile yapılıyor ve spotlight domain özelliğini kullanıyoruz. Ve seçmiş olduğumuz spotlight tld uzantıları arasında com.tr, biz.tr de var.

WHMCS cart.php’den normal bir şekilde sorgulamamızı yapıyoruz tabi ki premium özelliği aktif olduğu için ResellerClub’dan cevap geliyor. Ve eğer domain uzantısı tr ise ikinci bir istek gönderiyoruz nic-whois.php’ye ve gelen cevaba göre domainin kayıtlı olup olmadığını müşteriye gösteriyoruz.

nic-whois.php

<?
function whois($whoisserver, $domain) {
	$port = 43;
	$timeout = 10;
	$fp = @fsockopen($whoisserver, $port, $errno, $errstr, $timeout) or die("Socket Error " . $errno . " - " . $errstr);
	fputs($fp, $domain . "\r\n");
	$out = "";
	while(!feof($fp)){
		$out .= fgets($fp);
	}
	fclose($fp);
	
	return $out;
}
if (!empty($_POST))
{	
	//$_POST['domain'] için filtrleme yapılabilir
	$sorgu = whois("whois.nic.tr",$_POST['domain']);
	if(!$sorgu) {
		return false;
		echo "Sorgu hatası.";
	}
	else {
		if(substr($sorgu,0,2) == "No")
		{	//domain boş
			$sonuc = false;
		}
		else{
			$sonuc = true;
		}
	}
	
	echo json_encode($sonuc);
}


?>