/** * gonderilen değer ,eğer kelimede geçiyorsa onu kelime içinden çıkar * * @example $Expression='DOĞA-GÖKÇE-ÇAYKUR-DOĞA-DR.OETKER-MEHMET+EFENDİ'; * $kelime='DOĞA'; * string2unique($Expression, $kelime); * sonuc 'GÖKÇE-ÇAYKUR-DR.OETKER-MEHMET+EFENDİ'; * @param string $Expression * @param string $kelime * sonuna eklenecek olan kelime * @access public * @return array * */ public static function string2unique($Expression, $kelime) { $kelime = \Lib\Strings::cevir_artiya($kelime); $Expression = \Lib\Strings::cevir_artiya($Expression); // tekrar + işareti ver if (!empty($Expression)) { $s = explode('-', $Expression); if (in_array($kelime, $s)) { $deleted = array($kelime); $sonuc = array_diff($s, $deleted); // boşlukları sildir $yeni = array_unique($sonuc); // aynı olanları sil return implode("-", $yeni); } else { return $Expression . '-' . $kelime; } } else { return null; } }
/** * marka linkleri ile ilgili işlemlerin yapılacağı kısım * * @access view/urunler_view erişir * @param string $eklenecek_kelime * @return string */ public static function FilterLink($ozellik, $deger) { $eklenecek_kelime = \Lib\Strings::cevir_artiya($deger); $url = \Lib\Tools::currentPageURL(); $urlPathAdresi = parse_url($url, PHP_URL_PATH); $QueryName = parse_url($url, PHP_URL_QUERY); parse_str($QueryName, $query2arrayCiktisi); $dir = substr(DIR, 0, -1); // bu / işareti sil // query parametresi hiç yoksa if (!empty($QueryName)) { // eğer $_GET['marka'] değer i zaten varsa onu yedekle sonra sil if (array_key_exists($ozellik, $query2arrayCiktisi)) { // echo 'girer'; // eğer get[ozellik] boş değilse if (!empty($query2arrayCiktisi[$ozellik])) { // echo $ozellik . 'yazdı'; unset($query2arrayCiktisi['page']); // paigination değerini sil eğer silinmeseydi mesela // http://smvc.dev/kategoriler/gida_ve_icecek/sicak_icecekler?sort=artanFiyat&page=7&m=JACOPS-MEHMET+EFEND%C4%B0 bu linkde hata verir di çünkü page=7 yoktur 3 ürün var $mdegeri = $query2arrayCiktisi[$ozellik] . '-' . \Lib\Strings::cevir_artiya($eklenecek_kelime); $yeni = \Lib\Arrays::string2unique($query2arrayCiktisi[$ozellik], $eklenecek_kelime); $marka_stack = '&' . $ozellik . '=' . $yeni; unset($query2arrayCiktisi[$ozellik]); // diziden kaldır tekrar oluşan linkleme dongusüne girmesin $linkleme = ''; // m harici kalan query değerlerini de ekler diziye foreach ($query2arrayCiktisi as $key => $value) { $linkleme .= '&' . $key . '=' . $value; } $linkleme = substr($linkleme, 1); return self::LinkTemizle($dir . $urlPathAdresi . '?' . $linkleme . $marka_stack . ''); } else { $mdegeri = $query2arrayCiktisi[$ozellik] . '-' . $eklenecek_kelime; $mdegeri = substr($mdegeri, 1); // bastaki - temizle $yeni = \Lib\Strings::cevir_artiya($mdegeri); // eğer zaten kendisi var ise link içinde olmasın $marka_stack = '&' . $ozellik . '=' . $yeni; unset($query2arrayCiktisi[$ozellik]); // diziden kaldır tekrar donguye tekrar girmesin $linkleme = ''; // m harici kalan query değerlerini de ekler diziye foreach ($query2arrayCiktisi as $key => $value) { $linkleme .= '&' . $key . '=' . $value; } return self::LinkTemizle($dir . $urlPathAdresi . '?' . $linkleme . $marka_stack . ''); } } else { // m harici bir link var mı onları da al if (!empty($QueryName)) { $linkleme = ''; foreach ($query2arrayCiktisi as $key => $value) { $linkleme .= '&' . $key . '=' . $value; } } return self::LinkTemizle($dir . $urlPathAdresi . '?' . ($linkleme .= '&' . $ozellik . '=' . $eklenecek_kelime)); } } else { return self::LinkTemizle($dir . $urlPathAdresi . '?' . $ozellik . '=' . $eklenecek_kelime); } }