wir haben mal auf die schnelle ien Modul gebastelt von dem ich Denke das es dem einem oder anderem nützen könnte.
Details:
Benötigt war ein Modul wie es auf der Website von Contenido benutzt wird um sich mit einer Referenz-Site anzumelden.
Mit dem Modul ist es Möglich über ein Formular Felder Auszufüllen und ein Bild mit Hoch zu laden. Das Formular wird an einen Redakteur geschickt, dervorher im Modul Konfiguriert werden muß. Das Formular wird dann als offline Artikel unter einer bestimmten Katergorie (auch im Modul Konfigurierbar) hinterlegt. Nun brauch der Redakteu diesen Artikel nur noch online setzen (nach Prüfung).
Benötigt werden im Template 2 HTMLHEAD, 5 CMS_HTML und ein CMS_IMG Module für die Ausgabe.
Hier das Modul (nur Output)..., ich weiß, ist nicht ganz sauber, aber vieleicht findet ja jemand die Zeit es zu Optimieren.
Code: Alles auswählen
<?php
/* Wer bekommt die Freischalt-Mails? */
$reciever = "deine.mail@web.de";
/* URL des Moduls zum generieren der Freischalt-Links */
$modurl = "http://www.webiste.de/kategorie/";
/* Unterverzeichnis für Bilddateien */
$sl_upload_subdir = "pfadangabe/";
/* Die verschiedenen Kategorien */
$sl_regions = array("de" => "121", "pl" => "122", "cz" => "123");
$sl_regions_t = array("de" => "Deutschland", "pl" => "Polen", "cz" => "Tschechien");
/* Debug, Auf 1 setzen zum Debuggen */
$debug = 0;
/* Ende der Konfiguration */
$sl_upload_dir = $cfgClient[$client]["upload"].$sl_upload_subdir;
function scCreateArticle($category, $title = "", $summary = "", $author = "", $online = 0) {
/* create article */
global $client, $lang;
$new_art_id = 0;
$def = array(
"client" => $client,
"lang" => $lang,
"idcat" => $category,
"idcatnew" => array($category),
"is_start" => 0,
"idtpl" => null,
"idartlang" => null,
"title" => $title,
"summary" => $summary,
"artspec" => null,
"created" => date('Y-m-d H:i:s'),
"lastmodified" => date('Y-m-d H:i:s'),
"author" => $author,
"online" => $online,
"datestart" => '0000-00-00 00:00:00',
"dateend" => '0000-00-00 00:00:00',
"artsort" => 0
);
$new_art_id = conEditFirstTime($def["idcat"], $def["idcatnew"], $def["idart"], $def["is_start"], $def["idtpl"], $def["idartlang"], $def["lang"], $def["title"], $def["summary"], $def["artspec"], $def["created"], $def["lastmodified"], $def["author"], $def["online"], $def["keyart"], $def["datestart"], $def["dateend"]);
if ($new_art_id != 0) {
return $new_art_id;
} else {
return false;
}
}
function debug($dbg, $hl = "") {
global $debug;
if ($debug != 0) {
echo "<h2>".$hl."</h2>";
echo "<pre>";
print_r($dbg);
echo "</pre>";
}
return true;
}
if ($edit) {
echo "<h1>Unternehmen</h1>";
echo "<p>Hier erscheint die dynamische Ausgabe des Unternehmen-Moduls</p>";
} else {
debug($lang, "Lang");
if (isset($_POST["sent"])) {
debug($_POST, "Post");
/* Artikel sepeichern */
if ($_POST["firma"] == "") {
echo "Sie haben keinen Firmennamen angegeben.";
} else {
if ($_FILES["logo"]["error"] == 0) {
debug($_FILES, "Files");
if ($_FILES["logo"]["type"] == "image/jpeg" || $_FILES["logo"]["type"] == "image/pjpeg" || $_FILES["logo"]["type"] == "image/png") {
switch($_FILES["logo"]["type"]) {
case "image/jpeg": $sl_ext = ".jpg"; break;
case "image/pjpeg": $sl_ext = ".jpg"; break;
case "image/png": $sl_ext = ".png"; break;
}
$sl_tmp = time();
do {
$sl_tmp +=1;
$sl_upload_filename = $sl_tmp.$sl_ext;
$sl_upload_destination = $sl_upload_dir.$sl_tmp.$sl_ext;
} while(file_exists($sl_upload_destination));
move_uploaded_file($_FILES["logo"]["tmp_name"], $sl_upload_destination);
chmod ($sl_upload_destination, 0777);
$sl_imagesize = getimagesize($sl_upload_destination);
if ($sl_imagesize[0] > 150 || $sl_imagesize[1] > 150) {
echo "Die Bilddatei ist größer als 150x150 Pixel";
$sl_logo = false;
$sl_proceed = false;
} else {
$sl_logo = true;
$sl_proceed = true;
cInclude("includes", "functions.upl.php");
uplSyncDirectory($sl_upload_subdir);
/* get id */
$db->query("SELECT idupl FROM ".$cfg["tab"]["upl"]." WHERE filename = '".$sl_upload_filename."' AND dirname = '".$sl_upload_subdir."'");
$db->next_record();
$sl_logo_id = $db->f("idupl");
debug($dl_logo_id, "Logo");
}
} else {
echo "<p>Ihr Logo wurde nicht gespeichert.</p>";
$sl_logo = false;
$sl_proceed = true;
}
} else {
$sl_logo = false;
$sl_proceed = true;
}
if ($sl_proceed) {
$setfree = array();
foreach($sl_regions as $region => $sl_idcat) {
if ($_POST["region_".$region] == 1) {
$sl_id = scCreateArticle (
$sl_idcat,
"Untenehmensspartner: ".$_POST["firma"],
"...", /* FIXME */
"Untenehmensspartner",
0
);
debug($sl_idcat, "Idcat for ".$region);
$setfree[] = $sl_id;
$sl_idartlang = getArtLang($sl_id, $lang);
if ($sl_logo) {
conSaveContentEntry($sl_idartlang, "CMS_IMG", 3, $sl_logo_id);
conSaveContentEntry($sl_idartlang, "CMS_IMGDESCR", 3, $_POST["firma"]);
} else {
conSaveContentEntry($sl_idartlang, "CMS_IMG", 3, "");
conSaveContentEntry($sl_idartlang, "CMS_IMGDESCR", 3, "");
}
conSaveContentEntry($sl_idartlang, "CMS_HTMLHEAD", 1, "Untenehmensspartner: ".$_POST["firma"]);
conSaveContentEntry($sl_idartlang, "CMS_HTML", 1, $_POST["branche"]);
conSaveContentEntry($sl_idartlang, "CMS_HTMLHEAD", 3, "Kontakt");
$sl_regionen = array();
foreach($sl_regions_t as $r => $r_name) {
if ($_POST["region_".$r] == 1) {
$sl_regionen[] = $r_name;
}
}
$sl_regionen = join(" - ", $sl_regionen);
conSaveContentEntry($sl_idartlang, "CMS_HTML", 2, $sl_regionen);
conSaveContentEntry($sl_idartlang, "CMS_HTML", 3, 'Ansprechpartner: '.$_POST["name"].'<br />Telefon: '.$_POST["telefon"].'<br />E-Mail:'.$_POST["email"]);
conSaveContentEntry($sl_idartlang, "CMS_HTML", 4, nl2br(strip_tags($_POST["beschreibung"])));
$webseite = str_replace("http://", "", $_POST["webseite"]);
$webseite = str_replace("https://", "", $webseite);
$url = "http://" . $webseite;
conSaveContentEntry($sl_idartlang, "CMS_HTML", 5, '<a href="'.$url.'">'.$webseite.'</a>');
}
}
echo "Vielen Dank. Wir werden Ihr Inserat in unserem Untenehmen nach einer Überprüfung freischalten.";
$setfree = base64_encode(serialize($setfree));
debug($setfree, "Setfree");
/* mail verschicken */
#mail($reviever, "Neuer Untenehmenspartner", $_POST["firma"]."\n\nHier muss noch ein guter Text hin.\n\nFreischalten: ".$modurl."?publish=".$setfree."\nLoeschen: ".$modurl."?remove=".$setfree, "From: Untenehmenspartner<noreply@domain.de>");
}
}
} elseif($_GET["publish"] != "") {
/* Veröffentlichen des Artikels */
$arts = unserialize(base64_decode($_GET["publish"]));
foreach ($arts as $art) {
conMakeOnline($art, $lang);
}
echo "Der Eintrag wurde veröffentlicht.";
} elseif($_GET["remove"] != "") {
/* Löschen des Artikels */
$arts = unserialize(base64_decode($_GET["remove"]));
foreach ($arts as $art) {
conDeleteart($art);
}
echo "Der Eintrag wurde gelöscht";
} else {
/* Ausgabe des Formulars */
echo '<form action="" method="post" enctype="multipart/form-data">'."\n";
echo '<input type="hidden" name="sent" value="1" />'."\n";
echo '<p></p>'."\n";
echo '<table>'."\n";
echo '<tr>'."\n";
echo '<td>Firma*:</td>'."\n";
echo '<td><input type="text" name="firma" size="30" maxlength="50" value="" /></td>'."\n";
echo '</tr>'."\n";
echo '<tr>'."\n";
echo '<td>Branche:</td>'."\n";
echo '<td><input type="text" name="branche" size="30" maxlength="50" value="" /></td>'."\n";
echo '</tr>'."\n";
echo '<tr>'."\n";
echo '<td>Regionen*:</td>'."\n";
echo '<td><input type="checkbox" name="region_de" value="1" /> <label for="region_de">Deutschland</label> <input type="checkbox" name="region_pl" value="1" /> <label for="region_pl">Polen</label> <input type="checkbox" name="region_cz" value="1" /> <label for="region_cz">Tschechien</label> </td>'."\n";
echo '</tr>'."\n";
echo '<tr>'."\n";
echo '<td>Firmenlogo<sup>1</sup>:</td>'."\n";
echo '<td><input type="file" name="logo" /></td>'."\n";
echo '</tr>'."\n";
echo '<tr>'."\n";
echo '<td>Ansprechpartner:</td>'."\n";
echo '<td><input type="text" name="name" size="30" maxlength="50" value="" /></td>'."\n";
echo '</tr>'."\n";
echo '<tr>'."\n";
echo '<td>Telefon:</td>'."\n";
echo '<td><input type="text" name="telefon" size="30" maxlength="50" value="" /></td>'."\n";
echo '</tr>'."\n";
echo '<tr>'."\n";
echo '<td>E-Mail:</td>'."\n";
echo '<td><input type="text" name="email" size="30" maxlength="50" value="" /></td>'."\n";
echo '</tr>'."\n";
echo '<tr>'."\n";
echo '<td>Webseite:</td>'."\n";
echo '<td><input type="text" name="webseite" size="30" maxlength="100" value="" /></td>'."\n";
echo '</tr>'."\n";
echo '<tr>'."\n";
echo '<td>Beschreibung:</td>'."\n";
echo '<td><textarea name="beschreibung" cols="38" rows="4" wrap="virtual"></textarea></td>'."\n";
echo '</tr>'."\n";
echo '</table>'."\n";
echo '<p>* Diese Felder müssen ausgefüllt werden.</p>';
echo '<p><sup>1</sup> Nur <abbr title="Joint Photography Expert Group">JPG</abbr> und <abbr title="Portable Network Graphics">PNG</abbr>, maximal 150x150 Pixel</p>';
echo '<input type="submit" value="Absenden" />'."\n";
echo '</form>'."\n";
}
}
?>