[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Module für Gäste (Frontend) - 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/
Benutzeravatar
Sascha
Beiträge: 27
Registriert: 3. Jan 2008, 00:06

Module für Gäste (Frontend)

2. Feb 2008, 22:19

Die Moduleingabe ist ja nur im Backend. Mich würde nun interessieren ob es möglich ist die Moduleingabe eines Moduls auch ins Frontend (also auf der Seite) für die Besucher freizuschalten.

Damit diese z.b. Links eintragen können, oder Kordinaten, Einträge ins Gästebuch und so weiter und so fort.

Man versteht, die Moduleingabe auf die Seite bringen, ohne das der Gast dafür sich anmelden muss oder ins Backend verschickt wird.

Würde mich sehr interessieren, ob das mit Redaxo auch einfach gelöst werden kann oder ob man da schon selbst die Datenbank ansprechen muss.
Gruss,
Sascha

Benutzeravatar
anita
Beiträge: 711
Registriert: 25. Jan 2007, 10:25
Wohnort: Finsterwalde

3. Feb 2008, 14:35

hallo Sascha,

will grad ein Blog-AddOn schreiben, wo sich mir ähnliche Fragen auftun.

Was genau willst Du denn erreichen? Da braucht's ja ein Eingabeformular und das ist auf alle Fälle schon mal ein Modul. Dann könntest Du Textile verwenden, setzt aber voraus, dass die user wissen, was sie eingeben müssen. Da könntest Du vielleicht eine Erklärung mit den wichtigsten Formatierungen irgendwo unterbringen.

Zu den Links: da wäre es auch möglich, das mit regulären Ausdrücken zu lösen. So dass der link nach dem Muster www.domain eingetragen werden muss. Dass geht auf jeden Fall für externe Links.

Mit den Koordinaten da verstehe ich nicht, was Du damit meinst.
Gruß Anita

javanita engineering, immer eine zündende Idee
http://www.javanita.com

Benutzeravatar
Peter.Bickel
Beiträge: 1856
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

3. Feb 2008, 17:19

Meines Wissens funktionieren Module nicht im Frontend. Wäre m.E. auch nicht sinnvoll, denn das ist für Besucher nicht unbedingt sinnvoll zu bedienen.
Man müsste hier die klassischen Formulare bauen zum Schreiben in und Auslesen aus Datenbaken - für den Zweck, den man halt benötigt.

Evtl. kann das demnächst fertige Community-Addon für Euch interessant sein, womit man viele der üblichen Anforderungen erledigen kann:
http://forum.redaxo.de/ftopic7248.html

Viele Grüße,
Peter.

Benutzeravatar
SquirrelFrank
Beiträge: 186
Registriert: 9. Sep 2006, 22:40
Wohnort: Österreich / Wien
Kontaktdaten: ICQ Website

3. Feb 2008, 19:23

ich habe vor längerer Zeit mal ein Modul gebaut, dass im Frontend gefüllt werden kann.

Ich poste hier mal den Code. Vlt. hillft es dir ja

Modul eingabe:

Code: Alles auswählen

<br><strong>Einstellungen</strong><br>Text für Nachname:<br><input type=text size=30 name=VALUE[3] value="REX_VALUE[3]" class=inp100><br>
Text für Vorname:<br><input type=text size=30 name=VALUE[2] value="REX_VALUE[2]" class=inp100><br>
Text für Email:<br><input type=text size=30 name=VALUE[4] value="REX_VALUE[4]" class=inp100><br>
Text für Antragsname:<br><input type=text size=30 name=VALUE[5] value="REX_VALUE[5]" class=inp100><br>
Text für Antragstext:<br><input type=text size=30 name=VALUE[6] value="REX_VALUE[6]" class=inp100><br>
Text für Forderungen:<br><input type=text size=30 name=VALUE[7] value="REX_VALUE[7]" class=inp100><br><br>
Text bei erfolgter Eintragung<br>
<?php 
$a = new rex_wysiwyg_editor(); 
$a->buttonrow1 = "styleselect,separator,bold,italic,separator,bullist,numlist,image"; 
$a->buttonrow2 = "link,linkHack,unlink,insertEmail,separator,removeformat,pasteRichtext,code"; 
$a->buttonrow3 = "tablecontrols, separator, visualaid"; 
$a->buttonrow4 = "rowseparator,formatselect,fontselect,fontsizeselect,forecolor,charmap"; 
$a->stylesheet = "/redaxo3_0/files/text.css"; 
$a->content = "REX_VALUE[1]"; 
$a->id = 1; 
$a->show(); 
?>
Modul ausgabe:

Code: Alles auswählen

<?php
if (!$REX[REDAXO]):

/* EINSTELLUNGEN: */
	$erfolgte_eintragung = "Dein Antrag ist bei uns eingegangen!";
	$fehler_bei_eintragung = "Es ist ein Fehler aufgetreten. Bitte versuch es nochmal. Falls diese Fehlermeldung dann noch immer erscheint, schreibe uns bitte unter <a href=\"mailto:email@domain.at\">email@domain.at</a> ";


   $hack_meldung = '<h3>Folgende Angaben sind falsch oder fehlen:</h3>'; 
/* EINSTELLUNGEN ENDE */



// Daten aus Form config konvertieren 
    function clean_text($value = "") 
    { 
        $value = htmlentities($value); 
        return $value; 
   } 
   $formular_vorname = "REX_VALUE[2]";
   $formular_name = "REX_VALUE[3]";
   $formular_email = "REX_VALUE[4]";
   
   $formular_aname = "REX_VALUE[5]";
   $formular_antrag = "REX_VALUE[6]";
   $formular_aforderungen = "REX_VALUE[7]";

   $erfolgte_eintragung = "REX_HTML_VALUE[1]";
   $submit_titel = 'Absenden';
   $submit_value = 'Absenden';

   $formular_vorname = clean_text($formular_vorname); 
   $formular_name = clean_text($formular_name); 
   $formular_email = clean_text($formular_email); 


function cleanup ($string) { 
   // falls magic quotes on 
   if (get_magic_quotes_gpc()) 
   { 
       $string = stripslashes($string); 
    } 
   $string = addslashes($string); 
    $string = strip_tags($string); 
    // "--","#";";","`","/"   Ausfiltern von SQL-Statements 
    $string = str_replace(array("--","- -","#",";","`","/","<",">","{","}","[","]"),array("","","","","","","","","","","",""),$string); 
   // - mit Leerzeichen dazwischen (SQL-Kommentare!) 
    $string = preg_replace('#-\s+-#i',"",$string); 
    return $string; 
} // end function cleanup 

function checkName ($string) { 
// $name am Anfang Buchstabe; keine Zahlen und Nicht-Wortzeichen; dann 
// beliebig viele Buchstaben, Bindestriche, Leerzeichen und Punkte 
    if (preg_match("/^[^\W\d_]([^\W\d_]|[\-\'\s\.\ä\ö\ü\Ä\Ö\Ü\ß])*$/", stripslashes($string))) 
    { 
       return true; // OK 
   } 
   else 
   { 
       return false; // falsche Eingabe 
   }    
} // end function checkName 

function checkEingabe ($string) { 
// Schaut lediglich, ob eh was eingetragen ist
    if ($string!="")
    { 
       return true; // OK 
   } 
   else 
   { 
       return false; // falsche Eingabe 
   }    
} // end function checkName 

function checkEmail ($string) { 
// $email mindestens a@a.aa 
    if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([_a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", stripslashes($string))) 
    { 
       return true; // OK 
   } 
   else 
   { 
       return false; // falsche Eingabe 
   }    
} // end function checkEmail 



// ============== Start Formularüberprüfung ============== 


   $hack = false;  // Bool'sche Variable zeigt an, ob 
                    // ein Hackingversuch vorliegt 
                        
   // Auslesen und Säubern der Daten aus $_POST 
   if (sizeof($_POST) == 0) 
   { 
        $name = ""; 
        $vorname = ""; 
        $email = ""; 
		$aname = ""; 
        $antrag = ""; 
        $aforderungen = ""; 
    } 
    else 
    { 
       $name = $_POST["name"];       
       $vorname = $_POST["vorname"]; 	   
       $email = $_POST["email"]; 
	  
	   $aname = $_POST["aname"];       
       $antrag = $_POST["antrag"]; 	   
       $aforderungen = $_POST["aforderungen"]; 
       
	   $submit = $_POST["submit"]; 
       
	   $name = cleanup($name); 
       $vorname = cleanup($vorname); 	   
       $email = cleanup($email); 
	  
	   $aname = cleanup($aname); 
       $antrag = cleanup($antrag); 	   
       $aforderungen = cleanup($aforderungen); 
      
	   $submit = cleanup($submit); 

    
       // Verifizieren der Daten 

       if (checkName($name)!=1) 
      { 
         $hack = true; $feld = $formular_name; 
      } 

      if (checkName($vorname)!=1) 
      { 
         $hack = true; $feld = $formular_vorname; 
      } 
      if (checkEmail($email)!=1) 
      { 
         $hack = true; $feld = $formular_email; 
      } 
	  
	   if (checkEingabe($aname)!=1) 
      { 
         $hack = true; $feld = $formular_aname; 
      } 
	   if (checkEingabe($antrag)!=1) 
      { 
         $hack = true; $feld = $formular_antrag; 
      } 
	   if (checkEingabe($aforderungen)!=1) 
      { 
         $hack = true; $feld = $formular_aforderungen; 
      } 
       
   } // end else 

$aktuellezeit = time(); //aktuelle Zeit
// ============== Ende Formularüberprüfung ============== 

// beim ersten Aufruf oder unkorrekten Eingaben Formular ausgeben 
if (($submit == "") OR (($submit == $submit_value) AND ($hack == true))) 
{ 
    
   // Bei inkorrekten Eingaben eine Fehlermeldung ausgeben: 
   if ($hack) 
   { 
?> 
<h4><?php echo $hack_meldung; ?></h4> 
<ul> 
<li><?php echo $feld; ?></li> 
</ul> 

<?php 
   } // end if ($hack) 
   else 
   { 
      if ($page_info != "") 
      { 
         echo "<p>" . $page_info . "</p>\n"; 
      } 

   } // end else 
    
?> 
<div id="formwrap"> 
<div id="form"> 

<form id="sipantrag" method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>"> 
<fieldset title="Sip Antrag einschicken"> 

<ul id="sipantrageinreichen">
<li>
	<label for="vorname" title="Vorname"><?php echo $formular_vorname; ?></label>
	<input class="text" type="text" id="vorname" name="vorname" size="38" title="<?php echo $formular_vorname; ?>" value="<?php echo stripslashes($vorname); ?>" />
</li>
<li>
	<label for="name" title="Nachname"><?php echo $formular_name; ?></label>
	<input class="text" type="text" id="name" name="name" size="38" title="<?php echo $formular_name; ?>" value="<?php echo stripslashes($name); ?>" />
</li>
<li>
	<label for="email" title="Email adresse"><span lang="en"><?php echo $formular_email; ?></span></label>
	<input class="text" type="text" id="email" name="email" size="38" title="<?php echo $formular_email; ?>" value="<?php echo stripslashes($email); ?>" />
</li>
<li class="mtop">
	<label for="aname" title="Antragsname"><?php echo $formular_aname; ?></label>
	<input class="text" type="text" id="aname" name="aname" size="38" title="<?php echo $formular_aname; ?>" value="<?php echo stripslashes($aname); ?>" />
</li>
<li>
	<label for="antrag"><?php echo $formular_antrag; ?></label>
	<textarea class="textarea" type="text" id="antrag" name="antrag" rows="15" cols="60" title="<?php echo $formular_antrag; ?>"></textarea>
</li>
<li>
	<label for="aforderungen"><?php echo $formular_aforderungen; ?></label>
	<textarea class="textarea" type="text" id="aforderungen" name="aforderungen" cols="60" rows="7" title="<?php echo $formular_aforderungen; ?>"></textarea>
</li>
<li>
<input type="submit" class="submit" name="submit" value="<?php echo $submit_value; ?>" title="<?php echo $submit_titel; ?>" tabindex="4" />
</li>
</ul>
</fieldset> 
</form> 
</div> 
</div> 

<?php 
} // if (($submit == "") OR (($submit == $submit_value) AND ($hack == true))) 
elseif (($submit == $submit_value) AND ($hack == false)) 
{ 



$sql = new sql;

$sql->setQuery("SELECT MAX(id) AS maxid FROM rex_article");
$newid = $sql->getValue('maxid') + 1;

$sql->setQuery("SELECT MAX(prior) AS maxprior FROM rex_article WHERE re_id='38'");
$maxprior = $sql->getValue("maxprior") + 1;

$sql->flush();
$sql->setTable("rex_article");
$sql->setValue("re_id", 51);
$sql->setValue("id", $newid);
$sql->setValue("name", $aname);
$sql->setValue("catname", $aname);
$sql->setValue("catprior", 0);
$sql->setValue("type_id", 1);
$sql->setValue("teaser", 0);
$sql->setValue("startpage", 0);
$sql->setValue("prior", $maxprior);

$sql->setValue("path", "|51|");
$sql->setValue("status", 0);
$sql->setValue("online_from", 1161420213);
$sql->setValue("online_to", 1262300400);
$sql->setValue("createdate", $aktuellezeit);
$sql->setValue("updatedate", $aktuellezeit);
$sql->setValue("template_id", 1);
$sql->setValue("clang", 0);
$sql->setValue("createuser", 'admin');
$sql->setValue("updateuser", 'admin');
$sql->insert();
$sql = new sql;


$sql->flush();
$sql->setTable("rex_article_slice");
$sql->setValue("article_id", $newid);
$sql->setValue("clang", 0);
$sql->setValue("ctype", 0);
$sql->setValue("re_article_slice_id", 0);
$sql->setValue("value1", $aname);
$sql->setValue("value2", $antrag);
$sql->setValue("value3", $aforderungen); //Überschrift, und so weiter. alles kommt  da rein!!
$sql->setValue("link1", 0);
$sql->setValue("link2", 0);
$sql->setValue("link3", 0);
$sql->setValue("link4", 0);
$sql->setValue("link5", 0);
$sql->setValue("link6", 0);
$sql->setValue("link7", 0);
$sql->setValue("link8", 0);
$sql->setValue("link9", 0);
$sql->setValue("link10", 0);

$sql->setValue("modultyp_id", 19);
$sql->setValue("createdate", $aktuellezeit);
$sql->setValue("updatedate", $aktuellezeit);
$sql->setValue("createuser", "admin");
$sql->setValue("updateuser", "admin");
$sql->insert();

if($sql->error == ""){
$empfaenger = "anna.palienko@reflex.at";
$betreff = "LSV WIEN - Neuer SiP antrag";
$inhalt = "$vorname $name ($email) hat einen SiP Antrag mit dem Namen: $aname eingesendet!";
$header = 'From: LSV WIEN Homepage';
mail($empfaenger, $betreff, $inhalt, $header); 
$hack = $erfolgte_eintragung;
$email = "";
}else{
$hack = $fehler_bei_eintragung;
     }

echo $hack;
}
endif;

?>
im Grunde kann somit jeder User einen Artikel erstellen, der standardmäßig deaktiviert ist, und dann durch den admin im backend online gestellt werden kann.

lg. Squirrel

Fanello
Beiträge: 336
Registriert: 24. Mai 2006, 14:01
Wohnort: Riedt (Schweiz)

17. Apr 2008, 00:32

ich habs mit diesem Modul versucht.. aber wo wird denn der neue Artikel aufgeführt? Ich habe einen neuen Eintrag gemacht, finde aber den Artikel nirgends...

:?:

Goldacker
Beiträge: 148
Registriert: 1. Jul 2007, 13:27
Wohnort: Hamburg / Berlin / Neubrandenburg
Kontaktdaten: Website

Modul fertig

18. Mai 2008, 13:41

Hallo,
ich hab ein funktionierendes Modul. Damit ist es dem Seitenbesucher möglich Artikel zu erstellen. Ein sehr handliches web2.0 Modul. Bei Interesse mal melden.

Benutzeravatar
Richard.Laing
Beiträge: 2105
Registriert: 28. Aug 2005, 00:55
Wohnort: Brühl / Rheinland
Kontaktdaten: Website

18. Mai 2008, 16:32

hallo Goldacker

aber gerne würde ich dein modul mal testen, ich bin auch auf der suche nach einen front eintrag.
gruß richy

Zurück zu „Allgemeines [R4]“