ExpressionEngine 2 ist ein wunderbares Content-Management-System und wohl das designerfreundlichste CMS, das von vielen bekannten Namen wie A List Apart, Andy Clarke und Veerle Pieters verwendet wird. Ironischerweise ist die Standardkonfiguration jedoch nicht für die Verwendung in einem professionellen Webentwicklungsworkflow geeignet, an dem normalerweise mehrere Standorte, Server und Entwickler beteiligt sind.
In diesem Lernprogramm erfahren Sie, wie Sie ExpressionEngine 2 anpassen, sodass Sie mit einem soliden und dennoch flexiblen Startpunkt auf den Boden gehen können, der sich innerhalb weniger Minuten in mehreren Umgebungen implementieren lässt.
Ich bin kein Programmierer. Allerdings das Programmier-Mantra wiederhol dich nicht, oder das DRY-Prinzip für jene Abkürzungsliebhaber unter uns, hat wirklich angefangen in mir zu schwingen, da ich mich sowohl mit der Webentwicklung als auch mit meinem eigenen Geschäft beschäftige. TROCKEN ist in der Tat ein guter Rat, um Ihr Leben im Allgemeinen zu leben. Sich zu wiederholen, kostet im Vorfeld mehr Zeit und möglicherweise viel mehr, wenn Sie zurückgehen und an mehreren Stellen dieselbe Änderung vornehmen müssen.
Außerdem ist dies ein Hindernis für das persönliche Wachstum, denn wenn Sie etwas tun, was Sie bereits getan haben, lernen Sie nichts Neues. Besser ist es, die Stellen zu identifizieren, an denen Sie sich wiederholen, und ein System zur Standardisierung dieser Aufgabe oder dieses Datenelements entwickeln.
Als ich vor anderthalb Jahren anfing, mit ExpressionEngine zu arbeiten, war dies ein einmaliges Projekt und ich war ein Neuling. Es ist unnötig zu erwähnen, dass die TROCKEN-Mentalität für mich das Weiteste war. Ich summte fröhlich mit den Einstellungen, die die Situation vorsah, ich dokumentierte nichts und hatte eine Menge Spaß mit benutzerdefinierten Feldern und Vorlagengruppen. Diese Dinge, die EE zum Traum eines Designers machen, werden wahr. Es war so etwas wie mein erstes Date mit der Software. Am Ende hat mir EE so gut gefallen, dass ich mich entschlossen habe, exklusiv zu werden und es als CMS der Wahl für alle zukünftigen Projekte zu „heiraten“.
Nach ungefähr dem dritten oder vierten Standort begann ich jedoch, Schwachstellen in unserer Beziehung zu erkennen (was wahrscheinlich passieren wird, wenn Sie sich wirklich mit etwas vertraut machen) und wurde frustriert, wenn ich kleine, sich wiederholende Aufgaben im Zusammenhang mit dem Einsatz und der Verwaltung von EE erledigte. Dies wurde insbesondere bei einigen laufenden Projekten deutlich, bei denen zwei bis dreimal wöchentliche Updates von der Entwicklung bis zur Bereitstellung auf Live-Servern erforderlich waren. Es kam zu dem Punkt, dass ich fast so viel Zeit damit verbrachte, Implementierungen zu verwalten, wie ich eigentlich programmierte.
Ich war nicht damit einverstanden, Geld zu verlieren und bei langweiliger Plackerei zu versklaven. Ich versuchte, das Chaos zu beseitigen.
Was folgt, ist die Frucht meiner und anderer Arbeit, ein Leitfaden für die Anwendung des DRY-Prinzips auf die Entwicklung und Bereitstellung von Standorten mit EE.
Es führt Sie durch, wie ich ExpressionEngine 2s schlaffe, unsinnige Standardkonfiguration zu einem schlanken, effizienten Arbeitspferd angepasst und angepasst habe, das fast die gesamte Wiederholung von EE mit sich bringt. Im Einzelnen werden diese Modifikationen:
Dies war ein ziemlich großes Unterfangen, und ich hätte es nicht alleine schaffen können. Ein großes Dankeschön geht an folgende Personen, die mir geholfen haben, ob sie es wussten oder nicht:
Um Ihrer Vernunft willen, besorgen Sie sich ein neues Exemplar des neuesten Builds von EE 2, bevor Sie dies tun. Laden Sie es wie üblich herunter, und installieren Sie es auf einem lokalen Server, da Sie an den Dateien viele Änderungen vornehmen müssen. Lassen Sie die Agile Records-Vorlagen aus, wenn Sie dazu aufgefordert werden.
Besorgen Sie sich die Beispieldateien, die in diesem Lernprogramm enthalten sind. Sie müssen noch nichts mit ihnen machen, aber halten Sie sie griffbereit.
Wenn Sie ExpressionEngine jemals von einem Server auf einen anderen migrieren mussten, wissen Sie, dass diese Aufgabe keine leichte Aufgabe ist. In der Tat ist es ein absoluter Albtraum, wenn Sie unvorbereitet sind. Das liegt zum Großteil daran, dass ExpressionEngine Konfigurationsvariablen und Serverpfade während der gesamten Erstellung speichert, sodass es schwierig ist, sie alle aufzuspüren und sie beim Umzug von Servern anzupassen.
Kenn Wilson von Corvid Works fasst es in besserem Englisch als meines zusammen:
„Dies macht Expression Engine so unportabel, dass ein Wechsel von einem Server zu einem anderen, z. B. von der Entwicklung bis zur Produktion, erforderlich ist. Diese URL und die Pfadinformationen müssen an einem Dutzend Orten aktualisiert werden. Es ist ungeschickt, zeitaufwändig und fehleranfällig. “
Er ist recht auf Zum Glück gibt es einen anderen Weg. Anstatt alle diese Variablen an einem Dutzend Stellen in der Systemsteuerung zu bearbeiten und wahrscheinlich einige zu vergessen, können Sie sie an einer Stelle konsolidieren - die Konfigurationsdateien. Das ist richtig, alle diese Felder, die über Dutzende von Seiten in Ihrem CP verstreut sind, ordnen ein paar PHP-Dateien zu. Standardmäßig speichert ExpressionEngine Konfigurationsinformationen, um die Sie sich kümmern müssen, in zwei Dateien. Diese sind:
system / expressionengine / config / config.php
system / expressionengine / config / database.php
Wie du dir vielleicht vorstellen kannst, database.php
speichert die MySQL-Datenbankverbindungsinformationen. Ich nehme an, EllisLab nimmt die Position ein, dass es einfacher ist, die DB-Informationen zu finden, wenn sie in einer eigenen Datei mit dem passenden Namen gespeichert sind, aber ich werde das Gegenteil behaupten. Das ist TROCKEN, verdammt noch mal! Ich möchte lieber eine Datei öffnen und meine Einstellungen von einer Stelle aus bearbeiten, nicht von zwei, also habe ich auf verzichtet database.php
insgesamt. Nun, nicht ganz, aber ich habe alle Datenbankeinstellungen davon übernommen und sie verschoben config.php
mit etwas PHP.
Benennen Sie Ihr bestehendes um database.php
Datei zu etwas wie alte-database.php
und verschieben Sie es auf Ihren Desktop, da Sie später die Verbindungseinstellungen benötigen. Ersetzen Sie es durch das database.php
in diesem Tutorial enthalten, und setzen Sie die Berechtigungen wie angegeben auf 400.
Herzliche Glückwünsche. Sie müssen sich nie Sorgen machen database.php
nochmal.
Nun das database.php
teilt ExpressionEngine mit, nach Informationen zur Datenbankverbindung in zu suchen config.php
Wir müssen es tatsächlich dort einsetzen, aber es gibt ein Problem. Wenn EE von einem Server zu einem anderen wechselt, müssen die Datenbankverbindungseinstellungen geändert werden, um die neue Serverumgebung widerzuspiegeln. Wenn wir EE mit einem Versionskontrollsystem entwickeln und implementieren möchten (und mir auch vertrauen), müssen wir jedes Mal, wenn wir eine Arbeitskopie auf einem neuen Server bereitstellen, eine Kopie des config.php
, Bearbeiten Sie die Datenbankeinstellungen so, dass sie für diesen Server korrekt sind, führen Sie ein FTP-Backup zum Server durch, und weisen Sie unsere Versionskontrolle an, diese zu ignorieren, wenn Sie ein Commit oder ein Update ausführen. Im besten Fall haben wir für jeden zusätzlichen Server, auf dem sich die Site befindet, eine separate, nicht versionskontrollierte Konfigurationsdatei. Für mich (und ich bin eine Ein-Mann-Show) heißt es:
Fügen Sie ein paar weitere Entwickler hinzu, wenn Sie in einer Agentur arbeiten und Sie sich viele dieser Fehler ansehen, die herumlaufen. Was passiert also, wenn Sie eine andere Konfigurationsvariable wie die Lizenznummer ändern müssen? Senden Sie sich und anderen Entwicklern eine E-Mail mit einer Kopie dieser Datei und laden Sie sie nacheinander auf alle Server hoch? TROCKEN, meine Freunde, TROCKEN. Die einzige logische Antwort ist eine einzelne, versionierte Version config.php
Datei, die alle Serverumgebungen aufnehmen kann.
Blödsinn, könnte man sagen, aber dank klugem PHP ist es tatsächlich möglich. Wie Sie im folgenden Beispiel sehen können, sucht die PHP-Fallsyntax nach einer IP-Adresse und stellt die entsprechenden Datenbankeinstellungen bereit, die auf dieser IP basieren. Jetzt müssen Sie bei der Bereitstellung auf einem neuen Server nur die IP-Adresse und die Datenbankverbindungsinformationen kennen und ändern, die Ihnen zur Verfügung stehen sollten.
/ * Umgebungsvariablen * / switch ($ _SERVER ['SERVER_ADDR']) // local case '127.0.0.1': $ db ['expressionengine'] ['hostname'] = "localhost"; $ db ['expressionengine'] ['username'] = "root"; $ db ['expressionengine'] ['password'] = "Passwort"; $ db ['expressionengine'] ['database'] = "local-db"; brechen; // Staging-Fall '72 .10.54.22 ': $ db [' expressionengine '] [' hostname '] = "mysql.exampleserver.com"; $ db ['expressionengine'] ['username'] = "admin"; $ db ['expressionengine'] ['password'] = "Passwort"; $ db ['expressionengine'] ['database'] = "staging-db"; brechen; // Live-Fall '82 .335.65.67 ': $ db [' expressionengine '] [' hostname '] = "mysql.exampleserver.com"; $ db ['expressionengine'] ['username'] = "admin"; $ db ['expressionengine'] ['password'] = "Passwort"; $ db ['expressionengine'] ['database'] = "live-db"; brechen;
An dieser Stelle möchte ich unterscheiden, was ich anrufe Umgebungsvariablen und universelle Variablen. Umgebungsvariablen sind in jeder Serverumgebung unterschiedlich. Universelle Variablen sind unabhängig vom Server, auf dem sich die Site befindet, gleich. Daher gehen sie außerhalb der IP-Switch / Case-Syntax. Dies sind Dinge wie Serverpfade und URLs zum Themes-Ordner, Vorlagenordner, CAPTCHAs, die Lizenznummer, im Wesentlichen alles außer den oben genannten Datenbankinformationen und der IP-Adresse (diese sind alle in der mitgelieferten Datei als Referenz angegeben)..
Haben Sie gehört, dass Serverpfade und URLs gleich bleiben, egal auf welchem Server Sie sich befinden? Ja hast du. Solange die Ordnerstruktur Ihrer Site in jeder Instanz gleich bleibt (und wenn Sie sich einer Versionskontrolle bedienen, ist dies offensichtlich der Fall) config.php
Diese Tutorials enthalten PHP-Variablen, um den Pfad und die URL des Root-Servers zu ermitteln und für Sie auszufüllen. Warum EE das nicht macht, um mit mir zu beginnen, verblüfft mich, aber ich schweife ab. Vergessen Sie nicht, den Serverpfad in den Ordner "Themes" zu ändern, wenn Sie Server migrieren, und verbringen Sie eine Stunde damit, herauszufinden, warum Sie einen leeren Bildschirm anstelle eines CP haben. Jeder aufgeregt noch?
/ * Universelle Variablen * / $ config ['app_version'] = "211"; $ config ['license_number'] = "0000-0000-0000-000000"; $ config ['debug'] = "1"; $ config ['install_lock'] = ""; $ config ['system_folder'] = "admin"; $ config ['doc_url'] = "http://expressionengine.com/user_guide/"; $ config ['is_system_on'] = "y"; $ config ['cookie_prefix'] = ""; $ config ['site_name'] = "Interaktive Codebasis für Flourish"; $ config ['allow_extensions'] = "y"; /* Allgemeines ----------------------------------------------- -------------------- * / $ config ['site_index'] = ""; $ config ['site_url'] = "http: //". $ _ SERVER ['HTTP_HOST']; $ config ['server_path'] = $ _SERVER ['DOCUMENT_ROOT']; $ config ['cp_url'] = $ config ['site_url']. "/". $ config ['system_folder']; / * Universal-Datenbankverbindungseinstellungen ------------------------------------------ ----------------------- * / $ active_group = 'expressionengine'; $ active_record = TRUE; $ db ['expressionengine'] ['dbdriver'] = "mysql"; $ db ['expressionengine'] ['dbprefix'] = "exp_"; $ db ['expressionengine'] ['pconnect'] = FALSE; $ db ['expressionengine'] ['swap_pre'] = "exp_"; $ db ['expressionengine'] ['db_debug'] = FALSE; $ db ['expressionengine'] ['cache_on'] = FALSE; $ db ['expressionengine'] ['autoinit'] = FALSE; $ db ['expressionengine'] ['char_set'] = "utf8"; $ db ['expressionengine'] ['dbcollat'] = "utf8_general_ci"; $ db ['expressionengine'] ['cachedir'] = $ config ['server_path']. $ config ['system_folder']. "/ expressionengine / cache / db_cache /"; / * Mitgliederverzeichnispfade und -URL --------------------------------------- ------------------------ * / $ config ['avatar_url'] = $ config ['site_url']. "/ uploads / system / avatars / "; $ config ['avatar_path'] = $ config ['server_path']. "/ uploads / system / avatars /"; $ config ['photo_url'] = $ config ['site_url']. "/ uploads / system / member_photos /"; $ config ['photo_path'] = $ config ['server_path']. "/ uploads / system / member_photos /"; $ config ['sig_img_url'] = $ config ['site_url']. "/ uploads / system / signature_attachments /"; $ config ['sig_img_path'] = $ config ['server_path']. "/ uploads / system / signature_attachments /"; $ config ['prv_msg_upload_path'] = $ config ['server_path']. "/ uploads / system / pm_attachments /"; / * Verschiedene Verzeichnispfade und URLs --------------------------------------- ------------------------ * / $ config ['theme_folder_url'] = $ config ['site_url']. "/ themes /"; $ config ['theme_folder_path'] = $ config ['server_path']. "/ themes /"; / * Vorlageneinstellungen ------------------------------------------ --------------------- * / $ config ['save_tmpl_files'] = "y"; $ config ['tmpl_file_basepath'] = $ config ['server_path']. "/ templates /"; $ config ['site_404'] = "404 / index"; $ config ['strict_urls'] = "n";
So installieren Sie den benutzerdefinierten config.php
Datei:
config.php
, befindet sich system / expressionengine / config / config.php
, zu so etwas old-config.php
und verschieben Sie es auf Ihren Desktop.config.php
in diesem Tutorial enthalten und legen Sie es in system / expressionengine / config
. Setzen Sie die Berechtigungen auf 400.config.php
in Ihrem Code-Editor zusammen mit alte-database.php
und old-config.php
Denken Sie daran, dass eine universelle Variable bei Bedarf zu einer Umgebungsvariablen werden kann. Nehmen wir an, Sie möchten Ihren Site-Namen automatisch basierend auf dem Server ändern, auf dem er sich befindet, sodass Sie auf einen Blick erkennen können, ob Sie die lokale, dev- oder Live-Version Ihrer Site betrachten. Löschen Sie einfach die Variable aus dem Bereich "universelle Variablen" und kopieren Sie sie in jeden IP-Fall, und weisen Sie ihnen einen beliebigen Wert zu.
Seien wir ehrlich; Die Standardinstallation von ExpressionEngine enthält viele Dateien, die Sie nicht benötigen, insbesondere wenn Sie ein professioneller Entwickler sind, der nicht zum ersten Mal herumstochert. Dazu gehören die Themendateien für die Agile Records-Beispielsite, Smileys, Wiki-Motive und vieles mehr. Warum Ihre Website unnötig mästen? Setzen Sie EE auf eine Diät und löschen Sie all diese Sachen. Sie können sich jederzeit eine neue Kopie holen und sie in dem unwahrscheinlichen Fall wieder hinzufügen, wenn Sie es für ein Wiki, ein Forum oder eine andere Community-basierte Website benötigen. Löschen Sie nur das, was für Sie sinnvoll ist, aber ich habe ungefähr ein Dutzend EE-Standorte gemacht und davon noch nie etwas verwendet.
/ themes / wiki_themes
/ themes / site_themes / agile_records
/ themes / profile_themes / agile_records
/ images / smileys
/ images / avatare
Wie bei vielen Aufgaben in der Webentwicklung gibt es keinen richtigen Weg, um dies zu tun, aber wichtig ist, dass Sie einen Weg wählen und dabei bleiben. Manche Leute legen ihre statischen Asset-Dateien (Images, CSS, JS, SWF usw.) gerne in ein / themes / site_themes / beispielseite
Mappe. Ich ziehe es vor, jeden Asset-Ordner auf der obersten Ebene zu platzieren, weil ich faul bin und nicht durch drei Ebenen von Unterordnern klicke, um während der Entwicklung auf diese Dateien zuzugreifen. Außerdem mag ich schöne kurze URLs in HTML und CSS. Jetzt, da ich mich an eine Standardstruktur gewöhnt habe, erstelle ich keine zusätzlichen Dateien oder Ordner auf oberster Ebene, es sei denn, dies ist absolut notwendig (Sie werden in einer Minute sehen, warum). So sieht meine Struktur auf oberster Ebene aus.
.htaccess
- wird in einer Minute mehr erklärenSystem
- bitte umbenennencss
favicon.ico
fw
- Dies ist eine Abkürzung für "Framework", z. meine CSS-HintergrundbilderBilder
- Nicht CMS-verwaltete Inhaltsbilderindex.php
js
robots.txt
Vorlagen
themen
- CP- und Feldtyp-ThemenUploads
- wo alle von CMS verwalteten Dokumente und Bilder liegenJetzt komme ich zum Reden .htaccess
. Für viele Entwickler ist das ein Rätsel, und ehrlich gesagt auch für mich, aber ich weiß genug, um damit das unschöne Bild zu entfernen index.php
von den sonst schönen URLs von EE. Ich verwende eine Variante der Exclude-Methode aus dem ExpressionEngine-Wiki. Dies funktioniert in keinem Fall garantiert auf Ihrem Webhost, aber es funktioniert für MAMP Pro, HostGator und MediaTemple, sowohl (gs) als auch (dv). Es gelten die üblichen Vorbehalte, z. mod_rewrite
muss in Apaches aktiviert sein http.conf
usw. Wenn Sie diese Methode zum Entfernen verwenden index.php
Wenn Sie Ihrer Site eine neue Datei oder einen Ordner auf oberster Ebene hinzufügen möchten (und ich meine eine "echte" Datei oder einen echten Ordner, nicht einen EE-Eintrag, eine Vorlage oder eine Vorlagengruppe), müssen Sie eine Ausnahme hinzufügen .htaccess
Andernfalls kann auf diese Datei / diesen Ordner nicht zugegriffen werden.
RewriteEngine On RewriteCond $ 1! ^ (Admin | css | fw | images | js | Vorlagen | Themen | Uploads | favicon \ .ico | robots \ .txt | index \ .php) [NC] RewriteRule ^ (. *) $ Index. php? / $ 1 [L] AddHandler php5-script .php
So installieren Sie meine benutzerdefinierte .htaccess
, die eingeschlossene Datei mit dem Namen löschen temp.htaccess
in Ihren Ordner der obersten Ebene. Entfernen Sie den "Temp" -Teil des Dateinamens (alles vor dem Punkt). Ihr Betriebssystem warnt Sie möglicherweise, dass das Universum durch das Umbenennen der Datei zerstört wird. Ignorieren Sie dies und klicken Sie auf OK. Die Datei verschwindet möglicherweise, was in Ordnung ist .htaccess
ist eine versteckte Datei. Wenn Sie es jetzt bearbeiten möchten, müssen versteckte Dateien in den Betriebssystemeinstellungen sichtbar sein.
Nach der Entwicklung mehrerer EE-Standorte gibt es Add-Ons, ohne die ich nicht leben kann oder kann. Dies ist das Beste, was die EE-Entwicklergemeinde zu bieten hat, und sie haben die Ehre, in meiner Codebase installiert zu werden, so dass jede neue Site sie von Anfang an hat. Sie sind (und diese sind alle kostenlos):
Installieren Sie diese nicht nur, sondern konfigurieren Sie sie. Ich habe zum Beispiel alle meine E-Mail-Benachrichtigungsvorlagen für Freeform eingerichtet, zusätzliche benutzerdefinierte Formularfelder erstellt, die auf dem basieren, was ich normalerweise für ein Standard-Kontaktformular verwende, und ich habe eine Vorlage aufgerufen contact.html
welches den Front-End-Formularcode enthält, einschließlich JavaScript-Validierung und einer Erfolgsmeldung. Selbst wenn ich ein oder zwei Felder hinzufügen oder den Formularcode in eine andere Vorlage verschieben muss, ist es eine Frage der Optimierung, nicht jedes Mal von Grund auf neu zu erstellen. TROCKEN. Ohne CSS-Styling ist dieses Formular sofort einsatzbereit.
Seien Sie auf der Suche nach einem weiteren Artikel von mir, sobald ich diese und ein paar kommerzielle Erweiterungen für EE2 ausführlicher bespreche.
Die unbegrenzte Zugriffsmöglichkeit auf meinen Kunden ist sowohl für mich als auch für mich unheimlich.
Dies ist eines der Dinge, die Sie wahrscheinlich vergessen, bis Sie mit der Site fast fertig sind, aber es muss nicht sein, wenn sie sich in Ihrer Codebase befindet. Das standardmäßige EE-Administratorkonto gehört zur Super Admins-Mitgliedergruppe, die notwendigerweise auf alles zugreifen kann. Für meinen Kunden und mich unbegrenzten Zugriff zu gewähren, ist beängstigend. Daher erstelle ich eine zweite Mitgliedergruppe namens Admins. Normalerweise warte ich, bis sie eine E-Mail-Adresse ausgewählt haben, bevor ich ihr Konto erstellen kann. Dies dauert jedoch nur ein paar Sekunden, nachdem Sie die Berechtigungen für die Mitgliedergruppen definiert haben.
In dieser Mitgliedergruppe habe ich jeglichen Zugriff auf die Vorlagen, die Site- und Mitgliederverwaltung, das Kommunikationsmodul und die Add-Ons deaktiviert. Die meisten Kunden müssen lediglich Inhalte erstellen und bearbeiten und möglicherweise ihre Freeform-Einsendungen anzeigen. Das ist es. Vereinfache ihr und dein Leben und nimm weg, was sie nicht brauchen. Ich musste das schon mal anpassen, aber ein Ausgangspunkt ist besser, als von vorne zu beginnen.
Glückwunsch, Sie sollten jetzt einen weit überlegenen Ausgangspunkt für Ihr nächstes ExpressionEngine-Projekt haben. Damit Sie sie hinzufügen und wiederverwenden können, erstellen Sie ein neues Projekt in Ihrer Versionskontrolle und übergeben Sie Ihre angepasste ExpressionEngine-Codebase als Versionsnummer eins. Nachfolgend finden Sie einige Beispiele für häufig vorkommende Vorgänge, die Sie wahrscheinlich ausführen müssen, wenn Sie neue Projekte in der Pipeline haben (kann je nach Servereinrichtung variieren oder wenn Sie Git statt SVN verwenden)..
/ Vorlagen
/ Uploads
(oder wie auch immer Ihr Upload-Ordner genannt wird)/ system / expressionengine / cache / db_cache
config.php
. Ändern Sie den Site-Namen, die Lizenznummern und andere Einstellungen, die Sie ändern müssen.config.php
.config.php
zu Ihrem Repository./ Vorlagen
/ Uploads
(oder wie auch immer Ihr Upload-Ordner genannt wird)/ system / expressionengine / cache / db_cache
Machen Sie sich bei der Gestaltung und Entwicklung der aufregenden ExpressionEngine-Websites in Ihrem Unternehmen Gedanken darüber, was Sie zu jeder Zeit tun. Einige Funktionen der Website sind auf Websites nahezu identisch. Sie benötigen lediglich einige geringfügige Markup-Anpassungen und ein CSS-Skin, um problemlos von einem zum anderen übertragen zu werden.
In Zukunft werden Mikroformate das Markup noch mehr standardisieren! Dies sind ideale Kandidaten für die Aufnahme in Ihre Codebase. Eines, das wir bereits besprochen haben, ist das allgegenwärtige Kontaktformular. Einige andere potenzielle "Standard" -Funktionalitäten (ich hatte mehrere Clients, die nach diesen Dingen fragen):
Theoretisch könnten Kanäle, Kategorien, benutzerdefinierte Feldgruppen und Vorlagen erstellt werden, die sofort einsatzbereit sind (ich weiß, dass ich das für viele dieser Fälle mache). Ihr Kunde hat immer noch den gleichen Wert, den Sie erhalten würden, wenn Sie diese Teile für Ihre Website von Hand gebaut hätten (wahrscheinlich mehr, da sie häufig verfeinert und getestet werden) und Sie weniger Arbeit erledigen, was bedeutet, dass Sie sich preisgünstiger machen können oder wenn Sie eine feste Gebühr verkaufen, berechnen Sie denselben Preis und machen mehr Gewinn. Denken Sie daran, Spaß zu haben und sich mit ExpressionEngine zu entwickeln!