"SET NAMES UTF8") ); $id_kategoria_start_db = getStartIDCategory($langDB, $db, $appconf['id_portal']); $kategoriaPoczatkowa = $id_kategoria_start_db[0]['id_kategorii'];// tutaj musi być id root kategorii dla danego portalu -czyli parametr lewa =1 $kategoriaInPoczatkowa = $id_kategoria_start_db[1]['id_kategorii'];// tutaj musi byc id kategorii która ma być otwarta i porubiona, czli zwykle pierwsza po id root , czyli parametr lewa = 2 //print $kategoriaPoczatkowa.' '.$kategoriaInPoczatkowa; //Wyciaga wszystkie kategorie z bazy i tworzy zpaytanie sql wstawiajace w wersji en /* $dane_z_bazy = $db->prepare("SELECT * FROM kategorie where jezyk = 'PL' order by id"); $dane_z_bazy->execute(); $dane_z_bazy = $dane_z_bazy->fetchAll(PDO::FETCH_ASSOC); foreach($dane_z_bazy as $id => $ksql) { //$sql = "INSERT INTO 'kategorie' (kategoria_nazwa, kategoria_nazwa_seo, kategoria_status, lewa, prawa, glebokosc, jezyk) VALUES ('".$ksql['kategoria_nazwa']."[en]','".$ksql['kategoria_nazwa_seo']."[en]','".$ksql['kategoria_status']."','".$ksql['lewa']."','".$ksql['prawa']."','".$ksql['glebokosc']."','EN');"; //print $sql."
"; print $ksql['kategoria_nazwa']."
"; }; */ $czyPrzeladowacDrzewo = 0; $categoryHaveChildren = false; $koniecPetli = false; // Jeżeli kategoria ma dzieci to pętla wykonyana jest jeden raz. // Jeżeli kategoria nie ma dzieci to pętla jest wykonywana dwa razy, pierwszy po to aby sprawdzić czy kategoria ma dzici // drugi raz aby ustawić kategorię dla której jest kliknięte rodzica do { unset($categories3); if (!$categoryHaveChildren && $czyPrzeladowacDrzewo==1) { // Jeżeli funkcja nie ma dzieci to pętla wykonywana jest jeszcze raz ale z ustaiwonymi parapetrami // Kategoria startowa dla której wyciągane jest drzewo kategorii jest rodzicem kliknietej kategorii która nie ma dzieci // print "dwa
"; $kategoriaStart = $idRodzica; $czyPrzeladowacDrzewo=0; //$categoryHaveChildren = true; $koniecPetli = true; }; if ($czyPrzeladowacDrzewo==1) $czyPrzeladowacDrzewo=0; // Zaczynamy od najwyższego poziomu drzewa kategorii $aktalnaGlebokosc = 1; // Jeżeli nie jest wybrana (kliknieta) kategoria to pobieramy drzewo kategorii dla kategorii o id=1 czyli root if (!$_GET['kategoria']) $kategoriaStart = $kategoriaPoczatkowa; else $kategoriaStart = $_GET['kategoria']; // Ustawiona jest pierwsza kategoria, która ma być otwarta if (!$_GET['kategoria']) $in=$kategoriaInPoczatkowa; // Jeżeli jest kliknięta kategoria to ta kategoria staje się aktywną i tą która ma być otwarta jeżeli jest blokiem z podkategoriami if($_GET['kategoria']) $in=$_GET['kategoria']; // Jeżeli wchodzimy na portal bez klikania w kategorię to ustawia pogrubienie na otwartym bloku if(!$_GET['kategoria']) $_GET['kategoria'] = $in; // Jeżeli była wykonana petla drugi raz tzn. że klkinieta kategoria nie ma podkategorii to ustawia // kategorie nadrzedną jako startową aby pokazać w meny kategorię nadrzędną do klikniętej w raz z // kategoriami na tym samym pozimie co kliknieta if ($koniecPetli) { $kategoriaStart = $idRodzica; $in=$idRodzica; }; // Pobieranie danej kategegorii wraz z jej podkategoriami na podstawie którego jest budowane lewe menu $categories3 = getTreeCategories($kategoriaStart,$langDB, $db, $appconf['id_portal']); // Pobieranie danych dla aktywnej (klikniętej) kategorii $selectedCategory = getSelectedCategory($langDB, $db, $appconf['id_portal']); // Sprawdza dla kliknietej kategorii idRodzica oraz czy ma dzieci oraz głębokość (kliknietej kategorii) $family = checkCategoryFamily($categories3, $in); // Aktualna glebokosc kliknietej kategorii $aktalnaGlebokosc = $family['depth']; // Id rodzica kliknietej kategorii //$idRodzica = $family['idParent']; $daneKategoriiRodzica = getIdParent($categories3, $kategoriaPoczatkowa, $_GET['kategoria'], $langDB, $db, $appconf['id_portal']); $idRodzica = $daneKategoriiRodzica['id_kategorii']; // Czy kliknięta kategoria ma dzieci $categoryHaveChildren = $family['haveChildren']; //if ($categoryHaveChildren) print "Ma dzieci
"; else print "Nie ma dzieci
"; // Jeżeli katrgoria ma dzieci to po wykoniu funkcji wychodzi z pętli if ($categoryHaveChildren) { $czyPrzeladowacDrzewo=0; //print "raz"; } elseif (!$koniecPetli) $czyPrzeladowacDrzewo=1; } while ($czyPrzeladowacDrzewo > 0); // ************************** Funkcje [POCZATEK] *********************************// function getTreeCategories($kategoriaStart, $langDB, $db, $id_portal) { //pobieranie danej kategegorii wraz z jej podkategoriami na podstawie którego jest budowane lewe menu $selectedCategory = $db->prepare('SELECT * FROM kategorie WHERE id_kategorii = '.$kategoriaStart." and jezyk='".$langDB."' and id_portal=".$id_portal); $selectedCategory ->execute(); $selectedCategory = $selectedCategory->fetch(PDO::FETCH_ASSOC); if(($selectedCategory['prawa'] - $selectedCategory['lewa']) !== 1) { $categories3 = $db->prepare('SELECT * FROM kategorie WHERE lewa >= '.$selectedCategory['lewa'].' AND prawa <= '.$selectedCategory['prawa']." and jezyk='".$langDB."' and id_portal=".$id_portal." ORDER BY lewa"); $categories3->execute(); $categories3 = $categories3->fetchAll(PDO::FETCH_ASSOC); if (!$_GET['kategoria']) unset($categories3[0]); } else { $categories3[] = $selectedCategory; } return $categories3; }; function getSelectedCategory($langDB, $db, $id_portal){ // Pobieranie danych dla aktywnej (klikniętej) kategorii $selectedCategory = $db->prepare('SELECT * FROM kategorie WHERE id_kategorii = '.$_GET['kategoria']." and jezyk='".$langDB."' and id_portal=".$id_portal); $selectedCategory->execute(); $selectedCategory = $selectedCategory->fetch(PDO::FETCH_ASSOC); //print "Wybrana kategoria:".$selectedCategory['kategoria_nazwa']; return $selectedCategory; }; function checkCategoryFamily($categories3, $in) { // Ustala id kategorii rodzica dla wybranej kategorii aby rozwinąć blok, w którym jest kliknięta podkategoria // Ustala także czy wybrana kategoria ma dzieci $categoryHaveChildren = false; foreach($categories3 as $idKateg => $daneKategorii) { // Sprawdza czy następna na liście kategorii kategoria ma większą głębokość, jeżeli tak to oznacza, że poprzednia kategoria czyli // aktualnie wybrana ma dzieci. if ($nastepnaKategoria && ($daneKategorii['glebokosc'] > $aktualnaGlebokosc)) $categoryHaveChildren = true; $nastepnaKategoria = false; // $idRodzicaHelp[$daneKategorii['glebokosc']] = $daneKategorii['id_kategorii']; if ($daneKategorii['id_kategorii'] == $in) { // $idRodzica = $idRodzicaHelp[($daneKategorii['glebokosc']-1)]; $aktalnaGlebokosc = $daneKategorii['glebokosc']; $nastepnaKategoria = true; // informuje aby sprawdzić następną kategorie na liście po wybranej (klikniętej) }; }; //$family['idParent'] = $idRodzica; $family['haveChildren'] = $categoryHaveChildren; $family['depth'] = $aktalnaGlebokosc; return $family; }; function getIdParent($categories3, $kategoriaStart, $idKategoria, $langDB, $db,$id_portal) { //pobieranie danej kategegorii wraz z jej podkategoriami na podstawie którego jest budowane lewe menu $selectedCategory = $db->prepare('SELECT * FROM kategorie WHERE id_kategorii = '.$kategoriaStart." and jezyk='".$langDB."' and id_portal=".$id_portal); $selectedCategory ->execute(); $selectedCategory = $selectedCategory->fetch(PDO::FETCH_ASSOC); if(($selectedCategory['prawa'] - $selectedCategory['lewa']) !== 1) { $categories3 = $db->prepare("SELECT * FROM kategorie WHERE lewa >= ".$selectedCategory['lewa']." AND prawa <= ".$selectedCategory['prawa']." and jezyk='".$langDB."' and id_portal = ".$id_portal." ORDER BY lewa"); $categories3->execute(); $categories3 = $categories3->fetchAll(PDO::FETCH_ASSOC); if (!$_GET['kategoria']) unset($categories3[0]); } else { $categories3[] = $selectedCategory; } foreach($categories3 as $idKateg => $daneKategorii) { // Sprawdza czy następna na liście kategorii kategoria ma większą głębokość, jeżeli tak to oznacza, że poprzednia kategoria czyli // aktualnie wybrana ma dzieci. if ($nastepnaKategoria && ($daneKategorii['glebokosc'] > $aktualnaGlebokosc)) $categoryHaveChildren = true; $nastepnaKategoria = false; $idRodzicaHelp[$daneKategorii['glebokosc']] = $daneKategorii; if ($daneKategorii['id_kategorii'] == $idKategoria) { //$idRodzica = $idRodzicaHelp[($daneKategorii['glebokosc']-1)]; $idRodzica = $idRodzicaHelp[($daneKategorii['glebokosc']-1)]['id_kategorii']; $daneKatrogiiRodzica = $idRodzicaHelp[($daneKategorii['glebokosc']-1)]; $aktalnaGlebokosc = $daneKategorii['glebokosc']; $nastepnaKategoria = true; // informuje aby sprawdzić następną kategorie na liście po wybranej (klikniętej) }; }; //return $idRodzica; return $daneKatrogiiRodzica; }; function getStartIDCategory($langDB, $db, $id_portal){ // Szuka ID katrgorii root oraz pierwszej po niej, która ma być katywna po wejściu na serwis $selectedCategory = $db->prepare("SELECT id_kategorii FROM kategorie WHERE lewa in (1,2) and jezyk='".$langDB."' and id_portal=".$id_portal." order by lewa asc"); $selectedCategory->execute(); $selectedCategory = $selectedCategory->fetchAll(PDO::FETCH_ASSOC); return $selectedCategory; }; // ************************** Funkcje [KONIEC] *********************************// /*nakładka i modyfikacja appconf w przypadku wersji językowych*/ foreach($appconf as $key=>$val)if(is_array($val)&&$val['pl'])$appconf[$key]=$val[$lang]; if($appconf['show_katalog']){ // Jeżeli portal ma kategorie to jest ładowana tablica z kategoriami include('kategorie_portali/'.$domena.'.inc.php'); $allkategorie['pl']=$kategorie;/*dla hreflang*/ include('kategorie_portali/en/'.$domena.'.inc.php'); $allkategorie['en']=$kategorie;/*dla hreflang*/ include('kategorie_portali/de/'.$domena.'.inc.php'); $allkategorie['de']=$kategorie;/*dla hreflang*/ $kategorie=array(); if($lang=='pl'){include('kategorie_portali/'.$domena.'.inc.php');}else{include('kategorie_portali/'.$lang.'/'.$domena.'.inc.php');}; /** / foreach($kategorie as $kategoria){ foreach($kategoria as $lp=>$array){ echo $array['0']; echo '
'; }; echo '
'; }; exit; /**/ }; /* Lukasz 01.10.2021 - po informacji od google - wyłaczylem wypełnianie automatyczne szukajki if(!$_GET['lista']&&!$_GET['artykul']) { $googleSearch = $appconf['default_search']; $googleNoH1=true; };// domyślnie szukanie w Google if(isset($_GET['fraza'])) { // szukanie wg fraz w Google $googleSearch = $appconf['frazy'][$_GET['fraza']]; $appconf['title'] = ucfirst($googleSearch); if($_SESSION['miejscowosc'])$appconf['title'].=', '.$_SESSION['miejscowosc']; $appconf['title'] .= ' - '.$domena; if($_SESSION['miejscowosc'])$appconf['keywords'].=', '.$_SESSION['miejscowosc']; $googleNoH1=false; $istitle=true; }; if($_GET['katalog']=='g'&&isset($_GET['kategoria'])) { // szukanie wg katalogu w Google // Laczy nazwe katgorii z nazwa kategorii rodzica //$googleSearch = $daneKategoriiRodzica['kategoria_nazwa'].' '.$selectedCategory['kategoria_nazwa']; $googleSearch = $selectedCategory['kategoria_nazwa_seo']; $appconf['title'] = ucfirst($selectedCategory['kategoria_nazwa']).' - '.$domena; $googleNoH1=false; $istitle=true; }; */ if($_POST['q']){ // szukanie przez szukajkę w Google $googleSearch = $_POST['q']; $appconf['title'] = ucfirst($googleSearch); if($_SESSION['miejscowosc'])$appconf['title'].=', '.$_SESSION['miejscowosc']; $appconf['title'] .= ' - '.$domena; if($_SESSION['miejscowosc'])$appconf['keywords'].=', '.$_SESSION['miejscowosc']; $googleNoH1=false; $istitle=true; }; /****************************************SQL*******************************************/ // Podpowiedzi miast if($appconf['show_miasta']){ /*miasta*/ $q_miasta= $db->prepare("SELECT * FROM miasta WHERE jezyk ='".$langDB."'"); $q_miasta ->execute(); $q_miasta = $q_miasta->fetchAll(PDO::FETCH_ASSOC); foreach($q_miasta as $idMiasta => $daneMiasta) { $miasta[]=$daneMiasta['nazwa_miasta']; $miastaid[$daneMiasta['nazwa_miasta']]=$daneMiasta['id_miasta'];/*id przypisane do miasta*/ }; }; // Wyniki wyszukiwania pobrane z bazydla danej kategorii w danym języku if($googleSearch && in_array($lang,$appconf['db_search'])){ $q_linki= $db->prepare("SELECT * FROM searched_links where phrase = '".$googleSearch."' and language = '".$lang."' and title is not null and description is not null order by link_order"); $q_linki ->execute(); $q_linki = $q_linki->fetchAll(PDO::FETCH_ASSOC); foreach($q_linki as $idLinki => $daneLinki) { $db_search[] = $daneLinki; }; }; if($appconf['show_artykuly']){ /*artykuly*/ if($_SERVER['HTTP_HOST']=='127.0.0.1'){$db=mysql_connect($appconf['dbhost'],'root','');}else{$db=mysql_connect('remotedb','neoportal','DwpLCdxW');}; if($db){ if(mysql_select_db('neoportal',$db)){ mysql_query("set names 'utf8'"); if($_GET['lista']){ /*artykuly lista*/ $nastronie = 15; $q = "SELECT count(id_artykul) as ile FROM artykuly_portale WHERE id_portal = '".$appconf['id_portal']."'"; $res = mysql_query($q,$db); $row = mysql_fetch_assoc($res); $wszystkie = $row['ile']; $stron = ceil($wszystkie/$nastronie); $strona = $_GET['lista']-1; $q = "SELECT id_artykul,tytul,zajawka,ikona,data_publikacji FROM artykuly_portale,artykuly WHERE id_portal = '".$appconf['id_portal']."' ". "AND artykuly_portale.id_artykul = artykuly.id ". "ORDER by data_publikacji DESC LIMIT ".$strona*$nastronie.",".$nastronie; $res = mysql_query($q,$db); while ($row = mysql_fetch_assoc($res)){ $date = date('Y_m',strtotime($row['data_publikacji'])); if($row['ikona'])$row['ikona'] = 'img/art_icons/'.$date.'/'.$row['ikona']; $artykuly_lista[]=$row; }; }elseif($_GET['artykul']){ /*artykul*/ $q = "SELECT * FROM artykuly WHERE id = '".$_GET['artykul']."'"; $res = mysql_query($q,$db); $artykul = mysql_fetch_assoc($res); /*typ*/ $q = "SELECT nazwa FROM artykuly_typy WHERE id_typ = '".$artykul['id_typ']."'"; $res = mysql_query($q,$db); $row = mysql_fetch_assoc($res); $artykul['typ_nazwa']=$row['nazwa']; $appconf['title'] = $artykul['tytul'].' - '.$domena; $appconf['description']= trim(strip_tags($artykul['zajawka'])); $appconf['keywords']= $artykul['tagi']; $istitle=true; }elseif($_GET['katalog']){ }else{ /*artykuly zajawki*/ $q = "SELECT id_artykul,tytul,zajawka,ikona,data_publikacji FROM artykuly_portale,artykuly WHERE id_portal = '".$appconf['id_portal']."' ". "AND artykuly_portale.id_artykul = artykuly.id ". "ORDER by data_publikacji DESC LIMIT 4"; $res = mysql_query($q,$db); while ($row = mysql_fetch_assoc($res)){ $date = date('Y_m',strtotime($row['data_publikacji'])); if($row['ikona'])$row['ikona'] = 'img/art_icons/'.$date.'/'.$row['ikona']; $artykuly_front[]=$row; }; }; }; }; mysql_close($db); }; /****************************************SQL*******************************************/ /*ustaw miejscowość do sesji po formularzu*/ if($_POST['ustaw']==$tlumacz[$lang]['Ustaw']&&$_POST['miejscowosc']){ $_SESSION['miejscowosc']=$_POST['miejscowosc']; }; /*ustaw miejscowość do sesji po adresie url*/ if($_GET['miasto']){ $miasto=array_search($_GET['miasto'],$miastaid); if($miasto)$_SESSION['miejscowosc']=$miasto; }; if($_POST['ustaw']==$tlumacz[$lang]['Usuń']){ unset($_SESSION['miejscowosc']); header('Location: http://www.'.$appconf['domena'].'/'); exit; }; /*ustaw-katalog-miejscowosc*/ $mod_rewrite_katalog=$tlumacz[$lang]['katalog-firm']; if(isset($miastaid[$_SESSION['miejscowosc']])){ $mod_rewrite_katalog.='-'.mod_rewrite($_SESSION['miejscowosc']).'-'.$miastaid[$_SESSION['miejscowosc']]; if($_GET['katalog']=='g'&&isset($_GET['kategoria'])){ /*miasto w metatagach*/ $appconf['title'] = ucfirst($selectedCategory['kategoria_nazwa']).', '.$_SESSION['miejscowosc'].' - '.$domena; $appconf['keywords'].=', '.$_SESSION['miejscowosc']; $istitle=true; }; }; /*mod_rewrite_lang*/ if($lang!='pl')$mod_rewrite_lang=$lang.','; if($_SESSION['miejscowosc']&&!$istitle){ $appconf['title'].=' - '.$_SESSION['miejscowosc']; $appconf['keywords'].=', '.$_SESSION['miejscowosc']; }; function mod_rewrite($url){ return ''.strtolower(str_replace(array('ą','ę','ć','ś','ń','ó','ł','ż','ź','ä','ö','ü','ß',' ','/',')','(',',','.',':','?','!','„','”','"','&','-','Ą','Ę','Ć','Ś','Ń','Ó','Ł','Ż','Ź','#39;'), array('a','e','c','s','n','o','l','z','z','a','o','u','b','_','_','','','','','','','','','','','','_','a','e','c','s','n','o','l','z','z',''),$url)); }; function justify($text){ $text=str_replace(' ',' ',$text); //wyczyść /*bękarty i wdowy*/ $text=str_replace(' o ',' o ',$text); $text=str_replace(' i ',' i ',$text); $text=str_replace(' w ',' w ',$text); $text=str_replace(' z ',' z ',$text); $text=str_replace(' a ',' a ',$text); return $text; }; function newsubstr($text,$cut){ $return=strip_tags($text); /*przyciąc do pełnego wyrazu i hellip*/ $return=substr($text,0,$cut); $text=substr($text,$cut); $return.=substr($text,0,strpos($text,' ')).'...'; return $return; }; function totitle($in){ foreach(explode(" ",$in) as $lp=>$x)if($lp>0){$out.=mb_convert_case($x,MB_CASE_LOWER,"UTF-8").' ';}else{$out.=mb_convert_case($x,MB_CASE_TITLE,"UTF-8").' ';}; //$x = explode(" ",$in); //$x[0] = mb_convert_case($x[0],MB_CASE_TITLE,"UTF-8"); //$out = implode(" ",$x); return $out; }; ?>