Chrome Javascript ile Barkod / QR Okuyucu Problemi

Standart el terminalleri ve barkod okuyucular ile stok / depo takibi yaptığımız bir sistem üzerinde yeni nesil teknoloji olan QR ( kare kod ) okutma sırasında problemler yaşadık.
Problem el terminalinin QR KOD u okuması sonrasında Chrome üzerinde CTRL+J yapması. Chrome üzerinde indirilenler sayfası açılmakta ve aynı zamanda QR içerisinde New Line yani enter ( \n ) özelliğini pas geçiyordu.

Aşağıdaki Javascript Kod parçacığı ile birlikte bu problemin üstesinden geldik. Bizim canımız yandı sizinkiler yanmasın;


window.document.getElementById( 'collect_seri' ).addEventListener('keydown', function(event)
    {
    console.log( event );
    if( event.keyCode == 13 || event.keyCode == 17 ||  event.keyCode == 74 )
{
if( event.keyCode == 13 || event.keyCode == 17 )
$( '#collect_seri' ).val( $( '#collect_seri' ).val()+"\n" );
if( event.ctrlKey != false )
event.preventDefault();
return;
}
    });

“collect_seri” ID li nesne textarea nesnesidir. Siz problem yaşadığınız nesne veya nesnelere işlem yapabilirsiniz.

Jquery DataTable Dropdown Problemi

Projelerinizde Jquery DataTable kullanıyorsanız ve datatable içerisinde de dropdown menüler kullanıyorsanız problemler yaşayabilirsiniz.
Problem; mobil olarak web sayfanızı açtığınızda dropdown menülerin açık ve kapatılamaz olmasıdır.
Aşağıdaki kod satıları ile bu problemin üstesinden geldik fakat mantık hatasından dolayı çift tıklayıp ( iki kere ekrana bastıktan sonra ) etkileşime geçmektedir. Düzeltip kullanabilirsiniz .

<script type="text/javascript">
$( document ).ready( function()
{
if ( $(window).width() <= 768 )
{
var open_drop_menu = '<style id="wi_style_id">@media (max-width: 768px) { .dropdown-menu,.table.dataTable>tbody>tr.child ul.dropdown-menu{display: none !important;} }</style>';

$( 'head' ).append( open_drop_menu );

setTimeout( function()
{
$( document ).delegate( '.dropdown-toggle', 'click', function()
{
if( $( 'style#wi_style_id' ).length > 0 )
$( 'style#wi_style_id' ).remove();
else
$( 'head' ).append( open_drop_menu );
} );

}, 2557 );
}
});
</script>

PHP ile Firebase Realtime Database Veri Ekleme

Realtime ( gerçek zamanlı ) olarak uyarı sistemi kullandığımız bir projede yazılımcı bir arkadaşın yardımlarıyla Firebase Realtime Database üzerine PHP CURL ile verileri eklemeyi başardık. 🙂

Kod bloğu aşağıdaki gibidir.

&lt;?php
private function firebase_update( $data )
{
$data = json_encode( $data );

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =&gt; "https://UYGULAMAHAVUZU.firebaseio.com/TABLOADI.json",
CURLOPT_RETURNTRANSFER =&gt; true,
CURLOPT_ENCODING =&gt; "",
CURLOPT_MAXREDIRS =&gt; 10,
CURLOPT_TIMEOUT =&gt; 30,
CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST =&gt; "PATCH",
CURLOPT_POSTFIELDS =&gt; $data,
CURLOPT_HTTPHEADER =&gt; array(
"Cache-Control: no-cache",
"Content-Type: application/json",
"Postman-Token: 99d8fc6b-d20e-43a0-93e6-5e04350ff449"
),
));
$response = curl_exec($curl);
curl_close($curl);
}
?&gt;

UYGULAMAHAVUZU -> Firebase tarafından size verilir.
TABLOADI -> Tablo adı değil fakat JSON verisi olarak KEY değeri diyebiliriz.

Farklı KEY ler oluşturup birden fazla tablo varmış gibi davranabilirsiniz.
Yukarıdaki işlemde RealTime database ayarlarında kurallar aşağıdaki gibi olmalıdır.

{
  /* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */  "rules": {
    ".read": true,
    ".write": true
  }
}

PHP ile Dizi İçerisinde Tüm String İfadeleri Büyük Çevirmek

Merhabalar,

PHP ile dizileri genellikle kullanıyorum. Özellikle de esnek olarak kullanılabilmesi birçok olanağı bize sunmaktadır.
Katı kurallar olmadan sonsuz elemanlı diziler oluşturabiliyoruz diyebiliriz.

Bir projede ihtiyaç olan dizi içerisindeki tüm string ifadelerin Türkçe karakter destekli olarak büyük harfe çevirme işlemi için ufak bir fonksiyon yazdım.
Beni kurtardı. Başkalarını da kurtarsın 🙂

function upper_string_arr( $arr )
{
foreach( $arr as $key => $value )
{
if( !is_array( $value ) )
{
$arr[ $key ] = mb_strtoupper( $value );
continue;
}
foreach( $value as $k => $v )
{
if( !$v || is_numeric( $v ) )
continue;
if( is_array( $v ) )
upper_string_arr( $v );
$arr[ $key ][ $k ] = mb_strtoupper( $v );
}
}
return $arr;
}

Fonksiyon recursive olarak ilerlemekte. İç içe olan dizileride büyültmektedir.

Kodlarımızı Kısaltalım Vol.1

Eğer bu sektörde iseniz “Az kod, çok iş” diye birkaç defa duymuşsunuzdur sanırım.  Kod yazmak bana göre hatta birçok kişiye göre bir nevi şiir yazmak gibidir. Her ne kadar çoğumuzun dil anlatımı ve edebiyatı dipte de olsa içimizde minnicik yazarlar bulunuyor gibi. 🙂

Şimdi şöyle yapalım. Önce uzun kod bloğunu görelim, sonra kısa nasıl olabilir ona bakalım.  Okumaya devam et “Kodlarımızı Kısaltalım Vol.1”

PHP – CRON – “Not found controller” Muhabbeti

PHP ile yazdığım bir projede Cron Job oluşturup gerekli işlemleri saat başı yaptırmak isterken alınan bir hatanın çevreye verdiği zararları konuşmak ister misiniz ?

PHP Framework’u olan Codeigniter ile geliştirilen bir projede saat başı çalışması gereken bir işlemin PHP tarafından alınan bir hata ile aşağıdaki gibidir.  “xyz.php XYZ Not found controller” Okumaya devam et “PHP – CRON – “Not found controller” Muhabbeti”