prefix . "ficha_autor";
//Insertar código en los posts para ver la lista de autores
add_shortcode('autores-ficha', 'autor_data_shortcode');
function autor_data_shortcode($atts) {
return author_data();
}
//Insertar código en los posts para ver la lista de links
add_shortcode('autores-links', 'autor_links_shortcode');
function autor_links_shortcode($atts) {
return author_links();
}
/* Añade link a las opciones en la página de plugins
* Thanks Dion Hulse -- http://dd32.id.au/wordpress-plugins/?configure-link
*/
function author_data_filter_plugin_actions($links, $file){
static $this_plugin;
if( !$this_plugin ) $this_plugin = plugin_basename(__FILE__);
if( $file == $this_plugin ){
$settings_link = '' . __('Opciones', 'fichas') . '';
$links = array_merge( array($settings_link), $links); // before other links
}
return $links;
}
/* Añade el plugin a las Opciones de WordPress */
function author_data_add_to_menu() {
add_submenu_page('options-general.php', 'Author Data', 'Author Data', 10, __FILE__, 'author_data_settings');
add_filter('plugin_action_links', 'author_data_filter_plugin_actions', 10, 2);
}
add_action('admin_menu', 'author_data_add_to_menu');
function author_data_menu()
{
if (function_exists('add_submenu_page')) {
global $wp_version;
if (version_compare($wp_version, '2.6.5', '>'))
$objetivo = "post-new.php";
else
$objetivo = "edit.php";
add_submenu_page($objetivo, __('Fichas de autor', 'fichas'), __('Fichas de autor', 'fichas'), 10, __FILE__, 'author_data_manage');
};
add_filter('plugin_action_links', 'author_data_filter_plugin_actions', 10, 2);
}
add_action('admin_menu', 'author_data_menu');
function author_data_settings() {
if ($_POST) {
if($_POST["vnombre"] == "")
$_POST["vnombre"] = "si";
if($_POST["vfecha"] == "")
$_POST["vfecha"] = "si";
if($_POST["vlugar"] == "")
$_POST["vlugar"] = "si";
if($_POST["vweb"] == "")
$_POST["vweb"] = "si";
if($_POST["vficha"] == "")
$_POST["vficha"] = "si";
if($_POST["nomtam"] == "")
$_POST["nomtam"] = "+1";
if($_POST["nomcol"] == "")
$_POST["nomcol"] = "";
if($_POST["nomestilo"] == "")
$_POST["nomestilo"] = "";
if($_POST["parrafo"] == "")
$_POST["parrafo"] = "justify";
if($_POST["lista"] == "")
$_POST["lista"] = "ul";
update_option('vnombre', $_POST['vnombre']);
update_option('vfecha', $_POST['vfecha']);
update_option('vlugar', $_POST['vlugar']);
update_option('vweb', $_POST['vweb']);
update_option('vficha', $_POST['vficha']);
update_option('nomtam', $_POST['nomtam']);
update_option('nomestilo', $_POST['nomestilo']);
update_option('nomcol', $_POST['nomcol']);
update_option('parrafo', $_POST['parrafo']);
update_option('lista', $_POST['lista']);
}
// Get options
$vnombre = get_option('vnombre');
$vfecha = get_option('vfecha');
$vlugar = get_option('vlugar');
$vweb = get_option('vweb');
$vficha = get_option('vficha');
$nomtam = get_option('nomtam');
$nomestilo = get_option('nomestilo');
$nomcol = get_option('nomcol');
$parrafo = get_option('parrafo');
$lista = get_option('lista');
?>
0) {
$n_mensaje = 4;
};
/************************************
*
* Mensaje de confirmación de borrado
*
************************************/
if ($_POST['Gestionar'] == $borrar_tabla && $errores == 0) {
$n_mensaje = 5;
};
/*************************************
*
* Borrar una fila
*
**************************************/
if ($_POST['Gestionar'] == $confirmar_borrado && $errores == 0) {
author_data_borrar($autores);
$n_mensaje = 6;
$_POST['fecha_nac'] = '1965';
$_POST['lugar_nac'] = '';
$_POST['sitio_web'] = '';
$_POST['ficha'] = '';
$_POST['confirmar'] = 'n';
};
/************************************
*
* Actualiza la tabla
*
*************************************/
if ($_POST['Gestionar'] == $grabar_tabla && $errores == 0) {
//Obtener nombre y apellidos
$consulta_select = "SELECT usmeta.user_id, usmeta.meta_key, usmeta.meta_value as nombre, usmetaa.meta_value as apellido";
$consulta_from = " FROM $wpdb->users as usuarios, $wpdb->usermeta as usmeta, $wpdb->usermeta as usmetaa";
$consulta_where = " WHERE usuarios.user_login = '$autores' AND usuarios.ID = usmeta.user_id AND usuarios.ID = usmetaa.user_id AND usmeta.meta_key = 'first_name' AND usmetaa.meta_key ='last_name'";
$consulta = $consulta_select . $consulta_from . $consulta_where;
$nombre_ap = $wpdb->get_results($consulta);
$nombre = $nombre_ap[0]->nombre;
$apellidos = $nombre_ap[0]->apellido;
//echo '
Nombre: ' . $nombre . ' ' . $apellidos;
author_data_actualizar(0, $autores, $nombre, $apellidos, $nombre_vis, $fecha_nac, $lugar_nac, $sitio_web, $ficha);
}
/*************************************
*
* Visualiza mensaje si lo hay
*
**************************************/
if ($n_mensaje != 0) {
echo '
';
echo $mensajes[$n_mensaje];
echo '.
';}
}
/*********************************
*
* Compatabilidad html
*
**********************************/
function author_data_formatear($ficha) {
$longitud = strlen($ficha);
$ficha_aux = array ();
$j=0;
for ($i=0;$i<=$longitud;$i++) {
if (substr($ficha,$i,1) == '"') {
$ficha_aux[$j] = '&';
$j++;
$ficha_aux[$j] = 'q';
$j++;
$ficha_aux[$j] = 'u';
$j++;
$ficha_aux[$j] = 'o';
$j++;
$ficha_aux[$j] = 't';
$j++;
$ficha_aux[$j] = ';';
$j++;
}
else {
$ficha_aux[$j] = substr($ficha,$i,1);
$j++;
}
}
$ficha = implode('', $ficha_aux);
return $ficha;
}
function install_author_data(){
global $wpdb;
$tabla_ficha_autor = $wpdb->prefix . "ficha_autor";
if($wpdb->get_var("show tables like '$tabla_ficha_autor'") != $tabla_ficha_autor) {
$sql = "CREATE TABLE " . $tabla_ficha_autor . " (
ID int(5) unsigned NOT NULL auto_increment,
user_login varchar(60) NOT NULL default '',
nombre varchar(30) NOT NULL default '',
apellidos varchar(40) NOT NULL default '',
nombre_vis varchar (70) NOT NULL default '',
fecha_nac varchar(4) NOT NULL default '',
lugar_nac varchar(40) NOT NULL default '',
sitio_web varchar(100) NOT NULL default '',
ficha longtext NOT NULL default '',
PRIMARY KEY (ID, user_login) ); ";
require_once(ABSPATH . 'wp-admin/upgrade-functions.php');
dbDelta($sql);
}
}
function author_data_borrar($user_login) {
global $wpdb;
$tabla_ficha_autor = $wpdb->prefix . "ficha_autor";
$borrar = $wpdb->query("DELETE FROM " . $tabla_ficha_autor . " WHERE user_login = '$user_login'");
}
function obtener_ultimo_ID() {
global $wpdb;
$tabla_ficha_autor = $wpdb->prefix . "ficha_autor";
$consulta = "SELECT ID FROM " . $tabla_ficha_autor . " ORDER BY ID DESC";
$leer = $wpdb->get_results($consulta);
if ($leer) { $ultimo_ID = $leer[0]->ID;}
else {$ultimo_ID = 0; };
return $ultimo_ID;
}
function ver_si_existe($user_login) {
global $wpdb;
$tabla_ficha_autor = $wpdb->prefix . "ficha_autor";
$consulta = "SELECT user_login FROM " . $tabla_ficha_autor . " WHERE user_login ='$user_login'";
//echo '
Ver si existe en tabla: ' . $consulta;
return $wpdb->get_var($consulta);
}
function leer_para_visualizar($user_login) {
global $wpdb;
$tabla_ficha_autor = $wpdb->prefix . "ficha_autor";
$consulta = "SELECT * FROM " . $tabla_ficha_autor . " WHERE user_login ='$user_login'";
$devuelve = $wpdb->get_results($consulta);
//echo '
Fila actualizada: ' . $devuelve[0]->ID . ' ' . $devuelve[0]->user_login . ' ' . $devuelve[0]->fecha_nac . ' ' . $devuelve[0]->lugar_nac . ' ' . $devuelve[0]->sitio_web . ' ' . $devuelve[0]->ficha;
}
function author_data_actualizar($ID_actualizar, $user_login_actualizar, $nombre_actualizar, $apellidos_actualizar, $nombre_vis_actualizar, $fecha_nac_actualizar, $lugar_nac_actualizar, $sitio_web_actualizar, $ficha_actualizar) {
global $wpdb;
$tabla_ficha_autor = $wpdb->prefix . "ficha_autor";
$fila = ver_si_existe($user_login_actualizar);
if (!$fila){
//Obtener siguiente id
$ultimo_ID = obtener_ultimo_ID();
//Echo '
Ultimo ID en la tabla ' . $ultimo_ID;
$ID_actualizar = $ultimo_ID + 1;
$insertar = $wpdb->query("INSERT INTO " . $tabla_ficha_autor . " VALUES ($ID_actualizar, '$user_login_actualizar', '$nombre_actualizar', '$apellidos_actualizar', '$nombre_vis_actualizar', '$fecha_nac_actualizar', '$lugar_nac_actualizar', '$sitio_web_actualizar', '$ficha_actualizar')") or die("Failed Query of " . $insertar);
//echo '
Insertar: ' . $insertar;
}
else {
$actualizar = $wpdb->query("UPDATE " . $tabla_ficha_autor . " SET fecha_nac = '$fecha_nac_actualizar', lugar_nac = '$lugar_nac_actualizar', sitio_web = '$sitio_web_actualizar', ficha = '$ficha_actualizar' WHERE user_login = '$user_login_actualizar'");
/*
$actualizar = "UPDATE " . $tabla_ficha_autor . " SET fecha_nac = '$fecha_nac_actualizar', lugar_nac = '$lugar_nac_actualizar', sitio_web = '$sitio_web_actualizar', ficha = '$ficha_actualizar' WHERE user_login = '$user_login_actualizar'";
echo '
' . $actualizar;
mysql_db_query(drimar_com, $actualizar) or die("Failed Query of " . $actualizar);
*/
}
leer_para_visualizar($user_login_actualizar);
}
$vnombre = get_option('vnombre');
$vfecha = get_option('vfecha');
$vlugar = get_option('vlugar');
$vweb = get_option('vweb');
$vficha = get_option('vficha');
$nomtam = get_option('nomtam');
$nomestilo = get_option('nomestilo');
$nomcol = get_option('nomcol');
$parrafo = get_option('parrafo');
$lista = get_option('lista');
function author_data() {
global $vnombre;
global $vfecha;
global $vlugar;
global $vweb;
global $vficha;
global $nomtam;
global $nomestilo;
global $nomcol;
global $parrafo;
global $lista;
global $wpdb;
$tabla_ficha_autor = $wpdb->prefix . "ficha_autor";
$consulta = "SELECT ID, user_login, nombre, apellidos, fecha_nac, lugar_nac, sitio_web, ficha FROM " . $tabla_ficha_autor . " ORDER BY apellidos ASC, nombre ASC";
$listado = $wpdb->get_results($consulta);
if ($listado) {
if ($nomestilo == 'strong') {
$peso = 'bold';
$tipo = 'normal';
}
else {
$peso = 'normal';
$tipo = $nomestilo;
}
echo '';
foreach($listado as $fila) {
$ID = $fila->ID;
$usuario = $fila->user_login;
$nombre = $fila->nombre;
$apellidos = $fila->apellidos;
$fecha_nac = $fila->fecha_nac;
$lugar_nac = $fila->lugar_nac;
$sitio_web = $fila->sitio_web;
$ficha = $fila->ficha;
//Comprobar si tiene posts publicados
if ($usuario != 'redal') {
$consulta = "SELECT 1 FROM $wpdb->users WHERE user_login = '$usuario' AND ID IN (SELECT post_author FROM $wpdb->posts WHERE post_status = 'publish')";
$publicado = $wpdb->get_results($consulta);
}
else $publicado[0] = '1';
if ($publicado && $ficha != '') {
//Formatear nombre
if ($vnombre == "si") {
$linea_nombre = '
'. $nombre . ' ' . $apellidos . '
';
}
else {
$linea_nombre = '';
}
//Formatear fecha y lugar de nacimiento
$linea_fecha = '
';
if ($vlugar == "si") {
$linea_fecha = $linea_fecha . $lugar_nac;
}
if ($vfecha == "si") {
if ($lugar_nac != '') {
$linea_fecha = $linea_fecha . ', ' . $fecha_nac;
}
else {
$linea_fecha = $linea_fecha . $fecha_nac;
}
}
$linea_fecha = $linea_fecha . '
';
//Formatear página web
if ($vweb == "si" && $sitio_web != "") {
$linea_web = '
';
}
else {
$linea_web = '';
}
//Formatear ficha biográfica
if ($vficha == "si") {
$linea_ficha = '
' . $ficha . '
';
}
else {
$linea_ficha = '';
}
//Visualizar
echo $linea_nombre;
echo $linea_fecha;
echo $linea_web;
echo $linea_ficha;
echo '
';
}
}
};
}
function author_links() {
global $lista;
global $nomtam;
global $nomestilo;
global $nomcol;
$alfabeto = array ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ñ', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z');
global $wpdb;
$tabla_ficha_autor = $wpdb->prefix . "ficha_autor";
echo '
' . __('Los autores', 'fichas') . '
';
echo '<' . $lista . '>';
foreach ($alfabeto as $alfa) {
$letra = $alfa;
$consulta = "SELECT ID, user_login, nombre, apellidos, fecha_nac, lugar_nac, sitio_web, ficha FROM " . $tabla_ficha_autor . " WHERE substr(apellidos, 1, 1) = '" . $letra . "' ORDER BY apellidos ASC, nombre ASC";
$listado = $wpdb->get_results($consulta);
$primero = 's';
$ficha = $listado[0]->ficha;
$cabeceras = 'n';
if ($listado) {
foreach($listado as $fila) {
$ID = $fila->ID;
$usuario = $fila->user_login;
$nombre = $fila->nombre;
$apellidos = $fila->apellidos;
$sitio_web = $fila->sitio_web;
//Comprobar si tiene posts publicados
if ($usuario != 'redal') {
$consulta = "SELECT 1 FROM $wpdb->users WHERE user_login = '$usuario' AND ID IN (SELECT post_author FROM $wpdb->posts WHERE post_status = 'publish')";
$publicado = $wpdb->get_results($consulta);
}
else $publicado[0] = '1';
if (($publicado) && (substr($sitio_web, 8, 1) != ' ')) {
if ($primero == 's') {
if ($lista != 'table') {
echo '
' . $letra . '
<'. $lista . '>';
}
else {
echo '' . $letra . ' |
';
}
$primero = 'n';
$cabeceras = 's';
}
if ($lista != 'table') {
echo ''. $nombre . ' ' . $apellidos . '';
}
else {
echo '
| '. $nombre . ' ' . $apellidos . ' |
';
}
}
}
}
if ($cabeceras == 's' && $lista != 'table') {
echo ''. $lista . '>';
}
}
echo '' . $lista . '>';
}
//add_action('template_redirect', 'author_data_actualizar');
register_activation_hook( __FILE__, 'install_author_data' );
?>