Changeset 4446

Show
Ignore:
Timestamp:
08/31/10 17:32:01 (10 years ago)
Author:
jamil.atta
Message:

Add search widgets

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • scielo-regional-v3/trunk/wp-content/plugins/SciELOORG-widgets.php

    r4445 r4446  
    343343} 
    344344add_action('widgets_init', 'ScieloGetLast'); 
     345 
     346 
     347 
     348 
     349class ScieloSearch extends WP_Widget { 
     350/** 
     351 * Declares the ScieloCollection class. 
     352 * 
     353 */ 
     354  function ScieloSearch() { 
     355    $widget_ops = array('classname' => 'scielo_search', 'description' => __( "SciELO Search")); 
     356    $control_ops = array('width' => 400, 'height' => 300); 
     357    $this->WP_Widget('ScieloSearch', __('SciELO Search'), $widget_ops, $control_ops); 
     358  } 
     359 
     360  /** 
     361   * Displays the Widget 
     362   * 
     363   */ 
     364  function widget($args, $instance) { 
     365 
     366    extract($args); 
     367 
     368    $title = apply_filters('widget_title', empty($instance['title']) ? ' ' : $instance['title']); 
     369    $hide_title = empty($instance['hide-title']) ? '1' : '0'; 
     370    $where = empty($instance['where']) ? 'Where' : $instance['where']; 
     371    $url = empty($instance['url']) ? 'url' : $instance['url']; 
     372 
     373    while ( stristr($url, 'http') != $url ) 
     374      $url = substr($url, 1); 
     375 
     376    if (empty($url)) 
     377      return; 
     378 
     379    # Before the widget 
     380    echo $before_widget; 
     381 
     382    # The title 
     383    if($hide_title == 1){ 
     384      echo $before_title . $title . $after_title; 
     385    } 
     386 
     387    ?> 
     388    <script> 
     389       
     390    function clearDefault(id, newclass) { 
     391      identity=document.getElementById(id); 
     392      identity.className=newclass; 
     393    } 
     394 
     395    function executeSearch(){ 
     396        var searchForm = document.searchForm; 
     397        var resultView = searchForm.view.value; 
     398        var    lang = searchForm.lang.value; 
     399        var expression = searchForm.expression.value; 
     400 
     401        if (expression == ""){ 
     402            return false; 
     403        } 
     404 
     405        if (searchForm.engine.length == null || searchForm.engine.length == 1 ){ 
     406            metaengine = searchForm.engine.value; 
     407        }else{ 
     408            for (i = 0; i < searchForm.engine.length; i++) { 
     409                if (searchForm.engine[i].checked == true){ 
     410                    metaengine = searchForm.engine[i].value; 
     411                    break; 
     412                } 
     413            } 
     414        } 
     415 
     416        if (metaengine === "metaiah"){ 
     417            expression = insertDefaultOperator(expression); 
     418        } 
     419 
     420        if (metaengine === "iahx"){ 
     421            searchForm.action = "/apps/iahx/"; 
     422            return true; 
     423        } 
     424 
     425        if (resultView == 'BOX'){ 
     426            // inicializing XMLHttpRequest 
     427            httpInit(); 
     428            var url = "../" + metaengine + "/searchAjax.php?expression=" + escape(expression) + "&lang=" + lang; 
     429 
     430               xmlHttp.open("POST", url, true); 
     431            xmlHttp.onreadystatechange = updatePage; 
     432 
     433               xmlHttp.send(''); 
     434            return false; 
     435        }else{ 
     436            searchForm.action = "../" + metaengine + "/search.php"; 
     437        } 
     438        return true; 
     439    } 
     440    </script> 
     441 
     442 
     443    <form method="post" action="<?php echo $url?>" name="searchForm"> 
     444        <input type="text" onblur="clearDefault('s', 'expression midium defaultValue'); this.value= (this.value=='')? 'Entre uma ou mais palavras' : this.value" onfocus="clearDefault('s', 'expression midium'); this.value= (this.value=='Entre uma ou mais palavras')? '' : this.value" value="Entre uma ou mais palavras" class="expression midium defaultValue" name="q" id="s" size="40"> 
     445        <select class="inputText" name="where"> 
     446          <option value="ALL">Todas as fontes</option> 
     447          <option value="ORG">Regional</option> 
     448          <option value="ARG">Argentina</option> 
     449          <option value="SCL">Brasil</option> 
     450          <option value="CHL">Chile</option> 
     451          <option value="CUB">Cuba</option> 
     452          <option value="ESP">Espanha</option> 
     453          <option value="MEX">México</option> 
     454          <option value="PRT">Portugal</option> 
     455          <option value="VEN">Venezuela</option> 
     456          <option value="SPA">Saúde Pública</option> 
     457          <option value="SSS">Social Sciences</option> 
     458        </select> 
     459        <input type="submit" value="pesquisar" name="go" id="submit"> 
     460      </form> 
     461 
     462 
     463    <?php 
     464 
     465    # After the widget 
     466    echo $after_widget; 
     467  } 
     468 
     469  /** 
     470   * Saves the widgets settings. 
     471   * 
     472   */ 
     473  function update($new_instance, $old_instance) { 
     474    $instance = $old_instance; 
     475    $instance['title'] = strip_tags(stripslashes($new_instance['title'])); 
     476    $instance['where'] = strip_tags(stripslashes($new_instance['where'])); 
     477    $instance['url'] = strip_tags(stripslashes($new_instance['url'])); 
     478    $instance['hide-title'] = !empty($new_instance['hide-title']) ? 1 : 0; 
     479 
     480    return $instance; 
     481  } 
     482 
     483  /** 
     484   * Creates the edit form for the widget. 
     485   * 
     486   */ 
     487  function form($instance) { 
     488 
     489    //Defaults 
     490    $instance = wp_parse_args( (array) $instance, array('title'=>'SciELO Search', 'where'=>'scielo', 'url'=>'url', 'hide-title' => false) ); 
     491 
     492    $title = htmlspecialchars($instance['title']); 
     493    $where = htmlspecialchars($instance['where']); 
     494    $url = htmlspecialchars($instance['url']); 
     495    $hide_title = isset($instance['hide-title']) ? (bool) $instance['hide-title'] :false; 
     496 
     497    echo '<p><label for="' . $this->get_field_name('title') . '">' . __('Title:') . ' <input style="width: 240px;" id="' . $this->get_field_id('title') . '" name="' . $this->get_field_name('title') . '" type="text" value="' . $title . '" /></label></p>'; 
     498 
     499    echo '<p><label for="' . $this->get_field_name('url') . '">' . __('URL:') . ' <input style="width: 270px;" id="' . $this->get_field_id('url') . '" name="' . $this->get_field_name('url') . '" type="text" value="' . $url . '" /></label></p>'; 
     500    ?> 
     501     
     502    <p><label><?php _e('Hide Title:');?></label><input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id('hide-title'); ?>" name="<?php echo $this->get_field_name('hide-title'); ?>"<?php checked( $hide_title ); ?> /> 
     503 
     504  <?php 
     505  } 
     506 
     507}// END class 
     508 
     509/** 
     510 * Register Hello World widget. 
     511 * 
     512 * Calls 'widgets_init' action after the Hello World widget has been registered. 
     513 */ 
     514function ScieloSearch() { 
     515  register_widget('ScieloSearch'); 
     516} 
     517add_action('widgets_init', 'ScieloSearch'); 
    345518?>