agentsclimarketplace

Media management

Skill ColdBox/skills/contentbox-boxlang/media-management

Use this skill when implementing ContentBox media workflows, including uploads, storage abstraction with cbfs, image handling/resizing, media delivery patterns, and governance/security controls for assets.From its SKILL.md

Install
npx -y skills add ColdBox/skills --skill media-management

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.0 KB, 924 tokens by cl100k_base, as published. Nobody here has run it

ContentBox Media Management (BoxLang)

Work with the ContentBox media manager using BoxLang. Handle file uploads, image processing, media library organization, and media delivery.

Media Manager Overview

The media manager is accessible via the admin at cbadmin/mediamanager and provides:

  • File upload and management
  • Image cropping and resizing
  • Folder organization
  • File type validation
  • Media delivery via __media route

Media Service

property name="mediaService" inject="mediaService@contentbox"

// Upload files
mediaService.upload( file, folder )

// Find media
mediaService.findBySlug( slug )
mediaService.findByPath( path )
mediaService.findAll( criteria )

// Delete media
mediaService.delete( media )

// Get media URL
mediaService.getMediaURL( media )

Media Entity

// Media properties
media.getMediaID()
media.getSlug()
media.getFileName()
media.getFileExtension()
media.getFileSize()
media.getMimeType()
media.getFilePath()
media.getMediaURL()
media.getThumbnailURL()
media.getWidth()
media.getHeight()
media.getAltText()
media.getCreatedDate()
media.getModifiedDate()

Media Delivery

Media is served via the __media route:

GET /__media/:slug
GET /__media/:slug/:size

Image Sizes

ContentBox supports on-the-fly image resizing:

// In views
<img src="#{cb.mediaURL( media, 'thumbnail' )}#" alt="#{media.getAltText()}#">
<img src="#{cb.mediaURL( media, 'medium' )}#" alt="#{media.getAltText()}#">
<img src="#{cb.mediaURL( media, 'large' )}#" alt="#{media.getAltText()}#">

File Browser Integration

ContentBox integrates with file browser modules for CKEditor and other editors:

// File browser module name (configurable)
property name="moduleSettings" inject="coldbox:moduleSettings:contentbox"
fileBrowserModule = moduleSettings.contentbox.filebrowser_module_name

Media in Content

Media can be embedded in entry/page content:

// Image in content
<img src="#{cb.mediaURL( media )}#" alt="Description">

// With specific size
<img src="#{cb.mediaURL( media, 'thumbnail' )}#" alt="Description">

CBHelper Media Methods

property name="cb" inject="CBHelper@contentbox"

// Get media URL
cb.mediaURL( media )
cb.mediaURL( media, "thumbnail" )
cb.mediaURL( media, "medium" )
cb.mediaURL( media, "large" )

// Get media path
cb.mediaPath( media )

Media Storage

Media is stored using cbfs (ContentBox File System):

property name="diskService" inject="DiskService@cbfs"

// Get the contentbox disk
disk = diskService.get( "contentbox" )

// Disk configuration
// Path: expandPath( settingService.getSetting( "cb_media_directoryRoot" ) )
// URL: siteRoot & "/modules_app/contentbox-custom/_content"

Best Practices

  1. Use cb.mediaURL() for all media URL generation
  2. Set alt text for accessibility
  3. Use appropriate sizes — thumbnail, medium, large
  4. Validate file types — check MIME types before processing
  5. Organize with folders — use folder structure for large media libraries
  6. Handle missing media — gracefully handle deleted or missing files
  7. Use cbfs for storage — leverage the disk service for file operations
  8. Clean up orphaned media — remove unused files periodically

Engine Compatibility

This skill targets BoxLang engine. For CFML-specific syntax (Lucee 5+, Adobe ColdFusion 2018+), see the CFML variant of this skill.

Key BoxLang advantages:

  • Cleaner script syntax without <cfcomponent> / <cffunction> tags
  • No parentheses needed for zero-argument function calls
  • #{...}# for inline expression output in .bx templates
  • Modern syntax: ?: null coalescing, ?. safe navigation
  • Native support for modern data structures

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most media documents skills give in 924 tokens

Counted across 157 of the 158 authors here whose files we hold, read 2026-08-07

  • Provide posting time recommendationsin 7 of 157, across 5 files
  • Track metrics over time to identify trendsin 6 of 157, across 2 files
  • Read marketing context file before startingin 6 of 157, across 5 files
  • Choose platforms based on audience presencein 6 of 157, across 4 files
  • Adapt tone for each platformin 6 of 157, across 4 files
  • Ensure data completeness before analysisin 5 of 157, across 1 file
  • Compare metrics within same time periodsin 5 of 157, across 1 file
  • Account for platform-specific benchmarksin 5 of 157, across 1 file
  • Separate organic and paid metricsin 5 of 157, across 1 file
  • Include context when interpreting resultsin 5 of 157, across 1 file
  • Keep tweets under 280 charactersin 5 of 157, across 3 files
  • Download top-K results with an attribution sidecarin 5 of 157, across 2 files

Said here and by no other author read

  • use cb.mediaURL() for media URL generation
  • set alt text for image accessibility
  • use appropriate image sizes
  • validate file MIME types before processing
  • use folder structure for media libraries
  • handle deleted or missing media gracefully

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,782. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.