|
@@ -38,10 +38,6 @@ function materio_search_api_permission() {
|
|
|
'title' => t('use Materio search api filters'),
|
|
|
'description' => t('Use materio search api filters.'),
|
|
|
),
|
|
|
- 'use materio search api advanced search' => array(
|
|
|
- 'title' => t('use materio search api advanced search'),
|
|
|
- 'description' => t('Use materio search api advanced search.'),
|
|
|
- ),
|
|
|
);
|
|
|
}
|
|
|
|
|
@@ -440,11 +436,6 @@ function materio_search_api_block_info() {
|
|
|
'cache' => DRUPAL_NO_CACHE
|
|
|
);
|
|
|
|
|
|
- $blocks['materio_sa_adv_search'] = array(
|
|
|
- 'info' => t('Materio search api advanced search'),
|
|
|
- 'cache' => DRUPAL_NO_CACHE
|
|
|
- );
|
|
|
-
|
|
|
# NOT USED
|
|
|
$blocks['materio_search_api_viewmode'] = array(
|
|
|
'info' => t('Materio search api view mode selection'),
|
|
@@ -496,13 +487,6 @@ function materio_search_api_block_view($delta = '') {
|
|
|
// }
|
|
|
// break;
|
|
|
|
|
|
- # NOT USED
|
|
|
- case 'materio_sa_adv_search':
|
|
|
- if(user_access('use materio search api advanced search')){
|
|
|
- $block['subject'] = t('Advanced Search');
|
|
|
- $block['content'] = theme('materio_search_api_advanced_search_block', array());
|
|
|
- }
|
|
|
- break;
|
|
|
}
|
|
|
return $block;
|
|
|
}
|
|
@@ -677,240 +661,6 @@ function materio_search_api_search_form_submit($form, &$form_state){
|
|
|
}
|
|
|
|
|
|
|
|
|
-/**
|
|
|
- * materiobase_advancedsearch_form()
|
|
|
- */
|
|
|
-function materio_search_api_advanced_search_form($form, &$form_state){
|
|
|
- // dsm($form_state, 'form_state');
|
|
|
- // dsm($form, 'form');
|
|
|
- // global $user;
|
|
|
- $as_tree = materio_serach_api_get_advancedsearch_tree();
|
|
|
- // dsm($as_tree, 'as_tree');
|
|
|
-
|
|
|
- $keys = arg();
|
|
|
- $path = array_shift($keys);
|
|
|
- // dsm($keys, 'keys');
|
|
|
- if($path == 'explore' && $keys[0] == "advanced"){
|
|
|
- $advanced = true;
|
|
|
- array_shift($keys);
|
|
|
- $default_keys = $keys;
|
|
|
- }
|
|
|
-
|
|
|
- $form = array(
|
|
|
- 'title' => array(
|
|
|
- '#prefix' => "<h3>",
|
|
|
- '#markup' => t("Advanced Search"),
|
|
|
- '#suffix' => "</h3>",
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- $form['slider'] = array(
|
|
|
- '#type' => 'fieldset',
|
|
|
- // '#title' => $voc->name,
|
|
|
- '#tree' => true,
|
|
|
- );
|
|
|
-
|
|
|
- foreach ($as_tree as $vid => $tree) {
|
|
|
-
|
|
|
- // $voc = taxonomy_vocabulary_load($vid);
|
|
|
- // dsm($voc, 'voc');
|
|
|
-
|
|
|
- $form['slider']['voc-'.$vid] = array(
|
|
|
- '#type' => 'fieldset',
|
|
|
- // '#title' => $voc->name,
|
|
|
- '#tree' => true,
|
|
|
- );
|
|
|
-
|
|
|
- foreach ($tree as $term) {
|
|
|
- // dsm($term, 'term');
|
|
|
-
|
|
|
- $form['slider']['voc-'.$vid]['tree-'.$term['tid']] = array(
|
|
|
- '#type' => 'fieldset',
|
|
|
- // '#title' => $term->name,
|
|
|
- '#attributes' => array("class"=>array("treelevel1")),
|
|
|
- '#tree' => true,
|
|
|
- );
|
|
|
-
|
|
|
- $placeholder = t("Select an option");
|
|
|
- $form['slider']['voc-'.$vid]['tree-'.$term['tid']]['children'] = array(
|
|
|
- '#type' => 'select',
|
|
|
- '#title' => $term['name'],
|
|
|
- '#attributes' => array(
|
|
|
- "class"=>array("treelevel1"),
|
|
|
- "title"=>$placeholder,
|
|
|
- "data-placeholder" => $placeholder,
|
|
|
- ), //, "form-control"
|
|
|
- '#theme_wrappers' => array('materio_search_api_form_element'),
|
|
|
- '#empty_option' => $placeholder,
|
|
|
- '#empty_value' => 1,
|
|
|
- );
|
|
|
-
|
|
|
- $options = array();
|
|
|
- foreach ($term['children'] as $tid => $child) {
|
|
|
-
|
|
|
- $options[$tid] = $child['name'];
|
|
|
-
|
|
|
- $classes2 = array("treelevel2", $child['tid']);
|
|
|
-
|
|
|
- $options2 = array();
|
|
|
- $dflt_values2 = array();
|
|
|
- foreach ($child['children'] as $tid2 => $child2) {
|
|
|
- $options2[$tid2] = $child2['name'];
|
|
|
- // default Values
|
|
|
- if(in_array($tid2, $default_keys))
|
|
|
- $dflt_values2[] = $tid2;
|
|
|
- }
|
|
|
-
|
|
|
- if(count($options2)){
|
|
|
-
|
|
|
- if(count($dflt_values2))
|
|
|
- $classes2[] = 'visible';
|
|
|
-
|
|
|
- $form['slider']['voc-'.$vid]['tree-'.$term['tid']]['tid-'.$child['tid']] = array(
|
|
|
- '#type' => 'select',
|
|
|
- '#title' => $child['name'],
|
|
|
- '#multiple' => true,
|
|
|
- '#attributes' => array(
|
|
|
- "class" => $classes2, // , "form-control"
|
|
|
- "title" => "-Please select-",
|
|
|
- "tid" => $child['tid'],
|
|
|
- ),
|
|
|
- '#theme_wrappers' => array('materio_search_api_form_element'),
|
|
|
- // '#empty_option' => '-Please select-',
|
|
|
- // '#empty_value' => 1,
|
|
|
- '#options' => $options2,
|
|
|
- '#default_value' => $dflt_values2,
|
|
|
- );
|
|
|
- }
|
|
|
- }
|
|
|
- if(count($options)){
|
|
|
- $form['slider']['voc-'.$vid]['tree-'.$term['tid']]['children']['#options'] = $options;
|
|
|
- }else{
|
|
|
- unset($form['slider']['voc-'.$vid]['tree-'.$term['tid']]);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- $form['slider']['show'] = array(
|
|
|
- '#type' => 'image_button',
|
|
|
- '#src' => drupal_get_path('module', 'materio_search_api') . '/images/search.png',
|
|
|
- '#value' => t('Find'),
|
|
|
- // '#attributes' => array("class"=>array("btn","btn-lg")),
|
|
|
- '#prefix' => '<div class="submits">',
|
|
|
- '#suffix' => '</div>',
|
|
|
- );
|
|
|
- return $form;
|
|
|
-}
|
|
|
-
|
|
|
-function materio_serach_api_get_advancedsearch_tree(){
|
|
|
- $as_tree = array();
|
|
|
- $vocabularies = variable_get('advancedsearchvocs', array());
|
|
|
-
|
|
|
- foreach ($vocabularies as $vid) {
|
|
|
- // dsm($vid, "vid");
|
|
|
-
|
|
|
- // $voc = taxonomy_vocabulary_load($vid);
|
|
|
- // dsm($voc, 'voc');
|
|
|
-
|
|
|
- $tree = taxonomy_get_tree($vid, 0, 1, TRUE);
|
|
|
- // dsm($tree, 'tree');
|
|
|
-
|
|
|
- if(!count($tree)) continue;
|
|
|
-
|
|
|
- foreach ($tree as $term) {
|
|
|
- // dsm($term, "term : ".$term->name);
|
|
|
-
|
|
|
- if(!isset($term->field_used_on_advanced_search['und'][0]['value'])
|
|
|
- || $term->field_used_on_advanced_search['und'][0]['value'] == 0)
|
|
|
- continue;
|
|
|
-
|
|
|
- $children = taxonomy_get_children($term->tid, $vid);
|
|
|
- // dsm($children, "children");
|
|
|
-
|
|
|
- if(!count($children)) continue;
|
|
|
-
|
|
|
- foreach ($children as $tid => $child) {
|
|
|
- $child = taxonomy_term_load($child->tid);
|
|
|
- // dsm($child, 'child : '.$child->name);
|
|
|
- if($child->field_used_on_advanced_search['und'][0]['value'] == 0)
|
|
|
- continue;
|
|
|
-
|
|
|
- // $children2 = taxonomy_get_children($child->tid, $vid);
|
|
|
- $children2 = taxonomy_get_children_all($child->tid, $vid);
|
|
|
- // dsm($children2, "children2");
|
|
|
-
|
|
|
- if(!count($children2)) continue;
|
|
|
-
|
|
|
- foreach ($children2 as $tid2 => $child2) {
|
|
|
- $child2 = taxonomy_term_load($tid2);
|
|
|
- // dsm($child2, 'child2 : '.$child2->name);
|
|
|
- if(!isset($child2->field_used_on_advanced_search['und'][0]['value'])
|
|
|
- || $child2->field_used_on_advanced_search['und'][0]['value'] == 0)
|
|
|
- continue;
|
|
|
-
|
|
|
- $as_tree[$vid][$term->tid]['children'][$child->tid]['children'][$child2->tid] = array('tid'=>$child2->tid,'name'=>$child2->name);
|
|
|
- }
|
|
|
-
|
|
|
- if(isset($as_tree[$vid][$term->tid]['children'][$child->tid]['children']))
|
|
|
- $as_tree[$vid][$term->tid]['children'][$child->tid] += array("tid"=>$child->tid,"name"=>$child->name);
|
|
|
- }
|
|
|
-
|
|
|
- if(isset($as_tree[$vid][$term->tid]['children']))
|
|
|
- $as_tree[$vid][$term->tid] += array("tid"=>$term->tid,"name"=>$term->name);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return $as_tree;
|
|
|
-}
|
|
|
-
|
|
|
-function taxonomy_get_children_all($tid, $vid = 0, $key = 'tid'){
|
|
|
- $c = taxonomy_get_children($tid, $vid, $key);
|
|
|
- $result = array();
|
|
|
- foreach ($c as $t => $d){
|
|
|
- $result[$t] = $d;
|
|
|
- $below = taxonomy_get_children_all($t, $vid, $key);
|
|
|
- if (!empty($below)) {
|
|
|
- foreach ($below as $nt => $nd){
|
|
|
- $result[$nt] = $nd;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return $result;
|
|
|
-}
|
|
|
-
|
|
|
-function materio_search_api_advanced_search_form_validate($form, &$form_state){
|
|
|
- // dsm($form, '$form');
|
|
|
- // dsm($form_state, '$form_state');
|
|
|
- // dsm(strlen($form_state['values']['searchfield']));
|
|
|
- // if (strlen(trim($form_state['values']['searchfield'])) <= 1) {
|
|
|
- // form_set_error('searchfield', 'Please enter at least 2 characters keyword.');
|
|
|
- // }
|
|
|
-}
|
|
|
-
|
|
|
-function materio_search_api_advanced_search_form_submit($form, &$form_state){
|
|
|
- // dsm($form, 'form');
|
|
|
- // dsm($form_state, 'form_state');
|
|
|
- $fs_values = $form_state['values']['slider'];
|
|
|
- unset($fs_values['show']);
|
|
|
- // dsm($fs_values, 'values');
|
|
|
-
|
|
|
- foreach($fs_values as $voc => $trees){
|
|
|
- foreach($trees as $tree => $values){
|
|
|
- foreach ($values as $values => $selected) {
|
|
|
- if(is_array($selected) && count($selected)){
|
|
|
- foreach ($selected as $tid) {
|
|
|
- $tids[] = $tid;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- $form_state['redirect'] = 'explore/advanced/'.implode('/', $tids);
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* viewmode
|
|
|
*/
|