Domanda

Per un sito Drupal 6 Aprire Atrium (vale a dire, Caratteristiche, gli ambienti, gruppi organici) sto correndo, ho creato un po 'di abitudine funzioni che vengono applicate veramente solo ad una manciata di centinaia di gruppi sul sito.

Nella sua forma attuale, il "personalizzare le funzioni" schermo mostra config tutti le caratteristiche, tra cui quelli che vorrei limitare intenzionalmente per solo un paio di gruppi speciali.

Qual è il modo migliore per prevenire questi dispositivi speciali da essere offerto a tutti i gruppi, pur mantenendo le caratteristiche sui gruppi speciali?

È stato utile?

Soluzione

Le caratteristiche per ogni spazio sono configurati tramite la funzione spaces_features_form(). Si potrebbe implementare hook_form_alter() per selettivamente e condizionatamente rimuovere funzionalità da gruppi specifici.

function MYMODULE_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'spaces_features_form') {
    $space = spaces_get_space();
    // Populate the array with hard-coded NIDs, or whatever logic
    // needed to determine if these features should be allowed.
    if ($space->type == 'og' && !in_array($space->group->nid, array(...))) {
      // Hide features foo and bar.
      foreach (array('feature_foo', 'feature_bar') as $feature) {
        $form['spaces_features'][$feature]['#access'] = FALSE;
      }
    }
  }
}

Altri suggerimenti

Caratteristiche sono moduli. I moduli sono abilitati a livello di sistema e non possono essere collegati a uno spazio o di gruppo. Tuttavia, si potrebbe controllare l'accesso ad essi attraverso la creazione di autorizzazioni personalizzate, vedere hook_perm () .

mi piacerebbe aggiungere a questo suggerimento hook_perm un'alterazione del modulo per disattivare la funzione applicabile in base al tipo di gruppo. hook_form_alter lavoro probabilmente non causa gli elementi correlati funzione non sarà ancora presente. Potrebbe essere necessario registrare un #after_build gancio e quindi modificare il modulo di conseguenza.

Il contesto è sicuramente la strada da percorrere.
Contesto , Caratteristiche e gli ambienti, sono una combinazione potente. Questo post DevelopmentSeed dovrebbe aiutare: Costruire un "Blog Feature" in Drupal con contesto gli ambienti

Potrebbe consentire tutte le caratteristiche fin dall'inizio, ma gestire la visualizzazione dal Context ? Non ho avuto la possibilità di provare ancora Context me stesso, ma suona come una misura.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a drupal.stackexchange
scroll top