Buongiorno a tutti,
Avrei bisogno di qualche dritta da parte vostra sul seguente problema.
Ho scritto un semplice modulo "hello word" ma quando lo richiamo ottengo nella mia versione locale "The requested page could not be found."
Non sembra un errore 404.
Il codice e`:
<?php
function query_test_menu() {
$items['hello'] = array(
'title' => 'Hello world page...', // page title
'page callback' => 'query_test_page', // callback function name
'access callback' => TRUE, // every user can look at generated page
'type' => MENU_CALLBACK
);
return $items;
}
function query_test_page() {
return '<p>Hello world!</p>';
}
?>
In locale ho Drupal 6.19 che gira con Xampp 1.7.0 (php 5.2.8)
Lo stesso modulo installato nella versione live del sito funziona correttamente.
La versione live e Drupal 6.12 con php 5.2.11
Dovremmo a breve migrare il sito in un altro host e fare un upgrade a drupal 6.19. Per questo motivo in locale ho la versione aggiornata e non la copia esatta.
Avete qualche idea a proposito?
Grazie
Ziuccio
Ciao,
hai provato a ricostruire la cache nel sito in locale? Molte volte è quello il problema...
Ovviamente, l'url al quale stai puntanto è localhost/mysite/hello, vero? (non si sa mai!!!).
;)
Noto anche un'altra cosa che non credo sia giusta (anche perchè sto sviluppando proprio adesso un modulo): tu hai usato
che dovrebbe essere il controllo per l'accesso alla pagina (come scrivi tu ogni utente puo vederla). Solo che non è access callback ma access arguments:
;)
Si, la cache l`ho pulita ma il problema persiste.
la home del sito locale e` proprio localhost e tutto funziona perfettamente.
Quindi il modulo viene richiamato da localhost/hello.
Non credo sia un problema di path.
Ho comunque provato a pulire la cache e anche farlo manualmente da db.
Il problema persiste.
Anche cambiando access callback in access arguments non si risolve.
Inoltre sulla versione 6.12 funziona anche con access callback...
Potrebbe essere che in locale non hai attivato l'url rewrite? Quindi, la pagina che stai richiamando in realtà è localhost?q=hello (o come funziona senza rewrite url che adesso non ricordo!)...
;)
Continua a darmi problemi
Inoltre non so se anche questo potrebbe voler dire qualcosa ma quando scrivendo :
localhost/?q=hello
ottengo nei bradcrumb
Home > ?q=hello
E la pagina continua a non essere trovata....
Prova con:
localhost/index.php?q=hello
Comunque sia, verifica che i clean url siano attivi!
;)
Ti ringrazio per le tue risposte....
Tuttavia...no...non funge!
I clean URL sono attivi e anche con il path che mi hai suggerito ho sempre lo stesso errore.
Ho controllato il codice anche con altri sviluppatori e pare non ci siano errori di codice.
Mi rimangono solo due possibilita'
1) problemi con la versione di Drupal o con php 5.2
2) problemi di settaggi locali... pero` tutto il sito web funziona correttamente!
Può essere qualche settaggio locale... domanda (che magari può influire): in locale è una installazione nuova o è il backup della versione online? Come ultima cosa prova a installare il modulo in una installazione pulita oppure, visto che ho avuto simili problemi anch'io su un modulo, prova a cambiare il nome della funzione che richiami: hook_page non dovrebbe più esistere però non si sa mai (chiamala ad esempio query_test_pagina)!
;)
Dunque.... ho provato a fare come hai detto tu...
ho cambiato il nome della funzione, ripulito la cache. Ma nulla.
Presumo che quello che abbia in locale sia una copia di backup piu che una nuova installazione.
La procedura che ho seguito e` stata la seguente
Backup del db in locale
Copia dei file del sito in locale
settaggi vari ed eventuali
Upgrade core e alcuni moduli
Magari non e` la corretta procedura pero funziona tutto alla perfezione tranne questa cosa..
Ora provo a importare il modulo in un sito drupal nuovo di zecca appena installato e vediamo che succede.
Ho il sospetto che funzioni...
... e infatti funziona.
Questo mi rende felice da una parte perche` vuol dire che non e` la versione 6.19 a rompere le scatole, ma mi lascia perplesso dall`altra parte perche` vuol dire che e` qualche problema chissa dove nella mia macchina.
Sinceramente non so da dove partire per guardare...
Forse e` meglio fare tabula rasa e effettuare un test di migrazione da capo...
Personalmente, preferisco sempre avere due versioni "native" (una locale e una online), anche se questo vuol dire fare lavoro doppio... però si evitano molte grane di questo tipo!
;)
Scusa..native nel senso di due installazioni o native nel senso di una copia di backup in per ogni ambiente?
Io mi sto accingendo a ricreare una copia in locale da zero testando il processo di migrazione attraverso questi step:
E` la corrretta procedura?
Nativa nel senso di due installazioni e configurazioni pulite.
Per farte un esempio, io utilizzo un MacMini come server interno in cui faccio lo sviluppo e configuro l'ambiente. Quando lo sviluppo è finito, installo nuovamente un Drupal sul server definitivo e rifaccio le configurazioni (installo, non ripristino il backup dal sito locale). Ovviamente, le configurazioni più lunghe tipo tipi di contenuti, viste, ecc le esporto dal locale e le importo nel server definitivo.
Nella tua lista, secondo me, non va bene installare Drupal e poi importare il db della versione online: così richi di fare solo casini (a meno che per installazione non intenda scaricare tutti i file e inserirli in locale... allora così sarebbe meglio!).
;)
Mhhh...sto rifacendo il tutto con la sola eccezione che il non sfutto il db copiato ma il db che drupal crea di default e poi integro i dati e le tabelle mancanti.
Per ora ho:
installato drupal
ho copiato i moduli e aggiornato quelli datati (e fin qui non c`e` nessun problema)
Mi accingo a:
attivare i moduli non attivi sulla base delle impostazioni remote
copiare i dati e le tabelle mancanti sul db
Qui si presenta il problema in admin/build/block che mi dice
call to undefinied function redirects() in c:\.....\sites\default\themes\main\page.tpl.php on line 66
Nella linea 66 trobo
redirects($uri_parts);
switch($uri_parts['1']) {
case 'our-team': // Our Team template page
include 'page-team.tpl.php'; return;
break;
case 'publications': // Our Team template page
include 'page-publications.tpl.php'; return;
break;
}
Non ho ancora aggiornato la tabella node che dovrebbe contenere $uri_parts... quidni suppongo che il problema sia li....
Tornando al problema principale...dove non riuscivo a visualizzare il modulo installato.... il problema e` risolto con la nuova installazione di drupal.
Probabilmente c`era qualcosa di sbagliato nei settaggi della mia macchina locale.
Grazie per l`attenzione comunque!