[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Anzahl Blöcke pro Artikel einschränken? - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
marc
Beiträge: 73
Registriert: 10. Mai 2006, 12:12
Wohnort: Lux

Anzahl Blöcke pro Artikel einschränken?

21. Okt 2010, 16:18

Hallo zusammen,

gibt es eine Möglichkeit, die Anzahl Blöcke pro Artikel bzw. Spalte einzuschränken. Ich habe eine Startseite, auf der der Kunde zB in einer Spalte ein youtube Video einfügen kann. In dieser Spalte hat er nur Zugriff auf dieses Modul. Er könnte jetzt natürlich hingehen und dieses Modul mehrere Male einbauen, was die Seite ziemlich auseinanderschiessen würde.

Wie könnte man dies einschränken?

ceekay82
Beiträge: 54
Registriert: 5. Aug 2008, 12:55

23. Okt 2010, 00:41

Hallo,

erstelle unter Module eine Aktion mit dem Namen "Nur ein Video!". Kopiere bei Presave-Action folgenden Code rein. Achtung: Variablen anpassen!

Code: Alles auswählen

<?php

/* 
$aid -> Artikel ID
Durch eigene Werte ersetzen:
$mid -> Modul ID
$c -> Sprache
*/

$aid = rex_request('article_id',  'rex-article-id');
$mid = 3;
$c = 0;

$slices = OOArticleSlice::getSlicesForArticleOfType($aid, $mid, $c);
if  (count ($slices) == 1) {
$REX_ACTION['SAVE'] = false;
$REX_ACTION['MSG'] = 'Nur ein Video pro Seite!';
}
?>
Bei zugewiesene Events "Add" auswählen und die Aktion speichern. Dem Modul "Youtube Video" die Aktion zuweisen und schon sollte es funktionieren.

Falls du noch nie eine Aktion hinzugefügt hast, gibt es hier Hilfe:
http://www.redaxo.de/476-0-wie-kann-ic ... onen.html

Viele Grüße
Christian
Für mehr Selbstständigkeit an PCs:
Frage + Google = Antwort

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

23. Okt 2010, 07:29

Eine andere Möglichkeit wäre eine statische Variable im Modul:

Code: Alles auswählen

static $onlyonce = true;

if($onlyonce)
{
  // Modulcode
}
else
{
  // Nur ein Modul... bla... blubb...
}

$onlyonce = false;
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

marc
Beiträge: 73
Registriert: 10. Mai 2006, 12:12
Wohnort: Lux

25. Okt 2010, 12:26

@ceekay82: Danke, das war genau was ich gesucht habe! Tolle Community.

Benutzeravatar
cukabeka
Beiträge: 821
Registriert: 31. Mai 2006, 00:01
Wohnort: Aschaffenburg

Re: Anzahl Blöcke pro Artikel einschränken?

22. Nov 2013, 21:21

Der Ansatz mit dem Static funktioniert bei mir leider nicht, und die Action kommt zu spät. Die Fehlermeldung müsste schon gezeigt werden, bevor man evtl alle Felder ausgefüllt hat. Presave/Preview macht da auch keinen Unterschied..
Viele Grüße
cukabeka

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Anzahl Blöcke pro Artikel einschränken?

22. Nov 2013, 21:29

Wie siehts mit ner normalen globalen $REX['onlyonce'] var aus?

Benutzeravatar
cukabeka
Beiträge: 821
Registriert: 31. Mai 2006, 00:01
Wohnort: Aschaffenburg

Re: Anzahl Blöcke pro Artikel einschränken?

22. Nov 2013, 21:57

hey dude,

danke, gute idee, funktioniert aber auch nicht:

Code: Alles auswählen

<?php 

if($REX['onlyonce'] != true)
{
  // bla
}
else
{
  echo "Dieses Modul kann nur einmal pro Seite hinzugefügt werden. Der vorhandene Block kann aber editiert werden.";
}

$REX['onlyonce'] = true;
 ?>
Viele Grüße
cukabeka

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Anzahl Blöcke pro Artikel einschränken?

22. Nov 2013, 22:08

Kein isset? Das muss doch eine Notice geben... :lol:

Und so:

Code: Alles auswählen

global $REX;

if (isset($REX['ONLY_ONCE'])) {
echo "Dieses Modul kann nur einmal pro Seite hinzugefügt werden. Der vorhandene Block kann aber editiert werden.";
} else {
// do stuff
$REX['ONLY_ONCE'] = true;
}

Benutzeravatar
cukabeka
Beiträge: 821
Registriert: 31. Mai 2006, 00:01
Wohnort: Aschaffenburg

Re: Anzahl Blöcke pro Artikel einschränken?

22. Nov 2013, 22:20

ups. :oops:

(OT: nee, notices ausgeschaltet. seltsamer server, bekomme ich auch nicht mehr an, keine ahnung warum.)

Aber deine Lösung mit isset funzt auch nicht. Keine Ahnung, was da los ist.
Viele Grüße
cukabeka

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Anzahl Blöcke pro Artikel einschränken?

22. Nov 2013, 22:24

Da weiss ich auch nicht mehr. Vielleicht mal mit echo die $REX var ausgeben... und wenn die nie auf true stehen sollte bzw. nicht gesetzt ist, dann herausfinden warum das so ist ;)

Zurück zu „Allgemeines [R4]“