Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

[gelöst] Node-edit Link zeitgesteuert ausblenden

Eingetragen von slowflyer (83)
am 26.06.2011 - 20:56 Uhr in
  • Allgemeines zu Drupal
  • Drupal 6.x

Hallo,

Ich hab einen Node-Typ, den alle eingeloggten User erstellen dürfen, jedoch nur bis zu einem festgelegten Datum. Solange dieses Datum noch nicht erreicht ist, darf der Inhalt bearbeitet und gelöscht werden. Nach Ablauf der Zeit soll der "Bearbeiten" Link (Tab) in der Seitenansicht des Inhaltes nicht mehr angezeigt werden.
Wie bekommt man das hin?

Vielen Dank,
ullrich

‹ [gelöst] Pfadangaben für CSS und Javascript Tabelle immer zu weit unten ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Es gibt da sicherlich einige

Eingetragen von Thoor (3678)
am 26.06.2011 - 21:18 Uhr

Es gibt da sicherlich einige Wege, mir fällt folgender ein:

Du könntest eine page-pfadtyp.tpl.php in Deinem Theme einbauen und anpassen und <?php print $tabs; ?> darin entfernen (PATHAUTO wird benötigt um den Nodes einen Pfad zuzuweisen, der dann in der page-pfadtyp.tpl.php auftaucht).
Mit dem VIEWS und DATE Modul fertigst Du eine Ansicht an, die zeitgesteuert den "Bearbeiten" & "Ansicht" Link zur Verfügung stellt und integrierst diese Ansicht in eine erstellte node-deintyp.tpl.php, anstelle der ursprünglichen TABs.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du weißt aber, daß man mit

Eingetragen von wla (9461)
am 26.06.2011 - 21:26 Uhr

Du weißt aber, daß man mit node/###/edit direkt auf das Edit-Formular springen kann? Das ist mit dem Ausblenden des Links nicht verhindert. Um das auch noch auszuschließen wirst Du wohl ein eigenes Modul schreiben müssen ausgehend von einem existierenden Access-Modul. Ich wüßte im Moment keines, das eine zeitgesteuerte Restriktion liefert.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

wla schrieb Das ist mit dem

Eingetragen von Thoor (3678)
am 26.06.2011 - 21:46 Uhr
wla schrieb

Das ist mit dem Ausblenden des Links nicht verhindert. Um das auch noch auszuschließen wirst Du wohl ein eigenes Modul schreiben müssen

Stimmt natürlich. Ist dann doch komplizierter, wenn der Pfad unbrauchbar werden soll.
Mehr zum Thema TABs entfernen -> http://drupal.org/node/68792

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi,wie wärs mit Rules? Rules

Eingetragen von Crusher (344)
am 26.06.2011 - 23:56 Uhr

Hi,

wie wärs mit Rules? Rules kann auch Content Access Rechte entziehen.

Also ist es doch am einfachsten, wenn z.B. mittels Rules die Rechte zum Bearbeiten, etc. entfernt werden. Alternativ könnte man auch umständlicher mit z.B. Node Convert Template den Node konvertieren. Und zwar in einen Typen, wo die User keine Rechte mehr haben. Lässt sich auch mit Rules erledigen.

Muss aber leider zugeben, dass ich mit Scheduling da noch nich viel gemacht hab. In einer normalen Reaktiven Regel lassen scih die Bedingungen eifnach hinzufügen. Beim Regelset musst man die Argumente ja vorher festlegen.

Hab mich leider mit der zeitsteuerung von Regeln noch nich weiter befasst.

Ka ob das alles beim normalen Rules für D6 dabei ist. Ich seh die Bedingungen hier unter D6 mit folgenden Modulen:
- Content Access
- Node Convert
- Views Bulk Operations

Denke das einfachste ist doch, die Rechte zu entziehen. Sei es gezielt durch Content Access oder z.B. durch eine Konvertierung, was auf das gleiche hinaus liefe. Alternativ lässt sich ja auch der Author via Rules ändern. Denke da sollte doch was jetzt dabei sein, oder?

Edit: weis nicht, ob die Content Access Rechte global oder nur für den Node Type dann geändert werdne. Kanns leider grad nich testen. Mein Produktivsystem möcthe ich ungern zerschiessen

mfg Crusher

PS: Ohne die Rechte, verschwindet ja auch der Edit-Link ganz automatisch. Bzw. führt ein manueller Aufruf zu einer Fehlermeldung....

AnhangGröße
rules_1.png 23.81 KB
rules_2.png 18.49 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Lösung über Content Access

Eingetragen von slowflyer (83)
am 27.06.2011 - 15:13 Uhr

Am Ende hat sich dann, dank der Ideen und Hinweise eine Lösung finden lassen, die nicht nur den Edit-Link verschwinden läßt, sondern auch die Rechte zum Editiern nimmt.
Dazu hab ich Content Access installiert und die Funktion:

function node_access_acquire_grants($node) {
  $grants = module_invoke_all('node_access_records', $node);
  if (empty($grants)) {
    $grants[] = array(
      'realm' => 'all',
      'gid' => 0,
      'grant_view' => 1,
      'grant_update' => 0,
      'grant_delete' => 0,
    );
  }
  else {
    // retain grants by highest priority
    $grant_by_priority = array();
    foreach ($grants as $g) {
      $grant_by_priority[intval($g['priority'])][] = $g;
    }
    krsort($grant_by_priority);
    $grants = array_shift($grant_by_priority);
  }

  node_access_write_grants($node, $grants);
}
?>

so umgestrickt, dass sie meinen Anforderungen genügt hat:

function my_access_acquire_grants($node,$val) {

$grants = module_invoke_all('node_access_records', $node);
  if (empty($grants)) {
    $grants[] = array(
      'realm' => 'all',
      'gid' => 0,
      'grant_view' => 1,
      'grant_update' => 0,
      'grant_delete' => 0,
    );
  }
  else {
    // retain grants by highest priority
    $grant_by_priority = array();
    foreach ($grants as $g) {
      if ( $g['realm']  = 'content_access_author') {
        $g['gid'] = $node->uid;
        $g['grant_view'] = 1;
        $g['grant_update'] = $val;
        $g['grant_delete'] = $val;
      }
      $grant_by_priority[intval($g['priority'])][] = $g;
    }
    $grant_by_priority[intval($g['priority'])][] = array(
      'realm' => 'all',
      'gid' => 0,
      'grant_view' => 1,
      'grant_update' => 0,
      'grant_delete' => 0,
    );
    krsort($grant_by_priority);
    $grants = array_shift($grant_by_priority);
  }
  node_access_write_grants($node, $grants);
 
}

Die Funktion wird von meinem Modul im hook_nodeapi -> 'load' aufgerufen, wenn es etwas zu tun gibt.
Jetzt können die Rechte über ein Datum/Zeit gesteuert genommen werden. Und wenn jemand im Nachhinein die Zeitspanne verlängert, kommen die Rechte auch zurück.

Vielen Dank ALLEN!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Ветошь для протирки оборудования
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 4 Tagen
  • Hey danke
    vor 2 Wochen 5 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 1 Tag
  • In der entsprechenden View
    vor 4 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 1 Tag
  • gelöst
    vor 6 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250234
Registrierte User: 20455

Neue User:

  • JoMek
  • Znogsnernoimb
  • ByteScrapers

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 20 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association