/** * recovers search parameters from stored cookie, clears the cookie * * @param string $what the page type * @param string $album Name of the album * @param string $image Name of the image */ function handleSearchParms($what, $album = NULL, $image = NULL) { global $_zp_current_search, $zp_request, $_zp_last_album, $_zp_current_album, $_zp_current_zenpage_news, $_zp_current_zenpage_page, $_zp_gallery, $_zp_loggedin; $_zp_last_album = zp_getCookie('zenphoto_last_album'); if (is_object($zp_request) && get_class($zp_request) == 'SearchEngine') { // we are are on a search return $zp_request->getAlbumList(); } $params = zp_getCookie('zenphoto_search_params'); if (!empty($params)) { $context = get_context(); $_zp_current_search = new SearchEngine(); $_zp_current_search->setSearchParams($params); // check to see if we are still "in the search context" if (!is_null($image)) { $dynamic_album = $_zp_current_search->getDynamicAlbum(); if ($_zp_current_search->getImageIndex($album->name, $image->filename) !== false) { if ($dynamic_album) { $_zp_current_album = $dynamic_album; } $context = $context | ZP_SEARCH_LINKED | ZP_IMAGE_LINKED; } } if (!is_null($album)) { $albumname = $album->name; zp_setCookie('zenphoto_last_album', $albumname); if (hasDynamicAlbumSuffix($albumname) && !is_dir(ALBUM_FOLDER_SERVERPATH . $albumname)) { $albumname = stripSuffix($albumname); // strip off the suffix as it will not be reflected in the search path } // see if the album is within the search context. NB for these purposes we need to look at all albums! $save_logon = $_zp_loggedin; $_zp_loggedin = $_zp_loggedin | VIEW_ALL_RIGHTS; $search_album_list = $_zp_current_search->getAlbums(0); $_zp_loggedin = $save_logon; foreach ($search_album_list as $searchalbum) { if (strpos($albumname, $searchalbum) !== false) { $context = $context | ZP_SEARCH_LINKED | ZP_ALBUM_LINKED; break; } } } else { zp_clearCookie('zenphoto_last_album'); } if (!is_null($_zp_current_zenpage_page)) { $pages = $_zp_current_search->getPages(); if (!empty($pages)) { $tltlelink = $_zp_current_zenpage_page->getTitlelink(); foreach ($pages as $apage) { if ($apage == $tltlelink) { $context = $context | ZP_SEARCH_LINKED; break; } } } } if (!is_null($_zp_current_zenpage_news)) { $news = $_zp_current_search->getArticles(0, NULL, true); if (!empty($news)) { $tltlelink = $_zp_current_zenpage_news->getTitlelink(); foreach ($news as $anews) { if ($anews['titlelink'] == $tltlelink) { $context = $context | ZP_SEARCH_LINKED; break; } } } } if ($context & ZP_SEARCH_LINKED) { set_context($context); } else { // not an object in the current search path $_zp_current_search = null; rem_context(ZP_SEARCH); if (!isset($_REQUEST['preserve_serch_params'])) { zp_clearCookie("zenphoto_search_params"); } } } }
/** * recovers search parameters from stored cookie, clears the cookie * * @param string $what the page type * @param string $album Name of the album * @param string $image Name of the image */ function handleSearchParms($what, $album = NULL, $image = NULL) { global $_zp_current_search, $zp_request; $cookiepath = WEBPATH; if (WEBPATH == '') { $cookiepath = '/'; } if (is_null($album)) { if (is_object($zp_request)) { $reset = get_class($zp_request) != 'SearchEngine'; } else { $reset = $zp_request; } if ($reset) { // clear the cookie if no album and not a search if (!isset($_REQUEST['preserve_serch_params'])) { zp_setcookie("zenphoto_image_search_params", "", time() - 368000, $cookiepath); } return; } } $context = get_context(); $params = zp_getCookie('zenphoto_image_search_params'); if (!empty($params)) { $_zp_current_search = new SearchEngine(); $_zp_current_search->setSearchParams($params); // check to see if we are still "in the search context" if (!is_null($image)) { if ($_zp_current_search->getImageIndex($album->name, $image->filename) !== false) { $context = $context | ZP_SEARCH_LINKED | ZP_IMAGE_LINKED; } } if (!is_null($album)) { $albumname = $album->name; $albumlist = $_zp_current_search->getAlbums(0); foreach ($albumlist as $searchalbum) { if (strpos($albumname, $searchalbum) !== false) { $context = $context | ZP_SEARCH_LINKED | ZP_ALBUM_LINKED; break; } } } if ($context & ZP_SEARCH_LINKED) { set_context($context); } else { $_zp_current_search = null; } } }