Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 12. Mai 2011 00:06
- MaxMediaPictures
- Gast
[GELÖST] News im Front-End löschen
Hallo,
wir würden gerne auf unserer Homepage News per Frontend einstellen - das ist soweit kein Problem und funktioniert einwandfrei. Leider bietet das News-Modul von Haus aus keine Möglichkeit die erstellten Einträge zu bearbeiten oder zu löschen.
Da es wohl recht aufwendig wäre eine Bearbeitungsfunktion zu implementieren, würde eine Löschfunktion schon reichen (so kann man eine News wenigstens durch eine Verbesserte austauschen).
Bei meiner Suche bin ich auf diesen Eintrag gestoßen: http://forum.cmsmadesimple.org/viewtopic.php?t=29782
Leider scheint es in der aktuellen CMSMS-Version nicht mehr zu funktionieren - ich hab's zumindest nicht geschafft es einzurichten.
Meine Kenntnisse im Bezug auf die Funktionsweise von Modulen sind leider sehr beschränkt, bis nicht vorhanden. Bis jetzt gab es immer ein fertiges Modul, dass meine Wünsche erfüllt hat...
Es wäre echt super wenn mir jemand einen Tipp geben könnte, wie ich das Löschen hinbekomme.
Vielen Dank!
Beitrag geändert von MaxMediaPictures (20. Mai 2011 17:00)
#2 18. Mai 2011 11:25
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] News im Front-End löschen
OK, hier meine Lösung:
Eine neue PHP-Datei namens action.fedeletearticle.php mit folgendem Inhalt erstellen
[== PHP ==] <?php if (!isset($gCms)) exit; $articleid = ''; if (isset($params['articleid'])) { $articleid = $params['articleid']; } $this->delete_article($articleid); $this->Redirect($id, 'fedelete', $returnid, $params); ?>
und dann ins Verzeichnis /modules/News hochladen.
Eine Kopie der News-Modul-Datei action.default.php erstellen und die Kopie in action.fedelete.php umbenennen
In der Datei action.fedelete.php als Zeile 383 dies einfügen
[== PHP ==] $onerow->deletelink = $this->CreateLink($id, 'fedeletearticle', $returnid, $this->Lang('delete'), array('articleid'=>$row['news_id']));
Im News-Zusammenfassungs-Template dies innerhalb der {foreach}-Schleife einfügen
<div class="NewsDeleteLink"> {$entry->deletelink} </div>
und diese Datei dann ebenfalls in o.g. Verzeichnis hochladen.
Das Ergebnis bestaunen, indem man das News-Modul mit
[== Smarty ==] {news action='fedelete'}
in eine Seite einfügt.
Nun steht man vor der Qual der Wahl, entweder diesen Aufruf nur den Bearbeitern einer separat via CustomContent und Co geschützten Seite zugänglich zu machen.
Alternativ könnte man auch den neuen Modulaufruf standardmäßig für die News-Darstellung verwenden (Datei ist ja eine Kopie der Standard-Aktion) und müsste dann nur die Variable {$entry->deletelink} via CustomContent und Co separat absichern.
Offline
#3 20. Mai 2011 22:48
- MaxMediaPictures
- Gast
Re: [GELÖST] News im Front-End löschen
Wow super vielen Dank!
punkt 2 und 3 - das hab ich nie hingekriegt. daran lag es!
#4 20. Mai 2011 05:38
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [GELÖST] News im Front-End löschen
Alternativ könnte man auch den neuen Modulaufruf standardmäßig für die News-Darstellung verwenden (Datei ist ja eine Kopie der Standard-Aktion) und müsste dann nur die Variable {$entry->deletelink} via CustomContent und Co separat absichern.
Es kann auch folgendes Snipplet verwendet werden um den Link anzuzeigen oder nicht:
http://www.cmsmadesimple.de/forum/viewtopic.php?id=783
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#5 25. September 2013 14:53
- bbiederm
- hat von CMS/ms gehört
- Registriert: 11. Juli 2012
- Beiträge: 8
Re: [GELÖST] News im Front-End löschen
Hallo,
ich krame mal diesen alten Thread raus.
Leider funktioniert das nicht bei mir. In den News erscheint zwar ein link der z.B. wie folgt aussieht, aber er funktionirt nicht.
http://www.....de/cmsms/index.php?mact=News,cntnt01,fedeletearticle,0&cntnt01articleid=913&cntnt01returnid=104
Es erscheint die gleiche Seite, die nur bis zum Aufruf des news-moduls generiert wurde ohne weitere fehlermeldung und ohne css-template.
Ich habe mehrfach gecheckt ob ich was falsch gemacht habe, habe aber keinen Fehler gefunden.
Könnt ihr mir helfen?
Beitrag geändert von bbiederm (25. September 2013 15:02)
Offline
#6 28. September 2013 17:37
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] News im Front-End löschen
Hier die überarbeitete Lösung für News 2.13 (CMSMS 1.11.8):
Eine neue PHP-Datei namens action.fedeletearticle.php mit folgendem Inhalt erstellen
<?php if (!isset($gCms)) exit; $articleid = ''; if (isset($params['articleid'])) { $articleid = $params['articleid']; } news_admin_ops::delete_article($articleid); $this->Redirect($id, 'fedelete', $returnid, $params); ?>
und dann ins Verzeichnis /modules/News hochladen.
Eine Kopie der News-Modul-Datei action.default.php erstellen und die Kopie in action.fedelete.php umbenennen
In der Datei action.fedelete.php als Zeile 329 dies einfügen
[== PHP ==] $onerow->deletelink = $this->CreateLink($id, 'fedeletearticle', $returnid, $this->Lang('delete'), array('articleid'=>$row['news_id']));
und diese Datei dann ebenfalls in o.g. Verzeichnis hochladen.
Im News-Zusammenfassungs-Template dies an der gewünschten Stelle innerhalb der (zweiten) {foreach}-Schleife, mit der die News ausgegeben werden, dies einfügen
<div class="NewsDeleteLink"> {$entry->deletelink} </div>
Das Ergebnis bestaunen, indem man das News-Modul mit
{news action='fedelete'}
in eine Seite einfügt.
Aus Sicherheitsgründen muss dieser Link noch separat abgesichert werden!
Entweder man macht dieses Template mit dem Löschlink nur den berechtigten Bearbeitern einer separat via CustomContent und Co geschützten Seite zugänglich.
Oder man nutzt den o.g. Modulaufruf standardmäßig für die News-Darstellung (Datei ist ja eine Kopie der Standard-Aktion) und muss dann nur die Anzeige von {$entry->deletelink} via CustomContent und Co separat absichern.
Offline
#7 03. Oktober 2013 15:57
- bbiederm
- hat von CMS/ms gehört
- Registriert: 11. Juli 2012
- Beiträge: 8
Re: [GELÖST] News im Front-End löschen
Wow, vielen Dank Cyberman!!!
jetzt habe ich aber das Problem, dass -nachdem der Newsaktikel gelöscht wurde- nicht die Aktuelle Seite wieder aufgerufen wird, sondern es werden alle News im Content angezeigt?!?
Der zu löschende Artikel ist zwar weg, aber ich möchte natürlich auf der aktuellen Seite bleiben.
Ich denke irgendwas ist mit der Zeile $this->Redirect in der fedeletearticle.php nicht ok? Leider kenn ich mich nicht damit aus und auch im Internet finde ich nichts.
Was kann ich tun?
Schon mal vielen Dank !!
edit:
Ich habe es jetzt so gelöst:
Ich habe
$this->Redirect($id, 'fedelete', $returnid, $params);
mit
$this->RedirectContent($returnid);
ersetzt.
Ich hoffe das ist 'sauber'?
Beitrag geändert von bbiederm (03. Oktober 2013 20:25)
Offline
#8 05. Oktober 2013 19:46
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] News im Front-End löschen
Wenn es das tut, was es bei dir soll, isses ok .
Offline
#9 24. Februar 2014 19:23
- Tranquillius
- probiert CMS/ms aus
- Ort: Leipzig
- Registriert: 10. September 2013
- Beiträge: 52
Re: [GELÖST] News im Front-End löschen
Aus Sicherheitsgründen muss dieser Link noch separat abgesichert werden!
Entweder man macht dieses Template mit dem Löschlink nur den berechtigten Bearbeitern einer separat via CustomContent und Co geschützten Seite zugänglich.
Oder man nutzt den o.g. Modulaufruf standardmäßig für die News-Darstellung (Datei ist ja eine Kopie der Standard-Aktion) und muss dann nur die Anzeige von {$entry->deletelink} via CustomContent und Co separat absichern.
Also das Template funktioniert bei mir schonmal tadellos. Jetzt habe ich nach langer Überlegung mir gedacht wie ich den Link am besten schütze. Eine neue Gruppe bei FEU anlegen und den "Löschberechtigten" die Gruppe zuweisen und das ganze dann via Abfrage der Gruppenmitgliedschaft (tbtools::hasFeuGroupAccess('Groupid') ist eine Möglichkeit. Der Königsweg ist meiner Meinung nach, wenn jeder Autor nur seine eigenen News-Beiträge löschen darf. Nur wie komme ich an den Nutzernamen von FEU? Mit tbtools kann man sich ja immerhin die UID ausgeben lassen:
tbtools::isLoggedIn($uid)
Wenn ich nur irgendwie an den eingeloggten Username von FEU komme, ist es dann ja einfach umzusetzen. So sieht der Schnipsel im Zusammenfassungstemplate aus.
{if $entry->author == $username}
<div class="NewsDeleteLink">
{$entry->deletelink}
</div>
{/if}
Offline
#10 24. Februar 2014 21:02
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [GELÖST] News im Front-End löschen
FEU kennt auch einige Smarty Funktionen
{$feu_smarty->get_userinfo($uid,$assign)}
This function can be used to return the user information for a single user. The output is an array is assigned to a smarty variable specified in the "assign" parameter.
Example:
{$feu_smarty->get_userinfo($something.userid,'uinfo')}
{$uinfo|@print_r}
Möglicherweise bringt diese Funktion das gewünschte Resultat. Ich habe es jedoch nicht getestet.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#11 24. Februar 2014 22:20
- Tranquillius
- probiert CMS/ms aus
- Ort: Leipzig
- Registriert: 10. September 2013
- Beiträge: 52
Re: [GELÖST] News im Front-End löschen
Vielen Dank wieder einmal. Damit hat es geklappt. Jetzt wird der Löschlink nur bei den Artikeln angezeigt, die vom entsprechenden Autor stammen. Hier mein Schnipsel:
{tbtools::isLoggedIn(uid)}
{$feu_smarty->get_userinfo($uid,'uinfo')}
{if $entry->author == $uinfo.username}
<div class="NewsDeleteLink">
{$entry->deletelink}
</div>
{/if}
Offline
Seiten: 1