Proje: Okul.com.tr CRM · Hub: Okul.com.tr CRM — Conventions

CRM Makale İçerik Görsel Akışı

Sorun

Jodit editor HTML içeriğine görsel eklendiğinde, görsel geçici storage’a yüklenir ve URL temp path içerir. Makale kaydedilirken bu temp URL’leri kalıcı hale getirmek gerekir.

processContentImages Fonksiyonu

async function processContentImages(
    htmlContent: string, 
    articleId: number, 
    excludeTempPath?: string  // kapak görseli temp path'i (zaten move edildi)
): Promise<string>
  1. HTML içeriğindeki temp URL pattern’ini arar: /temps/ içeren URL’ler
  2. S3 URL → pathname çıkarır
  3. /storage/temps/... → path düzeltir
  4. Her temp URL için MediaService.move() çağırır
  5. HTML içeriğindeki URL’leri kalıcı URL ile değiştirir

RichTextEditor

src/components/common/RichTextEditor.tsx — Jodit veya TipTap editor wrapper.

Makale sayfalarında HTML içerik düzenleme için kullanılır.

ContentImageGallery

src/components/common/ContentImageGallery.tsx — Jodit editörle birlikte kullanılan galeri bileşeni.

Editör içine görsel ekleme + galeri yönetimi birlikte.

Makale Create/Edit Akışı

  1. Form submit → ArticleService.create/update() → article ID alınır
  2. Kapak görseli → MediaService.move() (role_id=1 ARTICLE_COVER)
  3. İçerik görselleri → processContentImages() → HTML güncellenir, her görsel MediaService.move() (role_id=2 ARTICLE_CONTENT)
  4. Güncellenmiş HTML → ArticleService.update() ile article güncellenir