2014 m. vasario 26 d., trečiadienis

2014 m. vasario 21 d., penktadienis

Daugiakalbio puslapio DB struktūra

Jei kuriate daugiakalbį puslapį, projektuoti duombazę galite tokiu pavyzdžiu:
PRODUCTS (
    id   
    price
    created_at
)

LANGUAGES (
    id   
    title
)

TRANSLATIONS (
    id           (// id of translation, UNIQUE)
    language_id  (// id of desired language)
    table_name   (// any table, in this case PRODUCTS)
    item_id      (// id of item in PRODUCTS)
    field_name   (// fields to be translated)
    translation  (// translation text goes here)
)
Nekomentuosiu, nes schema manau pati kalba už save. Lentelių, žinoma, gali būti ir daugiau, be "products", pvz. "pages". Vėliau pateiksiu užklausų pavyzdžius, kaip traukti informaciją.

2014 m. vasario 13 d., ketvirtadienis

PHP - kaip eksportuoti duomenų masyvą į Excel palaikomą CSV

Tam, kad Excel tinkamai rodytų Lietuviškas raides eksportuotame CSV faile, reikia jį eksportuoti laikantis tokio pavyzdžio:
header("Content-Type: text/csv; charset=utf-8");
//failo pavadinimas export.csv
header("Content-Disposition: attachment; filename=export.csv"); 
header("Pragma: no-cache");
header("Expires: 0");

echo "\xEF\xBB\xBF"; //reikalinga, kad excel tinkamai suprastų UTF

$outstream = fopen("php://output", "w");

//$data - gali būti tiesiai iš MySQL gautas eilučių masyvas UTF-8 koduotėje
if (is_array($data)) foreach ($data as $d) 
{
   //excel naudojamas delimiteris yra kabliataškis
   fputcsv($outstream, $d , ";"); 
}

fclose($outstream);
exit;

2014 m. vasario 8 d., šeštadienis

JavaScript išpakuotojas (unpscker)

Esate matę tokį JavaScript:
eval(function(p,a,c,k,e,r){e=......?
Jums padės įrankis Unpacker - kuris atkoduos JS funkciją - matysite orignalų, neužšifruotą kodą.

Paveikslėlių galerijos / išdidinimo įrankiai - jQuery papildiniai

Labiausiai paplitę ir geriausios paveikslėlių galerijos. Visos lengvai integruojamos, sklandžiai veikiančios:

  • FancyBox - Viena iš gali galingiausių, pilna efektų, tinka ne tik paveikslėlių išdidinimui, bet ir kaip modaliai langai (iškylantys virš esamo html paviršiaus), tinkantys užkelti iframe, YouTube video, ar ajax tekstui.
  • LightBox - viena seniausių ir geriausių paveikslėlių išdidinimo priemonių. Lengva, sklandžiai veikianti, suderinama su visomis šiuolaikinėmis moderniomis naršyklėmis.
  • SlimBox - tik 4 kilobaitai! - Itin optimizuota, efektyvi, originalios LightBox vizuali klonacija. Paleidimo sintaksė taip pat atitinka LightBox.

Raiškiojo teksto wysiwyg redaktoriaus CKEDITOR ir failų įkėliklio CKFINDER integravimas

Vienas geriausių ir labiausiai tobulinamų nemokamų wysiwyg (reiškia - gauni tai ką matai) tipo teskto redaktorių yra CKEDITOR. Su papildomu priedėliu CKFINDER atsiranda galimybė įkėlinėti failus į serverį. Tai puikus komplektas daugumai Turinio Valdymo Sistemų. Šių priemonių integravimo eiga, jeigu jau naudojate JQUERY biblioteką:
  1. parsisiunčiate  CKEDITOR ir CKFINDER, juos sukeliate į serverį
  2. HTML kode (pageidautina HEAD dalyje)  integruojate eilutes:
     <script src="/ckeditor4/ckeditor.js"></script>
     <script src="/ckeditor4/ckfinder/ckfinder.js"></script>
     <script src="/ckeditor4/adapters/jquery.js"></script>
    
  3. Sukuriate textarea lauką, suteikiate jam id, pvz redactor, ir sukuriate JavaSript iškvietimą:
    $( '#redactor' ).ckeditor(function(){
       CKFinder.setupCKEditor( this, '/ckeditor4/ckfinder/' );
    });
  4. ckfinder aplanke, ckfinder.php faile nustatote $baseUrl parametrą - kelią iki direktorijos, į kuria bus talpinami vartotojo failai. Šiai direktorijai, žinoma, reikia suteikti 777 chmod.
  5. ckfinder.php faile pakoregutoi funkciją CheckAuthentication() - kai norite, kad failų įkėlimas veiktų (pvz kai vartotojas prisijungės, yra sukurta sesija), f-ja turi grąžinti TRUE, kitu atveju - FALSE reikšmę
  6. Jeigu yra poreikis, su jQuery paimti teksto redaktoriaus turinį, tai galima padaryti kaip įprastai: $('#redactor').val();
  7. Jeigu yra poreikis tinkinti CKEditorių, papildomus parametrus (mūsų pvz - uiColor - sąsajos spalva ) galima užduoti iškart po callback funkcijos :
    $( '#redactor' ).ckeditor(function(){
       CKFinder.setupCKEditor( this, '/ckeditor4/ckfinder/' );
    }, { uiColor: '#9AB8F3' });
    Pilnas konfigūracijų sąrašas.

2014 m. vasario 3 d., pirmadienis

CSS sprite. Kas tai yra ir kaip padaryti?

Jeigu Jūsų tinklalapio dizainas (ne turinys) turi daug smulkių paveikslėlių, ikonėlių, tai užkraunant tokį puslapį visi tie paveikslėliai įkeliami atskirai ir tau prailgina puslapio užkrovimą. Tokiais atvejais rekomenduojama visus smulkius paveikslėlius išdėlioti ant lapo ir užsaugoti kaip vieną paveikslą, o į HTML dizainą įkelti paveikslėlių iškarpas iš to paties paveikslo, panaudojant CSS kalbą. Tai vadinama CSS sprite technologija. Darbui palengvinti (sujungti paveikslėliams ir sugeneruoti CSS iškarpas) verta naudoti internetinius servisus:

Spalvų paletės kūrimo įrankiai

Kuriant tinklalapio dizainą, pravartu pasidaryti spalvų paletę. Tam gali padėti šie įrankiai:

2014 m. vasario 2 d., sekmadienis

PHP - kaip sukurti iš eilės einančių datų kas mėnesį masyvą?

$months = array();
for ($i = 0; $i < 8; $i++) {
    $timestamp = mktime(0, 0, 0, date('n') - $i, 1);
    $months[date('n', $timestamp)] = date('F', $timestamp);
}
arba
$months = array();
for ($n=-6; $n<12; ++$n) {
          $d = date('Y-m-t', mktime(0,0,0,$n, 1, date('Y')));
          $months[$d ]= $d ;
}