Archive for the 'tipp' Category

Hány hétből áll egy év?

Egy kérdéses évben lelendő hetek számát megkapjuk, ha az adott évet áthajtjuk a következő függvényen:

function getweeksnumber($year){
    return max(date('W', mktime(0,0,0,12,25,$year)), date('W', mktime(0,0,0,12,31,$year)));
}

Ötletes, nemde?

Készíts backup-ot

Kilencven valahányban, mikor elkezdtünk iskolai szinten is ismerkedni a számítógéppel, akkor tanultunk meg egy nagyon fontos dolgot, ami paranoiává vált az idők folyamán. Kaptunk egy programot papíron, és azt kellett begépelni, majd bizonyos módosításokat elvégezni rajta. Óra végén pedig osztályozás. Másfél ujjas gépelésről volt szó, sok időt pazarolva a billentyűk keresésére… Dupla óra, legvége előtt 10 perccel a tanár odament a főkapcsolóhoz, és hanyag eleganciával lekapcsolta. Majd jött a naplóval, és szépen sorba véste be az egyeseket, mondván, semmit nem csináltunk az órán. Természetesen akkor mindenhova kívántuk, hogy lehet ekkora gyopár, hogy tönkreteszi a munkánkat. Következő órán pótlás, természetesen megint eljátszotta ezt, ismét egyes, bukásra állunk informatikából. Legközelebb, amikor a kapcsoló irányába ment, már mentettünk, ekkor tette szóvá először - ha jól emlékszem -, gyerekek, mentsetek. Többet nem volt órai adatvesztés. Megtanultunk menteni. Akkoriban egy 1.44-es floppyn elfért több havi “munkád”, amit hobbiból kódoltál otthon, vagy órák után a suliban. Aztán bejöttek a cd írók, mobil rackek, könnyebbé és biztosabbá vált az archiválás. De mentettük minden munkánkat!

Mindegy hogy mentesz, ments úgy, ahogy neked jó, egy a lényeg, mindig találd meg a szükséges adatot, amikor arra szükség van, és a lehető leggyorsabban tudd visszaállítani. Ne ezt kérdezd, hogy mennyibe kerül a biztonsági mentés kialakítása, azt kérdezd: Mennyibe kerül, ha nem alakítod ki!

BÚÉK 2009

Kívánunk mindenkinek

  • szerverfagyás mentes
  • alacsony bounce rate-es
  • slow query mentes
  • sok látogatós
  • hackmentes
  • sikerekben gazdag

újévet!

A lottó ötöst meg magunknak!

Boldog Új Évet Kívánunk!

CMS - Tartalom rendező

Hamár a CMS-t emlegettem, nézzük meg, hogyan lehetne egyszerűen beállítani például a főoldalon megjelenő elemek (bejegyzések, cikkek, stb., nem layout) sorrendjét. Legyen ez egy híroldal, ahol nem mindig az írások létrejöttének időrendi sorrendjében kell megjelenni a tartalomnak. Ráadásul több hasábunk van, több tartalom csoportból kell választanunk.

Legyen tehát:

  1. cikkek: szerkesztett szöveg
  2. galéria: mezei galéria, képekkel
  3. eseménynaptár: eseménynaptár

Read more »

CMS rendszer - 200 millió - Kell?

Piacra bocsátom hát az akár állami szerveket is kiszolgálni képes portálomat, tartalomkezelőmet nem kevesebb, mint 200 milló forintért. Állami szerveket csak 100 milló felárért képes mégiscsak, mert iszonyat indokoltan meg tudom indokolni, hogymárpedig erre szükség van. Az ár nem taralmazza a kiszolgáló szoftverek kifejlesztését (apache, php, mysql, linux ), továbbá a futtató hardverkörnyezet fejlesztését sem. Plusz milliárdokért lehetőség van Micro$oft operációs rendszerrel reszelt portálrendszer megvásárlására is, ez esetben az éves üzemeltés költségek várhatóan duplájára rugnak majd.

Read more »

Adatvalidálás

errorAz adatvalidálást az Úr találta ki azzal, hogy megadta nekünk a juzert, aki vagy nem akarja, vagy alapból nem tudja mit kell kitölteni a formon, vagy milyen formátumú adatot kell beírni. Bemutatunk ehhez egy könnyen kezelhető validátor classt, és egy eljárást, hogy is használjuk.

Példánkban kérjünk be:

  • e-mail címet: szükséges ($email)
  • webcímet: opcionális ($web)
  • születési dátum: opcionális ($bday) //2000-03-03
  • a user nevét: szükséges ($name)

A változókba bekerültek az értékek, döntsük el, hogy helyesek-e, vagy újra be kell kérni.
Read more »

Keresés html-t tartalmazó mezőben - mysql

Nézzük meg, hogy hogyan lehet keresni egy olyan mezőben, amiben html-t tárolunk - például egy TinyMCE által szerkeztett tartalamat -, és szeretnénk keresni az “árvíztűrő tükörfúrógép”-re, de azt a szerkesztő így írta le: “árvíztűrő <b>tükörfúrógép</b>”. A válasz egyszerű: sehogy. Értelmesen, erőforrást kímélve sehogy. A mysql regexp eleve buta, soronként nézni a táblát megintcsak rossz. A megfejtés egy plusz mező segítségül hívása, ami tartalmazza a html szöveg tag-ek és írásjelek nélküli verzióját. Ismét nem spanyol viasz, de a kezdő cms fejlesztőknek jól jöhet a tipp. Lássuk hogy!

Read more »

CSS tömörítés

Mi másra lehetne alkalmas egy ilyen verőfényes vasárnap délután, mint a CSS-ek betömörítésére. Ebből az alkalomból összedrótoztam egy kis PHP scriptet, amit ideális esetben mindig akkor fogunk lefuttatni, amikor a dev környezetből kipakoljuk a művet élesbe.

<?php

$tplDir = '/var/www/site/';

// definiáljuk a css-eket
$fileArr = array(
	'scripts/validation/validation.css',
	'scripts/scriptaculous/autocomplete.css',
	'templates/common.css',
	'templates/content/module.css',
	'templates/pages/module.css',
);

foreach($fileArr AS $file) {

	// ez lesz az új fájlok kiterjesztése
	$compressedFile = str_replace('.css', '.compressed.css', $file);

	$bc = $env->getFileContent($tplDir.$file); // kiszedjük a $bc változóba a css-ek tartalmát (fopen, curl, akármi...)

	if($bc) {
		$bc = preg_replace('!/\\*[^*]*\\*+([^/][^*]*\\*+)*/!', '', $bc);
		$bc = preg_replace('![\\n\\r\\t]!', "", $bc);
		$bc = preg_replace('! *([\\{\\};,:]) *!', "$1", $bc);
		$bc = preg_replace('!\\}!', "}\\n", $bc);

		// sortörések + import css-ek fájlneveinek cserélése
		$bc = str_replace(array("\\r\\n", "\\r", "\\n", ".css"), array('', '', '', '.compressed.css'), $bc);

		touch($tplDir.$compressedFile);
		$f = fopen($tplDir.$compressedFile, "w");
		fwrite($f, $bc);
		fclose($f);
	}

}

?>

Beolvassa egyenként a fájlok tartalmát, szépen kiszedi a felesleges szóközöket, sortöréseket, meg minden egyebet, majd az így létrejött új fájlok kapnak egy .compressed.css kiterjesztést - ezekre hivatkozunk az éles site HTML kódjában, az eredetiek pedig megmaradnak a fejlesztéshez.

Házi feladat: ugyanezt JavaScriptre.

Ékezetes rendezés MySQL-ben

Hosszú idő óta tologatjuk a probléma megoldását, rendezzünk a magyar szabályok szerint mysql-ben: ismerje az ékezetes karaktereket, tudja a kétbetűsöket is: ly, ty, ny…, és ne legyen probléma a kis és nagybetű.

Legyen rá egy tárolt függvény: bármikor használható.

Ez lett a megfejtés(figyeljünk a charset-re):

CREATE DEFINER=`root`@`localhost` FUNCTION `orderer`(s varCHAR(255)) RETURNS varchar(255) CHARSET utf8
RETURN upper(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(
replace(replace(s,'á','azz')
,'í','izz'),'cs','czz'),'ly','lzz'),'é','ezz')
,'ó','oxx')
,'ö','oyy')
,'ő','ozz')
,'ty','tzz')
,'gy','gzz')
,'ú','uxx')
,'ü','uyy')
,'ű','uzz')
,'ny','nzz')
,'zs','zzz'))

Használat:

select * from tabla order by orderer(mezo) asc

Úgy tűnik működik. De talán már tudja a mysql is. Majd utánanézünk. :)

Szerkesztett tartalom darabolása

Aki fejlesztett már tartalomkezelőt, talán belefutott abba a problémába, hogy hogyan lehetne megoldani a tartalomhoz tartozó bevezető szöveg és a több oldal tárolását. A következőben erre próbálunk ötletet adni.

A megoldáshoz egyetlen mezőt használunk, ez fogja tartalmazni a teljes dokumentumot: bevezetőt és a többi oldalt. Annyi a dolgunk, hogy szerkesztéskor jelölni kell - hogy tudjuk mi is és az alkalmazás is-, hogy melyik szakasz hol kezdődik és meddig tart. A következő képpen alkalmazzuk: Read more »

Következő oldal »