Hoe omgaan met afbeeldingen in cms

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nicos Vermeulen

Nicos Vermeulen

08/10/2024 14:59:13
Quote Anchor link
Ik heb zelf een cms gebouwd in PHP voor een nieuwswebsite. Als editor gebruik ik CKEditor. Ik maak geen gebruik van CKEditor om afbeeldingen te uploaden en toe te voegen aan de nieuwsberichten, hier heb ik zelf een module voor geschreven.

In een tabel wordt een verwijzing naar de ge-uploade afbeeldingen gezet, tevens staan hier de tekstbijschriften bij. De afbeeldingen worden dan op de website boven of onder het nieuwsbericht weergegeven. Ik wil graag het nieuwsbericht schoon houden van opmaak en afbeeldingstags omdat deze content voor meer media te gebruiken zoals bijvoorbeeld een kabelkrant.

Toch is het soms wenselijk om tussen de tekst een afbeelding te kunnen opnemen. Hoe doen andere cms'en dit?

Aanvullende vraag is, hoe om te gaan met meerdere resoluties van de afbeeldingen. Ik sla nu de afbeelding op in 1280 x 720 en in 100 x 56 voor een thumbnail. Echter op nieuwsoverzichtspagina worden de afbeeldingen veel kleiner weergegeven dan bij het bericht zelf, dus eigenlijk is hier geen hoge resolutie afbeelding voor nodig.

Is het dan wijs om de afbeelding nog een keer met een lagere resolutie op te slaan? Kost wel veel meer opslagruimte, maar laad tijd wordt natuurlijk wel sneller. Wat is hier gebruikelijk in?
 
PHP hulp

PHP hulp

21/11/2024 11:24:22
 
- Ariën  -
Beheerder

- Ariën -

08/10/2024 15:44:47
Quote Anchor link
Ik volg dit topic even mee uit interesse. Ikzelf heb ook een eigen CMS gebouwd met de functie om afbeeldingen te uploaden. Nu heb ik een standaard plek waar de foto's komen te staan, maar toch wil ik dit ook flexibeler hebben, tussen de content, en dan met tags, die uiteindelijk een HTML-code genereren.

Eerst dacht ik aan UBB-tags, maar dan komen er standaard weer paragraph-tags om, wat niet altijd gewenst is.

Een grote bekende site lijkt in hun eigen CMS HTML-achtige tags te gebruiken. Zoiets als dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<cms-image data-image-id="42"></cms-image>
<cms-gallery data-gallery-id="5"></cms-gallery>
<cms-youtube data-youtube-id="AbCdEfG123"></cms-youtube>
<cms-tweet data-tweet-id="1234567890"></cms-tweet>
<cms-instagram data-instagram-id="1234567890"></cms-instagram>

En dan staat er in de WYSIWYG een mooie placeholder.

Echter heeft het wel wat voeten in de aarde om CKeditor om te kunnen laten gaan met deze tags. En voor het gemak moet je een mooie userinterface bouwen.
Gewijzigd op 08/10/2024 17:54:20 door - Ariën -
 
Nicos Vermeulen

Nicos Vermeulen

09/10/2024 17:11:13
Quote Anchor link
- Ariën - op 08/10/2024 15:44:47:
En dan staat er in de WYSIWYG een mooie placeholder.

Echter heeft het wel wat voeten in de aarde om CKeditor om te kunnen laten gaan met deze tags. En voor het gemak moet je een mooie userinterface bouwen.

Placeholder is natuurlijk we te realiseren. Kwestie van handmatig die 'tag' intikken in CKEditor. Deze is er later wel weer uit te filteren wanneer je de tekst-content ergens anders voor nodig hebt. Echter het mooist zou zijn als je die placeholder er gewoon in zou kunnen slepen nadat je de afbeelding hebt toegevoegd.

Ik voeg nu de afbeeldingen toe onder aan het formulier. De 1e afbeelding komt op de website boven het bericht te staan, en de rest van de afbeeldingen onder het bericht. Door middel van jQuery UI kan ik de afbeeldingen onderling van positie wisselen door te slepen. Mooiste zou zijn om ze naar de CKEditor te kunnen slepen en dat daar dan de Placeholder zou komen te staan. Maar dat kan denk ik niet...
 
- Ariën  -
Beheerder

- Ariën -

17/10/2024 01:01:33
Quote Anchor link
Geen idee of dat mogelijk is. Maar uiteindelijk wil ik vanuit een modal de afbeeldingen invoeren. Misschien zijn er wel betere WYSIWYG-editors dan CKeditor, en die simpeler zijn zonder een hoop bloatware. Waarom zou ik iets van 21 themes moeten installeren?

Okee, je kan het mogelijk met Bowser ofzo misschien wat compacter maken. :-P
Maar daar moet ik mij nog eens in verdiepen.
 
- Ariën  -
Beheerder

- Ariën -

01/11/2024 14:23:36
Quote Anchor link
Ik ben er weer eens mee aan het spelen.....

Voor nu heb ik deze testcase gemaakt (zelf even ckeditor inladen etc):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<body>
        <!--
        allowedContent: 'cms-image[data-image-id]; cms-gallery[data-gallery-id]; cms-youtube[data-youtube-id]; cms-x[data-x-id]; cms-instagram[data-instagram-id]; b;i;u;s;a;h1;h2;h3;h4;h5;h6;sub;sup;img',
        -->
        
        
        <!-- Tekstgebied voor CKEditor -->
        <pre>&lt;cms-image data-image-id=&quot;42&quot;&gt;&lt;/cms-image&gt;
&lt;cms-gallery data-gallery-id=&quot;5&quot;&gt;&lt;/cms-gallery&gt;
&lt;cms-youtube data-youtube-id=&quot;AbCdEfG123&quot;&gt;&lt;/cms-youtube&gt;
&lt;cms-x data-x-id=&quot;1234567890&quot;&gt;&lt;/cms-x&gt;
&lt;cms-instagram data-instagram-id=&quot;1234567890&quot;&gt;&lt;/cms-instagram&gt;</pre>
        <form method="POST">
        <textarea name="editor1" id="editor1" rows="10" cols="80"></textarea>

        <script>
            // CKEditor initialisatie
            CKEDITOR.replace('editor1', {
                autoParagraph: false,
                allowedContent: true,

                
    });
        </script>
        <input type="submit" value="Verstuur!">
        </form>
        <?php
        if ($_SERVER['REQUEST_METHOD'] == "POST") {
            print_r($_POST);
        }

        ?>

    </body>


Met allowedContent: true; kan je dus ervoor zorgen dat alle content toegestaan is in de HTML, en dat er niet gefilterd wordt door CKeditor (versie 4). Rete handig, want in mijn vorige test moest ik alle tags handmatig benoemen, maar true als boolean werkt dus ook voor alles.

Dan is enkel de stap om widgets te bouwen om die tags te herkennen en in je visuele overzicht te plaatsen en een manier om ze eenvoudig toe te voegen met een bepaalde knop.

En uiteraard ook een serverside parser.

Toevoeging op 02/11/2024 01:59:41:

Ik kom al ergens.....
De bedoeling is dat je een dialog krijgt achter die functies, waar je weer een ID-nummer kan invullen o.i.d. Als het af is, dan kijk ik even of ik het op GitHub kan plaatsen.

Afbeelding
Gewijzigd op 02/11/2024 02:04:53 door - Ariën -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.