Crear vista mediante código al instalar un nuevo módulo

Hola,

No sé si este tema va aquí o no... si no es el lugar correcto, pido disculpas.

Necesito ayuda, ya que deseo que al instalar un módulo creado por mí, cree una vista al ser instalado o al ser habilitado, pero no encuentro la forma de realizarlo...

Si alguien me puede ayudar se lo agradecería mucho.

Gracias,
Saludos,
J.A.G.S.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Lo que pides es fácil de

Lo que pides es fácil de realizar:

Instala el módulo Views Exporter que viene con el módulo Views, luego ve a tusitio.com/admin/build/views/tools/export, selecciona las views que quieres exportar, al final de la página escribes el nombre de tu módulo y le das en exportar... El mismo Views Exporter te dirá que archivos debes crear en tu módulo y el código que debes insertar en ellos.

Saludos XD...

Ok, muchisimas gracias!!!

Ok, muchisimas gracias!!!

Me vuelvo a explicar

Buenas,

No sé si es que me he explicado mal, ya tengo creado un módulo propio, llamado VACANCY, con sus ficheros .module, .info, .install, dicho módulo va a utilizar una VIEW de Drupal, pero esta VIEW no está creada por defecto, sino que la he creado yo mediante el módulo VIEWS y la he exportado.

Entonces lo que necesito es que al instalar mi módulo VACANCY, se cree la vista VISTA VACANCY, y eso es lo que no sé hacer, crear la vista nueva al instalar un módulo creado por mí.

Saludos,
Gracias.

perdon me parece confundi de

perdon me parece confundi de foro, no es para la vista.

Bueno te cuento necesitas

Bueno te cuento necesitas crear una carpeta con el nombre del modulo que necesites en modules. Ej direcciones
necesitas dos archivos minimo como nombre_modulo.info y nombre_modulo.module

Para crear una tabla extra en caso que sea necesario tenes que poner un archivo mas con el nombre_module.install
te copio un ejemplo

Direcciones.install
<?php

function direcciones_install() {

drupal_install_schema('direcciones');

}

/**

* Implementation of hook_uninstall().
*/

function direcciones_uninstall() {

drupal_uninstall_schema('direcciones');

}

/**

* Implementation of hook_schema().

*/

function direcciones_schema() {

$schema['direcciones'] = array(

'fields' => array(
'vid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
'nid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
'tipo_direcciones_id' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
'cp' => array('type' => 'varchar', 'length' => 20, 'not null' => TRUE, 'default' => ''),
'representacion_id' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),

),

'primary key' => array('vid', 'nid'),

);

return $schema;

}

direcciones.info
; $Id$
name =direcciones
description = Administracion de direcciones
package =Guia clientes
version = VERSION
core = 6.x

direcciones.modules
<?php

function direcciones_node_info() {
return array(
'direcciones' => array(
'name' => t('direcciones'),
'module' => 'direcciones',
'description' => t("Crea direcciones."),
'has_title' => TRUE,
'title_label' => t('Direccion')
)
);
}

function direcciones_access($op, $node, $account) {
$form [ 'access' ] = array(
'#type' => 'fieldset' ,
'#title' => t ( 'Access log settings' ),
'#prefix' => '' ,
'#suffix' => '',
);

if ($op == 'create') {
return user_access('Crea direcciones', $account);
}

if ($op == 'update') {
if (user_access('Edita direcciones', $account)) {
return TRUE;
}
}

if ($op == 'delete') {
if (user_access('Borra direcciones', $account)) {
return TRUE;
}
}
}

function direcciones_perm() {
return array(
'Crea direcciones',
'Borra direcciones',
'Edita direcciones',
);
}

function direcciones_form(&$node) {
$type = node_get_types('type', $node);
if ($type->has_title) {
$form['title'] = array(
'#type' => 'textfield',
'#title' => check_plain($type->title_label),
'#required' => TRUE,
'#default_value' => $node->title,
'#weight' => -5,
);
}

$form [ 'tipo_direcciones_id' ]= array(
'#type' => 'select' ,
'#title' => t ( 'Tipo de Direccion' ),
'#options' =>tipo_direcciones_combo(),
'#description' => t ( 'Seleccione la region.' ),
'#default_value' => isset($node->tipo_direcciones_id) ? $node->tipo_direcciones_id :0
);

$form['cp'] = array(
'#type' => 'textfield',
'#title' => t('CP'),
'#default_value' => isset($node->cp) ? $node->cp: '',
);

$form [ 'representacion_id' ]= array(
'#type' => 'select' ,
'#title' => t ( 'Representacion' ),
'#options' =>representacion_combo(),
'#description' => t ( 'Seleccione Representacion.' ),
'#default_value' => isset($node->representacion_id) ? $node->representacion_id :0
);

$form['body'] = array(
'#type' => 'textarea',
'#title' => check_plain('Observacion'),
'#default_value' => $include ? $node->body : ( $node->body),
'#rows' => 20,
'#required' => ($word_count > 0),
);

return $form;
}
// Grabar datos

function direcciones_insert($node) {
db_query("INSERT INTO {direcciones} (vid, nid, tipo_direcciones_id, representacion_id, cp) VALUES (%d, %d, %d, %d,'%s')", $node->vid, $node->nid, $node->tipo_direcciones_id, $node->representacion_id, $node->cp);
}

function direcciones_update($node) {

if ($node->revision) {
direcciones_insert($node);
}
else {
db_query("UPDATE {direcciones} SET tipo_direcciones_id= %d, representacion_id= %d, cp='%s' WHERE vid = %d", $node->tipo_direcciones_id, $node->representacion_id, $node->cp,$node->vid);
}
}
function direcciones_nodeapi(&$node, $op, $teaser, $page) {
switch ($op) {
case 'delete revision':

db_query('DELETE FROM {direcciones} WHERE vid = %d', $node->vid);
break;
}
}
function direcciones_delete($node) {

db_query('DELETE FROM {direcciones} WHERE nid = %d', $node->nid);
}
function direcciones_load($node) {
$additions = db_fetch_object(db_query('SELECT tipo_direcciones_id, representacion_id, cp FROM {direcciones} WHERE vid = %d', $node->nid));
return $additions;
}

function tipo_direcciones_combo() {
$options[]=t("Seleccione tipo de direccion.");
$tipo_direcciones=db_query("select nid,title from node where node.type='tipo_direccion' ");
while ($row = db_fetch_array($tipo_direcciones)) {
$nid=$row['nid'];
$title=$row['title'];
$options[$nid] = $title;
}
return $options;
}

function representacion_combo() {
$options[]=t("Seleccione represnetacion.");
$tipo_direcciones=db_query("select nid,title from node where node.type='representacion' ");
while ($row = db_fetch_array($tipo_direcciones)) {
$nid=$row['nid'];
$title=$row['title'];
$options[$nid] = $title;
}
return $options;
}

function direcciones_view($node, $teaser = FALSE, $page = FALSE) {
$node->representacion_name=direcciones_representacionid($node->representacion_id);
$node->tipo_direcciones_name=direcciones_tipodirecciones($node->tipo_direcciones_id);

$node = node_prepare($node, $teaser);
$node->content['myfield'] = array(
'#value' => theme('direcciones_order_info', $node),
'#weight' => 1,
);

return $node;
}

function direcciones_theme() {
return array(
'direcciones_order_info' => array(
'arguments' => array('node'),
),
);
}

function theme_direcciones_order_info($node) {
$output = '';
$output .= t(' Tipo de direcciones: %tipo_direcciones_name CP: %cp ', array('%cp' => check_plain($node->cp), '%tipo_direcciones_name' => check_plain( $node->tipo_direcciones_name)));
$output .= t(' Representacion: %representacion_name', array( '%representacion_name' => check_plain($node->representacion_name)));
$output .= '';
return $output;
}

function direcciones_validate ( & $node ) {

If ($node->tipo_direcciones_id==0){
form_set_error('time', t('Selecione un Tipo de direccion.'));
}

If ($node->representacion_id==0){
form_set_error('time', t('Selecione un tipo representacion.'));
}

}
/**
*Funciones extras
*
*
**/

function direcciones_representacionid($IDREPRESENTACION) {
$qsql="select nid,title from node where node.type='representacion' and nid=".$IDREPRESENTACION;
$ciudad=db_query($qsql);
while ($row = db_fetch_array($ciudad)) {
$title=$row['title'];
$options = $title;
}
return $options;
}
function direcciones_tipodirecciones($IDtipo_direcciones) {
$qsql="select nid,title from node where node.type='tipo_direccion' and nid=".$IDtipo_direcciones;
$tipo_direcciones=db_query($qsql);
while ($row = db_fetch_array($tipo_direcciones)) {
$title=$row['title'];
$options = $title;
}
return $options;
}

para habilitarlo Inicio ›

para habilitarlo Inicio › Administrar › Construcción del sitio
Módulos
lo buscas lo tildas y listo.
Hace poco aprendi a usar drupal pero con esto creo contenidos y modulos.
Espero que sea de utilidad.