JFactory::getLanguage()->isRTL() ? CTemplate::addStylesheet('style.rtl') : CTemplate::addStylesheet('style');
/*
* If we need any other additional configuration we can add it here like this
$document = JFactory::getDocument();
    $document->addStyleSheet(JURI::root(true) . '/example/example.css');
    $config = CFactory::getConfig();
Alex's reference for doing ajax calls through module or plugin.
https://github.com/Joomla-Ajax-Interface/component
*/
$mainframe = JFactory::getApplication();
$jinput = $mainframe->input;
$profileType = $jinput->get('profiletype', 0, 'INT');
$my = CFactory::getUser();
$config = CFactory::getConfig();
$result = null;
$fields = CAdvanceSearch::getFields($profileType);
$data = new stdClass();
$post = JRequest::get('GET');
$keyList = isset($post['key-list']) ? $post['key-list'] : '';
$avatarOnly = $jinput->get('avatar', '', 'NONE');
if (JString::strlen($keyList) > 0) {
    //formatting the assoc array
    $filter = array();
    $key = explode(',', $keyList);
    $joinOperator = isset($post['operator']) ? $post['operator'] : '';
    foreach ($key as $idx) {
        $obj = new stdClass();
        $obj->field = $post['field' . $idx];
        $obj->condition = $post['condition' . $idx];
        $obj->fieldType = $post['fieldType' . $idx];
        if ($obj->fieldType == 'email') {
Пример #2
0
 public function advanceSearch()
 {
     $mainframe = JFactory::getApplication();
     $jinput = $mainframe->input;
     $document = JFactory::getDocument();
     //load calendar behavior
     JHtml::_('behavior.calendar');
     JHtml::_('behavior.tooltip');
     /**
      * Opengraph
      */
     CHeadHelper::setType('website', JText::_('COM_COMMUNITY_TITLE_CUSTOM_SEARCH'));
     //$this->showSubMenu();
     $this->addPathway(JText::_('COM_COMMUNITY_TITLE_CUSTOM_SEARCH'));
     $profileType = $jinput->get('profiletype', 0, 'INT');
     $my = CFactory::getUser();
     $config = CFactory::getConfig();
     $result = null;
     $fields = CAdvanceSearch::getFields($profileType);
     $data = new stdClass();
     $post = JRequest::get('GET');
     $keyList = isset($post['key-list']) ? $post['key-list'] : '';
     $avatarOnly = $jinput->get('avatar', '', 'NONE');
     if (JString::strlen($keyList) > 0) {
         //formatting the assoc array
         $filter = array();
         $key = explode(',', $keyList);
         $joinOperator = isset($post['operator']) ? $post['operator'] : '';
         foreach ($key as $idx) {
             $obj = new stdClass();
             $obj->field = $post['field' . $idx];
             $obj->condition = $post['condition' . $idx];
             $obj->fieldType = $post['fieldType' . $idx];
             if ($obj->fieldType == 'email') {
                 $obj->condition = 'equal';
             }
             // we need to check whether the value contain start and end kind of values.
             // if yes, make them an array.
             if (isset($post['value' . $idx . '_2'])) {
                 if ($obj->fieldType == 'date') {
                     $startDate = empty($post['value' . $idx]) ? '01/01/1970' : $post['value' . $idx];
                     $endDate = empty($post['value' . $idx . '_2']) ? '01/01/1970' : $post['value' . $idx . '_2'];
                     // Joomla 1.5 uses "/"
                     // Joomla 1.6 uses "-"
                     $delimeter = '-';
                     if (strpos($startDate, '/')) {
                         $delimeter = '/';
                     }
                     $sdate = explode($delimeter, $startDate);
                     $edate = explode($delimeter, $endDate);
                     if (isset($sdate[2]) && isset($edate[2])) {
                         $obj->value = array($sdate[0] . '-' . $sdate[1] . '-' . $sdate[2] . ' 00:00:00', $edate[0] . '-' . $edate[1] . '-' . $edate[2] . ' 23:59:59');
                     } else {
                         $obj->value = array(0, 0);
                     }
                 } else {
                     $obj->value = array($post['value' . $idx], $post['value' . $idx . '_2']);
                 }
             } else {
                 if ($obj->fieldType == 'date') {
                     $startDate = empty($post['value' . $idx]) ? '01/01/1970' : $post['value' . $idx];
                     $delimeter = '-';
                     if (strpos($startDate, '/')) {
                         $delimeter = '/';
                     }
                     $sdate = explode($delimeter, $startDate);
                     if (isset($sdate[2])) {
                         $obj->value = $sdate[2] . '-' . $sdate[1] . '-' . $sdate[0] . ' 00:00:00';
                     } else {
                         $obj->value = 0;
                     }
                 } else {
                     if ($obj->fieldType == 'checkbox') {
                         if (empty($post['value' . $idx])) {
                             //this mean user didnot check any of the option.
                             $obj->value = '';
                         } else {
                             $obj->value = isset($post['value' . $idx]) ? implode(',', $post['value' . $idx]) : '';
                         }
                     } else {
                         $obj->value = isset($post['value' . $idx]) ? $post['value' . $idx] : '';
                     }
                 }
             }
             $filter[] = $obj;
         }
         $data->search = CAdvanceSearch::getResult($filter, $joinOperator, $avatarOnly, '', $profileType);
         $data->filter = $post;
     }
     $rows = !empty($data->search) ? $data->search->result : array();
     $pagination = !empty($data->search) ? $data->search->pagination : '';
     $filter = !empty($data->filter) ? $data->filter : array();
     $resultRows = array();
     $friendsModel = CFactory::getModel('friends');
     for ($i = 0; $i < count($rows); $i++) {
         $row = $rows[$i];
         //filter the user profile type
         if ($profileType && $row->_profile_id != $profileType) {
             continue;
         }
         $obj = new stdClass();
         $obj->user = $row;
         $obj->friendsCount = $row->getFriendCount();
         $obj->profileLink = CRoute::_('index.php?option=com_community&view=profile&userid=' . $row->id);
         $isFriend = CFriendsHelper::isConnected($row->id, $my->id);
         $obj->addFriend = !$isFriend && $my->id != 0 && $my->id != $row->id ? true : false;
         $resultRows[] = $obj;
     }
     if (class_exists('Services_JSON')) {
         $json = new Services_JSON();
     } else {
         require_once AZRUL_SYSTEM_PATH . '/pc_includes/JSON.php';
         $json = new Services_JSON();
     }
     $tmpl = new CTemplate();
     $multiprofileArr = array();
     $hasMultiprofile = false;
     //let see if we have any multiprofile enabled
     if ($config->get('profile_multiprofile')) {
         $hasMultiprofile = true;
         //lets get the available profile
         $profileModel = CFactory::getModel('Profile');
         $profiles = $profileModel->getProfileTypes();
         if ($profiles) {
             $multiprofileArr[] = array('url' => CRoute::_('index.php?option=com_community&view=search&task=advancesearch'), 'name' => JText::_('COM_COMMUNITY_ALL_PROFILE'), 'selected' => !$profileType ? 1 : 0);
             foreach ($profiles as $profile) {
                 $multiprofileArr[] = array('url' => CRoute::_('index.php?option=com_community&view=search&task=advancesearch&profiletype=' . $profile->id), 'name' => $profile->name, 'selected' => $profile->id == $profileType ? 1 : 0);
             }
         }
     }
     $searchForm = $tmpl->set('fields', $fields)->set('hasMultiprofile', $hasMultiprofile)->set('multiprofileArr', $multiprofileArr)->set('keyList', $keyList)->set('profileType', $profileType)->set('avatarOnly', $avatarOnly)->set('filterJson', $json->encode($filter))->set('postresult', isset($post['key-list']))->set('submenu', $this->showSubmenu(false))->fetch('search.advancesearch');
     if (isset($post['key-list'])) {
         //result template
         $tmplResult = new CTemplate();
         $featured = new CFeatured(FEATURED_USERS);
         $featuredList = $featured->getItemIds();
         $tmpl->set('featuredList', $featuredList);
         $searchForm .= $tmplResult->set('my', $my)->set('showFeaturedList', false)->set('multiprofileArr', $multiprofileArr)->set('featuredList', $featuredList)->set('data', $resultRows)->set('isAdvanceSearch', true)->set('hasMultiprofile', $hasMultiprofile)->set('sortings', '')->set('pagination', $pagination)->set('filter', $filter)->set('featuredList', $featuredList)->set('isCommunityAdmin', COwnerHelper::isCommunityAdmin())->fetch('people.browse');
     }
     echo $searchForm;
 }
Пример #3
0
 function advanceSearch()
 {
     CFactory::load('libraries', 'advancesearch');
     CFactory::load('libraries', 'messaging');
     CFactory::load('helpers', 'friends');
     CFactory::load('helpers', 'owner');
     $document =& JFactory::getDocument();
     $document->addStyleSheet("includes/js/calendar/calendar-mos.css");
     $document->addScript("includes/js/joomla.javascript.js");
     $document->addScript("includes/js/calendar/calendar_mini.js");
     $document->addScript("includes/js/calendar/lang/calendar-en-GB.js");
     $document->setTitle(JText::_('CC TITLE CUSTOM SEARCH'));
     $this->showSubMenu();
     $this->addPathway(JText::_('CC TITLE CUSTOM SEARCH'));
     $my = CFactory::getUser();
     $config = CFactory::getConfig();
     $result = null;
     $fields = CAdvanceSearch::getFields();
     $data = new stdClass();
     $post = JRequest::get('GET');
     $keyList = isset($post['key-list']) ? $post['key-list'] : '';
     $avatarOnly = JRequest::getVar('avatar', '');
     if (JString::strlen($keyList) > 0) {
         //formatting the assoc array
         $filter = array();
         $key = explode(',', $keyList);
         $joinOperator = $post['operator'];
         foreach ($key as $idx) {
             $obj = new stdClass();
             $obj->field = $post['field' . $idx];
             $obj->condition = $post['condition' . $idx];
             $obj->fieldType = $post['fieldType' . $idx];
             if ($obj->fieldType == 'email') {
                 $obj->condition = 'equal';
             }
             // we need to check whether the value contain start and end kind of values.
             // if yes, make them an array.
             if (isset($post['value' . $idx . '_2'])) {
                 if ($obj->fieldType == 'date') {
                     $startDate = empty($post['value' . $idx]) ? '01/01/1970' : $post['value' . $idx];
                     $endDate = empty($post['value' . $idx . '_2']) ? '01/01/1970' : $post['value' . $idx . '_2'];
                     $sdate = explode('/', $startDate);
                     $edate = explode('/', $endDate);
                     $obj->value = array($sdate[2] . '-' . intval($sdate[1]) . '-' . $sdate[0] . ' 00:00:00', $edate[2] . '-' . intval($edate[1]) . '-' . $edate[0] . ' 23:59:59');
                 } else {
                     $obj->value = array($post['value' . $idx], $post['value' . $idx . '_2']);
                 }
             } else {
                 if ($obj->fieldType == 'date') {
                     $startDate = empty($post['value' . $idx]) ? '01/01/1970' : $post['value' . $idx];
                     $sdate = explode('/', $startDate);
                     $obj->value = $sdate[2] . '-' . intval($sdate[1]) . '-' . $sdate[0] . ' 00:00:00';
                 } else {
                     if ($obj->fieldType == 'checkbox') {
                         if (empty($post['value' . $idx])) {
                             //this mean user didnot check any of the option.
                             $obj->value = '';
                         } else {
                             $obj->value = isset($post['value' . $idx]) ? implode(',', $post['value' . $idx]) : '';
                         }
                     } else {
                         $obj->value = isset($post['value' . $idx]) ? $post['value' . $idx] : '';
                     }
                 }
             }
             $filter[] = $obj;
         }
         $data->search = CAdvanceSearch::getResult($filter, $joinOperator, $avatarOnly);
         $data->filter = $post;
     }
     $rows = !empty($data->search) ? $data->search->result : array();
     $pagination = !empty($data->search) ? $data->search->pagination : '';
     $filter = !empty($data->filter) ? $data->filter : array();
     $resultRows = array();
     $friendsModel = CFactory::getModel('friends');
     for ($i = 0; $i < count($rows); $i++) {
         $row =& $rows[$i];
         $obj = new stdClass();
         $obj->user =& $row;
         $obj->friendsCount = $row->getFriendCount();
         $obj->profileLink = CRoute::_('index.php?option=com_community&view=profile&userid=' . $row->id);
         $isFriend = CFriendsHelper::isConnected($row->id, $my->id);
         $obj->addFriend = !$isFriend && $my->id != 0 && $my->id != $row->id ? true : false;
         $resultRows[] = $obj;
     }
     if (class_exists('Services_JSON')) {
         $json = new Services_JSON();
     } else {
         require_once JPATH_ROOT . DS . 'plugins' . DS . 'system' . DS . 'pc_includes' . DS . 'JSON.php';
         $json = new Services_JSON();
     }
     $tmpl = new CTemplate();
     $tmpl->set('fields', $fields);
     $tmpl->set('keyList', $keyList);
     $tmpl->set('avatarOnly', $avatarOnly);
     $tmpl->set('filterJson', $json->encode($filter));
     $tmpl->set('postresult', isset($post['key-list']));
     $searchForm = $tmpl->fetch('search.advancesearch');
     if (isset($post['key-list'])) {
         //result template
         $tmplResult = new CTemplate();
         $tmplResult->set('data', $resultRows);
         $tmplResult->set('sortings', '');
         $tmplResult->set('pagination', $pagination);
         $tmplResult->set('filter', $filter);
         CFactory::load('libraries', 'tooltip');
         CFactory::load('helpers', 'owner');
         //JHTML::_('behavior.tooltip');
         CFactory::load('libraries', 'featured');
         $featured = new CFeatured(FEATURED_USERS);
         $featuredList = $featured->getItemIds();
         $tmpl->set('featuredList', $featuredList);
         $tmplResult->set('my', $my);
         $tmplResult->set('showFeaturedList', false);
         $tmplResult->set('featuredList', $featuredList);
         $tmplResult->set('featuredList', $featuredList);
         $tmplResult->set('isCommunityAdmin', COwnerHelper::isCommunityAdmin());
         $searchForm .= $tmplResult->fetch('people.browse');
     }
     echo $searchForm;
 }