Seite 1 von 1

Inhalt im Frontend erstellen bzw. bearbeiten?

Verfasst: Di 6. Mai 2008, 10:24
von Piranha
Hallo,

ich beschäftige mich seit einiger Zeit mit Contenido. Leider habe ich noch nicht herausfinden können wie man nach einem gültigen Login Artikel aus dem Frontend heraus erstellen oder bearbeiten kann. Ist das überhaupt möglich mit Contenido?
Über eine Antwort würde ich mich freuen und bedanke mich im Voraus!

Gruß

Verfasst: Di 6. Mai 2008, 11:25
von Halchteranerin
Ich weiß jetzt gerade nicht, ob schon mal jemand irgendwas dafür geschrieben hat, aber das ist eigentlich so nicht vorgesehen, die Frontendbenutzer sind dafür da, um ihnen lesenden Zugriff auf geschützte Bereiche zu gewähren.

Verfasst: Di 6. Mai 2008, 12:23
von Piranha
Danke für die schnelle Antwort!

Verfasst: Di 6. Mai 2008, 18:27
von OliverL
Naja, um Artikel zu editieren benötigst du eigendlich nur ein Login-Modul das dich nicht als Frontend-User ein loggt, sondern als Backend-User.

ein einfaches Beispiel kannst du erzeugen wenn du dich im Backend einloggst und dann die Session kopierst und an "front_content.php" anhängst.

http://www.domain.de/cms/front_content. ... ido=xyz123

Dann werden die Edit-Buttons eingeblendet (so wie beim editor).


Hast du vor ein Intranet zubauen?

mfg Oli

Verfasst: Di 6. Mai 2008, 20:30
von Halchteranerin
OliverL hat geschrieben:Naja, um Artikel zu editieren benötigst du eigendlich nur ein Login-Modul das dich nicht als Frontend-User ein loggt, sondern als Backend-User.
Das verstehe ich gerade nicht ... wieso braucht er extra ein Login-Modul und kann nicht einfach das Contenido-Login benutzen?

Verfasst: Di 6. Mai 2008, 20:54
von OliverL
Wenn man Artikel bearbeiten will muss man als Backend-User eingeloggt sein um die entsprechenden Rechte zubekommen.

Wenn man im Frontend Artikel-Texte bearbeiten will muss man sich im Frontend einloggen um im Frontend zubleiben.

d.h.
- man muss ein Modul haben das den Backend-Login durchführt
- die Session als Cookie setzt
(eventuel muss man auch die Session per Get übergeben wie im BEnd und in "conlib/local.php" anpassen)
- dann aufjedenfall einen reload der Seite durchführen
(Damit die anderen Module die Neue Sessin bekommen).


Ich kenne leider noch kein Modul das das macht.

mfg oli

Verfasst: Di 6. Mai 2008, 21:08
von Halchteranerin
OliverL hat geschrieben:Wenn man Artikel bearbeiten will muss man als Backend-User eingeloggt sein um die entsprechenden Rechte zubekommen.

Wenn man im Frontend Artikel-Texte bearbeiten will muss man sich im Frontend einloggen um im Frontend zubleiben.
Ach so, du meintest eine Kombination aus beiden, also sich als Backenduser im Frontend anmelden. Ich hatte nicht verstanden, wozu man ein Extra-Loginmodul braucht, wenn man sich sowieso im Backend anmeldet.

Ich bin mir nicht ganz sicher, aber ich glaube, schon mal davon gelesen zu haben. Aber ob jemand auch nur auf der Suche war, wie Piranha, oder ob es eine Lösung gab, weiß ich nicht mehr. Piranha, vielleicht suchst du mal im Forum. :) Aber wenn, dann unter 4.4.x oder 4.6.x, auf keinen Fall hier bei 4.8, weil es dafür garantiert (noch) nichts gibt. Kann aber sein, dass ältere Module auch mit der neuen Version laufen.

Frontend-User

Verfasst: Sa 11. Okt 2008, 12:14
von Leo
Hallo,

an einem solchen Modul wäre ich auch interessiert. Gibt es dafür schon eine Lösung?

Gruß

Leonhard

Quick and dirty

Verfasst: Di 14. Okt 2008, 08:30
von schlaucher
Es gibt eine Möglichkeit, in wie weit diese regulär ist kann ich aber hier nicht sagen. Folgende Code habe ich hier im Forum schon gefunden:

Code: Alles auswählen

$NeuerArtikel_idart = scCreateArticle($idcat, $Neuer_titel, '', $author, '1');

// Funktion Artikel erstellen 
function scCreateArticle($category, $title = "", $summary = "", $author = "", $is_online = 1) 
    { 
    global $client, $lang; 
    $new_art_id = 0; 

    $def = array( 
        "client" => $client, 
        "lang" => $lang, 
        "idcat" => $category, 
        "idcatnew" => array($category), 
        "is_start" => 0, 
        "idtpl" => 8, 
        "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" => 1, 
        "datestart" => '0000-00-00 00:00:00', 
        "dateend" => '0000-00-00 00:00:00', 
        "artsort" => 0 
    ); 

    // con edit first time zum erstellen eines neuen artikels mit den notwendigen variablen 
    $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; 
        } 
    }
Damit kann ich in einen neuen Artikel über das Frontend anlegen. Anschließend fülle ich die con_content mit Inhalt.

Code: Alles auswählen

            $sql    = "INSERT INTO ".$cfg["tab"]["content"]." ";
            $sql   .= "(idcontent, idartlang, idtype, typeid, value, author, created, lastmodified) ";
            $sql   .= "VALUES('".$db->nextid($cfg["tab"]["content"])."', '".$idartlang."', '$idtype', '".$zaehler."', '".$inhalt."', '".$author."', '".$date."', '".$date."')"; 
            $db->query($sql); 
Somit kann ich die allermeisten Inhalte eintragen z.B. für die Eingabe von neuen Termine in die Terminliste.
Ist zwar etwas Bastelarbeit, aber es funktioniert.

Das Ganze ist natürlich nur in einem geschützen Bereich für definierte Frontend-User zugänglich.

Gruß
schlaucher