Domanda

Ho un problema con i percorsi di Drupal in una vista che mi costruire. In questo momento il mio punto di vista ha questa forma:. Il prodotto / 2/6

Dove 2 e 6 sono gli ID dei due nodi, mi piacerebbe di manipolare questi ID di tradurle Diciamo che il titolo di quei nodi.

Non riesco a fare questo dal punto di vista perché sono l'invio di questi valori a un pannello, e il pannello deve ricevuto gli ID dei nodi.

Quindi, per riassumere, voglio solo riscrivere (come Pathauto fa) questi ID per titolo, posso farlo? C'è un modulo specifico per questo?

Grazie!

È stato utile?

Soluzione

Se ho capito bene, si desidera mantenere i percorsi originali 'contenuto / [nid_x] / [nid_y]', ma aggiunge alias URL aggiuntivi per le persone con piu 'di lingua' elementi di percorso dai nodi (ad esempio titoli). Se questo è corretto, si hanno due opzioni:

In primo luogo, è possibile farlo manualmente attraverso la definizione di alias URL 'content / [nid_x] / [nid_y]' sotto 'admin / build / percorso / add'. Questo è facile da fare, ma probabilmente non è quello che stai cercando, se avete bisogno di molti di questi alias.

In secondo luogo, si può fare a livello di codice mediante la funzione di path_set_alias() . Utilizzando la funzione è piuttosto semplice - l'unico problema potrebbe essere dove per innescare esso. Dalla tua descrizione, non mi è chiaro dove / quando tali opinioni vengono creati, quindi è difficile a venire con un suggerimento -. Forse si può modificare la tua domanda per essere un po 'più specifico su quel

Se si desidera creare alias che vista URL per combinazioni nodo specifico, si potrebbe tentare di utilizzare il 'inserto', 'update' e 'cancellare' le operazioni di hook_nodeapi() per attivare la creazione di alias. Ovviamente, questo dovrebbe funzionare solo se c'è una regola coerente che permetta di decidere dal codice per i quali nodi per creare un alias oppure no.

Una volta che hai un alias URL sul posto per un certo percorso, verrà utilizzata al posto di quella originale uno ogni volta un collegamento a tale percorso viene creato tramite la l () funzione. Così ad esempio, se si crea una voce di menu che punta a 'contenuto / 2/6', l'URL utilizzato sarebbe automaticamente l'alias creato per quel percorso.


Edit: Nel caso in cui si finisce per creare alias di programmazione - Se si utilizza Pathauto in ogni modo, si potrebbe / dovrebbe utilizzare la sua pathauto_cleanstring()function (da 'pathauto.inc') per garantire che gli URL generati sono sfuggiti correttamente / riscritto per caratteri consentiti .

Altri suggerimenti

C'è un modo per utilizzare la funzione URL personalizzato per creare URL personalizzati dedicati. Se stai usando pannelli anche se non sono sicuro se si vorrà fare in questo modo perché è molto statico.

function custom_url_rewrite($op, $result, $path) {

  if ($op == 'alias') {
    if (preg_match('|^[node_id#_here](/{0,1}.*)|', $path, $matches)) {
      return '[desired_alias]'. $matches[1];
    }
  }

  if ($op == 'source') {
    if (preg_match('|^[node_id#](/{0,1}.*)|', $path, $matches)) {
      return '[desired_source]'. $matches[1];
    }
  }

  return $result;

}

Ti consigliamo di sostituire il nodo ID # s con il proprio così come i vostri alias e fonti desiderati. Spero che questo aiuti.

aswell Forse utile:

modificare i link avvio utilizzando al fine di costruire il collegamento mediante la sostituzione di token come <a href="nodeview/[title]/nid" title="[title]">link tekst</a> e gestire il nodo in una vista con percorso exa nodeview e argomenti null, nid f.i.

per i collegamenti più contorto noi un campo di vista php per creare la stringa ..

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top