|

Understanding and Applying Polymorphism in PHP

In object oriented programming, polymorphism is a powerful and fundamental tool. It can be used to create a more organic flow in your application. This tutorial will describe the general concept of polymorphism, and how it can easily be deployed in PHP. What is Polymorphism? Polymorphism is a long word for a very simple concept. Polymorphism descri…

Post original

¿Por qué usar Drupal o Joomla si se puede usar WordPress?

Hoy tengo unas cuantas preguntas. El otro día un amigo me preguntaba qué usar para hacer la web de un cliente que le pedía entre otras cosas un foro, blog, eventos, … Mi primer pensamiento fue para Drupal, pero hay un plugin para WordPress que te permite un foro, hay otro para eventos, … Total, que le di unas cuantas vueltas al asunto de hacer webs y pensé que normalmente la gente piensa en WP únicamente para blogs y poca cosa más, pero creo que actualmente se puede usar para la mayoría de las webs que se hacen. Hay que pensar que la mayoría de las webs tienen pocas funcionalidades.

Por eso me pregunto, ¿para que usar Joomla o Drupal? Sinceramente no me gusta nada Joomla, y aunque Drupal es bastante bueno, desarrollar para WordPress me parece más sencillo, me gustan los hooks y la facilidad de los plugins.

¿Qué opináis vosotros?

Añadir estilos y scripts a la administración de plugins en WordPress

Cuando estamos desarrollando un plugin para WordPress y queremos que la administración del plugin tenga estilos y scripts propios, ya sea para darle cierta interactividad o diseño, o bien podremos incluir los estilos o librerías a pelo en la página del plugin, o bien podremos hacer que WordPress añada lo estilos y los scripts en el head del HTML. Para realizar esto, deberemos utilizar las acciones admin_print_styles y admin_print_scripts:

add_action('admin_print_styles', 'incluir_css');
add_action('admin_print_scripts', 'incluir_script');

function incluir_css() {
  echo '';
}

function incluir_script() {
  echo '';
}

Así de sencillo.

|

PHPBuilder.com: Downloading and Parsing Gmail Messages in PHP

New on PHPBuilder.com today there’s a tutorial showing you how to download and parse messages from Google Mail. In their case it’s grabbing and parsing submissions from a form. Some friends of mine publish a literary journal that accepts submissions via email. At their request I wrote a script to download messages from the journal’s Gmail account a …

Post original

Usar Solr desde PHP

Solr es un servidor de búsquedas basado en Lucene que nos puede venir muy bien cuando nuestro proyecto web necesite un motor de búsqueda en condiciones, siendo una alternativa a Sphinx. Aunque está basado en Java, existe una librería que permite trabajar con ella, otra posibilidad sería utilizar Zend Search, ya que usa el formato de Lucene, aunque en una versión anterior a la que utiliza Solr, por lo que nos encontramos con incompatibilidades.

El uso de la librería es bastante sencillo:

  require_once( 'Apache/Solr/Service.php' );
  
  // 
  // 
  // Try to connect to the named server, port, and url
  // 
  $solr = new Apache_Solr_Service( 'localhost', '8983', '/solr' );
  
  if ( ! $solr->ping() ) {
    echo 'Solr service not responding.';
    exit;
  }
  
  //
  //
  // Create two documents to represent two auto parts.
  // In practice, documents would likely be assembled from a 
  //   database query. 
  //
  $parts = array(
    'spark_plug' => array(
      'partno' => 1,
      'name' => 'Spark plug',
      'model' => array( 'Boxster', '924' ),
      'year' => array( 1999, 2000 ),
      'price' => 25.00,
      'inStock' => true,
    ),
    'windshield' => array(
      'partno' => 2,
      'name' => 'Windshield',
      'model' => '911',
      'year' => array( 1999, 2000 ),
      'price' => 15.00,
      'inStock' => false,
    )
  );
    
  $documents = array();
  
  foreach ( $parts as $item => $fields ) {
    $part = new Apache_Solr_Document();
    
    foreach ( $fields as $key => $value ) {
      if ( is_array( $value ) ) {
        foreach ( $value as $datum ) {
          $part->setMultiValue( $key, $datum );
        }
      }
      else {
        $part->$key = $value;
      }
    }
    
    $documents[] = $part;
  }
    
  //
  //
  // Load the documents into the index
  // 
  try {
    $solr->addDocuments( $documents );
    $solr->commit();
    $solr->optimize();
  }
  catch ( Exception $e ) {
    echo $e->getMessage();
  }
  
  //
  // 
  // Run some queries. Provide the raw path, a starting offset
  //   for result documents, and the maximum number of result
  //   documents to return. You can also use a fourth parameter
  //   to control how results are sorted and highlighted, 
  //   among other options.
  //
  $offset = 0;
  $limit = 10;
  
  $queries = array(
    'partno: 1 OR partno: 2',
    'model: Boxster',
    'name: plug'
  );

  foreach ( $queries as $query ) {
    $response = $solr->search( $query, $offset, $limit );
    
    if ( $response->getHttpStatus() == 200 ) { 
      // print_r( $response->getRawResponse() );
      
      if ( $response->response->numFound > 0 ) {
        echo "$query 
"; foreach ( $response->response->docs as $doc ) { echo "$doc->partno $doc->name
"; } echo '
'; } } else { echo $response->getHttpStatusMessage(); } }

También recomiendo que en el esquema de Solr añadamos el filtro de caracteres mapping-ISOLatin1Accent.txt, para que no tengamos problemas a la hora de buscar palabras acentuadas sin usar los acentos (cancion => canción).

Solr PHP Client

|

Como utilizar uploaders Flash con PHP

No soy muy amigo de Flash, no soy enemigo, pero sinceramente, prefiero hacer las cosas en HTML, CSS y Javascript, tampoco voy a entrar en la polémica HTML vs Flash. Pero sí es cierto, que subir ficheros desde la web puede ser un poco desesperante, sobre todo para aplicaciones web tipo galerías de imágenes en donde se suelen subir varios ficheros simultáneamente.

Subir ficheros mediante Flash nos aporta varias ventajas frente a el HTML normal: puedes poner filtros de archivos, tratar los ficheros previamente, subidas multiples, indicador de progreso, … Y aunque nos pese, el cliente/usuario siempre tiene la razón, y estas comodidades son muy bien valoradas por los usuarios.

El tutorial que os paso explica cómo crear el uploader Flash y como realizar la parte PHP, a mi me va a venir de perlas.

How to Use Flash for File Upload with PHP