Skip to main content

Controllers API Reference

This document provides comprehensive documentation for all controllers in the Yoneily system.

VideosController

Manages video content including file uploads, thumbnails, and video metadata. Location: app/controllers/videos_controller.php

Properties

  • $name: ‘Videos’
  • $helpers: [‘Html’, ‘Form’, ‘Javascript’]
  • $uses: [‘Video’, ‘News’, ‘Archivo’, ‘Category’]
  • $paginate: Limit 15, ordered by fechacre_videos DESC

Methods

index()

Lists all videos with pagination. Returns: Paginated list of videos

view($id)

Display details for a specific video.
id
integer
required
Video ID to view

add()

Create a new video with file uploads. Processes:
  • Video file upload
  • Thumbnail generation and resizing
  • Image conversion using SimpleImage
usuario_id_usuario
integer
required
User ID creating the video
tipodispositivo_file
string
Device type for the file
nombre_file
file
required
Video thumbnail file
vidthumbnail
file
required
Video thumbnail image

edit($id)

Edit an existing video.
id
integer
required
Video ID to edit
ACL Check: Requires ‘editar videos’ permission

delete($id)

Delete a video by ID.
id
integer
required
Video ID to delete

destacado($id)

Mark a video as featured (destacado = 1).
id
integer
required
Video ID to feature

nodestacado($id)

Unmark a video as featured (destacado = 0).
id
integer
required
Video ID to unfeature

VentasController

Handles sales transactions, shopping cart, and purchase management. Location: app/controllers/ventas_controller.php

Properties

  • $name: ‘Ventas’
  • $helpers: [‘Html’, ‘Form’, ‘Javascript’]
  • $uses: [‘Venta’, ‘Locale’, ‘Gallery’, ‘Denuncia’, ‘Promo’, ‘Page’, ‘Codigo’]
  • $paginate: Limit 10, ordered by fecha DESC

Public Methods (No Auth Required)

These methods are publicly accessible via beforeFilter():
  • add, consulta, denunciar, finalizar_denunciar, add_promo, consulta_promocion, denunciar_promo, miscompras, mismensajes, misreclamos, finalizar_compra, pdf_compra, carrito, cuantos, pdf_completo_venta, add_carrito

Methods

index()

List all sales transactions with pagination.

add(producto,producto, usuario, local,local, cantidad, $cuantos)

Add a product sale transaction.
producto
integer
required
Product (gallery) ID
usuario
integer
required
User (register) ID
local
integer
required
Store (locale) ID
cantidad
integer
required
Quantity to purchase
cuantos
integer
required
Total item count
Returns:
  • 1 - Success
  • 0 - Failed to save
  • 2 - Product out of stock

add_carrito(producto,producto, usuario, local,local, cantidad, $cuantos)

Add item to shopping cart (same parameters as add()).

add_promo(producto,producto, usuario, local,local, cantidad, $cuantos)

Add a promotion sale.
producto
integer
required
Promotion ID

consulta(producto,producto, usuario, $local)

Check product availability and purchase history.
producto
integer
required
Product ID
usuario
integer
required
User ID
local
integer
required
Store ID
Returns:
  • 3 - Product available
  • 2 - Out of stock
  • 4 - Already purchased

consulta_promocion(producto,producto, usuario, $local)

Check promotion availability (same parameters as consulta()).

finalizar_compra(formapago,forma_pago, numero_pago, $id_venta)

Finalize a purchase with payment information.
forma_pago
string
required
Payment method
numero_pago
string
required
Payment reference number
id_venta
integer
required
Sale ID

miscompras()

View customer’s purchase history with pagination.

mismensajes()

View customer’s messages with pagination.

misreclamos()

View customer’s complaints/claims with pagination.

pdf_compra($id)

Generate PDF receipt for a specific purchase.
id
integer
required
Sale ID

cuantos()

Get total count of sales. Returns: Integer count

UsersController

Manages user accounts, authentication, and permissions. Location: app/controllers/users_controller.php

Properties

  • $name: ‘Users’
  • $helpers: [‘Html’, ‘Form’, ‘Javascript’]
  • $uses: [‘User’, ‘Group’, ‘Aco’, ‘Aro’, ‘ArosAco’, ‘Locale’]

Methods

index1()

List all users.

add()

Create a new user account.
username
string
required
Username
password
string
required
User password
groups_idgrupos
integer
required
Group ID for user role

add_vendedor()

Register a new vendor/seller with store association.
locale_id_local
integer
required
Store ID to associate with vendor
codigo_uno
string
required
Vendor code
pass
string
required
Password (will be hashed with Security::hash)

edit($id)

Edit user information.
id
integer
required
User ID

edit_pass($id)

Change user password.
id
integer
required
User ID
oldpass
string
required
Current password
newpass
string
required
New password
newpassconfirm
string
required
Confirm new password

delete($id)

Delete a user account.
id
integer
required
User ID to delete

permission($id)

Manage user permissions via ACL.
id
integer
required
User ID
Returns: List of permissions with current access status

ajax_load()

AJAX handler for updating user permissions. POST Parameters:
  • key: User ID
  • key2: Permission alias
  • key3: Current permission status (0 or 1)

login()

Display login page.

logout()

Log out current user and destroy session.

consulta_codigo($cod)

Check if a vendor code exists.
cod
string
required
Vendor code to check
Returns: Store ID if found, otherwise 0

RegistersController

Manages customer registration and profiles. Location: app/controllers/registers_controller.php

Properties

  • $name: ‘Registers’
  • $helpers: [‘Html’, ‘Form’, ‘Javascript’]
  • $uses: [‘Estado’, ‘Ciudade’, ‘Paise’, ‘Register’, ‘Phone’, ‘Archivo’, ‘Venta’]

Public Methods

These methods are publicly accessible:
  • loginequi, add, acceso, recordar, finregistro, verpais, loginfacebook, miperfil, actualizardatos, salir, add_cliente

Methods

index()

List all registered customers with pagination.

index_compras()

List all purchases with store filtering.

add($pais)

Register a new customer.
correo
email
required
Customer email (must be unique)
nombreape
string
required
Customer full name
telefono
string
required
Phone number
codi
string
required
Phone country code

acceso()

Customer login via AJAX. POST Parameters:
  • ema: Email address
  • pass: Password
Returns: Session data if successful

loginfacebook($id)

Login via Facebook ID.
id
string
required
Facebook ID

miperfil($id)

View and edit customer profile.
id
integer
required
Customer ID

recordar()

Password recovery via email.
confcorreo
email
required
Email address for password recovery

activa($id)

Activate a customer account.
id
integer
required
Customer ID

desactiva($id)

Deactivate a customer account.
id
integer
required
Customer ID

Finalizar_compra($id)

Finalize a purchase and update customer reputation.
id
integer
required
Sale ID
Updates: Increases customer’s puntuacion_positiva by 1

compra_falla($id)

Mark purchase as failed and update negative reputation.
id
integer
required
Sale ID
Updates: Increases customer’s puntuacion_negativa by 1

PromosController

Manages promotional offers and special deals. Location: app/controllers/promos_controller.php

Properties

  • $name: ‘Promos’
  • $helpers: [‘Html’, ‘Form’, ‘Javascript’]
  • $uses: [‘Promo’, ‘Archivo’, ‘Category’, ‘Locale’]
  • $paginate: Limit 10, ordered by fechacre_promo DESC

Methods

index()

List all promotions with store filtering.

add()

Create a new promotion.
locale_id_local
string
required
Store name (will be converted to ID)
texto_promo
string
required
Promotion title
thumbnails
file
required
Promotion image
cantidad
integer
required
Available quantity
precio
decimal
Price
Processing:
  • Resizes thumbnail to 450x280
  • Creates slider image 779x280
  • Sets cantidad_existente equal to cantidad
  • Initializes prod_vendidos to 0

edit($id)

Edit an existing promotion.
id
integer
required
Promotion ID

delete($id)

Delete a promotion.
id
integer
required
Promotion ID

activa($id)

Activate/publish a promotion (publicar = 1).
id
integer
required
Promotion ID

desactiva($id)

Deactivate/unpublish a promotion (publicar = 0).
id
integer
required
Promotion ID

verlocal()

AJAX autocomplete for store search. GET Parameter:
  • term: Search term
Returns: JSON array of stores matching search

PagesController

Handles public pages, contact forms, and customer inquiries. Location: app/controllers/pages_controller.php

Properties

  • $name: ‘Pages’
  • $helpers: [‘Html’, ‘Form’, ‘Javascript’]
  • $uses: [‘Page’, ‘Aco’, ‘Aro’, ‘ArosAco’, ‘Video’, ‘Gallery’, ‘Phone’, ‘Promo’, ‘Estado’, ‘Ciudade’, ‘Register’, ‘User’, ‘Denuncia’, ‘Locale’]

Public Methods

These methods are publicly accessible:
  • home, quienes, contactanos, mision, campanas, ofrendas, info, verestados, verciudad, detallepublicidad, detallegaleria, buscar, info_promo, registro_pregunta, registro_pregunta_galeria, info_galeria, detallelocales, delete_mensaje, promociones, productos

Methods

home()

Display homepage with random featured content. Returns:
  • Random featured video
  • 18 random stores
  • 5 random promotions
  • 2 random videos

buscar($f)

Search for stores, products, and promotions.
f
string
Search phrase
Returns: Paginated results (8 items per page) for galleries and promotions

contactanos()

Contact form submission.
nombre
string
required
Contact name
correo
email
required
Email address
telefono
string
required
Phone number
comentario
text
required
Message content

detallepublicidad(fecha,fecha, url)

View promotion details.
fecha
string
required
Promotion date
url
string
required
Promotion URL slug

detallegaleria(fecha,fecha, url)

View product/gallery details.
fecha
string
required
Product date
url
string
required
Product URL slug

detallelocales(rif,rif, frase)

View store details with products and promotions.
rif
string
required
Store RIF (tax ID)
frase
string
Search phrase
Returns: Store information with paginated products and promotions (8 per page)

registro_pregunta()

Submit a question about a promotion.
usuario
integer
required
Customer ID
producto
integer
required
Promotion ID
local
integer
required
Store ID
comentario
text
required
Question text

registro_pregunta_galeria()

Submit a question about a product.
usuario
integer
required
Customer ID
producto
integer
required
Product ID
local
integer
required
Store ID

index_preguntas()

List unanswered questions with store filtering.

responder_pregunta($id)

View question details for responding.
id
integer
required
Question ID

registro_respuesta()

Submit a response to a customer question.
id_respuesta
integer
required
Original question ID
comentario
text
required
Response text

info_promo(producto,producto, usuario)

Display comments for a promotion.
producto
integer
required
Promotion ID
usuario
integer
User ID

info_galeria(producto,producto, usuario)

Display comments for a product.
producto
integer
required
Product ID
usuario
integer
User ID

existencia()

List products with available stock.

agotados()

List out-of-stock products.

promociones()

Browse all active promotions with pagination.

productos()

Browse all active products with pagination.

LocalesController

Manages stores/businesses in the system. Location: app/controllers/locales_controller.php

Properties

  • $name: ‘Locales’
  • $helpers: [‘Html’, ‘Form’, ‘Javascript’]
  • $uses: [‘Locale’, ‘Archivo’, ‘Category’, ‘User’, ‘Group’, ‘Aco’, ‘Aro’, ‘ArosAco’]
  • $paginate: Limit 10, ordered by status DESC

Public Methods

  • acceso

Methods

index()

List all stores with pagination.

add()

Register a new store.
nombre_empresa
string
required
Business name
rif
string
required
Tax ID (must be unique)
encargado_nombre
string
required
Manager first name
encargado_apellido
string
required
Manager last name
encargado_cedula
string
required
Manager ID number
telefono_cel
string
required
Mobile phone
direccion
string
required
Store address
nombre_file
file
required
Store logo/image
ubicacion_file
file
required
Store location image
Processing:
  • Generates random 6-character code
  • Resizes logo to 96x72 (thumbnail)
  • Resizes logo to 600x480 (slider)
  • Resizes location image to 600x480

edit($id)

Edit store information.
id
integer
required
Store ID

delete($id)

Delete a store.
id
integer
required
Store ID

activa($id)

Activate a store (status = 1).
id
integer
required
Store ID

desactiva($id)

Deactivate a store (status = 0).
id
integer
required
Store ID

pdf($id)

Generate PDF report for a store.
id
integer
required
Store ID

GroupsController

Manages user groups and group permissions. Location: app/controllers/groups_controller.php

Properties

  • $name: ‘Groups’
  • $helpers: [‘Html’, ‘Form’, ‘Javascript’]

Methods

index()

List all user groups.

add()

Create a new user group.
name_grupos
string
required
Group name

edit($id)

Edit a user group.
id
integer
required
Group ID

delete($id)

Delete a user group.
id
integer
required
Group ID

permission($id)

Manage group permissions via ACL.
id
integer
required
Group ID
Returns: Permission tree with current access levels

ajax_load()

AJAX handler for updating group permissions. POST Parameters:
  • key: Group ID
  • key2: Permission alias
  • key3: Permission status (0 or 1)

GalleriesController

Manages product galleries and images. Location: app/controllers/galleries_controller.php

Properties

  • $name: ‘Galleries’
  • $helpers: [‘Html’, ‘Form’, ‘Javascript’]
  • $uses: [‘Gallery’, ‘Archivo’, ‘Category’, ‘Locale’]
  • $paginate: Limit 10, ordered by fechacre_galeria DESC

Methods

index()

List all gallery items with store filtering.

add()

Create a new gallery item.
locale_id_local
string
required
Store name (converted to ID)
texto_galeria
string
required
Product title
claves
string
required
Keywords/tags
descripcion
string
required
Product description
thumbnails
file
required
Product image
cantidad
integer
required
Available quantity
precio
decimal
Price
Processing:
  • Resizes thumbnail to 124x124
  • Creates normal size 600x480
  • Sets cantidad_existente equal to cantidad
  • Initializes prod_vendidos to 0

edit($id)

Edit a gallery item.
id
integer
required
Gallery ID

delete($id)

Delete a gallery item.
id
integer
required
Gallery ID

activa($id)

Publish a gallery item (publicar = 1).
id
integer
required
Gallery ID

desactiva($id)

Unpublish a gallery item (publicar = 0).
id
integer
required
Gallery ID

verlocal()

AJAX autocomplete for store search. GET Parameter:
  • term: Search term
Returns: JSON array of matching stores

DenunciasController

Handles customer complaints and claims. Location: app/controllers/denuncias_controller.php

Properties

  • $name: ‘Denuncias’
  • $helpers: [‘Html’, ‘Form’, ‘Javascript’]
  • $uses: [‘Denuncia’, ‘Locale’, ‘Gallery’, ‘User’]
  • $paginate: Limit 10, ordered by fecha DESC

Public Methods

These methods are publicly accessible:
  • add, consulta, denunciar, fin_denunciar, denunciar_promo, registro_reclamo, registro_denuncia, detallemensajepromo

Methods

index()

List all complaints with store filtering.

denunciar()

Submit a complaint about a product.
galeria_id_galeria
integer
required
Product ID
register_idregistro
integer
required
Customer ID
locale_id_local
integer
required
Store ID
comentario
text
required
Complaint text

denunciar_promo()

Submit a complaint about a promotion.
promocion_id_promo
integer
required
Promotion ID
register_idregistro
integer
required
Customer ID
locale_id_local
integer
required
Store ID

responder_denuncia($id)

View complaint details for responding.
id
integer
required
Complaint ID

registro_denuncia()

Submit a response to a complaint.
id_respuesta
integer
required
Original complaint ID
comentario
text
required
Response text
Updates: Sets original complaint status to 1

delete($id)

Delete a complaint.
id
integer
required
Complaint ID

Build docs developers (and LLMs) love