Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/12/2012, 15:51
jeremiselxi
(Desactivado)
 
Fecha de Ingreso: septiembre-2008
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 22
Consejo para crear un modulo como el que piensas de facebook.

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 original
  1. name = Quepiensas
  2. description = Permite poner lo que piensas.
  3. package = other
  4. version = VERSION
  5. 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.