3600 * $cachetime)) { $ch = curl_init($xml); $chf = fopen($cachefile, "w"); curl_setopt($ch, CURLOPT_FILE, $chf); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); curl_exec($ch); curl_close($ch); fclose($chf); } $deXml = simplexml_load_file($cachefile, 'SimpleXMLElement', LIBXML_NOCDATA); $deJson = json_encode($deXml); $xml_array = json_decode($deJson, TRUE); if (! empty($main_heading)) { $returned = $xml_array[$main_heading]; return $returned; } else { return $xml_array; } } function get_rss_feed($feedurl, $numitems, $encoding, $timeformat, $cachepath, $cachetime) { if (empty($numitems)) $numitems = 10; $feedarray = array(); $cachefile = $cachepath."/".md5($feedurl); // letoltjuk a feed-et, hogyha a cachefile nem letezik, vagy tul regi if (!file_exists($cachefile) || ((time() - filemtime($cachefile)) > 3600 * $cachetime)) { $ch = curl_init($feedurl); $chf = fopen($cachefile, "w"); curl_setopt($ch, CURLOPT_FILE, $chf); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); curl_exec($ch); curl_close($ch); fclose($chf); } include("rss.parser.php"); $rss_parser = new myRSSParser($cachefile); $feeddata = $rss_parser->getRawOutput(); extract($feeddata["RSS"]["CHANNEL"][0], EXTR_PREFIX_ALL, "rss"); $enc = mb_detect_encoding($rss_TITLE); $feedarray["rss_title"] = iconv($enc, $encoding, $rss_TITLE); $feedarray["rss_description"] = iconv($enc, $encoding, $rss_DESCRIPTION); $feedarray["rss_link"] = $rss_LINK; if (isset($rss_IMAGE[0]) && $rss_IMAGE[0]) { extract($rss_IMAGE[0], EXTR_PREFIX_ALL, "img"); $feedarray["img_title"] = iconv($enc, $encoding, $img_TITLE); $feedarray["img_link"] = $img_LINK; $feedarray["img_url"] = $img_URL; } $feeditems = array(); $count = 0; foreach ($rss_ITEM as $itemdata) { $feeditems[] = array( "item_link" => $itemdata["LINK"], "item_title" => iconv($enc, $encoding, $itemdata["TITLE"]), "item_desc" => iconv($enc, $encoding, $itemdata["DESCRIPTION"]), "item_desc_plain" => iconv($enc, $encoding, strip_tags($itemdata["DESCRIPTION"])), "item_body" => iconv($enc, $encoding, $itemdata["FULLTEXT"]), "item_date" => date($timeformat, strtotime($itemdata["PUBDATE"])), "item_gallery" => iconv($enc, $encoding, $itemdata["GALLERY"]), ); if (++$count >= $numitems) break; } $feedarray["items"] = $feeditems; return $feedarray; } //**************************************************************************** // array_put_to_position - tomb elemet az adott helyre rakja be a tombben //**************************************************************************** function array_put_to_position(&$array, $object, $position, $name = null) { $count = 0; $return = array(); foreach ($array as $k => $v) { if ($count == $position) { if (!$name) $name = $count; $return[$name] = $object; $inserted = true; } $return[$k] = $v; $count++; } if (!$name) $name = $count; if (!$inserted) $return[$name]; $array = $return; return $array; } //**************************************************************************** // array_value_recursive - rekurziv array_value fuggveny - mert szukseg van ra //**************************************************************************** //**************************************************************************** // generateIDmap - a menupontok strukturaja csak ID-k szerint // parameterek: // - msid: microsite egyedi azonositoja // - listparent: a szulo egyedi azonositoja // - indent: "behuzas" / szint // - indentsize: "behuzas" merteke // - indentchar: "behuzas" jelolo karakter // - maxdepth: maximum melyseg, ameddig a kategoriafaba lemegy // - type: adatbazis tabla, amivel dolgoznia kell //**************************************************************************** function generateIDmap($msid, $listparent, $maxdepth, $type) { global $dbname; $maxdepth--; $sql = "SELECT ".$type."_id FROM ".$type." WHERE microsite_id = '".$msid."' AND ".$type."_parentid = '".$listparent."' AND ".$type."_status = 1 ORDER BY ".$type."_priority "; $res = mysql_query($sql); $list = array(); while ($data = mysql_fetch_assoc($res)) { array_push($list, $data); if ($maxdepth > 0) { $list = array_merge($list, generateIDmap($msid, $data[$type."_id"], $maxdepth, $type)); } } return $list; } //**************************************************************************** // checkperms - admin felhasznalo jogosultsagainak ellenorzese // parameterek: // - stack: parameterlista tomb // - needle: a keresett jogosultsag //**************************************************************************** function checkperms($stack, $needle) { if (array_search($needle, $stack) !== false) { return true; } else { return false; } } //**************************************************************************** // getmenudata - menu osszes adata // parameterek: // - id: a menupont egyedi azonositoja //**************************************************************************** function getmenudata($id) { global $dbname; if (!empty($id)) { $sql = "SELECT * FROM menu WHERE menu_id = '".$id."'"; $res = mysql_query($sql); $row = mysql_fetch_array($res); return $row; } return false; } //**************************************************************************** // getgallerydata - galeria osszes adata // parameterek: // - id: a galeria kategoria egyedi azonositoja //**************************************************************************** function getgallerydata($id) { global $dbname; if (!empty($id)) { $sql = "SELECT * FROM gallery WHERE gallery_id = '".$id."'"; $res = mysql_query($sql); $row = mysql_fetch_array($res); return $row; } return false; } //**************************************************************************** // navigation - "kenyermorzsa"... // parameterek: // - id: a menupont egyedi azonositoja // - siteid: aloldal egyedi azonositoja //**************************************************************************** function navigation($id, $siteid, $type = "") { global $dbname; $tabla = "menu"; if ($type == "gallery") $tabla = "gallery"; $i = 0; $path = array(); while ($id != 0) { $sql = "SELECT * FROM ".$tabla." WHERE ".$tabla."_id = '$id' AND microsite_id = '$siteid'" ; $res = mysql_query($sql); $row = mysql_fetch_array($res); $sql_child = "SELECT * FROM ".$tabla." WHERE ".$tabla."_parentid = '$id' AND microsite_id = '$siteid'"; $res_child = mysql_query($sql_child); $num_child = mysql_num_rows($res_child); $path[$i]["id"] = $row[$tabla."_id"]; $path[$i]["name"] = $row[$tabla."_name"]; if ($type == "menu") $path[$i]["seoname"] = $row[$tabla."_seoname"]; else $path[$i]["seoname"] = "galeria/".$row[$tabla."_id"]."/".$row[$tabla."_seoname"]; $path[$i]["url"] = $row[$tabla."_url"]; $path[$i]["child"] = $num_child; $i++; $id = $row[$tabla."_parentid"]; } return array_reverse($path); } //**************************************************************************** // deletefiles - feltoltott dokumentum teljes konyvtarstrukturajanak torlese // parameterek: // - doc_id: dokumentum egyedi azonositoja //**************************************************************************** function deletefiles($doc_id) { global $path, $doc_path; $finaldir = $doc_path."/".$doc_id; if (is_dir($finaldir)) { $dir = opendir($finaldir); $deleted_files = 0; while (($file = readdir($dir)) !== false) { if ($file <> "." && $file <> "..") { unlink($finaldir."/".$file); $deleted_files++; } } closedir($dir); rmdir($finaldir); return $deleted_files; } return false; } //**************************************************************************** // listmenus - a menupontok strukturaja parameterekkel /rekurziv fv./ // parameterek: // - msid: microsite egyedi azonositoja // - listparent: a szulo egyedi azonositoja // - indent: "behuzas" / szint // - indentsize: "behuzas" merteke // - indentchar: "behuzas" jelolo karakter // - maxdepth: maximum melyseg, ameddig a kategoriafaba lemegy //**************************************************************************** function listmenus($msid, $listparent, $indent, $indentsize, $indentchar, $maxdepth) { global $dbname; $maxdepth--; $sql = "SELECT * FROM menu WHERE microsite_id = '".$msid."' AND menu_parentid = '".$listparent."' AND menu_status = 1 ORDER BY menu_priority "; $res = mysql_query($sql); $list = array(); while ($data = mysql_fetch_array($res)) { $data["indent"] = (($indent) * $indentsize) + 1; $indenttxt = $indentchar; $data["indenttxt"] = str_pad($indenttxt, $data["indent"], $indentchar); array_push($list, $data); if ($maxdepth > 0) { $list = array_merge($list, listmenus($msid, $data["menu_id"], $indent + 1, $indentsize, $indentchar, $maxdepth)); } } return $list; } //**************************************************************************** // generatemap2 - a menupontok strukturaja parameterekkel // parameterek: // - msid: microsite egyedi azonositoja // - listparent: a szulo egyedi azonositoja // - indent: "behuzas" / szint // - indentsize: "behuzas" merteke // - indentchar: "behuzas" jelolo karakter // - maxdepth: maximum melyseg, ameddig a kategoriafaba lemegy //**************************************************************************** function generatemap2($msid, $listparent, $indent, $indentsize, $indentchar, $maxdepth) { global $dbname; $maxdepth--; $sql = "SELECT * FROM menu WHERE microsite_id = '".$msid."' AND menu_parentid = '".$listparent."' AND menu_status = 1 ORDER BY menu_priority "; $res = mysql_query($sql); $list = array(); while ($data = mysql_fetch_array($res)) { $data["indent"] = (($indent) * $indentsize) + 1; $indenttxt = $indentchar; $data["indenttxt"] = str_pad($indenttxt, $data["indent"], $indentchar); array_push($list, $data); if ($maxdepth > 0) { $list = array_merge($list, generatemap2($msid, $data["menu_id"], $indent + 1, $indentsize, $indentchar, $maxdepth)); } } return $list; } function generatemap_htaccess($msid, $listparent, $indent, $indentsize, $indentchar, $maxdepth) { global $dbname; $maxdepth--; $sql = "SELECT * FROM menu WHERE microsite_id = '".$msid."' AND menu_parentid = '".$listparent."' AND (menu_status = 1 OR menu_smap = 1) ORDER BY menu_priority "; $res = mysql_query($sql); $list = array(); while ($data = mysql_fetch_array($res)) { $data["indent"] = (($indent) * $indentsize) + 1; $indenttxt = $indentchar; $data["indenttxt"] = str_pad($indenttxt, $data["indent"], $indentchar); array_push($list, $data); if ($maxdepth > 0) { $list = array_merge($list, generatemap_htaccess($msid, $data["menu_id"], $indent + 1, $indentsize, $indentchar, $maxdepth)); } } return $list; } //**************************************************************************** // calcimageprops - kep atmeretezesehez hasznalt aranymegtarto kalkulacio... // parameterek: // - width: az eredeti kep szelessege // - height: az eredeti kep magassaga // - ujwidth: az atmeretezes szelessege // - ujheight: az atmeretezes magassaga // - paramset: van-e utanallitas valamelyik iranyban, vagy sem... (true/false) //**************************************************************************** function calcimageprops($width, $height, $ujwidth, $ujheight, $paramset = true) { if ($width >= $height) { // fekvo kep if ($width >= $ujwidth) { $ujx = $ujwidth; $ujxsz = $ujx / $width; $ujy = round($height * $ujxsz); if ($paramset) { if ($ujy > $ujheight) { // x meretezes ellenere meg tul magas a kep... $ujy = $ujheight; $ujysz = $ujy / $height; $ujx = round($ujx * $ujysz); } } } elseif ($height >= $ujheight) { $ujx = $width; $ujxsz = $ujx / $width; $ujy = round($height * $ujxsz); if ($paramset) { if ($ujy > $ujheight) { // x meretezes ellenere meg tul magas a kep... $ujy = $ujheight; $ujysz = $ujy / $height; $ujx = round($ujx * $ujysz); } } } else { $ujx = $width; $ujy = $height; } } else { // allo kep if ($height >= $ujheight) { $ujy = $ujheight; $ujysz = $ujy / $height; $ujx = round($width * $ujysz); if ($paramset) { if ($ujx > $ujwidth) { // y meretezes ellenere meg tul szeles a kep... $ujx = $ujwidth; $ujxsz = $ujx / $width; $ujy = round($ujy * $ujxsz); } } } elseif ($width >= $ujwidth) { $ujy = $height; $ujysz = $ujy / $height; $ujx = round($width * $ujysz); if ($paramset) { if ($ujx > $ujwidth) { // x meretezes ellenere meg tul magas a kep... $ujx = $ujwidth; $ujxsz = $ujx / $width; $ujy = round($ujy * $ujxsz); } } } else { $ujx = $width; $ujy = $height; } } $vissza["ujx"] = $ujx; $vissza["ujy"] = $ujy; return $vissza; } //**************************************************************************** // generateimages - kep atmeretezese adott meretre // parameterek: // - srcname: az atmeretezni kivant kep neve -teljes utvonallal // - imgname: az atmeretezett kep neve - teljes utvonallal // - tnxsize: szelesseg, amire at kell meretezni // - tnysize: magassag, amire at kell meretezni // - paramset: 1 - csak az x, 2 - csak az y magassag figyelembevetele... // - rec: aranyparok figyelmen kivul hagyasa, fix meretezes (true / false) //**************************************************************************** function generateimages($srcname, $imgname, $tnxsize, $tnysize, $paramset = false, $rec = false) { require("thumbnail.php"); $debug = fopen("/home/mixersuli/public_html/new/admin/uploads/debug.txt", "a"); fwrite($debug, "\n".date("Y-m-d H:i:s", time())." - ".$srcname); fwrite($debug, "\n".date("Y-m-d H:i:s", time())." - ".$imgname); fwrite($debug, "\n".date("Y-m-d H:i:s", time())." - ".$tnxsize); fwrite($debug, "\n".date("Y-m-d H:i:s", time())." - ".$tnysize); fwrite($debug, "\n".date("Y-m-d H:i:s", time())." - ".$paramset); fwrite($debug, "\n".date("Y-m-d H:i:s", time())." - ".$rec); $thumb = new thumbnail($srcname); if (!$paramset) { if ($rec) { $thumb->size_both_wh($tnxsize, $tnysize); } else { $thumb->size_width($tnxsize); $thumb->size_height($tnysize); } } elseif ($paramset == 1) { $thumb->size_width($tnxsize); } elseif ($paramset == 2) { $thumb->size_height($tnysize); } $thumb->jpeg_quality(100); $thumb->resize(); $thumb->save($imgname); $thumb->imagedestroy(); unset($thumb); } //**************************************************************************** // unek - string "ekezetlenitese" es "szokozetlenitese" :D // parameterek: // - str: az atalakitani kivant string //**************************************************************************** function unek($str) { $ekezetek = array("á", "é", "í", "ó", "ö", "ő", "ú", "ü", "ű", "Á", "É", "Í", "Ó", "Ö", "Ő", "Ú", "Ü", "Ű", "?", " "); $csere = array("a", "e", "i", "o", "o", "o", "u", "u", "u", "a", "e", "i", "o", "o", "o", "u", "u", "u", "_", "_"); $l = strlen($str); for ($i = 0; $i < $l; $i++) { $sor = array_search($str[$i], $ekezetek); if ($sor !== FALSE) { $str = str_replace($str[$i], $csere[$sor], $str); } } return strtolower(str_replace(" ", "_", $str)); } /* function unek2($str) { $ekezetek = array("á", "ä", "é", "í", "ó", "ö", "ő", "ú", "ü", "ű", "Á", "Ä", "É", "Í", "Ó", "Ö", "Ő", "Ú", "Ü", "Ű", "?", " ", "/", "&", "#", "'", "!", ",", ".", "*", "(", ")", "[", "]", "&"); $csere = array("a", "a", "e", "i", "o", "o", "o", "u", "u", "u", "a", "a", "e", "i", "o", "o", "o", "u", "u", "u", "", "-", "", "", "", "", "", "", "", "", "", "", "", "", ""); $l = strlen($str); for ($i = 0; $i < $l; $i++) { $sor = array_search($str[$i], $ekezetek); if ($sor !== FALSE) { $str = str_replace($str[$i], $csere[$sor], $str); } } $visszatxt = strtolower(str_replace(" ", "-", $str)); $rettxt = str_replace("---", "-", $visszatxt); return $rettxt; } */ function unek2($str) { $trans = array( "á" => "a", "é" => "e", "í" => "i", "ó" => "o", "ö" => "o", "ő" => "o", "ú" => "u", "ü" => "u", "ű" => "u", "Á" => "a", "É" => "e", "Í" => "i", "Ó" => "o", "Ö" => "o", "Ő" => "o", "Ú" => "u", "Ü" => "u", "Ű" => "u", "?" => "", " " => "-", "/" => "", "&" => "", "#" => "", "\\" => "", "!" => "", "," => "", "." => "", "'" => "", ); //$str = mb_strtolower($str); //echo $str; return strtolower(strtr($str, $trans)); } //**************************************************************************** // breadcrumbID - id szerinti tombot ad vissz a menupont szuloirol... // parameterek: // - group: a menupont azonositoja //**************************************************************************** function breadcrumbID($group, $microsite_id) { global $dbname; $i = 0; $path = array(); while ($group != 0) { $query = "SELECT * FROM menu WHERE menu_id = '$group' AND microsite_id = '$microsite_id'" ; $result = mysql_query($query); $g = mysql_fetch_array($result); $path[$i] = $g["menu_id"]; $i++; $group = $g["menu_parentid"]; } if (is_array($path)) { return array_reverse($path); } else { return $path; } } //**************************************************************************** // setpriority - kozvetlen rendezes szam megadasaval, nem pedig a nyilakkal... // parameterek: // - table_name: az adatbazis tabla neve // - table_key: az egyedi kulcs neve (pl menu_id, freetext_id) // - table_key_value: az egyedi kulcs erteke // - table_parent_key: az adott elemet tartalmazo csoport neve // - table_parent_key_value: a csoport azonositoja // - table_priority_key: a prioritas adatbazismezo neve // - sort1: hanyadiknak akarjuk beszurni // - sort2: hanyadik volt a sorban //**************************************************************************** function setpriority($table_name, $table_key, $table_key_value, $table_parent_key, $table_parent_key_value, $table_parent_key2, $table_parent_key_value2, $table_priority_key, $sort1, $sort2) { global $dbname; /* echo "
table_name - ".$table_name; echo "
table_key - ".$table_key; echo "
table_key_value - ".$table_key_value; echo "
table_parent_key - ".$table_parent_key; echo "
table_parent_key_value - ".$table_parent_key_value; echo "
table_parent_key2 - ".$table_parent_key2; echo "
table_parent_key_value2 - ".$table_parent_key_value2; echo "
table_priority_key - ".$table_priority_key; echo "
sort1 - ".$sort1; echo "
sort2 - ".$sort2; */ $q1 = "SELECT * FROM ".$table_name." WHERE ".$table_key." = '".$table_key_value."'"; //echo "
".$q1; $r1 = mysql_query($q1); $d1 = mysql_fetch_array($r1); /* echo "
";
	print_r($d1);
	echo "
"; */ $sqlexp = ""; if (!empty($table_parent_key)) { $sqlexp .= " AND ".$table_parent_key." = ".$table_parent_key_value; } if (!empty($table_parent_key2)) { $sqlexp .= " AND ".$table_parent_key2." = ".$table_parent_key_value2; } // hogyha a kivalasztott elemet elorebb akarjuk helyezni, akkor az osszes elotte levot egy hellyel csusztatni kell hatrebb... //echo "
".$d1[$table_priority_key]." > ".$sort1; if ($d1[$table_priority_key] > $sort1) { $query = "SELECT * FROM ".$table_name." WHERE 1 ".$sqlexp." AND ".$table_priority_key." >= '".$sort1."' AND ".$table_priority_key." < '".$sort2."' ORDER BY ".$table_priority_key." ASC"; //echo "
1 - ".$query; $res = mysql_query($query); $srt = $sort1 + 1; while ($row = mysql_fetch_array($res)) { $q = "UPDATE ".$table_name." SET ".$table_priority_key." = '$srt' WHERE ".$table_key." = '".$row[$table_key]."'"; //echo "
".$q; $r = mysql_query($q); $srt++; } } else { // hogyha a kivalasztott elemet hatrebb akarjuk helyezni, akkor az osszes elotte levot egy hellyel csusztatni kell hatrebb... $query = "SELECT * FROM ".$table_name." WHERE 1 ".$sqlexp." AND ".$table_priority_key." <= '".$sort1."' AND ".$table_priority_key." > '".$sort2."' ORDER BY ".$table_priority_key." DESC"; //echo "
2 - ".$query; $res = mysql_query($query); $srt = $sort1 - 1; //echo "
".$sort1." / ".$srt; while ($row = mysql_fetch_array($res)) { $q = "UPDATE ".$table_name." SET ".$table_priority_key." = '$srt' WHERE ".$table_key." = '".$row[$table_key]."'"; //echo "
".$q; $r = mysql_query($q); $srt--; } } $q2 = "UPDATE ".$table_name." SET ".$table_priority_key." = '".$sort1."' WHERE ".$table_key." = '".$table_key_value."'"; //echo "
".$q2; $r2 = mysql_query($q2); } //**************************************************************************** // getnextpriority - kovetkezo prioritaselem a tablaban // parameterek: // - table_name: az adatbazis tabla neve // - table_priority_key: a prioritas adatbazismezo neve // - table_parent_key: opcionalis, hogyha van szuloje, akkor az adatbazismezo neve // - table_parent_key_value: opcionalis, a szulo azonositoja (ertek) // - table_parent_key2: opcionalis, hogyha van szuloje, akkor az adatbazismezo neve // - table_parent_key_value2: opcionalis, a szulo azonositoja (ertek) //**************************************************************************** function getnextpriority($table_name, $table_priority_key, $table_parent_key = "", $table_parent_key_value = "", $table_parent2_key = "", $table_parent2_key_value = "") { global $dbname; $sqlexp = ""; if (!empty($table_parent_key)) { $sqlexp .= " AND ".$table_parent_key." = '".$table_parent_key_value."'"; } if (!empty($table_parent_key2)) { $sqlexp .= " AND ".$table_parent_key2." = '".$table_parent_key_value2."'"; } $sql = "SELECT ".$table_priority_key." FROM ".$table_name." WHERE 1 ".$sqlexp." ORDER BY ".$table_priority_key." DESC LIMIT 0, 1"; $res = mysql_query($sql) or die("$sql / ".mysql_error()); $row = mysql_fetch_array($res); return ($row[$table_priority_key] + 1); } function create_ms_directories($microsite_id) { global $dbname, $path; $sql = "SELECT * FROM microsite WHERE microsite_id = '".$microsite_id."'"; $res = mysql_query($sql); $row = mysql_fetch_assoc($res); $dirname = unek2($row["microsite_name"]); // fokonyvtar mkdir($path."/sites/".$dirname, 0777); chmod($path."/sites/".$dirname, 0777); // images konyvtar mkdir($path."/sites/".$dirname."/images", 0777); chmod($path."/sites/".$dirname."/images", 0777); // images konyvtar almappai mkdir($path."/sites/".$dirname."/images/collections", 0777); chmod($path."/sites/".$dirname."/images/collections", 0777); mkdir($path."/sites/".$dirname."/images/defbg", 0777); chmod($path."/sites/".$dirname."/images/defbg", 0777); mkdir($path."/sites/".$dirname."/images/menubg", 0777); chmod($path."/sites/".$dirname."/images/menubg", 0777); mkdir($path."/sites/".$dirname."/images/menupic", 0777); chmod($path."/sites/".$dirname."/images/menupic", 0777); } //**************************************************************************** // navigation_str_unek - beszedes "kenyermorzsa"... // parameterek: // - msid: microsite egyedi azonositoja // - id: a menupont egyedi azonositoja //**************************************************************************** function navigation_str_unek($msid, $id, $lng) { global $dbname; $lang = ""; if ($lng != "hu") $lang = "_".$lng; $str = ""; $i = 0; while ($id != 0) { $sql = "SELECT * FROM menu WHERE microsite_id = '$msid' AND menu_id = '$id'" ; $res = mysql_query($sql); $row = mysql_fetch_array($res); $path[$i] = unek2($row["menu_name".$lang]); $i++; $id = $row["menu_parentid"]; } if (is_array($path)) { $path2 = array_reverse($path); return implode("/", $path2); } else { return 0; } } //**************************************************************************** // htaccess_generator() - SEO-hoz htacces file generalasa // parameterek: n.a. //**************************************************************************** function htaccess_generator($msid) { global $dbname; $sql = "SELECT * FROM microsite WHERE microsite_id = '".mysql_real_escape_string($msid)."'"; $res = mysql_query($sql); $row = mysql_fetch_assoc($res); $expfile = ".htaccess"; $fh = fopen("../".$expfile, "w") or die("can't open file"); $htaccess_gen = "order deny,allow allow from all "; if ($row["microsite_seoenabled"] == 1) { $htaccess_gen .= " RewriteEngine on RewriteCond %{HTTP_HOST} ^kaveakademia\.hu$ RewriteRule (.*) http://www.kaveakademia.hu/$1 [R=301,L] # tartalmak... "; $menu_tree = generatemap_htaccess($msid, 0, 1, 1, ".", 99); $ctnum = sizeof($menu_tree); $c = 0; while (isset($menu_tree[$c])) { if (empty($menu_tree[$c]["menu_url"])) { $redirect_url = "index.php?page=content&cid=".$menu_tree[$c]["menu_id"]." [L,QSA]"; } else { $redirect_url = $menu_tree[$c]["menu_url"]." [L,QSA]"; } $htaccess_gen .= " RewriteRule ^".$menu_tree[$c]["menu_seoname"]."$ ".$redirect_url; $c++; } $htaccess_gen .= " # Elore definialt eleresi utak RewriteRule ^kokteladatbazis/([0-9]+)/([a-z0-9-]+) index.php?page=cocktails&action=detail&id=$1 [L,QSA] RewriteRule ^kokteladatbazis$ index.php?page=cocktails [L,QSA] RewriteRule ^szavazas/upload/([0-9]+)/([0-9]+) index.php?page=polls&action=upload&id=$1&cid=$2 [L,QSA] RewriteRule ^szavazas/([0-9]+)/([0-9]+) index.php?page=polls&action=items&id=$1&cid=$2 [L,QSA] RewriteRule ^szavazas/([0-9]+) index.php?page=polls&id=$1 [L,QSA] RewriteRule ^szavazas$ index.php?page=polls RewriteRule ^youtube$ index.php?page=youtube RewriteRule ^esemenynaptar/([0-9]+)/([a-z0-9-]+) index.php?page=events&action=detail&id=$1&nt=2 [L,QSA] RewriteRule ^esemenynaptar/([0-9]+)-oldal$ index.php?page=events&p=$1&flist=1 [L,QSA] RewriteRule ^esemenynaptar$ index.php?page=events [L,QSA] RewriteRule ^tanfolyamok/jelentkezes/([0-9]+)/([a-z0-9-]+) index.php?page=lessons&action=attend&id=$1 [L,QSA] RewriteRule ^tanfolyamok/tematika/([0-9]+)/([a-z0-9-]+) index.php?page=lessons&action=detail&id=$1 [L,QSA] RewriteRule ^koktelbarok/([0-9]+)/([a-z0-9-]+) index.php?page=bars&action=detail&id=$1 [L,QSA] RewriteRule ^koktelbarok$ index.php?page=bars [L,QSA] RewriteRule ^hirek/([0-9]+)/(.*)$ index.php?page=news&id=$1 RewriteRule ^hirek/([0-9]+)-oldal$ index.php?page=news&p=$1 RewriteRule ^hirek$ index.php?page=news RewriteRule ^galeria/([0-9]+)/(.*)$ index.php?page=gallery&id=$1 RewriteRule ^galeria$ index.php?page=gallery # Ha nem megfelelo utat adott meg RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA] "; } fwrite($fh, $htaccess_gen); fclose($fh); } //**************************************************************************** // getsliderelements() - csuszkahoz az elemeket adja vissza // parameterek: // - menuid: az adott menu ID-je // - msid: mikroszajt azonodisoja // - rndmode: random modon adja vissza az elemeket 1 / sorrendben 0 //**************************************************************************** function getsliderelements($menuid, $msid, $rndmode = 0) { global $dbname; $menudata = getmenudata($menuid); $menuparent = $menudata["menu_parentid"]; if (empty($menuparent)) $menuparent = 0; $slider_q = "SELECT * FROM menu_bg WHERE microsite_id = '".mysql_real_escape_string($msid)."' AND menu_id = '".mysql_real_escape_string($menuid)."' ORDER BY menu_bg_prior"; $slider_r = mysql_query($slider_q); $slider = array(); if (mysql_num_rows($slider_r) > 0) { while ($slider_d = mysql_fetch_assoc($slider_r)) { $videoid = str_replace(".jpg", "", $slider_d["menu_bg_pic"]); $slider_d["menu_bg_videoid"] = $videoid; array_push($slider, $slider_d); } } elseif ($menudata != false) { $slider = array_merge($slider, getsliderelements($menuparent, $msid)); } if ($rndmode == 1) { shuffle($slider); } return $slider; } //**************************************************************************** // create_id_dir() - ID alapjan letrehozza a konyvtarat (galeriahoz pl.) // parameterek: // - type: string, ez lesz az "alkonyvtar" // - id: a konyvtar neve //**************************************************************************** function create_id_dir($type, $id) { global $path, $gallery_path; if (!is_dir($path."/images/".$type."/".$id)) { // fokonyvtar mkdir($path."/images/".$type."/".$id, 0777); chmod($path."/images/".$type."/".$id, 0777); // thumbnail mkdir($path."/images/".$type."/".$id."/tn", 0777); chmod($path."/images/".$type."/".$id."/tn", 0777); $retpath = $path."/images/".$type."/".$id; return $retpath; } return 0; } //**************************************************************************** // validEmail() - email cim validalasa // parameterek: // - email: string, az ellenorizendo email //**************************************************************************** function validEmail($email) { $isValid = true; $atIndex = strrpos($email, "@"); if (is_bool($atIndex) && !$atIndex) { $isValid = false; } else { $domain = substr($email, $atIndex+1); $local = substr($email, 0, $atIndex); $localLen = strlen($local); $domainLen = strlen($domain); if ($localLen < 1 || $localLen > 64) { // local part length exceeded $isValid = false; } else if ($domainLen < 1 || $domainLen > 255) { // domain part length exceeded $isValid = false; } else if ($local[0] == '.' || $local[$localLen-1] == '.') { // local part starts or ends with '.' $isValid = false; } else if (preg_match('/\\.\\./', $local)) { // local part has two consecutive dots $isValid = false; } else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain)) { // character not valid in domain part $isValid = false; } else if (preg_match('/\\.\\./', $domain)) { // domain part has two consecutive dots $isValid = false; } else if (!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\","",$local))) { // character not valid in local part unless // local part is quoted if (!preg_match('/^"(\\\\"|[^"])+"$/', str_replace("\\\\","",$local))) { $isValid = false; } } } return $isValid; } //**************************************************************************** // log_user_activity() - admin felhasznalo aktivitasanak loggolasa //**************************************************************************** function log_user_activity($logfile, $datetime, $module, $activity, $id, $comment = "") { global $dbname; $fp = fopen("logs/".$logfile, "a"); fwrite($fp, $datetime.";".$module.";".$activity.";".$id.";".$comment."\n"); fclose($fp); } //**************************************************************************** // utf8DecodeArray() - utf8 kodolasban erkezo multidim.tomb dekodolasa // parameterek: // - array: tomb, lehet tobb dimenzios is. //**************************************************************************** function utf8DecodeArray($array) { $utf8DecodedArray = array(); foreach ($array as $key => $value) { if (is_array($value)) { $utf8DecodedArray[$key] = utf8DecodeArray($value); continue; } $utf8DecodedArray[$key] = iconv("UTF-8", "ISO-8859-2", $value); } return $utf8DecodedArray; } //**************************************************************************** // recursive_array_search() - kereses tobbdim. tombben kulcs alapjan ertekre // parameterek: // - array: tomb, lehet tobbdimenzios is // - key: melyik kulcsot nezze a kereseskor // - value: a keresett ertek //**************************************************************************** function recursive_array_search($array, $key, $value) { $results = array(); if (is_array($array)) { if (isset($array[$key]) && $array[$key] == $value) $results[] = $array; foreach ($array as $subarray) $results = array_merge($results, recursive_array_search($subarray, $key, $value)); } return $results; } //**************************************************************************** // getformatteddate() - az API-bol erkezo datum formazasa // parameterek: // - str: string, az apibol erkezo datum /Date(1288479600000)/ formatumban // - format: milyen formatumban, php date() alapjan //**************************************************************************** function getformatteddate($str, $format) { preg_match('/\d+/', $str, $datum_ts); $datum_ts2 = round($datum_ts[0] / 1000); return date($format, $datum_ts2); } //**************************************************************************** // in_multiarray() - in_array tobbdimenzios tombre // parameterek: // - elem: keresett elem // - array: a tomb, amiben keressuk //**************************************************************************** function in_multiarray($elem, $array) { $top = sizeof($array) - 1; $bottom = 0; while ($bottom <= $top) { if ($array[$bottom] == $elem) return true; else if (is_array($array[$bottom])) if (in_multiarray($elem, ($array[$bottom]))) return true; $bottom++; } return false; } //**************************************************************************** // multi_array_unique() - tobbdimenzios tombbol kiveszi az ismetlodo elemeket // parameterek: // - array: a tobbdimenzios tomb //**************************************************************************** function multi_array_unique($array) { $result = array_map("unserialize", array_unique(array_map("serialize", $array))); foreach ($result as $key => $value) { if (is_array($value)) { $result[$key] = multi_array_unique($value); } } return $result; } function paginatearray($array, $curpage = null, $perpage = null) { $cp = ($curpage == null ? 1 : $curpage); $pp = ($perpage == null ? 20 : $perpage); $start = ceil(($cp - 1) * $pp); return array_slice($array, $start, $pp); } function multidimensional_array_diff($a1, $a2) { $r = array(); foreach ($a2 as $key => $second) { foreach ($a1 as $key => $first) { if (isset($a2[$key])) { foreach ($first as $first_value) { foreach ($second as $second_value) { if ($first_value == $second_value) { $true = true; break; } } if (!isset($true)) { $r[$key][] = $first_value; } unset($true); } } else { $r[$key] = $first; } } } return $r; } //**************************************************************************** // arr_diff() - tobbdimenzios tomb kulonbseget veszi // parameterek: // - a1: tomb1 // - a2: tomb2 //**************************************************************************** function arr_diff($a1, $a2) { $diff = array(); foreach ($a1 as $k => $v) { unset($dv); if (is_int($k)) { // Compare values if (array_search($v, $a2) === false) $dv = $v; else if (is_array($v)) $dv = arr_diff($v, $a2[$k]); if($dv) $diff[] = $dv; } else { // Compare noninteger keys if (!$a2[$k]) $dv = $v; else if (is_array($v)) $dv = arr_diff($v, $a2[$k]); if (isset($dv)) $diff[$k] = $dv; } } return $diff; } //**************************************************************************** // grab_image() - tavoli szerverrol letolti a kepet a megadott helyre // parameterek: // - url: a kep helye // - saveto: a mentes helye //**************************************************************************** function grab_image($url, $saveto){ $ch = curl_init ($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); $raw = curl_exec($ch); curl_close ($ch); if(file_exists($saveto)){ unlink($saveto); } $fp = fopen($saveto, "x"); fwrite($fp, $raw); fclose($fp); } function smiley($dir = "") { $st = array(); if (empty($dir)) { $dir = "images/smiley/"; } $did = opendir($dir); $i = 0; while ($fajl = readdir($did)) { if (($fajl != ".") && ($fajl != "..")) { $ft1 = "["; $ft2 = "]"; $fpos = strpos($fajl, "."); $fname = substr($fajl, 0, $fpos); $st[$i]["kod"] = $ft1.$fname.$ft2; $st[$i]["pic"] = $fajl; $i++; } } return $st; } function replace_smiley($txt, $dir = "") { global $webpath; $mit = array (); $mire = array (); if (empty($dir)) { $dir = "images/smiley/"; } $did = opendir($dir); $i = 0; while ($fajl = readdir($did)) { if (($fajl != ".") && ($fajl != "..")) { $fpos = strpos($fajl, "."); $fname = substr($fajl, 0, $fpos); $mit[$i] = "[".$fname."]"; $mire[$i] = ""; $i++; } } $szoveg3 = preg_replace ($mit, $mire, $txt); $szoveg2 = str_replace("[]', 'border="0">', $szoveg2); return $szoveg; } function getcomponent($id) { if (!empty($id)) { $sql = "SELECT * FROM componentz WHERE id = '".$id."'"; $res = mysql_query($sql); $row = mysql_fetch_assoc($res); return $row; } return false; } function getcocktailcategory($id) { if (!empty($id)) { $sql = "SELECT * FROM cocktailz_cat WHERE id = '".$id."'"; $res = mysql_query($sql); $row = mysql_fetch_assoc($res); return $row; } return false; } function getcomponentstr($str) { if (!empty($str)) { $sql = "SELECT name FROM componentz WHERE id IN(".mysql_real_escape_string($str).") ORDER BY name"; $res = mysql_query($sql); $list = array(); while ($row = mysql_fetch_assoc($res)) { $list[] = $row["name"]; } return implode(", ", $list); } return false; } ?>