Para aprendizaje me he propuesto hacer un modulo que se usa en facebook
¿Que piensas?
Yo lo estoy haciendo en drupal6.
Cual es la idea que tu pongas algo en un textarea, y cuando le des a publicar entonces te aparesca abajo ese texto y si alguien quiere agregar un comentario que se lo agregue. Ahora bien, se muy bien que esto se puede hacer con cck y views perfectamente. Bueno comenze de la siguiente manera
cree mi carpeta llamada quepiensas
dentro,
mi archivo
quepiensas.info
Código PHP:
Ver original
name = Quepiensas description = Permite poner lo que piensas. package = other version = VERSION core = 6.x
esta aqui todo bien.
mi archivo.
quepiensas.install
Código PHP:
<?php
/**
* Implementation of hook_install().
*/
function quepiensas_install() {
// Add the node type.
_quepiensas_install_type_create();
}
function _quepiensas_install_type_create() {
// Create an additional node type
$quepiensas_node_type = array(
'type' => 'quepiensas',
'name' => t('Quepiensas page'),
'module' => 'node',
'description' => t('Permite agregar lo que piensas.'),
'custom' => TRUE,
'modified' => TRUE,
'locked' => FALSE,
);
$quepiensas_node_type = (object)_node_type_set_defaults($quepiensas_node_type);
node_type_save($quepiensas_node_type);
// Default to not promoted.
variable_set('node_options_quepiensas', array('status'));
// Use this default type for adding content to quepiensass.
variable_set('quepiensas_allowed_types', array('quepiensas'));
variable_set('quepiensas_child_type', 'quepiensas');
}
Hasta aqui todo bien.
Ahora vamos con mi .module
Código PHP:
<?php
/**
* @file
* Allows users to structure the pages of a site in a hierarchy or outline.
*/
/**
* Implementation of hook_menu().
*/
function quepiensas_menu() {
$items['admin/content/quepiensas'] = array(
'title' => 'Quepiensass',
'description' => "Manage your site's quepiensas outlines.",
'page callback' => 'drupal_get_form',
'page arguments' => array('quepiensas_admin_overview'),
'access arguments' => array('administer quepiensas outlines'),
'file' => 'quepiensas.admin.inc',
);
return $items;
}
luego mi archivo quepiensas.admin.inc
Código PHP:
<?php
/**
* @file
* Admin page callbacks for the book module.
*/
/**
* Returns an administrative overview of all books.
*/
function quepiensas_admin_overview() {
//Formulario que piensas
$form['quepiensas'] = array(
'#type' => 'textarea',
'#title' => t('¿Que piensas?'),
'#default_value' => variable_get('quepiensas', ''),
'#cols' => 60,
'#rows' => 5,
);
$form['submit'] = array('#type' => 'submit', '#value' => t('Publicar'));
return $form;
}
Miren
Si yo tengo creado una tabla dentro de mi drupal llamado inscripcions con 3 campos, id auto increment y dos campos, nom, dni ambos varchar
y pongo en un bloque este codigo
Código PHP:
<?php
// Creación de nuestro formulario
function inscripcion()
{
//Nombre
$form['nom'] = array(
'#type' => 'textfield',
'#title' => t('Nombre completo'),
'#size' => 40,
'#maxlength' => 40,
'#description' => t('Ingrese su nombre completo'),
'#required' => TRUE,
);
//DNI
$form['dni'] = array(
'#type' => 'textfield',
'#title' => t('DNI'),
'#size' => 40,
'#maxlength' => 9,
'#description' => t('xx'),
'#required' => TRUE,
);
$form['submit'] = array('#type' => 'submit', '#value' => t('Enviar'));
return $form;
}
// Llamamos al render del formulario
function test_page() {
return drupal_get_form('inscripcion');
}
$out=test_page();
echo $out;
function inscripcion_submit($form_id, &$form_state)
{
db_query("INSERT INTO inscripcions VALUES ('','%s', '%s')", $form_state['values']['nom'], $form_state['values']['dni']);
drupal_set_message(t('Tu opinion ha sido enviada satisfactoriamente. ¡ Muchas Gracias !'));
}
?>
//para recoger los datos.
<?php
$result = db_query("SELECT * FROM inscripcions");
while ($row=db_fetch_object($result))
{
echo $row->Id . " ". $row->nom . " ". $row->dni . '<br/>';
}
?>
Espero que me puedan ayudar y gracias anticipadas.