<table border=1> <tr><th colspan="3">Ventas</th> </tr> <tr><td>Empleado</td><td>Enero</td><td>Febrero</td></tr> <tr><td>Ana</td><td>10</td><td>10</td></tr> <tr><td>Rosa</td><td>20</td><td>10</td></tr> </table> <table border="1"> <tr> <th colspan="3">Ventas</th> </tr> <tr> <td rowspan="2">BCN</td> <td>Ana</td> <td>10</td> </tr> <tr> <td>Rosa</td> <td>20</td> </tr> <tr> <td rowspan="2">GIR</td> <td>Juan</td> <td>30</td> </tr> <tr> <td>Eva</td> <td>40</td> </tr> </table>
Autor: Juan Pablo Fuentes
Formador de programación y bases de datos
Primer ejercicio html
<!DOCTYPE html> <html> <head> <title></title> <meta charset="UTF-8"> <style> *{margin:0;} img { } </style> </head> <body> <h1 >Clique en la imagen para ir a la página</h1> <p>En un <u>lugar</u> de la <strong>mancha</strong> de cuyo <mark>nombre</mark> no <small>quiero</small> <del>acordarme</del> no ha mucho tiempo que vivía un hidalgo de los de <em>lanza</em> en <em><strong>astillero</strong></em> rocín <ins>flaco</ins> adarga <sup>antigua</sup> y <sub>galgo</sub> corredor.</p> <a href="http://google.es"><img src="mascota.jpg" alt="perrito mono" width="200"></a> <a href="http://google.es"><img src="perro2.jpg" alt="perrito mono" width="200"></a> <a href="http://google.es"><img src="gato.jpg" alt="perrito mono" width="200"></a> </body> </html>
Exámenes recuperación
Examen tercer módulo
Plugin wordpress con todo
<?php /* Plugin Name: Plugin propio Plugin URI: http://intelisen.com/plugins Description: Un plugin para probar cosas Author: Intelisen Version: 1 Author URI: http://intelisen.com */ add_filter('the_content', 'cambiar_contenido'); function cambiar_contenido($contenido) { return $contenido . " ¡Mega artículo!"; } add_filter('the_title', 'cambia_titulo'); function cambia_titulo($contenido) { return "###==>" . $contenido; } add_action('admin_notices', 'saludo'); function saludo() { echo "ola k ase???"; } add_action('wp_head', 'ponjquery'); function ponjquery() { echo '<El código que pongamos aquí se pintará en la cabecera (head) del wordpress>' . '<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>'; } function google_shortcode() { return '<input onclick="location.href=\'http://google.es\'" type="button" value="Ir a google" />'; } add_shortcode('google_atajo', 'google_shortcode'); function refran() { $refranes = ["No por mucho madrugar amanece más temprano", "A quien madruga dios le ayuda", "Más vale pájaro en mano que ciento volando"]; return "<p>" . $refranes[rand(0, count($refranes) - 1)] . "</p>"; } add_shortcode('refran', 'refran'); function imagenes() { $query_images_args = array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'post_status' => 'inherit', 'posts_per_page' => - 1, ); $query_images = new WP_Query($query_images_args); $imagen = $query_images->posts[rand(0, count($query_images->posts) - 1)]; return '<img width=300 height=300 src="' . $imagen->guid . '"/>'; } add_shortcode('imagenes', 'imagenes'); //Necesarios para crear un menú y registrar los campos add_action('admin_menu', 'destacar_menu'); add_action('admin_init', 'destacar_settings'); //Registra el campo que vamos a guardar function destacar_settings() { register_setting('destacar-group', 'destacar_palabras'); register_setting('destacar-group', 'destacar_color'); } //Son las opciones que tendrá nuestro menú. Los parámetros son: título de la página, título del menú, quien puede acceder, url de esta página y función a la que se llama function destacar_menu() { add_options_page('Opciones destacar', 'Destacar', 'manage_options', 'destacar-identifier', 'destacar_options'); } //Formulario que se mostrará cuando se seleccione el menú function destacar_options() { if (!current_user_can('manage_options')) { wp_die('No tiene permiso.'); } ?> <div> <?php screen_icon(); ?> <h2>Opciones destacar</h2> <form method="post" action="options.php"> <?php settings_fields('destacar-group'); do_settings_fields('destacar-group', ''); ?> <p>Introduzca las palabras a destacar separadas por comas</p> <input size="70" type="text" name="destacar_palabras" value="<?php echo get_option('destacar_palabras'); ?>" /> <p>Introduzca el color que quiere usar para destacar</p> <input size="70" type="text" name="destacar_color" value="<?php echo get_option('destacar_color'); ?>" /> <?php submit_button(); ?> </form> </div> <?php } //Las dos funciones siguientes y el add_filter son el código del plugin function destacar_get_palabras() { return explode(",", get_option("destacar_palabras")); } function destacar_filtro($contenido) { $palabras = destacar_get_palabras(); foreach ($palabras as $palabra) { $palabra = trim($palabra); $contenido = str_ireplace($palabra, "<span style='background-color:" . get_option("destacar_color") . "'>" . $palabra . "</span>", $contenido); } return $contenido; } add_filter('the_content', 'destacar_filtro'); class EntradasWidget extends WP_Widget { function EntradasWidget() { $widget_ops = array('classname' => 'EntradasWidget', 'description' => 'Muestra entrada aleatoria'); $this->WP_Widget('EntradasWidget', 'Entrada aleatoria con thumbnail', $widget_ops); } function form($instance) { $instance = wp_parse_args((array) $instance, array('title' => '')); $title = $instance['title']; ?> <p><label for="<?php echo $this->get_field_id('title'); ?>"><?= _e('Title') ?>: <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo attribute_escape($title); ?>" /></label></p> <?php } function update($new_instance, $old_instance) { $instance = $old_instance; $instance['title'] = $new_instance['title']; return $instance; } function widget($args, $instance) { extract($args, EXTR_SKIP); echo $before_widget; $title = empty($instance['title']) ? ' ' : apply_filters('widget_title', $instance['title']); if (!empty($title)) echo $before_title . $title . $after_title;; // CóDIGO DEL WIDGET $posts = get_posts('orderby=rand;numberposts=1'); $post = $posts[0]; ?><a href="<?= get_permalink($post); ?>" title="<?= $post->post_title; ?>"><?= $post->post_title; ?></a> <?php echo $after_widget; } } add_action('widgets_init', create_function('', 'return register_widget("EntradasWidget");'));
Ejemplos shortcodes
Pone un refrán aleatorio:
function refran() { $refranes = ["No por mucho madrugar amanece más temprano", "A quien madruga dios le ayuda", "Más vale pájaro en mano que ciento volando"]; return "<p>" . $refranes[rand(0, count($refranes) - 1)] . "</p>"; } add_shortcode('refran', 'refran');
Pone una imagen aleatoria de la biblioteca de medios:
function imagenes() { $query_images_args = array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'post_status' => 'inherit', 'posts_per_page' => - 1, ); $query_images = new WP_Query($query_images_args); $imagen = $query_images->posts[rand(0, count($query_images->posts) - 1)]; return '<img width=300 height=300 src="' . $imagen->guid . '"/>'; } add_shortcode('imagenes', 'imagenes');
Plantillas de curriculum gratuitas
30 temas para usar woocommerce
sakila.php
<?php class Sakila { private $server = "localhost"; private $user = "root"; private $password = ""; private $db = "sakila"; public $conn; function __construct() { try { $this->conn = new PDO("mysql:host=$this->server;dbname=$this->db", $this->user, $this->password); $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $this->conn->exec("SET CHARACTER SET utf8"); } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } } function pepe(){ return 3; } function getActors() { $sql = "select * from actor where 1=1"; $query = $this->conn->query($sql); return $query->fetchAll(); } function getActor($id) { $sql = "select * from actor where actor_id=$id"; $query = $this->conn->query($sql); return $query->fetch(); } /** * * @param type $actor array asociativo con los campos del actor * ejemplo: ['actor_id'=>1,'first_name'=>'Santiago','last_name'=>'Segura'] */ function updateActor($actor) { $sql = "update actor set first_name='" . $actor['first_name'] . "', last_name='" . $actor['last_name'] . "' where actor_id=" . $actor['actor_id'] . ";"; $this->conn->exec($sql); } function deleteActor($id) { $sql = "delete from actor where actor_id=$id"; $this->conn->exec($sql); } /** * Inserta un nuevo actor o devuelve el id si ya existe * @param string valor de first_name * @param string valor de last_name * @return int id */ function newActor($first_name, $last_name) { if (!empty($first_name) && !empty($last_name)) { $sql = "select * from actor where first_name=:first_name and last_name=:last_name"; $st = $this->conn->prepare($sql); $st->execute([':first_name' => $first_name, ':last_name' => $last_name]); if ($actor = $st->fetch()) { return $actor['actor_id']; } $sql = "insert into actor (first_name,last_name) values (:first_name,:last_name)"; $st = $this->conn->prepare($sql); $st->execute([':first_name' => $first_name, ':last_name' => $last_name]); return $this->conn->lastInsertId(); } else { return null; } } /** * Inserta una película en una categoría * @param int id de la categoría * @param string título de la película */ function newFilm($category_id, $film) { $this->conn->beginTransaction(); try { $sql = "insert into film(title,language_id) values (:film,1)"; $st = $this->conn->prepare($sql); $st->execute([':film' => $film]); $film_id = $this->conn->lastInsertId(); $sql = "insert into film_category(film_id,category_id) values($film_id,$category_id)"; $this->conn->exec($sql); $this->conn->commit(); } catch (PDOException $e) { echo $e->getMessage(); $this->conn->rollBack(); } } /** * Crea un select con todas las categorías */ function selectCategory() { $sql = "select * from category"; $q = $this->conn->query($sql); $categorias = $q->fetchAll(); ?> <select name="category"> <?php foreach ($categorias as $categoria) { ?> <option value="<?= $categoria['category_id'] ?>"><?= $categoria['name'] ?></option> <?php } ?> </select> <?php } }