示例#1
0
 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>";
     }
 }
示例#2
0
 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 :-)
 }