Muy buenas tardes Drupaleros.
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 originalname = 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');
}
Mi idea es crear un tipo de contenido llamado que piensas y lo cree en mi .install de mi modulo.
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;
}
Ok solo he llegado hasta aqui, y aqui estoy perdido.
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/>';
}
?>
este me lo guarda en la tabla antes mencionada, pero yo se que hay una funcion que le pueda poner a mi modulo que al darle al boton publicar me lo guarde en la tabla node, como cualquier tipo de contenido, para luego con mi modulo hacer que cree una vista automaticamente.
Espero que me puedan ayudar y gracias anticipadas.