Django-ContentManager.

Ein einfacher, steckbarer Content-Manager für Django
Jetzt downloaden

Django-ContentManager. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • BSD License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Peter van Kampen
  • Website des Verlags:
  • http://datatailors.com

Django-ContentManager. Stichworte


Django-ContentManager. Beschreibung

Ein einfacher, steckbarer Content-Manager für Django Django-ContentManager ist eine sogenannte "wiederverwendbare App", die darauf wartet, den Inhalt verwalten. Es tut also mit Plugins, die über eine beliebige Anzahl von Apps zerstreut werden können, wobei jeder bestimmte Inhaltsarten bereitstellt. Ein Plugin könnte die zehn beliebtesten Nachrichten-Geschichten auflisten, höchste vegetarische Gerichte mit dem höchsten bewerteten Galerie oder zeigen eine ausgewählte Galerie aus einer Foto-Sammel-App. Natürlich könnte Django-ContentManager auch ein Block von (markierten) Text sein. $. / maching.py syncdb --noinput ... $. / maching.py runserverthen Öffnen Sie Ihren Browser und gehen Sie zu http: // localhost: 8000 /. Dies wird eine ziemlich einfache Seite (mit dieser Readme) als Beispiel für einen "Absatz". Wenn Sie dem Link "Login" folgen, gehen Sie zum Administrator, in dem Sie sich mit Test / Test anmelden können. In Ihrem normalen Projekt müssten Sie Ihrem Benutzern einen schöneren Mechanismus bereitstellen, um sich einzuloggen (und heraus), aber dies ist nur eine kurze Demo, also werde ich das als Übung für den Leser verlassen. 8000 / Sie sehen jetzt einen Link 'EditMode auf'. Dies schaltet sich auf 'EditMode' ein und ermöglicht es Ihnen, Plugins in einem, in meiner Opion, intuitiven Weise hinzuzufügen, zu bearbeiten und zu löschen. Genau dort auf der Seite: Nein, Sie müssen sich zwischen Admin und "Frontend" hin und her bewegen Installig_Apps = (... 'ContentManager', ...) Hinzufügen von Middleware, auch in Settings.py:middleware_classes = (... 'contentmanager.middleware.editmodemiddleware',) Stellen Sie sicher, dass Ihr Projekt den Anforderungskontext-Prozessor verwendet: TEMPLATE_CONTEXT_PROCESSORS = ( "django.core.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", django.core.context_processors. Anfrage ") und schließlich ContentManager.urls in Ihre URLs.py einschließen und Autodiscover ausführen: urlpatterns = Muster ('', ... (R '^ ContentManager /', enthalten ('contentmanager.urls'), ...) Von ContentManager Importieren Sie autodiscoverautodisVover () und verbinden Sie den ContentManager in Ihren Vorlagen (s): {% last co ntentmanagertags%} {% Block-Inhalt%} {% get_area Anforderung 'Inhalt'%} {% Endblock%} {% Block Sidebar%} {% get_area Anforderung 'Sidebar'%} {% End Block%} Sind ein paar einfache Plugin-Beispiele (in BasicBlocks / REVEPLUGINS.PY), um Ihnen die Grundidee zu geben. Um Ihre eigenen Plugins zu schreiben, müssen Sie ein REVEplugins-Modul für Ihre Anwendung und Unterklasse von contentmanager.plugins.baseplugin (oder basemodelplugin) hinzufügen. Die grundlegendsten Plugins müssen nur eine eigene Render-Methode definieren. Die Render-Methode wird das Anforderungsobjekt übergeben und sollte eine (Unicode-Zeichenfolge) zurückgeben: Klasse HELLELORD (Baseplugin): def Render (Self, Anfrage): Geben Sie "Hallo World" zurück, um das Plugin dem ContentManager zur Verfügung zu stellen, und letztendlich müssen Sie Ihre Benutzer benötigen So registrieren Sie es: Von ContentManager-Import RegistryRegistryRegistry.Register (HelloWorld) Schließlich, um die Registrierung zu füllen, sollten Sie in Ihren Projekten in Ihren Projekten einfügen Registrierte Plugins. HINWEIS Der Name Revelplugins wurde über einfach "Plugins" ausgewählt, um die Benennung von Konflikten zu verhindern. Da der ContentManager von Revecms destilliert wird, schien es ein angemessener Name zu sein. Revecms selbst heißt AFER Karel Van Het Reve, ein niederländischer Schriftsteller, der nicht mit seinem Bruder Gerard verwechselt werden soll, obwohl er auch ein feiner Writerer ist.Permissionspluginen folgen in etwa dem gleichen Erlaubnissystem wie Django-Modelle. Wenn ein Plugin registriert ist, erstellt der ContentManager automatisch Add, Ändern und Löschen von Berechtigungen. Da diese Berechtigungen mit Modellberechtigungen kollidieren könnten, werden alle Plugin-Berechtigungen im ContentManager 'Namespace' aufbewahrt (verbunden mit dem content_type-Plugintyp, falls Sie es wirklich wissen möchten) und mit '_Plugin', zum Beispiel angehängt werden, ein HTML-Plugin hätte Berechtigungen 'contentManager.add_html_plugin', 'contentmanager.delete_html_plugin', 'contentmanager.delete_html_plugin'.plugins verfügen über komfortable HAS_ADD_PERMISE, HAS_CHANGE_PERMISE, HAS_DELETE_PERMISE-Methoden, aber wenn Sie den oben erläuterten CODENNAME verwenden, können Sie das Standard-Django-Berechtigungssystem in Python- und TEMPLATECODE.Plugins können auch zusätzliche Berechtigungen auf dieselbe Weise wie Django-Modelle hinzufügen, mit der Ausnahme, dass sie alle "gebundenen" zum Plugintyp sind. Anforderungen: · Python · Django


Django-ContentManager. Zugehörige Software