title: pass parameter to the woocommerce search product
body: <p>Im trying to pass parameter from java applet page into php page, specifically in the theme-woocommerce.php . The Java page will involve the process of sending the specific keyword into the theme-woocommerce.php .</p>
  
  <p><strong>For example:</strong></p>
  
  <p>User will input the sentence <strong><em>"I want to buy Blue Jersey"</em></strong>.
  the user will click <strong><em>"Send" button</em></strong>
  The java part will process and get the keyword <strong><em>"Blue Jersey"</em></strong></p>
  
  <p>And then at the same time, <strong><em>"Blue Jersey"</em></strong> Keyword will be send
  into the php page using the http-post.</p>
  
  <p>the problem here that im facing now is that i dont really know
  how and where should i put the post array in the php page.</p>
  
  <p><em><strong>Here is the java part to pass the parameter to php page:</em></strong></p>
  
  <pre><code>try {  
  
  
  
                  String data2 = URLEncoder.encode("keyword", "UTF-8") + "=" + URLEncoder.encode(system.askquestion(instring,outstring,getkeyword)[1], "UTF-8"); 
                  String data =    data2 ;  
  
                  String inLine;  
  
                  URL u1 = new URL("http://localhost/echo.php");  
                  URLConnection uc1 = u1.openConnection();  
  
                  uc1.setDoOutput(true);  
                  OutputStreamWriter out = new OutputStreamWriter(uc1.getOutputStream());  
                  out.write(data); 
                  out.flush();  
  
                  BufferedReader in = new BufferedReader( new InputStreamReader( uc1.getInputStream() ) );  
  
                  while ((inLine = in.readLine()) != null) {  
                      System.out.println(inLine);  
                  }  
  
                  in.close();  
              }  
              catch( Exception E ) {  
                  E.printStackTrace();  
              }  
          }
          return false;
      }
  </code></pre>
  
  <p><em><strong>This one is the theme-woocommerce.php code:</em></strong></p>
  
  <pre><code>&lt;form role="search" method="get" id="searchform" class="searchform" action="&lt;?php echo home_url();?&gt;"&gt;
          &lt;label class="screen-reader-text" for="s"&gt;&lt;?php _e('Search for:', 'woothemes'); ?&gt;&lt;/label&gt;
          &lt;input type="text" value="&lt;?php the_search_query(); ?&gt;" name="s" id="s"  class="field s" placeholder="&lt;?php _e('Search for products', 'woothemes'); ?&gt;" /&gt;
          &lt;input type="image" class="submit btn" name="submit" value="&lt;?php _e('Search', 'woothemes'); ?&gt;" src="&lt;?php echo get_template_directory_uri(); ?&gt;/images/ico-search.png"&gt;
          &lt;?php if ($woo_options['woo_header_search_scope'] == 'products' ) { echo '&lt;input type="hidden" name="post_type" value="product" /&gt;'; } else { echo '&lt;input type="hidden" name="post_type" value="post" /&gt;'; } ?&gt;
      &lt;/form&gt;
      &lt;div class="fix"&gt;&lt;/div&gt;
  </code></pre>
  
  <p><em><strong>Here are my Questions:</em></strong></p>
  
  <ol>
  <li>Is it possible for me to pass the parameter to theme-woocommerce.php</li>
  <li>How and where should i put <strong>$_POST["keyword"]</strong> in theme-woocommerce.php</li>
  <li><p>Is it possible for me to use the function search where the input is receive from java page.</p>
  
  <p>public boolean handleEvent(Event e)<br>
      { 
          String instring, outstring,getkeyword = null ;
          if ((( e.target instanceof TextField ) || ( e.target instanceof Button )) &amp;&amp;
                  ( e.id == Event.ACTION_EVENT )) 
          {
              instring    = questions.getText();</p>
  
  <pre><code>        outstring   = new String();
          if ( instring.length() &gt; 0 ) {
              answer.appendText("\nYou: " + instring + "\n" );
              answer.appendText( "Faris: " + system.askquestion(instring,outstring,getkeyword) [0] + "\n" );
  
          questions.setText(" ");
      }
       if ( e.target instanceof Button ) {
           questions.requestFocus();
          }
  
       String truee = URLEncoder.encode(system.askquestion(instring , outstring, getkeyword)[1], "UTF-8");
       String formURL = "http://localhost/echo.php"; // this should be whatever home_url() in PHP returns
       URL url = new URL(formURL + "?s=" + truee); // s because there is &lt;input ... name="s"...&gt; in the form
       InputStream inputStream = url.openStream();
       try {
           // ... process the returned response
       } finally {
           inputStream.close();
       }
  </code></pre></li>
  </ol>
  
  <p><em><strong>This is the whole java Coding</em></strong></p>
  
  <pre><code>import java.applet.*;
  import java.awt.*;
  import java.awt.event.*;
  import java.io.BufferedReader;
  import java.io.DataInputStream;
  import java.io.FileInputStream;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.io.OutputStreamWriter;
  import java.net.*;
  import java.io.*;
  
  
  import javax.swing.JPanel;
  
  
  
    public class VirtualAssistant extends Applet   {
  //Declare the variables
      Image poster;
      Button askButton;
      TextField questions;
      TextArea answer;
      String newline;
      boolean     inited      = false;
  
      Responder   system;
  
  
  
  
  
  
  
      String      responderfile    = new String( "VirtualAssistant.dat" );
  
  
  
      public void init(){
           if ( !inited ) {
  
  
  
  
                  try {
                      system  = new Responder( getDocumentBase(), responderfile );
                  } catch ( IOException e ) {
                      System.out.println( "Can't open response file [" +
                          responderfile + "]" );
                      e.printStackTrace();
                  }
  
  
  
                  setSize(330,500);
          //Tell the applet not to use a layout manager. 
          setLayout(null);
  
          //Get image file
          poster=getImage(getDocumentBase(), "avatar.jpg");
  
  
          //create an object for textfield and button
          this.questions = new TextField(300);
  
          this.answer = new TextArea("Faris: I'm the Virtual Assistant. How can I help you?");
          answer.setEditable( false );
  
          this.askButton = new Button("Ask Me");
  
  
  
          //this.answerBox = new text(20);
  
           //add the button to the layout
           this.add(questions);
           this.add(answer);
           this.add(askButton);
  
           //Position of TextField and Button
           questions.setBounds(20,270,240,25); 
           answer.setBounds(20,300,290,200);
           askButton.setBounds(260,270,50,25); 
  
  
           /*RespondsQuestions = new TextArea( "Welcome to Dialogue Based Train Information System. How may I help you?\n", 20, 150 );
           RespondsQuestions.setEditable( true );*/
  
           //
           //askButton.addActionListener(this);
           questions.requestFocus();
  
              inited  = true;
           }
      }
  
      public void paint (Graphics g){
          Font font = new Font("Arial", Font.BOLD, 12);
           int height = font.getSize();
  
              g.setFont(font);
  
  
          //set image image width and height
          int imagewidth = 250;
          int imageheight = 250;
  
          //Positioning text and image
          g.drawImage(poster,15,30,imagewidth,imageheight,this);
          g.drawString("How Can I Help You?",180,130);
          g.drawString("Chatting with Virtual Assistant",60,20);
  
          //g.drawString(AskQuestions.getText(),20,100); 
      }
  
  
  
      public boolean handleEvent(Event e)  
      { 
          String instring, outstring,getkeyword = null ;
          if ((( e.target instanceof TextField ) || ( e.target instanceof Button )) &amp;&amp;
                  ( e.id == Event.ACTION_EVENT )) 
          {
              instring    = questions.getText();
  
              outstring   = new String();
              if ( instring.length() &gt; 0 ) {
                  answer.appendText("\nYou: " + instring + "\n" );
                  answer.appendText( "Faris: " + system.askquestion(instring,outstring,getkeyword) [0] + "\n" );
  
              questions.setText(" ");
          }
           if ( e.target instanceof Button ) {
               questions.requestFocus();
              }
           try {  
  
  
                  //String data1 = URLEncoder.encode("answer", "UTF-8") + "=" + URLEncoder.encode(system.askquestion(instring,outstring,getkeyword)[0], "UTF-8");  
                  String encodedKW = URLEncoder.encode("keyword", "UTF-8") + "=" + URLEncoder.encode(system.askquestion(instring,outstring,getkeyword)[1], "UTF-8"); 
                  String keywords;
                  String data =   encodedKW ;  
  
                  String inLine;  
  
                  URL u1 = new URL("http://localhost/echo.php");
                  //URL u1 = new URL("http://smartjersionline.owhbisnes.com/wp-content/plugins/woocommerce/woocommerce-template.php" + "?s=" + encodedKW );  
                  URLConnection uc1 = u1.openConnection();  
  
                  uc1.setDoOutput(true);  
                  OutputStreamWriter out = new OutputStreamWriter(uc1.getOutputStream());  
                  out.write(data); 
                  out.flush();  
  
                  BufferedReader in = new BufferedReader( new InputStreamReader( uc1.getInputStream() ) );  
  
                  while ((inLine = in.readLine()) != null) {  
                      System.out.println(inLine);  
                  }  
  
                  in.close();  
              }  
              catch( Exception E ) {  
                  E.printStackTrace();  
              }  
          }
  
  
          return false;
      }
  
  
  
  
  
  
  
  
  
      public static void main( String args[] ) {
          Frame f         = new Frame( "Virtual Assistant/Application" );
          VirtualAssistant session   = new VirtualAssistant();
  
          session.init();
  
  
  
  
  
  
  
  
      }
  
  
      class Responder {
  
  
  
          String[] replies    = new String[ 600 ];
          String[] keywords   = new String[ 400 ];
          String  previous    = new String();         // previous question
          int keyword;                                // index into keyword array
          int numkeys;                                // total number of keys read in
          int maxkey          = 0;                    // number of keywords
          int minreply        = 0;                    // first reply for current keyword.
          int maxreply        = 0;                    // last reply for current keyword
  
  
  
  
  
          int[] first         = new int[ 400 ];       // first reply for keyword number in subscript.
          int[] last          = new int[ 400 ];       // last reply   "     "      "     "     "    .
          int[] offset        = new int[ 400 ];       // offset from first reply for each keyword.
  
  
  
  
          String  trace       = new String();
  
          Responder( URL baseURL, String respfile ) throws IOException {
              InputStream     file;
              DataInputStream dis;
              String          line;
              int             numkeys;
              boolean         isreply = false;
  
              file    = ( new URL( baseURL, respfile )).openStream();
              dis     = new DataInputStream( file );
  
              numkeys = 0;
              while (( line = dis.readLine()) != null ) {
                  line = line.trim();
                  if ( !( line.startsWith( "//" )) &amp;&amp; ( line.length() != 0 )) {
  
  
  
                      if ( line.startsWith( "!" )) {
                          isreply = true;
                      } else if ( line.startsWith( "." )) {
  
                          isreply = false;
  
  
                          for ( keyword = ( maxkey - numkeys ); keyword &lt; maxkey; keyword++ ) {
                              first[ keyword ]    = minreply;
                              last[ keyword ]     = maxreply - 1;
                          }
                          numkeys     = 0;                        // reset new key count
                          minreply    = maxreply;                 // point at next slot
                      } else {                                    // store the line
  
                          if ( isreply ) {
                              replies[ maxreply++ ]   = line;
                          } else {
                              keywords[ maxkey++ ]    = " " + line + " ";
                              numkeys++;
                          }
                      }
                  }
              }
          }
  
  
  
          public String[] askquestion( String question, String answer,String returnkeyword) {
              String temp         = new String();
              String remains      = new String();     // remainder of question
              String NOKEYFOUND   = new String( " NOKEYFOUND " );
              int pos;
              int i;
              Character curchar;
              int test;
              boolean addQMark    = false;
  
              question    = question.toUpperCase();
              for ( i = 0; i &lt; question.length(); ++i ) {
                  curchar = new Character( question.charAt( i ));
                  test    = curchar.charValue();
                  if ((( test &gt;= 'A' ) &amp;&amp; ( test &lt;= 'Z' )) ||
                      (( test &gt;= '0' ) &amp;&amp; ( test &lt;= '9' )) ||
                      ( test == ' ' )) {
  
                      temp    = temp + curchar;
                  }
              }
              temp    = " " + temp + " ";
  
  
  
  
  
              for ( i = 0, pos = 0, keyword = 0; i &lt; maxkey; i++ ) {
                  if (( pos = temp.indexOf( keywords[ i ] )) != -1 ) {
                      keyword = i;
  
                      if (( keyword &lt; maxkey ) &amp;&amp;
                          ( keywords[ keyword ] != NOKEYFOUND )) {
                          remains = temp.substring( pos - 1 + keywords[ i ].length());
                      } else {
                          remains = "";       // ???
                      }
                      break;
                  }
              }
              if ( keyword == 0 ) {       // find NOKEYFOUND set
                  for ( i = 0; i &lt; maxkey; i++ ) {
                      if ( keywords[ i ].equals( NOKEYFOUND )) {
                          keyword = i;
                          break;
                      }
                  }
                  remains = "";
              }
  
  
  
                  if (keywords[keyword].equals(  " BLUE JERSEY " ))
                      returnkeyword = keywords[keyword];
                  else if (keywords[keyword].equals(  " RED JERSEY " ))
                      returnkeyword = keywords[keyword];
                  else if (keywords[keyword].equals(  " WHITE JERSEY " ))
                      returnkeyword = keywords[keyword];
  
  
  
  
  
  
  
  
  
  
  
  
  
                 // now get reply using the keyword number
  
              answer  = replies[ first[ keyword ] + offset[ keyword ]];
  
  
  
  
  
  
  
              offset[ keyword ]++;
              if ( offset[ keyword ] + first[ keyword ] &gt; last[ keyword ] ) {
                  offset[ keyword ] = 0;
              }
  
  
  
              for ( i = 0; i &lt; maxkey; i++ ) {
                  if ( first[ i ] == first[ keyword ] ) {
                      offset[ i ] = offset[ keyword ];
                  }
              }
  
              // return the answer
  
              return new String[]{answer,returnkeyword};
  
          }
          //return new String[]{answer,returnkeyword};
      }
  
  
         }
  </code></pre>
  
  <p><em><strong>This is the whole theme-woocommerce.php</em></strong></p>
  
  <pre><code>&lt;?php
  /*-----------------------------------------------------------------------------------*/
  /* Any WooCommerce overrides and functions can be found here
  /*-----------------------------------------------------------------------------------*/
  
  // Check WooCommerce is installed first
  add_action('wp_head', 'woostore_check_environment');
  
  function woostore_check_environment() {
   if (!class_exists('woocommerce')) wp_die(__('WooCommerce must be installed',         'woothemes')); 
  }
  
    // Add html5 shim
   add_action('wp_head', 'wootique_html5_shim');
   function wootique_html5_shim() {
   ?&gt;
   &lt;!-- Load Google HTML5 shim to provide support for &lt;IE9 --&gt;
   &lt;!--[if lt IE 9]&gt;
   &lt;script src="https://html5shim.googlecode.com/svn/trunk/html5.js"&gt;&lt;/script&gt;
   &lt;![endif]--&gt;
  &lt;?php
   }
  
   // Disable WooCommerce styles 
   define('WOOCOMMERCE_USE_CSS', false);
  
   /*-----------------------------------------------------------------------------------  */
  /* Header
     /*-----------------------------------------------------------------------------------*/
  
  //Parameter plugin
  global $wp_query;
  
  if (isset($wp_query-&gt;query_vars['keyword']))
  {
  print $wp_query-&gt;query_vars['keyword'];
      }
  
  
  
   // Hook in the search
   add_action('woo_nav_before', 'wootique_header_search');
    function wootique_header_search() {
  global $woo_options;
  ?&gt;
  
  &lt;div id="search-top"&gt;
          &lt;form role="search" method="get" id="searchform" action="&lt;?php echo       esc_url( home_url( '/'  ) ); ?&gt;"&gt;
          &lt;div&gt;
              &lt;label class="screen-reader-text" for="s"&gt;&lt;?php _e( 'Search    for:', 'woocommerce' ); ?&gt;&lt;/label&gt;
              &lt;input type="text" value="&lt;?php echo get_search_query(); ?&gt;" name="s" id="s" placeholder="&lt;?php _e( 'Search for products', 'woocommerce' ); ?&gt;" /&gt;
              &lt;input type="submit" id="searchsubmit" value="query_vars["keyword"]" /&gt;
              &lt;input type="hidden" name="post_type" value="product" /&gt;
          &lt;/div&gt;
      &lt;/form&gt;
  
  
  &lt;/div&gt;&lt;!-- /.search-top --&gt;
  &lt;?php
      }
  
     add_action('woo_nav_after', 'wootique_cart_button', 10);
     function wootique_cart_button() {
     echo current(woostore_header_add_to_cart_fragment());
     }
  
     add_action('woo_nav_after', 'wootique_checkout_button', 20);
     function wootique_checkout_button() {
     global $woocommerce;
     ?&gt;
     &lt;ul id="account-nav" class="nav fr"&gt;
  
    &lt;?php
     if (sizeof($woocommerce-&gt;cart-&gt;cart_contents)&gt;0) :
      echo '&lt;li class="checkout"&gt;&lt;a href="'.$woocommerce-&gt;cart-   &gt;get_checkout_url().'"&gt;'.__('Checkout','woothemes').'&lt;/a&gt;&lt;/li&gt;';
  endif; 
  ?&gt;
  
     &lt;/ul&gt;
    &lt;?php
    }
  
  // Remove WC sidebar
  remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10);
  
  // Adjust markup on all WooCommerce pages
                                 remove_action( 'woocommerce_before_main_content',        'woocommerce_output_content_wrapper', 10);
    remove_action( 'woocommerce_after_main_content',   'woocommerce_output_content_wrapper_end', 10);
  
   add_action('woocommerce_before_main_content', 'woostore_before_content', 10);
   add_action('woocommerce_after_main_content', 'woostore_after_content', 20);
  
     // Fix the layout etc
       function woostore_before_content() {
  ?&gt;
  &lt;!-- #content Starts --&gt;
  &lt;?php woo_content_before(); ?&gt;
     &lt;div id="content" class="col-full"&gt;
  
      &lt;!-- #main Starts --&gt;
      &lt;?php woo_main_before(); ?&gt;
      &lt;div id="main" class="col-left"&gt;
       &lt;?php
      }
      function woostore_after_content() {
  ?&gt;    
          &lt;?php if ( is_search() &amp;&amp; is_post_type_archive() ) { add_filter(        'woo_pagination_args', 'woocommerceframework_add_search_fragment', 10 ); } ?&gt;
      &lt;?php woo_pagenav(); ?&gt;
      &lt;/div&gt;&lt;!-- /#main --&gt;
             &lt;?php woo_main_after(); ?&gt;
  
          &lt;/div&gt;&lt;!-- /#content --&gt;
      &lt;?php woo_content_after(); ?&gt;
         &lt;?php
         }
  
      function woocommerceframework_add_search_fragment ( $settings ) {
  $settings['add_fragment'] = '&amp;post_type=product';
  return $settings;
       } // End woocommerceframework_add_search_fragment()
  
      // Add the WC sidebar in the right place
      add_action( 'woo_main_after', 'woocommerce_get_sidebar', 10);
  
    // Remove breadcrumb (we're using the WooFramework default breadcrumb)
    remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0);
    add_action( 'woocommerce_before_main_content', 'woostore_breadcrumb', 01, 0);
  
     function woostore_breadcrumb() {
  global  $woo_options;
  if ( $woo_options[ 'woo_breadcrumbs_show' ] == 'true' ) {
      woo_breadcrumbs();
  }
      }
  
     // Remove pagination (we're using the WooFramework default pagination)
     remove_action( 'woocommerce_pagination', 'woocommerce_pagination', 10 );
  
    // Adjust the star rating in the sidebar
    add_filter('woocommerce_star_rating_size_sidebar', 'woostore_star_sidebar');
  
    function woostore_star_sidebar() {
  return 12;
     }
  
    // Adjust the star rating in the recent reviews
    add_filter('woocommerce_star_rating_size_recent_reviews', 'woostore_star_reviews');
  
    function woostore_star_reviews() {
  return 12;
    }
  
    // Change columns in product loop to 3
    add_filter('loop_shop_columns', 'woostore_loop_columns');
  
    function woostore_loop_columns() {
  return 3;
    }
  
     // Change columns in related products output to 3
  
       remove_action( 'woocommerce_after_single_product_summary',     'woocommerce_output_related_products', 20);
      add_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);
  
    function woocommerce_output_related_products() {
     woocommerce_related_products(3,3); // 3 products, 3 columns
    }
  
     // Display 12 products per page
    add_filter('loop_shop_per_page', create_function('$cols', 'return 12;'));
  
   // Move the price below the excerpt on the single product page
    remove_action( 'woocommerce_template_single_summary',     'woocommerce_template_single_price', 10, 2);
     add_action( 'woocommerce_template_single_summary', 'woocommerce_template_single_price', 25, 2);
  
         // Handle cart in header fragment for ajax add to cart
           add_filter('add_to_cart_fragments', 'woostore_header_add_to_cart_fragment');
  
             function woostore_header_add_to_cart_fragment(  ) {
             global $woocommerce;
  
  $fragments['#btn-cart'] = '
  &lt;div id="btn-cart" class="fr"&gt;
      &lt;a href="'.$woocommerce-&gt;cart-&gt;get_cart_url().'" title="'.__('View your shopping   cart', 'woothemes').'"&gt;
          &lt;span&gt;'.sprintf(_n('%d item &amp;ndash; ', '%d items &amp;ndash; ',      $woocommerce-&gt;cart-&gt;get_cart_contents_count(), 'woothemes'), $woocommerce-&gt;cart- &gt;get_cart_contents_count()) . $woocommerce-&gt;cart-&gt;get_cart_total() . '&lt;/span&gt;
      &lt;/a&gt;
  &lt;/div&gt;
  ';
  
  return $fragments;
  
             }
  </code></pre>
  
  <p><em><strong></em>*Edited code theme-woocommerce.php***</strong> (Suggested by miffet)</p>
  
  <pre><code>&lt;head profile="http://gmpg.org/xfn/11"&gt;
  &lt;script type="text/javascript"&gt;
  this.name = "smartjersionline";
  &lt;/script&gt; 
  &lt;/head&gt;
  
  &lt;?php
  /*-----------------------------------------------------------------------------------*/
  /* Any WooCommerce overrides and functions can be found here
  /*-----------------------------------------------------------------------------------*/
  
  // Check WooCommerce is installed first
  add_action('wp_head', 'woostore_check_environment');
  
     function woostore_check_environment() {
   if (!class_exists('woocommerce')) wp_die(__('WooCommerce must be installed',  'woothemes')); 
  </code></pre>
  
  <p>}</p>
  
  <p><em><strong>Edited Code of java page</em></strong> (Suggested by miffet)</p>
  
  <pre><code>try {  
  
  
                  //String data1 = URLEncoder.encode("answer", "UTF-8") + "=" + URLEncoder.encode(system.askquestion(instring,outstring,getkeyword)[0], "UTF-8");
  
                  //String encodedKW = URLEncoder.encode("keyword", "UTF-8") + "=" + URLEncoder.encode(system.askquestion(instring,outstring,getkeyword)[1], "UTF-8"); 
                  //String keywords;
                  //String data =   encodedKW ;  
  
                  String encodedKW = URLEncoder.encode(system.askquestion(instring , outstring, getkeyword)[1], "UTF-8");
                  String formURL = "http://smartjersionline.owhbisnes.com/wp-content/plugins/woocommerce/woocommerce-template.php"; // this should be whatever home_url() in PHP returns
                  URL url = new URL(formURL + "?s=" + encodedKW + "&amp;post_type=product"); // s because there is &lt;input name="s"...&gt; in the form
                  getAppletContext().showDocument(url, "smartjersionline"); // the second argument is target window name
  
                  String inLine;  
  
                  URL u1 = new URL("http://localhost/echo.php");
                  //URL u1 = new URL("http://smartjersionline.owhbisnes.com/wp-content/plugins/woocommerce/woocommerce-template.php" + "?s=" + encodedKW );  
                  URLConnection uc1 = u1.openConnection();  
  
                  uc1.setDoOutput(true);  
                  OutputStreamWriter out = new OutputStreamWriter(uc1.getOutputStream());  
                  out.write(encodedKW); 
                  out.flush();  
  
                  BufferedReader in = new BufferedReader( new InputStreamReader( uc1.getInputStream() ) );  
  
                  while ((inLine = in.readLine()) != null) {  
                      System.out.println(inLine);  
                  }  
  
                  in.close();  
              }  
  </code></pre>