function xml_to_array($xml, $cachepath, $cachetime, $main_heading = '') {
$cachefile = $cachepath."/".md5($xml);
// letoltjuk a feed-et, hogyha a cachefile nem letezik, vagy tul regi
if (!file_exists($cachefile) || ((time() - filemtime($cachefile)) > 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 "