2016-04-28 8 views
1

Nicht sicher der beste Weg, die Folgendes zu erreichen:Kenitco Inline CSS

Aktuell haben wir Kopf-/Billboard Grafiken Setup Hintergrundbilder zu sein, um für ein paar Vorlagen verwendet werden. Das Problem ermöglicht dem Benutzer nun, diese Hintergrundbilder im Kentico CMS zu ändern, ohne die CSS selbst aktualisieren zu müssen.

CSS

.billboard.landing-page { 
    background-image: url("../img/billboard-sub-page.jpg"); 
    background-size: cover; 
    background-position: 50% 50%; 
    height: 35.3125rem; 
    position: relative; 
    margin-bottom: 4.0625rem; 
    color: #fff; 
    text-align: left; 
    padding-top: 21.875rem; } 

HTML

<div class="wrapper billboard landing-page"> 
<!-- Billboard Heading & Lead in --> 
<div class="row"> 
    <div class="small-11 medium-9 columns"> 
    <div class="billboard-heading"> 
     <h1>Lorem Ipsum Dolor Sit</h1> 
    </div> 
</div> 

Was wir denken Willen Arbeit ist die CSS-Aufruf für das Hintergrundbild zu entfernen, und fügen Sie es als ein Inline-Stil wie zum Beispiel:

Hat jemand eine gute Methode, um dem Benutzer zu ermöglichen, das Bild aus der Bibliothek auszuwählen und die URL im Inline-Stil zu ersetzen?

Antwort

2

Ihre beste Wette ist, nicht statische HTML zu verwenden. Sie müssen Seitentypen und Repeater verwenden und Ihre Seite dynamisch machen, anstatt es dem Benutzer zu erlauben, HTML und CSS zu bearbeiten. Check out the documentation zum Hinzufügen von Inhalt mithilfe von Seitentypen (Dokumenttypen in Version 7).

2

Wie von Brenden empfohlen, müssen Sie Ihrem Seitentyp Hintergrundfeld hinzufügen, damit der Editor dieses Feld auf der Registerkarte Formular auffüllt. In diesem Fall könnten Sie Makro verwenden Hintergrund Feldwert in Markup wie diese zu injizieren:

<div class="wrapper billboard landing-page" style="background-image:url({%Background%});"> 
... 
</div> 
+0

Was ist die beste Schritte/Dokumentation/Anleitung, um dies zu tun? Vielen Dank für Ihre Antwort - Kentico ist ein neues System für uns –

+0

1. Gehen Sie zu Seite (Dokument) Typen; 2. Navigieren Sie den entsprechenden Seitentyp. 3. Klicken Sie auf Seitentyp bearbeiten. 4. Wechseln Sie zur Registerkarte Felder; 5. Fügen Sie ein neues Textfeld mit dem Namen BackgroundImage hinzu; 6.Wechseln Sie zur Pages-Anwendung und navigieren Sie auf einer beliebigen Seite dieses Seitentyps in der CMS-Struktur. 7. Öffnen Sie die Registerkarte Formular für diese Seite. 8. Füllen Sie das BackgroundImage Feld; 9. Fügen Sie HTML aus meiner Antwort zu Ihrer Seite hinzu –

+0

Die Benutzerinteraktion sollte so sein, dass sie ein Bild aus der Medienbibliothek auswählen und die URL dieses Bildes im Inline-Stil ersetzt wird. Geh jetzt durch deine Schritte, danke. Ich nehme an statt eines Textfelds, mach es zu einem Bildauswahlfeld. Außerdem - Der HTML-Code für diese Seite würde sich in der Seitenvorlage befinden. Daher ersetze ich den Inline-Stil durch das von Ihnen bereitgestellte Makro. –

1

Es ist auf dem Ansatz hängt würden Sie gehen möchten (verwenden Sie Makros, benutzerdefinierte Makros, Webparts ..). Wenn Sie Portal Engine verwenden, würde ich tatsächlich empfehlen, ein Webpart für Ihr Billboard-Bild zusammen mit einem benutzerdefinierten Feld zu erstellen, das Medienauswahl Formularsteuerung verwendet, um Bild aus Medienbibliothek auszuwählen.

Schritte, dies zu tun:

1) Zum Seitentyp (Dokumenttypen für Kentico 7) Anwendung und erstellen Sie ein neues Feld „Medienauswahl“ Form-Steuerung. Verwendung z.B. MediaImage als Feldname.

2) Erstellen einer Web-Teil nach this documentation article

3) Benutzen Sie den Code folgende URL Ihrer Mediaimage Feld zu bekommen und den HTML-Code erstellen:

 var mediaImage = CurrentDocument.GetStringValue("MediaImage", null); // image from custom field using "MediaSelection" form control 
     if (!String.IsNullOrEmpty(mediaImage)) 
     { 
      // continue only if image is set 
      var url = URLHelper.GetAbsoluteUrl(mediaImage); 
      var html = String.Format("<div class=\"wrapper billboard landing - page\" style=\"background - image:url({0}); \">", url); 
     } 

4) Fügen Sie diesen HTML-Code eine Seite mit z Wörtliche Steuer

5) Platzieren Sie Ihren Web-Teil auf einer Seite, wo Sie das Bild haben wollen (ich nehme an, es Master-Seite sein würde oder eine andere Seite, von der untergeordneten Seiten erben)

+1

Es gibt keinen Grund für einen benutzerdefinierten Webpart Richard. Dies kann mit einem Seitentyp und einem Out-of-the-Box-Repeater mit einer Umwandlung ohne benutzerdefinierten Code gehandhabt werden. –

+0

Ja, das ist sicher möglich. Sie können auch Makros verwenden, um denselben Code zu generieren. Einen einfachen Webpart zu haben, könnte für einige Benutzer einfacher sein. Je nach Szenario könnten Sie auch einige Eigenschaften für z.B. Standardbild, -breite, -größe und andere, die einfacher von Eigenschaften anstelle von Transformation behandelt werden können. – Enn