static function searchBooks($options, $catid, $option, $ownername = '') { global $mainframe, $database, $my, $acl, $task; global $mosConfig_shownoauth, $mosConfig_live_site, $mosConfig_absolute_path; global $cur_template, $Itemid, $booklibrary_configuration, $limitstart, $limit; PHP_booklibrary::addTitleAndMetaTags(); if (array_key_exists('Itemid', $_GET)) { $Itemid = intval($_GET['Itemid']); } $list_str = array(); $session = JFactory::getSession(); // if ($layout == "" && $booklibrary_configuration['view_type']==0){ // $layout="list"; // } else if ($layout == "" && $booklibrary_configuration['view_type']==1){ // $layout="gallery"; // } //sorting item $item_session = JFactory::getSession(); $sort_arr = $item_session->get('bl_fe_booksort', ''); if (is_array($sort_arr)) { $tmp1 = mosGetParam($_POST, 'direction'); if ($tmp1 != '') { $sort_arr['direction'] = $tmp1; } $tmp1 = mosGetParam($_POST, 'field'); if ($tmp1 != '') { $sort_arr['field'] = $tmp1; } $item_session->set('bl_fe_booksort', $sort_arr); } else { $sort_arr = array(); $sort_arr['field'] = 'title'; $sort_arr['direction'] = 'asc'; $item_session->set('bl_fe_booksort', $sort_arr); } if ($sort_arr['field'] == "price") { $sort_string = "CAST( " . $sort_arr['field'] . " AS SIGNED)" . " " . $sort_arr['direction']; } else { $sort_string = $sort_arr['field'] . " " . $sort_arr['direction']; } //end sorting item //get current user groups $s = getWhereUsergroupsString("c"); $session = JFactory::getSession(); if ($ownername == '') { $pathway = sefRelToAbs('index.php?option=' . $option . '&task=show_search&Itemid=' . $Itemid); $pathway_name = _BOOKLIBRARY_LABEL_SEARCH; } $search = ""; if (array_key_exists("searchtext", $_REQUEST)) { $search = urldecode(mosGetParam($_REQUEST, 'searchtext', '')); $search = addslashes($search); } $li_search = ''; if (array_key_exists("letindex", $_REQUEST)) { $li_search = mb_substr(mosGetParam($_REQUEST, 'letindex', ''), 0, 1, 'UTF-8'); } $sp = 0; if (array_key_exists("sp", $_REQUEST)) { $sp = mosGetParam($_REQUEST, 'sp', 0); } $where = array(); // Sort start if ($booklibrary_configuration['category']['default_sort'] != '') { $default_field = $booklibrary_configuration['category']['default_sort']; } else { $default_field = 'title'; } // SORTING parameters start $prefix = ''; $item_session = JFactory::getSession(); $item_sort_param = ''; $sort_arr['direction'] = ''; if (array_key_exists('sortup', $_GET)) { $item_sort_param = mosGetParam($_GET, 'sortup', ''); $sort_arr['direction'] = 'DESC'; } if (array_key_exists('sortdown', $_GET)) { $item_sort_param = mosGetParam($_GET, 'sortdown', ''); $sort_arr['direction'] = ''; } $sort_arr['field'] = $item_sort_param; $item_sort_param = preg_replace('/[^A-Za-z0-9_]*/', '', $item_sort_param); if ($item_sort_param == '') { if (is_array($sort_arr = $item_session->get('bl_fe_booksort', ''))) { $sort_string = $sort_arr['field'] . " " . $sort_arr['direction']; } else { $sort_string = $default_field; $sort_arr = array(); $sort_arr['field'] = $default_field; $sort_arr['direction'] = ''; $item_session->set('bl_fe_booksort', $sort_arr); } } else { if ($item_sort_param != $sort_arr['field']) { $sort_arr['field'] = $item_sort_param; $sort_arr['direction'] = ''; } if ($sort_arr['field'] != 'category') { $prefix = 'b.'; } $sort_string = $prefix . $sort_arr['field'] . " " . $sort_arr['direction']; $item_session->set('bl_fe_booksort', $sort_arr); } // end sort //-------------------------------- //********owners search if (isset($_REQUEST['ownername']) && $_REQUEST['ownername'] == "on") { $ownername = "{$exactly}"; } if ($ownername != '' && $ownername != '%%') { $query = "SELECT u.email\n \n FROM #__users AS u\n \n WHERE LOWER(u.name) LIKE '{$ownername}';"; $database->setQuery($query); // if(version_compare(JVERSION, '3.0', 'ge')) { // $owneremails=$database->loadColumn(); // } else { // $owneremails=$database->loadResultArray(); // } if (version_compare(JVERSION, '3.0', 'lt')) { $owneremails = $database->loadResultArray(); } else { $owneremails = $database->loadColumn(); } $ownername = ""; //print_r($owneremails);exit; if (count($owneremails)) { foreach ($owneremails as $owneremail) { if (isset($_REQUEST['ownername']) && $_REQUEST['ownername'] == "on") { //search from frontend if ($is_add_or) { $ownername .= " or "; } $is_add_or = true; $ownername .= "b.owneremail='{$owneremail}'"; } else { //show owner books $where[] = "b.owneremail='{$owneremail}'"; } } } } //--------------------------------- $add_query = ''; if ($sp == 1) { $add_query = " AND LOWER(b." . $sort_arr['field'] . ") LIKE '{$li_search}%' "; } $comp_search = array(); if (array_key_exists('searchtype', $_REQUEST) && $_REQUEST['searchtype'] == 'simplesearch') { $comp_search[] = "LOWER(b.authors) LIKE '%{$search}%'"; $comp_search[] = "LOWER(b.isbn) LIKE '%{$search}%'"; $comp_search[] = "LOWER(b.title) LIKE '%{$search}%'"; $comp_search[] = "LOWER(b.manufacturer) LIKE '%{$search}%'"; $comp_search[] = "LOWER(b.comment) LIKE '%{$search}%'"; $comp_search[] = "LOWER(b.bookid) LIKE '%{$search}%'"; } $att_str = ''; if (isset($_REQUEST['author'])) { $comp_search[] = "LOWER(b.authors) LIKE '%{$search}%'"; $att_str .= '&author=on'; } if (isset($_REQUEST['bookid'])) { $comp_search[] = "LOWER(b.bookid) LIKE '%{$search}%'"; $att_str .= '&bookid=on'; } if (isset($_REQUEST['isbn'])) { $comp_search[] = "LOWER(b.isbn) LIKE '%{$search}%'"; $att_str .= '&isbn=on'; } if (isset($_REQUEST['title'])) { $comp_search[] = "LOWER(b.title) LIKE '%{$search}%'"; $att_str .= '&title=on'; } if (isset($_REQUEST['publisher'])) { $comp_search[] = "LOWER(b.manufacturer) LIKE '%{$search}%'"; $att_str .= '&publisher=on'; } if (isset($_REQUEST['description'])) { $comp_search[] = "LOWER(b.comment) LIKE '%{$search}%'"; $att_str .= '&description=on'; } $pricefrom = mosGetParam($_REQUEST, 'pricefrom', ''); $priceto = mosGetParam($_REQUEST, 'priceto', ''); if ($pricefrom != "" && $pricefrom >= 0) { $where[] = " (b.price) >= " . intval($pricefrom); $att_str .= '&pricefrom=' . intval($pricefrom); } if ($priceto != "" && $priceto > 0) { $where[] = " (b.price) <= " . intval($priceto); $att_str .= '&priceto=' . intval($priceto); } $att_str = ''; foreach ($_GET as $key => $val) { if ($key == 'sortdown' || $key == 'sortup') { continue; } $att_str .= '&' . $key . '=' . $val; } $sort_arr['att_str'] = $att_str; if (array_key_exists(0, $comp_search) || array_key_exists(0, $where)) { $comp_search_str = implode(' OR ', $comp_search); if ($comp_search_str != '') { array_push($where, '(' . $comp_search_str . ')'); array_push($where, "b.published='1'"); array_push($where, "b.approved='1'"); array_push($where, "b.archived='0'"); } if ($catid) { array_push($where, "c.id='{$catid}'"); } array_push($where, "c.published='1'"); array_push($where, "b.published='1'"); $s = getWhereUsergroupsString("c"); // for 1.6 array_push($where, "({$s})"); $query = "SELECT COUNT(DISTINCT b.id)\n FROM #__booklibrary AS b " . "\nLEFT JOIN #__booklibrary_categories AS bc ON bc.bookid = b.id" . "\nLEFT JOIN #__booklibrary_main_categories AS c ON bc.catid = c.id" . (count($where) ? "\nWHERE " . implode(' AND ', $where) : "") . $add_query; $database->setQuery($query); $total = $database->loadResult(); $pageNav = new JPagination($total, $limitstart, $limit); // for J 1.6 $query = "SELECT b.*,blr2.rating2, c.title AS category, c.id AS category_id, c.ordering AS category_ordering FROM #__booklibrary AS b " . "\nLEFT JOIN #__booklibrary_categories AS bc ON bc.bookid = b.id" . "\nLEFT JOIN #__booklibrary_main_categories AS c ON bc.catid = c.id" . "\nLEFT JOIN ( SELECT ROUND(avg(blr1.rating)) as rating2, fk_bookid \n FROM #__booklibrary as bl LEFT JOIN #__booklibrary_review as blr1 on blr1.fk_bookid = bl.id group by blr1.fk_bookid ) blr2 \n ON blr2.fk_bookid = b.id" . (count($where) ? "\nWHERE " . implode(' AND ', $where) : "") . $add_query . "\nGROUP BY b.id" . "\nORDER BY {$sort_string}" . "\nLIMIT {$pageNav->limitstart},{$pageNav->limit};"; $database->setQuery($query); $books = $database->loadObjectList(); } $currentcat = NULL; // Parameters // $menu = new mosMenu( $database ); // //$menu = new JTableMenu( $database );//for 1.6 // // // $menu->load( $Itemid ); // $params = new mosParameters( $menu->params ); if (version_compare(JVERSION, '3.0', 'ge')) { $menu = new JTableMenu($database); $menu->load($Itemid); $params = new JRegistry(); $params->loadString($menu->params); } else { $menu = new mosMenu($database); $menu->load($Itemid); $params = new mosParameters($menu->params); } $menu_name = set_header_name_bl($menu, $Itemid); $params->def('header', $menu_name); //for 1.6 $params->def('pageclass_sfx', ''); $params->def('category_name', _BOOKLIBRARY_LABEL_SEARCH); $params->def('search_request', '1'); $params->def('hits', 1); $params->def('show_rating', 1); if (!isset($my->id)) { //for 1.6 $my->id = 0; } if ($GLOBALS['lendstatus_show']) { $params->def('show_lendstatus', 1); if (checkAccessBL($GLOBALS['lendrequest_registrationlevel'], 'RECURSE', userGID_BL($my->id), $acl)) { $params->def('show_lendrequest', 1); } } //******* begin add for Manager Suggestion: button 'Suggest a book' ******* //**** end add for Manager Suggestion: button 'Suggest a book' ***** //add for show in category picture if ($GLOBALS['cat_pic_show']) { $params->def('show_cat_pic', 1); } $params->def('back_button', $mainframe->getCfg('back_button')); $currentcat = new stdClass(); $currentcat->descrip = _BOOKLIBRARY_SEARCH_DESC2; $currentcat->align = 'right'; // page image $currentcat->img = $mosConfig_live_site . "/components/com_booklibrary/images/book.png"; $currentcat->header = ''; if (@$currentcat->name != '') { $currentcat->header = $currentcat->name; } else { $currentcat->header = $params->get('header'); } if ($currentcat->header != '') { $currentcat->header = $currentcat->header; } else { $currentcat->header = _BOOKLIBRARY_LABEL_SEARCH; } // used to show table rows in alternating colours $tabclass = array('sectiontableentry1', 'sectiontableentry2'); if (!isset($my->id)) { //for 1.6 $my->id = 0; } if (checkAccessBL($booklibrary_configuration['search_field']['registrationlevel'], 'RECURSE', userGID_BL($my->id), $acl) && $booklibrary_configuration['search_field']['show']) { $params->def('search_fieldshow', 1); } if (checkAccessBL($booklibrary_configuration['advsearch']['registrationlevel'], 'RECURSE', userGID_BL($my->id), $acl) && $booklibrary_configuration['advsearch']['show']) { $params->def('advsearch_show', 1); } $params->def('view_type', $booklibrary_configuration['view_type']); $params->def('sort_arr_direction', $sort_arr['direction']); $params->def('sort_arr_field', $sort_arr['field']); $params->def('singlecategory01', "{loadposition com_booklibrary_single_category_01}"); $params->def('singlecategory02', "{loadposition com_booklibrary_single_category_02}"); $params->def('singlecategory03', "{loadposition com_booklibrary_single_category_03}"); $params->def('singlecategory04', "{loadposition com_booklibrary_single_category_04}"); $params->def('singlecategory05', "{loadposition com_booklibrary_single_category_05}"); $params->def('singlecategory06', "{loadposition com_booklibrary_single_category_06}"); $params->def('singlecategory07', "{loadposition com_booklibrary_single_category_07}"); $params->def('singlecategory08', "{loadposition com_booklibrary_single_category_08}"); $params->def('singlecategory09', "{loadposition com_booklibrary_single_category_09}"); $params->def('singlecategory10', "{loadposition com_booklibrary_single_category_010}"); $params->def('singlecategory11', "{loadposition com_booklibrary_single_category_011}"); //************* choose layout**************** $layout = $params->get('ownerslist_page', ''); if (!isset($layout) or $layout == '') { $layout = $booklibrary_configuration['view_type']; } //************* end choose layout**************** if (count($books)) { HTML_booklibrary::displayBooks($books, $currentcat, $params, $tabclass, $catid, null, false, $sort_arr, $list_str, $pageNav, $layout); } else { $option = 'com_booklibrary'; if (isset($_REQUEST['userId'])) { if ($my->id == $_REQUEST['userId']) { if ($booklibrary_configuration['cb_mybook']['show'] == '1' && checkAccessBL($booklibrary_configuration['cb_mybook']['registrationlevel'], 'NORECURSE', userGID_BL($my->id), $acl)) { echo " <span class='books_button'><a class='my_btn my_btn-primary' href='" . JRoute::_('index.php?option=' . $option . '&task=show_my_books&layout=mybooks&Itemid=' . $Itemid) . "'>" . _BOOKLIBRARY_LABEL_CBBOOKS_TT . "</a></span>"; } if ($booklibrary_configuration['cb_edit']['show'] == '1' && checkAccessBL($booklibrary_configuration['cb_mybook']['registrationlevel'], 'NORECURSE', userGID_BL($my->id), $acl)) { echo " <span class='books_button'><a class='my_btn my_btn-primary' href='" . JRoute::_('index.php?option=' . $option . '&task=show_my_books&layout=mybooks&Itemid=' . $Itemid) . "'>" . _BOOKLIBRARY_LABEL_CBEDIT . "</a></span>"; } } } else { if ($booklibrary_configuration['cb_mybook']['show'] == '1' && checkAccessBL($booklibrary_configuration['cb_mybook']['registrationlevel'], 'NORECURSE', userGID_BL($my->id), $acl)) { echo " <span class='books_button'><a class='my_btn my_btn-primary' href='" . JRoute::_('index.php?option=' . $option . '&task=show_my_books&layout=mybooks&Itemid=' . $Itemid) . "'>" . _BOOKLIBRARY_LABEL_CBBOOKS_TT . "</a></span>"; } if ($booklibrary_configuration['cb_edit']['show'] == '1' && checkAccessBL($booklibrary_configuration['cb_mybook']['registrationlevel'], 'NORECURSE', userGID_BL($my->id), $acl)) { echo " <span class='books_button'><a class='my_btn my_btn-primary' href='" . JRoute::_('index.php?option=' . $option . '&task=show_my_books&layout=mybooks&Itemid=' . $Itemid) . "'>" . _BOOKLIBRARY_LABEL_CBEDIT . "</a></span>"; } } } if (!count($books)) { echo "<h1><center>" . _BOOKLIBRARY_NOTHING_FOUND . "</center></h1>"; } }
static function showLendRequest(&$books, &$currentcat, &$params, &$tabclass, &$catid, &$sub_categories, $is_exist_sub_categories, $sort_arr) { HTML_booklibrary::displayBooks($books, $currentcat, $params, $tabclass, $catid, $sub_categories, $is_exist_sub_categories, $sort_arr); // add the formular for send to :-) }