Skip to content

Technical Plugin VideoVoteSystem

Daniel Neto edited this page Oct 29, 2026 · 1 revision

Technical: VideoVoteSystem plugin

Manages video contests and voting-related data/presentation.

Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.

Source baseline

  • Review date: 2026-10-29. Method: static source analysis; runtime/provider behavior was not exercised.
  • Code ownership: independently versioned plugin repository.
  • Reported version: 3.11.
  • Source revision: 49c4b7cd3dc3a51d3dd7043467aad15da38bf04f.
  • Entry class file: VideoVoteSystem.php.

Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.

Dependencies

No literal dependency declaration was extracted. This does not prove the plugin is standalone.

Hook integration

Override Implementation
getPermissionsOptions(): array VideoVoteSystem.php:56
getPluginMenu() VideoVoteSystem.php:71
navBarButtons() VideoVoteSystem.php:80

Configuration assignments

These are direct assignments inside getEmptyDataObject(), not evaluated effective defaults. Stored plugins.object_data, globals, structured values and conditional branches may alter runtime behavior. Private/default credential values are omitted.

No direct $obj->field assignments were extracted. Inspect inherited defaults, getCustomizeAdvancedOptions() and the plugin-specific settings page.

Files and request surface

This inventory distinguishes implementation files from an API specification. Includes, templates, callbacks and CLI workers are not interchangeable HTTP endpoints. Request-field names below are direct source references, not a complete schema or permission declaration.

File Source role Direct request fields observed
Objects/Contest_settings.php class/helper implementation —
Objects/Contest_videos_votes.php class/helper implementation —
VideoVoteSystem.php plugin entry class —
View/Contest_settings/add.json.php JSON entry point; inspect caller and guard Contest_settingsplaylists_id, description, end_date, id, show_ranking, start_date, status, title, votes_limit
View/Contest_settings/delete.json.php JSON entry point; inspect caller and guard id
View/Contest_settings/index.php PHP page/include/worker; inspect caller —
View/Contest_settings/index_body.php PHP page/include/worker; inspect caller —
View/Contest_settings/list.json.php JSON entry point; inspect caller and guard draw
View/Contest_videos_votes/add.json.php JSON entry point; inspect caller and guard contest_settings_id, id, users_id, videos_id, vote_time
View/Contest_videos_votes/delete.json.php JSON entry point; inspect caller and guard id
View/Contest_videos_votes/index.php PHP page/include/worker; inspect caller —
View/Contest_videos_votes/index_body.php PHP page/include/worker; inspect caller —
View/Contest_videos_votes/list.json.php JSON entry point; inspect caller and guard draw
View/editor.php PHP page/include/worker; inspect caller —
charts.php PHP page/include/worker; inspect caller id
install/install.sql schema/migration SQL —
install/updateV3.0.sql schema/migration SQL —
list.php PHP page/include/worker; inspect caller id
unvote.json.php JSON entry point; inspect caller and guard contest_videos_votes_id
vote.json.php JSON entry point; inspect caller and guard contest_settings_id

Data and migrations

Tables named in available CREATE TABLE statements: contest_settings, contest_videos_votes. Apply installation/update behavior through the owning plugin; this reference is not a script for running historical migrations manually.

Main-file named symbols

Visibility and implementation semantics must be checked in source. Nonempty string defaults are represented as . This is a symbol reference, not a stable public API promise.

Function or method Source
getDescription() 12
getName() 20
getUUID() 25
getPluginVersion() 30
getEmptyDataObject() 35
getPermissionsOptions(): array 56
canCreateContest(): bool 63
getPluginMenu() 71
navBarButtons() 80

Supporting PHP declarations

These symbols are grouped by source file; inspect the class declaration and visibility before calling them.

Objects/Contest_settings.php

Declared classes: Contest_settings.

Named symbol Source
getSearchFieldsNames() 10
getTableName() 15
setId($id) 20
setVotes_limit($votes_limit) 25
setTitle($title) 30
setStart_date($start_date) 36
setEnd_date($end_date) 44
setShow_ranking($show_ranking) 52
setStatus($status) 57
setDescription($description) 62
setPlaylists_id($playlists_id) 67
setUsers_groups_id($users_groups_id) 72
setUsers_id($users_id) 77
getId() 83
getVotes_limit() 88
getTitle() 93
getStart_date() 98
getEnd_date() 103
getShow_ranking() 108
getStatus() 113
getDescription() 118
getPlaylists_id() 123
getUsers_groups_id() 128
getUsers_id() 133
canUserSeeChart() 138
getAll($users_id=0) 143
getTotal($users_id=0) 171
save() 195

Objects/Contest_videos_votes.php

Declared classes: Contest_videos_votes.

Named symbol Source
getSearchFieldsNames() 10
getTableName() 15
getAllVideos() 20
getAllUsers() 45
getAllContest_settings() 70
setId($id) 97
setVote_time($vote_time) 102
setVideos_id($videos_id) 107
setUsers_id($users_id) 112
setContest_settings_id($contest_settings_id) 117
getId() 123
getVote_time() 128
getVideos_id() 133
getUsers_id() 138
getContest_settings_id() 143
save() 148
getTotalVotes($contest_settings_id) 156
getTotalVotesFromUser($contest_settings_id, $users_id = 0) 178
getVotes($contest_settings_id, $users_id = 0, $refreshCache = false) 201
canVote($contest_settings_id, $users_id) 225
castVote($contest_settings_id, $videos_id, $users_id) 257

Diagnostics and validation

  1. Check the installed/enabled version and the dependencies/settings above.
  2. Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
  3. Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
  4. Reproduce the relevant workflow in a test environment. External provider, Encoder, live-server, storage, payment and authenticated flows require their real integrations.

Shared diagnostic workflow. This page is not a security audit or a claim of end-to-end validation.

Clone this wiki locally