• twitter image
  • facebook image
  • youtube image
  • linkedin image
Language: CMS Made Simple Czech CMS Made Simple France CMS Made Simple Hungary CMS Made Simple Russia CMS Made Simple Netherlands

All times are UTC




Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 87 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next
Author Message
 Post subject: (Gelöst) Backend um Option in der Seitenerstellung erweitern
PostPosted: Sun Mar 29, 2009 6:53 pm 
Offline
Translator
Translator
User avatar

Joined: Sun Mar 29, 2009 3:32 pm
Posts: 150
Location: London
Hallo,

Gibt es eine Möglichkeit, das Backend in der gleichen Weise um ein Optionsfeld (Checkbox o.ä.) zu erweitern, wie mit den content_image Blöcken um ein Bildauswahlfeld? Ich habe mich gestern eine Weile damit beschäftigt, alle Module durchzusehen und nach einem gesucht, dass das evtl. möglich macht, so wie das beim News Modul funktioniert. Das man also global für alle Seiten zusätzliche Optionsfelder schafft.

Die Freifelder helfen mir in dem Fall nicht weiter, da es wirklich um simple boolesche Werte geht.

Danke an alle Helfenden :)

_________________
Forge Profile


Last edited by Anonymous on Wed May 26, 2010 7:32 am, edited 1 time in total.

Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Backend um Option in der Seitenerstellung erweitern
PostPosted: Mon Mar 30, 2009 7:03 am 
Offline
Forum Members
Forum Members
User avatar

Joined: Wed Feb 25, 2009 9:07 pm
Posts: 14
Das würde ich auch gerne wissen.


Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Backend um Option in der Seitenerstellung erweitern
PostPosted: Mon Mar 30, 2009 10:03 am 
Wäre im Prinzip recht einfach umzusetzen.
Allerdings gibts da leider keine so komfortable Funktion wie beim News-Modul.
Dazu müsste man den Inhaltstyp "Content" modifizieren. (/lib/classes/contenttypes/content.inc.php)
Weiß nicht wie fit Du in Sachen PHP bist.
Hab sowas schonmal gemacht, find den Code gerade nicht.

Sag bescheid, wenn ich was finde.
 


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Backend um Option in der Seitenerstellung erweitern
PostPosted: Tue Mar 31, 2009 5:15 pm 
Offline
Translator
Translator
User avatar

Joined: Sun Mar 29, 2009 3:32 pm
Posts: 150
Location: London
Hallo NaN,

vielen Dank für deine Antwort! Ich bin in PHP sehr fit, jedoch erst neu in das System eingestiegen, sodass ich aktuell keine Zeit habe, mich um eine Eigenentwicklung zu kümmern. Das System soll ja auch schön updatebar sein ;)

Da du aber dagegen sehr firm mit dem System zu sein scheinst, könntest du evtl Interesse an dem Jobangebot haben: http://forum.cmsmadesimple.org/index.ph ... 9.html#new

_________________
Forge Profile


Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Backend um Option in der Seitenerstellung erweitern
PostPosted: Tue Mar 31, 2009 6:31 pm 
Sowas würd ich auch für lau machen.
Sind wirklich nicht viel Zeilen Code.
Und das System bleibt in jedem Fall updatebar, da Du lediglich einen neuen Inhaltstyp hinzufügen würdest.
Hab allerdings das Problem, dass mein Rechner gerade seine Festplatte nicht mehr erkennen will (natürlich die, wo die wichtigen Daten drauf sind...), sodass ich die nächsten Tage wohl mehr damit beschäftigt bin, das zu retten, was noch zu retten ist...

Edit:

Ach was solls!
Hab im Anhang mal eine modifizierte Version des regulären Inhaltstyps "Content".
Die Datei sollte man einfach in den Ordner /lib/classes/contenttypes/ kopieren und dann beim Bearbeiten/Erstellen einer Seite im Dropdownfeld den Inhaltstyp "Content 2" auswählen können.
Dann sollte da eine weitere Checkbox sein.
Habs noch nicht testen können.
(nach dem download die Endung ".mpg" entfernen)

Wem "Content 2" nicht gefällt, der muss im Quellcode in den Zeilen 44-56 die Funktion FriendlyName() entsprechend ändern.
Hab im Quellcode ausreichend Kommentare hinterlassen, die hoffenltich ein wenig Licht ins Dunkel bringen (einfach nach "added by NaN" suchen).

Achja, fast hätte ich es vergessen!
Ich hab kein Plan wie man an die neu hinzugefügte Eigenschaft vom Template aus rankommt außer mit einem UDT wie z.B. {get_content_props}.

Hoffe es klappt.

Edit (07.08.2009):
Vergesst was da oben steht. Im Anhang gibts inzwischen die fertigen Versionen ;)


Attachments:
[The extension mpg has been deactivated and can no longer be displayed.]
[The extension mpg has been deactivated and can no longer be displayed.]


Last edited by NaN on Fri Aug 07, 2009 2:22 pm, edited 1 time in total.
Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Backend um Option in der Seitenerstellung erweitern
PostPosted: Tue Mar 31, 2009 8:10 pm 
das wünsche ich mir schon seit Beginn meiner CMSMS-Zeit. Am besten wäre eine Art Tag wie  {Content}... also z.b. {checkbox value="1,2,3,4,5," labels="eins,zwei,drei,vier,fünf"}...  oder das gleiche für Dropdowns, filepicker, date-picker, etc etc damit könnte man direkt in regulären Templates sehr flexible Optionen einbinden...

Quasi sowas wie der Image-Tag... aber ich habe mich mit dem Thema Content-Typen selbst noch nie beschäftigt und dies immer über reguläre Content-Blöcke gelöst. Werde mir mal den Code reinziehen... vielleicht ist das ja auch schon die Lösung :)

Wenn die Daten im Table content_props liegen, könnte man evtl. auch mit dem Content_Dump Plugin darauf zugreifen.

Beste Grüße
Nils


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Backend um Option in der Seitenerstellung erweitern
PostPosted: Tue Mar 31, 2009 9:43 pm 
Offline
Translator
Translator
User avatar

Joined: Sun Mar 29, 2009 3:32 pm
Posts: 150
Location: London
He NaN,

Ganz große Klasse dein neuer Inhaltstyp! Ich habe jetzt alle benötigten Checkboxen angelegt und es funktioniert zusammen mit dem UDT prächtig! Auch sehr gut mit den Beschreibungstexten, ich schätze das sehr :)

Viele Grüße aus dem sonnigen Schwarzwald

_________________
Forge Profile


Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Backend um Option in der Seitenerstellung erweitern
PostPosted: Tue Apr 14, 2009 2:56 pm 
nhaack wrote:
das wünsche ich mir schon seit Beginn meiner CMSMS-Zeit. Am besten wäre eine Art Tag wie  {Content}... also z.b. {checkbox value="1,2,3,4,5," labels="eins,zwei,drei,vier,fünf"}... 


Hab da schon was in Arbeit.
Gibts demnächst zum Download.


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: (Gelöst) Backend um Option in der Seitenerstellung erweitern
PostPosted: Tue Apr 14, 2009 5:44 pm 
Das wäre der absolute Knüller... könnte es just für ein aktuelles Projekt nutzen.  Hab's leider bis jetzt versäumt mir deine erstgenannte Modifikation mal anzugucken... tz tz tz..

Beste Grüße
Nils


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: (Gelöst) Backend um Option in der Seitenerstellung erweitern
PostPosted: Wed Apr 15, 2009 12:44 pm 
So,

hier mal ein neuer Inhaltstyp (Inhalt 2) + Plugin ({content2}). (siehe Anhang)

Das Plugin und der zugehörige Inhaltstyp sind Modifikationen des regulären Plugins {content} bzw. Inhaltstyps "Inhalt".
Der Inhaltstyp kombiniert unter anderem die beiden Tags {content} und {content_image}.
Das Plugin {content2} ist optional und nur nötig, wenn man die volle Funktionalität des {content_image}-Plugins zusammen mit dem Inhaltstyp "Inhalt 2" verwenden möchte.
(Der Tag {content_image} funktioniert derzeit nicht mit dem neuen Inhaltstyp; ließe sich bei Bedarf aber noch ändern)
Desweiteren lassen sich über Parameter weitere Optionen für den Inhaltstyp hinzufügen.

Im Prinzip funktionieren alle zusätzlichen Felder wie eigene Inhaltsblöcke.
Das hat den Vorteil, dass man kein zusätzliches Plugin benötigt um an die Daten der zusätzlichen Felder heranzukommen.
Die werden einfach mit dem Plugin {content} mit ausgegeben.

D.h. mit dem Parameter "block" können ja bisher im Backend weitere Editor-Felder erzeugt werden.
Ich habe das ganze so umgeschrieben, dass man damit jede Art von Input-Feld erzeugen kann.
Die Art des Feldes wird über einen weiteren Parameter "type" definiert.
(default ist "text" d.h. ein Textarea mit WYSIWYG-Editor; weitere Möglichkeiten sind image, checkbox, dropdown und select_mutliple)

Weiterhin kann man sich über die Parameter "block_tab" und "page_tab" den Aufbau des Backends selber zusammenstellen.
Mit "page_tab" kann man festlegen in welchem Tab der Inhaltsblock angezeigt werden soll.
Man könnte rein theoretisch mit {content page_tab='options' ... } im Tab "Optionen" weitere Checkboxen oder Editor-Felder anzeigen lassen.
Existiert im Backend kein mit "page_tab" angegebener Tab, wird einfach einer erstellt.
Somit kann ich einen eigenen Tab erstellen, in dem weitere Optionen verfügbar sind.

Mit dem Parameter "block_tab" kann ich innerhalb eines Tabs weitere Tabs erstellen lassen.
Somit kann man zusätzliche Inhaltsblöcke/Optionen innerhalb eines Tabs zu weiteren Tabs gruppieren.

Insgesamt lässt sich damit etwas mehr Übersichtlichkeit im Backend erreichen.

Anwendungsbeispiel:

Code:

{content block_tab="Hauptinhalt" label="Inhalt"}
{content block_tab="Inhaltsblock 2" label="zweiten Block im Frontend anzeigen" type="checkbox" checked="true" assign="show_block2"}
{if $show_block2!=''}
{content block_tab="Inhaltsblock 2" label="Inhalt 2"}
{/if}



Damit werden im Backend im Tab "Hauptmenü" zwei weitere Tabs angezeigt.
Ein Tab "Hauptinhalt" mit WYSIWYG-Editor und ein Tab "Inhaltsblock 2" mit einer Checkbox und einem weiteren WYSIWYG-Editor.
Mit Hilfe der Checkbox kann man individuell für jede Seite, die auf diesem Template beruht, festlegen, ob der zweite Block (egal ob er etwas beinhaltet oder nicht) angezeigt werden soll.


Welche Parameter sind noch möglich?

Eigentlich alle, die auch beim normalen Inhalt möglich sind.
Für genauere Beschreibung schaut in die Taghilfe des content-Tags oder des content2-tags.

block (optional)
über diesen Parameter kann mehr als ein Inhaltsblock auf einer Seite erstellt werden.

wysiwyg (true/false) (optional)
Ein-/Ausschalten des Editors für die Bearbeitung.

oneline (true/false) (optional)
Zeigt beim Bearbeiten für den Inhalt ein einfaches Input-Feld an ()

value (optional)
Standardinhalt beim Erstellen einer neuen Seite. (funktioniert nur bei Blocktyp "text")

type (text,image,checkbox,dropdown,select_multiple) (optional)
Mit diesem Parameter kann bestimmt werden, welche Form der Inhalt hat.
Standard ist "text".

page_tab (optional)
Mit diesem Parameter kann festgelegt werden in welchem Tab der Inhaltsblock im Backend angezeigt werden soll.
Mögliche Werte sind "main" ( = Tab "Hauptmenü"), "options" ( = Tab "Optionen"), oder jeder andere beliebige Wert.
Existiert im Backend kein Tab mit dem angegebenen Namen, wird er automatisch hinter dem Tab "Optionen" erstellt.

block_tab (optional)
Mit diesem Parameter können die Inhaltsblöcke innerhalb eines Tabs nochmals in Tabs unterteilt/gruppiert werden.

label (optional)
Eingabeaufforderung für diesen Inhaltsblock.

assign (optional)
Mit diesem Parameter kann der Inhalt einer Smarty-Variablen zugewiesen werden.

Parameter für Blocktyp "checkbox":

checked (true/false) (optional)
Aktiviert/Deaktiviert die Checkbox beim Bearbeiten der Seite, wenn der Inhaltsblock vom Typ 'checkbox' ist.

Parameter für Blocktyp "dropdown"/"select_multiple":

items (optional)
Elemente des Dropdownfeldes/der Mehrfachauswahl beim Bearbeiten der Seite, wenn der Inhaltsblock vom Typ 'dropdown' oder 'select_multiple' ist. (mehrere Elemente duch Komma getrennt)

selected (optional)
Bereits ausgewählte Elemente des Dropdownfeldes/der Mehrfachauswahl beim Bearbeiten der Seite, wenn der Inhaltsblock vom Typ 'dropdown' oder 'select_multiple' ist. (mehrere Elemente duch Komma getrennt)

size (ganzzahl) (optional)
Höhe der Mehrfachauswahl beim Bearbeiten der Seite, wenn der Inhaltsblock vom Typ 'select_multiple' ist.

Parameter für Blocktyp "image":

(siehe Tag-Hilfe {content_image})



Verbesserungsvorschläge sind immer willkommen.
Im Anhang die Endung ".mpg" entfernen und dann entpacken.
Im Archiv sind zwei php-Dateien: function.content2.php und content2.inc.php
Die Datei content2.inc.php einfach ins Verzeichnis /lib/classes/contenttypes/ kopieren.
Die Datei function.content2.php einfach ins Plugin-Verzeichnis kopieren und die Inhalte im Template mit {content2} aufrufen (dieses Plugin ist optional, der Inhaltstyp funktioniert auch mit dem regulären {content}-Tag; lediglich der Tag {content_image} funktioniert nicht mit diesem Inhaltstyp und für {content type="image" ... } wird nur der Pfad zum Bild ausgegeben)


Attachments:
Content2.inc.php.txt [37.86 KiB]
Downloaded 332 times
function.content2.php.txt [11.98 KiB]
Downloaded 417 times


Last edited by NaN on Fri Jun 05, 2009 3:08 pm, edited 1 time in total.
Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: (Gelöst) Backend um Option in der Seitenerstellung erweitern
PostPosted: Wed Apr 15, 2009 1:24 pm 
Saubere Arbeit, Gratulation!
Werde ich sicher bei dem ein oder anderen Projekt verwenden können :)


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: (Gelöst) Backend um Option in der Seitenerstellung erweitern
PostPosted: Wed Apr 15, 2009 4:12 pm 
Der Wahnsinn :)! Schönes Ding! Werde es direkt in der Entwicklung eines aktuellen Projektes testen und dann hoffentlich bald umfangreiches Feedback geben können.

*schnieef* ich bin so glücklich

Beste Grüße
Nils


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: (Gelöst) Backend um Option in der Seitenerstellung erweitern
PostPosted: Wed Apr 15, 2009 6:07 pm 
Offline
Power Poster
Power Poster
User avatar

Joined: Sat Aug 25, 2007 9:55 am
Posts: 1150
Location: Berlin
wow! sehr geil! ich werde es auch mal ausprobieren! danke dür


Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: (Gelöst) Backend um Option in der Seitenerstellung erweitern
PostPosted: Wed Apr 15, 2009 7:50 pm 
Hallo NaN,

soweit so gut. Habe mir deine Modifikation einmal installiert - allerdings habe ich Probleme mit einigen Optionen. Vielleicht kannst du ja hierzu direkt etwas sagen (quasi wie John Wayne aus der Hüfte)...

Z.B. wenn ich mehrere Block-Elemente mit dem Parameter page_tab verwende, erhalte ich den gewünschten Tab mehrfach (Verwendung wie folgt)

{content2 block="test" type="checkbox" page_tab="more" label="Kommentare Anzeigen"}
{content2 block="test2" type="checkbox" page_tab="more" label="Auf Homepage Teasern"}

Zudem werden die Werte nicht gespeichert (bei type=text allerdings schon). Ich verwende CMSMS 1.5.4. unter PHP 5.2.9 und mySQL 4.0.27 (hier gab's im System aber ein gelbes Ausrufezeichen).

Ich werde versuchen, das System nochmal mit einer aktuelleren mySQL Version zu installieren um zu schauen, ob das Speicherproblem dann gelöst wird. Hat jemand anderes diese Probleme ebenfalls?

Nichts desto trotz ist dies für mich bereits jetzt eines der coolsten CMSMS Plug-ins. Da ich sehr viel mit in den Seiten selbst gespeicherten Werten für zusätzliche Funktionen arbeite ist dies das "Killer Feature" für "meine" Editoren, für die die Bedienung noch einfacher und übersichtlicher wird. Danke!

Beste Grüße
Nils


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: (Gelöst) Backend um Option in der Seitenerstellung erweitern
PostPosted: Wed Apr 15, 2009 10:23 pm 
Offline
Translator
Translator
User avatar

Joined: Sun Mar 29, 2009 3:32 pm
Posts: 150
Location: London
Hallo NaN,

Du hast denke ich nicht nur mir, sondern allen Nutzern von CMSms einen großen Gefallen getan und wie ich finde das CMS um ein entscheidendes Stück in seiner Flexibilität nach vorn gebracht! Ich hoffe sehr, dass nach dem Interesse des Dev Teams dein Inhaltstyp dann auch in den Core übergehen wird, damit das auch wirklich dem Letzten zugängloich gemacht wird! Vielen Dank dafür..

Ein kleiner Fehler hat sich allerdings im Code eingestellt.. Die Klasse hat mit der Benennung Content2 keinen Konstruktor mehr ;) Außerdem zwei weitere kleine Punkte:
  • Du hast nicht die aktuellste Version vom Basis-Inhaltstyp verwendet. Merkt man z.Bsp. daran, dass der Standardbildblock nicht im Optionstab ist.
  • Das {content} tag ohne Parameter für den eigentlichen Seiteninhalt funktioniert nicht mehr.

// Edit: Ich habe mir den Code genauer angeguckt, ein Test ohne {content2} schlug allerdings fehl! Aber deine Änderungen habe ich gleich in den Inhaltstyp Content vom 02.04. integriert. Im Anhang ist die upgedatete Version.

In Zeile 308f schreibst du
Quote:
# removed the default content block

Hatte doch eigentlich seinen Sinn? ;)
Den Zusammenhang mit dem {content2} tag und deinem Kommentar in Zeile 774 versteh ich dann allerdings nicht ganz
Quote:
# since we also need to get the default content tag

Aber an der Stelle wäre wahrscheinlich ein bisschen Nacharbeit und Verzicht auf das Plugin als Resultat sinnvoll :)

Hab aber mal deine Änderungen 1:1 übernommen, um dir nicht ins Werk zu pfuschen und keine Kompatibilitätsprobleme mit deinem Plugin zu schaffen.


Attachments:
Content2.inc.php.txt [32.16 KiB]
Downloaded 358 times

_________________
Forge Profile


Last edited by Foaly* on Thu Apr 16, 2009 12:15 am, edited 1 time in total.
Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
Display posts from previous:  Sort by  
Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 87 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next

All times are UTC


Who is online

Users browsing this forum: No registered users


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
A2 Hosting