Ciao a tutti.
Il mio sistema:
SO: Windows 7
Server: XAMPP 1.7.1
Versione Drupal: Drupal 6.20 (Inglese)
L'unico modulo non-core installato è "DHTML menu".
Ho installato la mia copia di Drupal in locale (http://localhost) in una sottodirectory denominata "Drupal6". Potrebbe essere questa la causa del problema?
Il mio problema si manifesta con l'opzione "Clean URLs" abilitata o meno e con il modulo DHTML
menù abilitato o meno.
Ecco i passi da seguire per riprodurre l'anomalia (con riferimento alla versione Inglese di Drupal)
1. Cliccare su: Administer -> Content Management -> Taxonomy
2. Quì ho creato un nuovo vocabolario con alcuni termini. Il vocabolario si chiama "Hunting" e i termini sono ordinati gerarchicamente come segue:
...+ Canned Hunting
...+ Poaching
......+ Trapping
.........+ Snaring
3. Ho quindi iniziato l'aggiunta di un nuovo termine ("gin traps") assegnandoli due genitori ("Poaching" and "Trapping") nella sezione "Advanced options"
4. Dopo di chè ricevo il solito avvertimento che si riceve quando si assegnano più termini genitori: "Set multiple term parents? Adding multiple parents to a term will cause the Hunting vocabulary to look for multiple parents on every term. Because..."
5. Occhio adesso, se porto il mouse sul link "Cancel", l'indirizzo visualizzato nella barra di stato è il seguente:
http://localhost/drupal6/destination%3Dadmin%252Fcontent%252Ftaxonomy%25...
(cioè la versione codificata di: http://localhost/drupal6/destination=admin/content/taxonomy/2/add/term).
Quando clicco su "Cancel" (per annullare l'operazione di aggiunta del termine al vocabolario), ricevo l'errore: "404 Pagina Non Trovata".
Ma se vado a questo indirizzo: http://localhost/drupal6/admin/content/taxonomy/2/add/term (cioè
lo stesso indirizzo senza il parametro "destination") viene correttamente ri-visualizzata la pagina
per l'aggiunta di un nuovo termine.
Il problema è senza dubbio correlato con il parametro "destination". Ho cominciato da poco a sviluppare con Drupal e non lo conosco a fondo. Qualcuno sa come risolvere?
Grazie,
Francesco.
Confermo di avere lo stesso problema. In teoria, quel parametro destination non dovrebbe essere li.
Bisogna scavare nel modulo taxonomy per capire come risolverlo...
Il problema è che "destination" non è un parametro ma parte integrante dell'URL. Drupal cerca nella "router_table" se esiste l'indirizzo
"destination=admin/content/taxonomy/%/add/term
" e non lo trova, perchè è malformato.Dovrebbe cercare invece quest'altro indirizzo: "
admin/content/taxonomy/%/add/term
".La soluzione è la seguente:
1. Aprire
includes/menu.inc
2, Si trovi la funzione:
function menu_get_item($path = NULL, $router_item = NULL) {
static $router_items;
if (!isset($path)) {
$path = $_GET['q'];
}
e la si sotituisca con:
function menu_get_item($path = NULL, $router_item = NULL) {
static $router_items;
if (!isset($path)) {
$path = $_GET['q'];
$path=urldecode($path);
$path=str_replace('destination=','',$path);
}