@Juan Ramón:
Estoy intentando sacar adelante el plugin para agregar un campo adicional como CUIT al formulario de registro de usuarios. Me encontré con algunas dificultades y quería pedirte un poquito de ayuda a ver en qué estoy fallando:
El plugin se llamará "Extra Registry". Se instala y desisntala perfectamente, pero no logro que se muestre el campo CUIT en el formulario de registro, sino que se muestran en el escritorio de OSClass.
Acá pego el código del "index.php" del plugin, quizá vos podés decirme cuál es mi error:
<?php
/*
Plugin Name: Extra Registry
Plugin URI: http://www.sphinxarts.com.ar/
Description: This plugin extends fields in the user registry form, like CUIT, RUT, etc.
Version: 1.0
Author: Sphinx Arts
Author URI: http://www.sphinxarts.com.ar/
Short Name: extra_registry
*/
// INSTALANDO EL PLUGIN - INSTALLING THE PLUGIN
osc_register_plugin(osc_plugin_path(__FILE__), 'extra_call_after_install') ;
// AÑADE LINK PARA DESINSTALAR - UNINSTALL LINK
osc_add_hook(osc_plugin_path(__FILE__) . "_uninstall", 'extra_call_after_uninstall');
// AGREGAMOS EL CAMPO EN EL FORMULARIO DE REGISTRO - ADDING FIELDS TO REGISTRY FORM
osc_add_hook('user_register_form', 'extra_form');
// To add that new information to our custom table
osc_add_hook('user_register_completed', 'extra_form_post');
// INSTALAR EL PLUGIN - INSTALL PLUGIN
function extra_call_after_install() {
// Insert here the code you want to execute after the plugin's install
// for example you might want to create a table or modify some values
// In this case we'll create a table to store the Example attributes
$conn = getConnection() ;
$conn->autocommit(false);
try {
$path = osc_plugin_resource('extra_registry/struct.sql');
$sql = file_get_contents($path);
$conn->osc_dbImportSQL($sql);
$conn->commit();
} catch (Exception $e) {
$conn->rollback();
echo $e->getMessage();
}
$conn->autocommit(true);
}
//DESINTALAR EL PLUGIN - UNINSTALL PLUGIN
function extra_call_after_uninstall() {
// Insert here the code you want to execute after the plugin's uninstall
// for example you might want to drop/remove a table or modify some values
// In this case we'll remove the table we created to store Example attributes
$conn = getConnection() ;
$conn->autocommit(false);
try {
$conn->osc_dbExec("DELETE FROM %st_plugin_category WHERE s_plugin_name = 'extra_registry'", DB_TABLE_PREFIX);
$conn->osc_dbExec('DROP TABLE %st_extra_registry', DB_TABLE_PREFIX);
$conn->commit();
} catch (Exception $e) {
$conn->rollback();
echo $e->getMessage();
}
$conn->autocommit(true);
}
// INCLUIMOS LOS CAMPOS EXTRA AL FORMULARIOD E REGISTRO
include_once 'extra_form.php';
?>
Y este es mi campo adicional, el que quiero que se muestre en el registro, que se llama "extra_form.php":
<h3><?php _e('Datos de la empresa:', 'extra_cuit') ; ?></h3>
<p>Ingrese el número de CUIT de su empresa sin símbolos, comas o letras.</p>
<table>
<tr>
<?php
// This lines prevent to clear the field if the form is reloaded
if( Session::newInstance()->_getForm('extra_cuit') != '' ) {
$detail['extra_cuit'] = Session::newInstance()->_getForm('extra_cuit');
}
?>
<td><label for="make"><?php _e('CUIT:', 'extra_cuit'); ?></label></td>
<td><input type="text" name="CUIT" id="extra_cuit" value="<?php if(@$detail['s_cuit'] != ''){echo @$detail['s_cuit']; } ?>" size="11" /></td>
</tr>
</table>
Y por las dudas, este es mi "struc.sql":
CREATE TABLE /*TABLE_PREFIX*/t_extra_registry ( fk_i_item_id INT UNSIGNED NOT NULL, s_cuit VARCHAR(11), PRIMARY KEY (fk_i_item_id), FOREIGN KEY (fk_i_item_id) REFERENCES /*TABLE_PREFIX*/t_item (pk_i_id) ) ENGINE=InnoDB DEFAULT CHARACTER SET 'UTF8' COLLATE 'UTF8_GENERAL_CI';
Me parece que la forma de incluir mi archivo "extra_form.php" no está correcta...
¿Me podrás dar una manito?
¡Desde ya mil gracias al que sepa!