Skip to content

Technical Plugin VideoTags

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

Technical: VideoTags plugin

Manages video tags and related metadata/search interfaces.

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: AVideo Streamer repository.
  • Reported version: 3.0.
  • Source revision: 7d48f2dfc0289236718a3f9fba7c5ffecff4a37f.
  • Entry class file: VideoTags.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
getTags() VideoTags.php:19
getPluginMenu() VideoTags.php:475
getManagerVideosAddNew() VideoTags.php:481
getManagerVideosReset() VideoTags.php:485
getManagerVideosEdit() VideoTags.php:489
getManagerVideosEditField($type = '<string>') VideoTags.php:503
getManagerVideosJavaScripts() VideoTags.php:509
saveVideosAddNew($post, $videos_id) VideoTags.php:516
getAllVideosArray($videos_id) VideoTags.php:523
updateScript() VideoTags.php:534
getHeadCode(): string VideoTags.php:546
getFooterCode() VideoTags.php:550
getMobileInfo() VideoTags.php:568

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.

Field Literal default or expression type Literal source label/help Evidence
onlyAdminCanCreateTags false — source
maxTags 100 — source
maxChars 100 — source
disableTagsSubscriptions false — source
showTagsOnEmbed true — source
showTagsLabels true — source

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/Tags.php class/helper implementation —
Objects/TagsHasVideos.php class/helper implementation —
Objects/TagsTypes.php class/helper implementation —
Objects/Tags_subscriptions.php class/helper implementation —
VideoTags.php plugin entry class current, rowCount
View/Tags_subscriptions/add.json.php JSON entry point; inspect caller and guard id, tags_id, users_id
View/Tags_subscriptions/delete.json.php JSON entry point; inspect caller and guard id
View/Tags_subscriptions/index.php PHP page/include/worker; inspect caller —
View/Tags_subscriptions/index_body.php PHP page/include/worker; inspect caller —
View/Tags_subscriptions/index_head.php PHP page/include/worker; inspect caller —
View/Tags_subscriptions/list.json.php JSON entry point; inspect caller and guard draw
View/editor.php PHP page/include/worker; inspect caller —
View/list.php PHP page/include/worker; inspect caller —
View/script.js browser/worker JavaScript; verify loader —
addTagTypes.php PHP page/include/worker; inspect caller campId, name
bootstrap-tagsinput/bootstrap-tagsinput-angular.js browser/worker JavaScript; verify loader —
bootstrap-tagsinput/bootstrap-tagsinput.js browser/worker JavaScript; verify loader —
bootstrap-tagsinput/typeahead.bundle.js browser/worker JavaScript; verify loader —
deleteTagTypes.json.php JSON entry point; inspect caller and guard id
index.php PHP page/include/worker; inspect caller —
index_body.php PHP page/include/worker; inspect caller —
install/install.sql schema/migration SQL —
install/update.sql schema/migration SQL —
install/updateV3.0.sql schema/migration SQL —
subscribe.json.php JSON entry point; inspect caller and guard add, encryptedIdAndUser, notify
tagTypes.json.php JSON entry point; inspect caller and guard —
tags.json.php JSON entry point; inspect caller and guard tags_types_id

Data and migrations

Tables named in available CREATE TABLE statements: tags, tags_has_videos, tags_subscriptions, tags_types. 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
getTags() 19
getDescription() 25
getName() 31
getUUID() 35
getEmptyDataObject() 39
saveTags($tagsNameList, $videos_id) 50
getTagFromName($name, $tags_types_id) 84
removeAllTagFromVideo($videos_id) 91
add($name, $tags_types_id, $videos_id) 96
getOrCreateTagFromName($name, $tags_types_id) 105
getAll($users_id = 0) 118
getAllFromVideosId($videos_id) 122
getArrayFromVideosId($videos_id, $tags_id = 0) 126
getAllVideosIdFromTagsId($tags_id, $limit = 100, $status = Video::SORT_TYPE_VIEWABLE) 141
getTotalVideosFromTagsId($tags_id, $status = Video::SORT_TYPE_VIEWABLE) 145
getVideoIndexFromTagsId($tags_id, $videos_id) 149
getAllVideosFromTagsId($tags_id, $limit = 100) 161
getTagsInputs($colSize = 3, $videos_id=0) 165
getTagsInputsJquery() 178
getTagsInputsJqueryRemoveAll() 187
getTagsInput($tagTypesId, $videos_id=0) 196
canCreateTag() 258
isUserSubscribed($users_id, $tags_id) 267
getButton($tags_id, $videos_id = 0, $btnClass = '<string>', $btnClassPrimary = '<string>', $btnClassSuccess = '<string>', $btnClassDefault = '<string>') 288
getTagLink($tags_id) 377
getTagHTMLLink($tags_id, $total_videos = 0) 390
getAllSubscribersFromVideosId($videos_id) 415
getLabels($videos_id, $showType = true, $showSubscription = true) 427
getPluginMenu() 475
getManagerVideosAddNew() 481
getManagerVideosReset() 485
getManagerVideosEdit() 489
getManagerVideosEditField($type = '<string>') 503
getManagerVideosJavaScripts() 509
saveVideosAddNew($post, $videos_id) 516
getAllVideosArray($videos_id) 523
getPluginVersion() 530
updateScript() 534
getHeadCode(): string 546
getFooterCode() 550
getMobileInfo() 568

Supporting PHP declarations

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

Objects/Tags.php

Declared classes: Tags.

Named symbol Source
getSearchFieldsNames() 12
getTableName() 16
loadFromName($name, $tags_types_id) 20
getFromName($name, $tags_types_id) 31
getId() 45
getName() 49
setId($id) 53
setName($name) 57
getTags_types_id() 62
setTags_types_id($tags_types_id) 66
save() 70
delete() 77
_addVideo($videos_id) 84
addVideo($tags_id, $videos_id) 94
getAllFromVideosId($videos_id) 99
getObjectFromVideosId($videos_id) 118
getAllTags($tags_types_id) 132
getAllTagsWithTotalVideos($tags_types_id) 145
getAllTagsList($tags_types_id) 164
getAllWithSubscriptionRow($users_id) 174

Objects/TagsHasVideos.php

Declared classes: TagsHasVideos.

Named symbol Source
getSearchFieldsNames() 11
getTableName() 15
getTags_id() 19
getVideos_id() 23
setTags_id($tags_id) 27
setVideos_id($videos_id) 34
save() 41
delete() 48
clearRequestCache($videos_id = 0, $tags_id = 0) 55
loadFromTagsIdAndVideosId($tags_id, $videos_id) 83
getFromTagsIdAndVideosId($tags_id, $videos_id) 94
getAllFromVideosId($videos_id) 112
getTotalVideosFromTagsId($tags_id, $status = Video::SORT_TYPE_VIEWABLE) 140
getAllVideosFromTagsId($tags_id, $limit = 100, $status = Video::SORT_TYPE_VIEWABLE) 172
getAllVideosIdFromTagsId($tags_id, $limit = 100, $status = Video::SORT_TYPE_VIEWABLE) 200
getAllFromVideosIdAndTagsTypesId($videos_id, $tags_types_id) 210
removeAllTagsFromVideo($videos_id) 231
getAllWithVideo($limit=100) 249

Objects/TagsTypes.php

Declared classes: TagsTypes.

Named symbol Source
getSearchFieldsNames() 12
getTableName() 16
getName() 20
getParameters_json() 24
setName($name) 28
setParameters_json($parameters_json) 32
getFromName($name) 36

Objects/Tags_subscriptions.php

Declared classes: Tags_subscriptions.

Named symbol Source
getSearchFieldsNames() 9
getTableName() 13
setId($id) 17
setTags_id($tags_id) 21
setUsers_id($users_id) 25
getId() 29
getTags_id() 33
getUsers_id() 37
getNotify() 41
setNotify($notify): void 49
getTotalFromTag($tags_id) 57
getFromTagAndUser($tags_id, $users_id) 71
getAllFromUsers_id($users_id) 87
getAllTagsIdsFromUsers_id($users_id) 97
getAllFromTags_id($tags_id) 108
subscribe($tags_id, $users_id, $notify = 0) 118
unsubscribe($tags_id, $users_id) 132

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