Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Verificar campos?

Estas en el tema de Verificar campos? en el foro de WordPress en Foros del Web. Estimados. Primero no se mucho de PHP pero trato de aprender, y estoy creando un themes donde ingresé uno conocido que es para "empleos", o ...
  #1 (permalink)  
Antiguo 18/10/2012, 14:51
Avatar de Dg4
Dg4
 
Fecha de Ingreso: mayo-2003
Ubicación: chile
Mensajes: 112
Antigüedad: 20 años, 11 meses
Puntos: 0
Pregunta Verificar campos?

Estimados.
Primero no se mucho de PHP pero trato de aprender, y estoy creando un themes donde ingresé uno conocido que es para "empleos", o sea crear un blog normal pero que tenga la posibilidad de ingresar "ofertas laborales", (por si alguien tiene un themes o plugin que realice esta posibilidad y probarlo?).
Bueno la verdad que veo mi themes sin problemas y esta todo OK, pero lo que no puedo corregir que al hacer "guardar" me guarda los campos aunque estén todos vacíos, y aparece en la Web una nueva oferta laboral pero "vacía"....
No sé si tendrá que ver este código:

Código PHP:
<?php
$prefix 
'wtf_';

$meta_box = array(
    
'id' => 'jobmeta',
    
'title' => 'Job details',
    
'page' => 'job',
    
'context' => 'normal',
    
'priority' => 'high',
    
'fields' => array(
        array(
            
'name' => 'Company name',
            
'desc' => 'Enter the name of the company ',
            
'id' => $prefix 'comname',
            
'type' => 'text',
            
'std' => ''
        
),

        array(
            
'name' => 'Company tagline',
            
'desc' => 'Enter a line or about the company',
            
'id' => $prefix 'comdescript',
            
'type' => 'text',
            
'std' => ''
        
),
        array(
            
'name' => 'Company location',
            
'desc' => 'Enter location of the company',
            
'id' => $prefix 'comlocate',
            
'type' => 'text',
            
'std' => ''
        
),
        array(
            
'name' => 'Contact Email',
            
'desc' => 'Email to which applicants shall respond',
            
'id' => $prefix 'comail',
            
'type' => 'text',
            
'std' => ''
        
)    
        
        
        
    ),
    
);


add_action('admin_menu''mytheme_add_box');

// Add meta box
function mytheme_add_box() {
    global 
$meta_box;
    
    
add_meta_box($meta_box['id'], $meta_box['title'], 'mytheme_show_box'$meta_box['page'], $meta_box['context'], $meta_box['priority']);
}

// Callback function to show fields in meta box
function mytheme_show_box() {
    global 
$meta_box$post;
    
    
// Use nonce for verification
    
echo '<input type="hidden" name="mytheme_meta_box_nonce" value="'wp_create_nonce(basename(__FILE__)), '" />';
    
    echo 
'<table class="form-table">';

    foreach (
$meta_box['fields'] as $field) {
        
// get current post meta data
        
$meta get_post_meta($post->ID$field['id'], true);
        
        echo 
'<tr>',
                
'<th style="width:20%"><label for="'$field['id'], '">'$field['name'], '</label></th>',
                
'<td>';
        switch (
$field['type']) {
            case 
'text':
                echo 
'<input type="text" name="'$field['id'], '" id="'$field['id'], '" value="'$meta $meta $field['std'], '" size="30" style="width:97%" />',
                    
'<br />'$field['desc'];
                break;
            case 
'textarea':
                echo 
'<textarea  name="'$field['id'], '" id="'$field['id'], '" cols="60" rows="4" style="width:97%">'$meta $meta $field['std'], '</textarea>',
                    
'<br />'$field['desc'];

                break;
            case 
'select':
                echo 
'<select name="'$field['id'], '" id="'$field['id'], '">';
                foreach (
$field['options'] as $option) {
                    echo 
'<option'$meta == $option ' selected="selected"' '''>'$option'</option>';
                }
                echo 
'</select>',
                
'<br />'$field['desc'];
                break;
            case 
'radio':
                foreach (
$field['options'] as $option) {
                    echo 
'<input type="radio" name="'$field['id'], '" value="'$option['value'], '"'$meta == $option['value'] ? ' checked="checked"' ''' />'$option['name'];
                }
                break;
            case 
'checkbox':
                echo 
'<input type="checkbox" name="'$field['id'], '" id="'$field['id'], '"'$meta ' checked="checked"' ''' />';
                break;
        }
        echo     
'<td>',
            
'</tr>';
    }
    
    echo 
'</table>';
}

add_action('save_post''mytheme_save_data');

// Save data from meta box
function mytheme_save_data($post_id) {
    global 
$meta_box;
    
    
// verify nonce
    
if (!wp_verify_nonce($_POST['mytheme_meta_box_nonce'], basename(__FILE__))) {
        return 
$post_id;
    }

    
// check autosave
    
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return 
$post_id;
    }

    
// check permissions
    
if ('page' == $_POST['post_type']) {
        if (!
current_user_can('edit_page'$post_id)) {
            return 
$post_id;
        }
    } elseif (!
current_user_can('edit_post'$post_id)) {
        return 
$post_id;
    }
    
    foreach (
$meta_box['fields'] as $field) {
        
$old get_post_meta($post_id$field['id'], true);
        
$new $_POST[$field['id']];
        
        if (
$new && $new != $old) {
            
update_post_meta($post_id$field['id'], $new);
        } elseif (
'' == $new && $old) {
            
delete_post_meta($post_id$field['id'], $old);
        }
    }
}

?>
Existe algún error o será de otra página de este themes?
Gracias.
__________________
POLANCO.CL
"Diseño - POLANCO"
  #2 (permalink)  
Antiguo 18/10/2012, 20:01
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Verificar campos?

A primera vista parece que fuera esto:

Busca:
Código PHP:
Ver original
  1. if ($new && $new != $old) {

Cambia por:
Código PHP:
Ver original
  1. if ( isset($new) && $new != $old ) {
  #3 (permalink)  
Antiguo 18/10/2012, 20:33
Avatar de Dg4
Dg4
 
Fecha de Ingreso: mayo-2003
Ubicación: chile
Mensajes: 112
Antigüedad: 20 años, 11 meses
Puntos: 0
Respuesta: Verificar campos?

Gracias metacortex.
Pero me fue mal, de nuevo me apareció el mismo problema...
Para que se entienda un poco más, uno debe ingresar como usuario, luego realizas clic para ingresar una "oferta laboral", y sin anotar nada uno realiza clic en el botón "Publicar" y aparece una nueva oferta pero sin nada escrito...
Me gustaría saber como se puede prohibir eso?.
Saludos.
__________________
POLANCO.CL
"Diseño - POLANCO"

Etiquetas: blog, página, php, plugin, post, verificar, themes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:37.