Wordpress + gsearch widget

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Wordpress + gsearch widget

par Cyrano » 20 janv. 2007, 19:42

Pour afficher le résultat dans une nouvelle page , il doit falloir mettre quelque part un "target=blank" non ?
Non : comme ton blog est en XHTML, si tu veux garder la conformité de ton code, il va falloir utiliser une autre maniere et un gestionnaire d'évènement JavaScript :

Code : Tout sélectionner

<a href="http://url-de.ton.lien" onclick="window.open('http://url-de.ton.lien'); return false;">etc...</a>

par xenaton » 20 janv. 2007, 18:56

Merci, ca marche impeccable

Pour afficher le résultat dans une nouvelle page , il doit falloir mettre quelque part un "target=blank" non ?

PS: et désolé pour la mise en forme du message.

par Cyrano » 20 janv. 2007, 18:39

Ceci dit ta la réponse est dans ton code, il suffirait d'un petit peu de sens de l'observation :
actuellement, tu as ceci :
...onsubmit="this.q.value=\'site:'.$url_parts['host'].' \'+this.rawq.value"...
essaye donc en mettant à la place :
...onsubmit="this.q.value=this.rawq.value"...
En clair, on enlève la recherche sur le site lui-même

par Cyrano » 20 janv. 2007, 18:32

Modération :
xenaton, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé) au lieu de [quote].

Elles sont aussi disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Pour cette fois, j'ai corrigé à ta place, à l'avenir penses-y. Merci.

Wordpress + gsearch widget

par xenaton » 20 janv. 2007, 18:16

Bonjour a tous,

Tout d'abord je tient a préciser que je suis novice en PHP.
Je suis en train de mettre en place un site pour mon cybercafé grâce à Wordpress (editeur de blog).

Par défaut, il y a un petit moteur de recherche interne au site, mais moi je voulais remplacer par une recherche directe google.

Pour ce faire j'ai installé ce qu'on apelle un widget "gsearch" et qui viens se placer dans la barre latéral.


mon blog

Comme vous pouvez le voir tout est intégré de facon correct, mais le problème est que quand on tape par exemple test, il lancer la recherche avec l'url de mon blog : résultat

Voici le script. pouvez vous m'aider ? et pensez égallement qu'il soit possible d'afficher le résultat dans un nouvelle fenêtre ?

Merci d'avance...
<?php
/*
Plugin Name: Google Search widget
Description: Adds a sidebar widget to let users search your site with Google.
Author: Automattic, Inc.
Version: 1.0
Author URI: http://automattic.com
*/

// Put functions into one big function we'll call at the plugins_loaded
// action. This ensures that all required plugin functions are defined.
function widget_gsearch_init() {

    // Check for the required plugin functions. This will prevent fatal
    // errors occurring when you deactivate the dynamic-sidebar plugin.
    if ( !function_exists('register_sidebar_widget') )
        return;

    // This is the function that outputs our little Google search form.
    function widget_gsearch($args) {
        
        // $args is an array of strings that help widgets to conform to
        // the active theme: before_widget, before_title, after_widget,
        // and after_title are the array keys. Default tags: li and h2.
        extract($args);

        // Each widget can store its own options. We keep strings here.
        $options = get_option('widget_gsearch');
        $title = $options['title'];
        $buttontext = $options['buttontext'];

        // These lines generate our output. Widgets can be very complex
        // but as you can see here, they can also be very, very simple.
        echo $before_widget . $before_title . $title . $after_title;
        $url_parts = parse_url(get_bloginfo('home'));
        echo '<div style="margin-top:5px;text-align:center;"><form id="gsearch" action="http://www.google.com/search" method="get" onsubmit="this.q.value=\'site:'.$url_parts['host'].' \'+this.rawq.value"><input name="rawq" size="20" /><input type="hidden" name="q" value="" /><input value="'.$buttontext.'" name="submit" type="submit" /></form></div>';
        echo $after_widget;
    }

    // This is the function that outputs the form to let the users edit
    // the widget's title. It's an optional feature that users cry for.
    function widget_gsearch_control() {

        // Get our options and see if we're handling a form submission.
        $options = get_option('widget_gsearch');
        if ( !is_array($options) )
            $options = array('title'=>'', 'buttontext'=>__('Google Search', 'widgets'));
        if ( $_POST['gsearch-submit'] ) {

            // Remember to sanitize and format use input appropriately.
            $options['title'] = strip_tags(stripslashes($_POST['gsearch-title']));
            $options['buttontext'] = strip_tags(stripslashes($_POST['gsearch-buttontext']));
            update_option('widget_gsearch', $options);
        }

        // Be sure you format your options to be valid HTML attributes.
        $title = htmlspecialchars($options['title'], ENT_QUOTES);
        $buttontext = htmlspecialchars($options['buttontext'], ENT_QUOTES);
        
        // Here is our little form segment. Notice that we don't need a
        // complete form. This will be embedded into the existing form.
        echo '<p style="text-align:right;"><label for="gsearch-title">' . __('Title:') . ' <input style="width: 200px;" id="gsearch-title" name="gsearch-title" type="text" value="'.$title.'" /></label></p>';
        echo '<p style="text-align:right;"><label for="gsearch-buttontext">' . __('Button Text:', 'widgets') . ' <input style="width: 200px;" id="gsearch-buttontext" name="gsearch-buttontext" type="text" value="'.$buttontext.'" /></label></p>';
        echo '<input type="hidden" id="gsearch-submit" name="gsearch-submit" value="1" />';
    }
    
    // This registers our widget so it appears with the other available
    // widgets and can be dragged and dropped into any active sidebars.
    register_sidebar_widget(array('Google Search', 'widgets'), 'widget_gsearch');

    // This registers our optional widget control form. Because of this
    // our widget will have a button that reveals a 300x100 pixel form.
    register_widget_control(array('Google Search', 'widgets'), 'widget_gsearch_control', 300, 100);
}

// Run our code later in case this loads prior to any required plugins.
add_action('widgets_init', 'widget_gsearch_init');

?>
:D