Call to undefined function views_embed_view()!!!

3 contenuti / 0 new
Ultimo contenuto
Call to undefined function views_embed_view()!!!

Come mai mi viene visualizzato il messaggio "Call to undefined function views_embed_view()" quando provo a richiamare questa funzione da uno script php che si trova nella cartella di drupal?
Stavo provando, utilizzando AJAX, a mostrare i contenuti di un utente che viene selezionato da una lista.
Praticamente ho una select che viene popolata con i nomi degli utenti, e voglio che i contenuti sano mostrati al di sotto nella stassa pagina.Ora la selezione di un nome produce l'esecuzione di una funzione javascript che praticamente deve eseguire la connessione http allo script php.
Lo script php che appunto si trova nella cartella di drupal contiene semplicemente questo:

<?php
print views_embed_view('nome_vista', $display_id = 'default', $GET['username']);
?>

Quindi la funzione javascript passa tramite GET (nell'url), allo script php, il parametro corrispondente al nome dell'utente selezionato.
Come detto però mi viene mostrato il messaggio di errore. Cioè praticamente non è visibile la funzione views_embed_view che è definita nel modulo views.
Ho provato anche ad inserire nello scipt:
require("/drupal/sites/all/modules/views.module");
ma ricevo
Warning: l'errore "require(/drupal/sites/all/modules/views.module) [function.require]: failed to open stream:No such file or directory in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\drupal\mostra_vista.php" e
Fatal error: require() [function.require]: Failed opening required '/drupal/sites/all/modules/views.module' (include_path='.;C:\php5\pear') in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\drupal\mostra_vista.php

Ricevo gli stessi errori inserendo
include("/drupal/sites/all/modules/views.module");

Cosa sto sbagliando?
Se provo a fare una print del nome dell'utente che viene passato allo script, si comporta correttamente, quindi il problema è proprio legato al fatto che non vede la funzione views_embed_view.

Ringrazio anticipatamente chi possa essermi di aiuto.

Ciao a tutti,
ngiolet

Anche se tu avessi incluso correttamente il modulo views (cosa che non credo, se il path è quello), non basta fare quello per far funzionare delle funzioni. Probabilmente, se sistemi il path, ti apparirà un errore analogo per un'altra funzione. Le funzioni PHP create da Drupal (e dai moduli) non possono funzionare se Drupal non fa il "bootstrap", cioè se non vengono richiamate le funzioni base (in sostanza, il "core" di Drupal).

Bella spiegazione ma mi daresti un esempio di codice? Ad esempio

//il codice sotto crea un link che punta a miomodulo
function miomodulo_block($op = 'list', $delta = 0, $edit = array()) {
.....
$options = array();
$link1 = l( t('Inserisci'), 'miomodulo', $options );
$block_content .= "<div class="more-link">" . $link1 . "</div>";
//questo link2 che non funziona, come collogarlo ad una funzione miomodulo_viewdata?
$link2 = l( t('Visualizza dati'), 'miomodulo/viewdata', $options );
$block_content .= "<div class="more-link">" . $link2 . "</div>";

Occorre implementare la funzione miomodulo_menu in questo modo?
$items[] = array(
    'path' => 'miomodulo/viewdata',
    'title' => 'Visualizza i dati',
    'page callback' => 'miomodulo_viewdata',
    'access arguments' => array('access miomodulo content'),
    'type' => MENU_CALLBACK,
  );

Grazie!