Overview
The gallery system in Yoneily serves as both the product management system and a flexible multimedia content manager. It handles image uploads, automatic resizing, file attachments, and content organization.Gallery vs Product
In Yoneily, “Gallery” is the internal name for product listings. Each gallery item represents a product with images, descriptions, pricing, and inventory tracking.
Dual Purpose System
Product Listings
Primary use: E-commerce product catalog with pricing, stock, and sales tracking
Content Gallery
Secondary use: Multimedia content management for images, audio, and video
Image Management
Upload System
The gallery uses MeioUpload behavior for file handling: Configuration:Supported File Types
- Images
- Audio
- Flash/Video
Formats: JPG, JPEG, PNG, GIFMIME Types:
- image/gif
- image/jpeg
- image/pjpeg
- image/png
- Product photos
- Promotional banners
- Gallery thumbnails
- Content illustrations
Image Processing Pipeline
When an image is uploaded, Yoneily automatically generates three versions:Original Storage
Location:
/files/galeria/otras/Original uploaded file stored as-is for future processingImage Size Reference
| Version | Dimensions | Use Case |
|---|---|---|
| Original | As uploaded | Source file, archive |
| Thumbnail | 124x124 max | Grid views, listings, previews |
| Normal | 600x480 max | Product detail pages, lightbox |
Multiple Image Attachments
File Association System
Galleries support multiple images through thearchivos (files) table:
Join Table: archivos_galleries
Archivos (Files) Structure
| Field | Type | Description |
|---|---|---|
id_file | int | Unique file identifier |
nombre_file | varchar(45) | Original filename |
vidthumbnail | varchar(255) | Video thumbnail path |
embedthumb | varchar(255) | Embedded thumbnail |
nombre_gal | varchar(255) | Gallery display name |
nombre_thumb | varchar(255) | Thumbnail name |
dir | varchar(255) | Storage directory |
fechacre_file | timestamp | Upload timestamp |
mimetype | varchar(45) | File MIME type |
usuario_id_usuario | int | Uploader user ID |
Adding Multiple Images
Attach Additional Files
Use file attachment interface to add more images:
- Multiple product angles
- Detail shots
- Size comparisons
- Usage examples
Deleting Attached Images
Endpoint:/galleries/deleteimg/{gallery_id}/{file_id}
SQL Query:
Gallery Categories
Category Organization
Galleries use a many-to-many relationship with categories: Join Table:categories_galleries
Hierarchical Categories
Categories support parent-child relationships:Category Fields
| Field | Description |
|---|---|
id_categorias | Category identifier |
nombre_categorias | Category name (display field) |
categorias_id_categorias | Parent category ID (for subcategories) |
usuario_id_usuario | Creator user ID |
URL System
SEO-Friendly URLs
Galleries automatically generate clean URLs: Generation Logic:- Title: “Mesa de Madera Artesanal”
- Keywords: “roble artesania”
- URL:
mesa-de-madera-artesanal-roble-artesania
Duplicate URL Handling
ThebeforeSave() method ensures URL uniqueness:
Visibility Control
Publication Status
Published (publicar = 1)
Gallery is visible on public-facing siteActivate:
/galleries/activa/{id}Hidden (publicar = 0)
Gallery is hidden from public viewDeactivate:
/galleries/desactiva/{id}Exclusion Flag
Field:excluir (tinyint)
Values:
0- Include in listings1- Exclude from certain views
- Featured content filtering
- Special collections
- Internal-only galleries
Store Association
Vendor Filtering
Vendors see only their own galleries:Store Autocomplete
Endpoint:/galleries/verlocal
Request:
Gallery Listing
Pagination Settings
Default Configuration:- 10 galleries per page
- Newest galleries first
- Related data loaded:
- User information
- Store/locale details
- Categories
- Attached files
Listing View Elements
For each gallery, display:Visual Elements
Visual Elements
- Thumbnail image (124x124)
- Product/content name
- Price (if product)
- Store/vendor name
Status Indicators
Status Indicators
- Publication status (published/hidden)
- Stock level indicator
- Exclusion status
- Creation date
Actions
Actions
- Edit gallery
- Delete gallery
- Activate/Deactivate
- View details
- Manage images
Technical Implementation
SimpleImage Class
Yoneily uses a custom image manipulation class: Location:app/vendors/SimpleImage.php
Key Methods:
load($filename)- Load image from filegetWidth()- Get image widthgetHeight()- Get image heightresizeToWidth($width)- Resize maintaining aspect ratioresizeToHeight($height)- Resize maintaining aspect ratiosave($filename, $quality)- Save processed image
Model Validation
Best Practices
Image Optimization
Image Optimization
- Upload high-quality source images
- Let the system handle resizing
- Use JPG for photos, PNG for graphics
- Optimize originals before upload (reasonable file size)
Multiple Images
Multiple Images
- Add images from different angles
- Include detail shots
- Show products in use context
- Limit to 5-10 images per gallery
Organization
Organization
- Use descriptive titles
- Add comprehensive keywords
- Assign appropriate categories
- Write detailed descriptions
Storage Management
Storage Management
- Periodically clean unused images
- Monitor disk space usage
- Archive old galleries instead of deleting
- Backup image directories regularly
Related Features
Inventory Management
Product catalog and stock
Promotions
Promotional galleries
User Management
Vendor access control
File System Structure
Ensure web server has write permissions to these directories for image processing to function correctly.