====== PostService ======
**Layer:** ''Service'' · **Source:** ''lib/service/PostService.php:25'' (lines 25–1028)
----
class PostService
======= Docblock Metadata =======
^ Tag ^ Value ^
| ''@category'' | Service class |
| ''@author'' | M.Noermoehammad |
| ''@license'' | MIT |
| ''@version'' | 1.0 |
| ''@since'' | Since Release 1.0 |
======= Inheritance =======
//No parent, interface or trait. This is a root type.//
======= Constants (0) =======
//None.//
======= Properties (23) =======
^ Visibility ^ Type ^ Name ^ Default ^ Line ^
| ''private'' | ''(untyped)'' | ''$postId'' | | 31 |
| ''private'' | ''(untyped)'' | ''$post_image'' | | 37 |
| ''private'' | ''(untyped)'' | ''$author'' | | 43 |
| ''private'' | ''(untyped)'' | ''$post_date'' | | 49 |
| ''private'' | ''(untyped)'' | ''$post_modified'' | | 57 |
| ''private'' | ''(untyped)'' | ''$title'' | | 63 |
| ''private'' | ''(untyped)'' | ''$slug'' | | 69 |
| ''private'' | ''(untyped)'' | ''$content'' | | 75 |
| ''private'' | ''(untyped)'' | ''$meta_desc'' | | 83 |
| ''private'' | ''(untyped)'' | ''$post_status'' | | 91 |
| ''private'' | ''(untyped)'' | ''$post_visibility'' | | 98 |
| ''private'' | ''(untyped)'' | ''$post_password'' | | 105 |
| ''private'' | ''(untyped)'' | ''$post_headlines'' | | 113 |
| ''private'' | ''(untyped)'' | ''$comment_status'' | | 121 |
| ''private'' | ''(untyped)'' | ''$passphrase'' | | 128 |
| ''private'' | ''(untyped)'' | ''$topics'' | | 135 |
| ''private'' | ''(untyped)'' | ''$tags'' | | 143 |
| ''private'' | ''(untyped)'' | ''$post_locale'' | | 150 |
| ''private'' | ''(untyped)'' | ''$postDao'' | | 158 |
| ''private'' | ''(untyped)'' | ''$validator'' | | 166 |
| ''private'' | ''(untyped)'' | ''$sanitizer'' | | 174 |
| ''private'' | ''(untyped)'' | ''$topicDao'' | | 182 |
| ''private'' | ''(untyped)'' | ''$mediaDao'' | | 190 |
======= Methods (49) =======
^ Visibility ^ Method ^ Summary ^ Line ^
| public | ''__construct()'' | Constructor | 206 |
| public | ''setPostId()'' | set post's ID | 220 |
| public | ''setPostImage()'' | set post's image | 231 |
| public | ''setPostAuthor()'' | set post's author | 242 |
| public | ''setPostDate()'' | setPostDate | 253 |
| public | ''setPostModified()'' | setPostModified | 264 |
| public | ''setPostTitle()'' | set post's title | 274 |
| public | ''setPostSlug()'' | set post's URL SEO Friendly | 284 |
| public | ''setPostContent()'' | set post's content | 295 |
| public | ''setMetaDesc()'' | set post's summary as meta_description tag | 305 |
| public | ''setPublish()'' | set post's status | 316 |
| public | ''setVisibility()'' | setVisibility() | 328 |
| public | ''setProtected()'' | setProtected() | 342 |
| public | ''setHeadlines()'' | setHeadlines | 353 |
| public | ''setComment()'' | set comment's status | 364 |
| public | ''setPassPhrase()'' | setPassPhrase | 375 |
| public | ''setTopics()'' | set post's topic | 386 |
| public | ''setPostTags()'' | setPostTags | 397 |
| public | ''setPostLocale()'' | setPostLocale | 408 |
| public | ''grabPosts()'' | Retrieve all posts. | 421 |
| public | ''grabPost()'' | Retrieve a single post by ID. | 432 |
| public | ''getPublishedPostsApi()'' | Get paginated published posts for API | 447 |
| public | ''countPublishedPostsApi()'' | Count published posts for API | 459 |
| public | ''getPublishedPostApi()'' | Get a single published post by ID for API | 470 |
| public | ''addPost()'' | Insert new post | 481 |
| public | ''modifyPost()'' | modifyPost | 531 |
| public | ''removePost()'' | removePost | 577 |
| public | ''processPostImage()'' | Process post image - orchestrates default or uploaded image handling. | 648 |
| private | ''processDefaultImage()'' | Process default image (nophoto or existing image_id). | 672 |
| private | ''processUploadedImage()'' | Process uploaded image - handles file upload and media record. | 730 |
| public | ''postAuthorId()'' | postAuthorId | 785 |
| public | ''postAuthorLevel()'' | postAuthorLevel | 803 |
| public | ''totalPosts()'' | Total posts records. | 815 |
| public | ''getArchiveIndexApi()'' | Get archive index (distinct year/month with post counts). | 827 |
| public | ''getPostsByYearApi()'' | Get published posts by year for API. | 842 |
| public | ''countPostsByYearApi()'' | Count published posts by year for API. | 854 |
| public | ''getPostsByYearMonthApi()'' | Get published posts by year and month for API. | 870 |
| public | ''countPostsByYearMonthApi()'' | Count published posts by year and month for API. | 883 |
| public | ''searchPostsApi()'' | Search posts by keyword for API query endpoint. | 896 |
| public | ''getPostTopicsApi()'' | Get topics for a post. | 907 |
| public | ''setPostTopicsApi()'' | Set topic relationships for a post. | 919 |
| public | ''createPostApi()'' | Create a post for the API and return the new ID. | 930 |
| public | ''updatePostApi()'' | Update a post with dynamic fields for the API. | 942 |
| public | ''removePostApi()'' | Delete a post and all related data. | 953 |
| public | ''getPostByIdApi()'' | Get a post by ID (any status). | 966 |
| public | ''getFeaturedMediaApi()'' | Get featured media row for the API. | 980 |
| public | ''getTopicCheckboxes()'' | Get topic checkboxes for the post form. | 996 |
| public | ''getMediaDropdown()'' | Get media dropdown for the post form. | 1010 |
| public | ''getMediaUploadField()'' | Get media upload field for the post form. | 1024 |
======== __construct() ========
public function __construct(PostDao $postDao, FormValidator $validator, Sanitize $sanitizer, ?TopicDao $topicDao = null, ?MediaDao $mediaDao = null)
//lines 206–213 (8)//
Constructor
Topic and media DAOs are optional so callers that cannot inject
(API controllers are built with no arguments by ApiRouter) keep
working; the admin composition root passes them explicitly.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$postDao'' | [[scriptlog:lib:dao:postdao|''PostDao'']] | //required// | //none// |
| ''$validator'' | [[scriptlog:lib:core:formvalidator|''FormValidator'']] | //required// | //none// |
| ''$sanitizer'' | [[scriptlog:lib:core:sanitize|''Sanitize'']] | //required// | //none// |
| ''$topicDao'' | [[scriptlog:lib:dao:topicdao|''?TopicDao'']] | ''null'' | Data access for post category lookups and writes |
| ''$mediaDao'' | [[scriptlog:lib:dao:mediadao|''?MediaDao'']] | ''null'' | Data access for post media lookups and writes |
======== setPostId() ========
public function setPostId($postId)
//lines 220–223 (4)//
set post's ID
^ Parameter ^ Type ^ Default ^ Description ^
| ''$postId'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setPostImage() ========
public function setPostImage($post_image)
//lines 231–234 (4)//
set post's image
^ Parameter ^ Type ^ Default ^ Description ^
| ''$post_image'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setPostAuthor() ========
public function setPostAuthor($author)
//lines 242–245 (4)//
set post's author
^ Parameter ^ Type ^ Default ^ Description ^
| ''$author'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setPostDate() ========
public function setPostDate($date_created)
//lines 253–256 (4)//
setPostDate
^ Parameter ^ Type ^ Default ^ Description ^
| ''$date_created'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setPostModified() ========
public function setPostModified($date_modified)
//lines 264–267 (4)//
setPostModified
^ Parameter ^ Type ^ Default ^ Description ^
| ''$date_modified'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setPostTitle() ========
public function setPostTitle($title)
//lines 274–277 (4)//
set post's title
^ Parameter ^ Type ^ Default ^ Description ^
| ''$title'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setPostSlug() ========
public function setPostSlug($slug)
//lines 284–287 (4)//
set post's URL SEO Friendly
^ Parameter ^ Type ^ Default ^ Description ^
| ''$slug'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setPostContent() ========
public function setPostContent($content, $skipPurify = false)
//lines 295–298 (4)//
set post's content
^ Parameter ^ Type ^ Default ^ Description ^
| ''$content'' | ''(untyped)'' | //required// | //none// |
| ''$skipPurify'' | ''(untyped)'' | ''false'' | //none// |
**Returns:** ''(none declared)''
======== setMetaDesc() ========
public function setMetaDesc($meta_desc)
//lines 305–308 (4)//
set post's summary as meta_description tag
^ Parameter ^ Type ^ Default ^ Description ^
| ''$meta_desc'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setPublish() ========
public function setPublish($post_status)
//lines 316–319 (4)//
set post's status
published or save as draft
^ Parameter ^ Type ^ Default ^ Description ^
| ''$post_status'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setVisibility() ========
public function setVisibility($post_visibility)
//lines 328–331 (4)//
setVisibility()
setup post visibility whether is public, private or protected with password
^ Parameter ^ Type ^ Default ^ Description ^
| ''$post_visibility'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setProtected() ========
public function setProtected($post_password)
//lines 342–345 (4)//
setProtected()
Post published with visibility protected will be created with it's own password
someone know its password only can read whole post protected
^ Parameter ^ Type ^ Default ^ Description ^
| ''$post_password'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setHeadlines() ========
public function setHeadlines($post_headlines)
//lines 353–356 (4)//
setHeadlines
^ Parameter ^ Type ^ Default ^ Description ^
| ''$post_headlines'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setComment() ========
public function setComment($comment_status)
//lines 364–367 (4)//
set comment's status
comment allowed(open) or not allowed(close)
^ Parameter ^ Type ^ Default ^ Description ^
| ''$comment_status'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setPassPhrase() ========
public function setPassPhrase($passphrase)
//lines 375–378 (4)//
setPassPhrase
^ Parameter ^ Type ^ Default ^ Description ^
| ''$passphrase'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setTopics() ========
public function setTopics($topics)
//lines 386–389 (4)//
set post's topic
^ Parameter ^ Type ^ Default ^ Description ^
| ''$topics'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setPostTags() ========
public function setPostTags($tags)
//lines 397–400 (4)//
setPostTags
^ Parameter ^ Type ^ Default ^ Description ^
| ''$tags'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== setPostLocale() ========
public function setPostLocale($post_locale)
//lines 408–411 (4)//
setPostLocale
^ Parameter ^ Type ^ Default ^ Description ^
| ''$post_locale'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== grabPosts() ========
public function grabPosts($orderBy = 'ID', $author = null)
//lines 421–424 (4)//
Retrieve all posts.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$orderBy'' | ''(untyped)'' | '''ID''' | //none// |
| ''$author'' | ''(untyped)'' | ''null'' | //none// |
**Returns:** ''(none declared)'' — array|bool|object
======== grabPost() ========
public function grabPost($postId)
//lines 432–435 (4)//
Retrieve a single post by ID.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$postId'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — array|bool|object
======== getPublishedPostsApi() ========
public function getPublishedPostsApi($page = 1, $perPage = 10, $sortBy = 'ID', $sortOrder = 'DESC', $author = null)
//lines 447–451 (5)//
Get paginated published posts for API
^ Parameter ^ Type ^ Default ^ Description ^
| ''$page'' | ''(untyped)'' | ''1'' | //none// |
| ''$perPage'' | ''(untyped)'' | ''10'' | //none// |
| ''$sortBy'' | ''(untyped)'' | '''ID''' | //none// |
| ''$sortOrder'' | ''(untyped)'' | '''DESC''' | //none// |
| ''$author'' | ''(untyped)'' | ''null'' | //none// |
**Returns:** ''(none declared)'' — array
======== countPublishedPostsApi() ========
public function countPublishedPostsApi($author = null)
//lines 459–462 (4)//
Count published posts for API
^ Parameter ^ Type ^ Default ^ Description ^
| ''$author'' | ''(untyped)'' | ''null'' | //none// |
**Returns:** ''(none declared)'' — integer
======== getPublishedPostApi() ========
public function getPublishedPostApi($postId)
//lines 470–473 (4)//
Get a single published post by ID for API
^ Parameter ^ Type ^ Default ^ Description ^
| ''$postId'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — array|false
======== addPost() ========
public function addPost()
//lines 481–523 (43)//
Insert new post
//Takes no parameters.//
**Returns:** ''(none declared)'' — integer
======== modifyPost() ========
public function modifyPost()
//lines 531–570 (40)//
modifyPost
//Takes no parameters.//
**Returns:** ''(none declared)'' — void
======== removePost() ========
public function removePost()
//lines 577–628 (52)//
removePost
removing an existing post record
//Takes no parameters.//
**Returns:** ''(none declared)''
======== processPostImage() ========
public function processPostImage($file_location, $file_type, $file_name, $file_size, $file_extension, $new_filename, $width, $height, $media_access, $user_level, array $filtered, $isUpdate = false, $oldMediaId = null)
//lines 648–659 (12)//
Process post image - orchestrates default or uploaded image handling.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$file_location'' | ''(untyped)'' | //required// | //none// |
| ''$file_type'' | ''(untyped)'' | //required// | //none// |
| ''$file_name'' | ''(untyped)'' | //required// | //none// |
| ''$file_size'' | ''(untyped)'' | //required// | //none// |
| ''$file_extension'' | ''(untyped)'' | //required// | //none// |
| ''$new_filename'' | ''(untyped)'' | //required// | //none// |
| ''$width'' | ''(untyped)'' | //required// | //none// |
| ''$height'' | ''(untyped)'' | //required// | //none// |
| ''$media_access'' | ''(untyped)'' | //required// | //none// |
| ''$user_level'' | ''(untyped)'' | //required// | //none// |
| ''$filtered'' | ''array'' | //required// | //none// |
| ''$isUpdate'' | ''(untyped)'' | ''false'' | //none// |
| ''$oldMediaId'' | ''(untyped)'' | ''null'' | //none// |
**Returns:** ''(none declared)'' — void
======== processDefaultImage() ========
private function processDefaultImage(array $filtered, $width, $height, $media_access, $user_level, $isUpdate = false)
//lines 672–711 (40)//
Process default image (nophoto or existing image_id).
^ Parameter ^ Type ^ Default ^ Description ^
| ''$filtered'' | ''array'' | //required// | //none// |
| ''$width'' | ''(untyped)'' | //required// | //none// |
| ''$height'' | ''(untyped)'' | //required// | //none// |
| ''$media_access'' | ''(untyped)'' | //required// | //none// |
| ''$user_level'' | ''(untyped)'' | //required// | //none// |
| ''$isUpdate'' | ''(untyped)'' | ''false'' | //none// |
**Returns:** ''(none declared)'' — int|null
======== processUploadedImage() ========
private function processUploadedImage($file_location, $file_type, $file_name, $file_size, $file_extension, $new_filename, $width, $height, $media_access, $user_level, array $filtered, $oldMediaId = null)
//lines 730–776 (47)//
Process uploaded image - handles file upload and media record.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$file_location'' | ''(untyped)'' | //required// | //none// |
| ''$file_type'' | ''(untyped)'' | //required// | //none// |
| ''$file_name'' | ''(untyped)'' | //required// | //none// |
| ''$file_size'' | ''(untyped)'' | //required// | //none// |
| ''$file_extension'' | ''(untyped)'' | //required// | //none// |
| ''$new_filename'' | ''(untyped)'' | //required// | //none// |
| ''$width'' | ''(untyped)'' | //required// | //none// |
| ''$height'' | ''(untyped)'' | //required// | //none// |
| ''$media_access'' | ''(untyped)'' | //required// | //none// |
| ''$user_level'' | ''(untyped)'' | //required// | //none// |
| ''$filtered'' | ''array'' | //required// | //none// |
| ''$oldMediaId'' | ''(untyped)'' | ''null'' | //none// |
**Returns:** ''(none declared)'' — void
======== postAuthorId() ========
public function postAuthorId()
//lines 785–793 (9)//
postAuthorId
Checking whether author cookie_id or session_id exists
//Takes no parameters.//
**Returns:** ''(none declared)'' — string
======== postAuthorLevel() ========
public function postAuthorLevel()
//lines 803–806 (4)//
postAuthorLevel
Checking whether author cookie_level or session_level exists.
//Takes no parameters.//
**Returns:** ''(none declared)'' — string|bool
======== totalPosts() ========
public function totalPosts(array $data = []): ?int
//lines 815–820 (6)//
Total posts records.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$data'' | ''array'' | ''[]'' | Optional list where the first element is the author ID. |
**Returns:** ''?int'' — int|null
======== getArchiveIndexApi() ========
public function getArchiveIndexApi()
//lines 827–830 (4)//
Get archive index (distinct year/month with post counts).
//Takes no parameters.//
**Returns:** ''(none declared)'' — array
======== getPostsByYearApi() ========
public function getPostsByYearApi($year, $page = 1, $perPage = 10, $sortBy = 'ID', $sortOrder = 'DESC')
//lines 842–846 (5)//
Get published posts by year for API.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$year'' | ''(untyped)'' | //required// | //none// |
| ''$page'' | ''(untyped)'' | ''1'' | //none// |
| ''$perPage'' | ''(untyped)'' | ''10'' | //none// |
| ''$sortBy'' | ''(untyped)'' | '''ID''' | //none// |
| ''$sortOrder'' | ''(untyped)'' | '''DESC''' | //none// |
**Returns:** ''(none declared)'' — array
======== countPostsByYearApi() ========
public function countPostsByYearApi($year)
//lines 854–857 (4)//
Count published posts by year for API.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$year'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — int
======== getPostsByYearMonthApi() ========
public function getPostsByYearMonthApi($year, $month, $page = 1, $perPage = 10, $sortBy = 'ID', $sortOrder = 'DESC')
//lines 870–874 (5)//
Get published posts by year and month for API.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$year'' | ''(untyped)'' | //required// | //none// |
| ''$month'' | ''(untyped)'' | //required// | //none// |
| ''$page'' | ''(untyped)'' | ''1'' | //none// |
| ''$perPage'' | ''(untyped)'' | ''10'' | //none// |
| ''$sortBy'' | ''(untyped)'' | '''ID''' | //none// |
| ''$sortOrder'' | ''(untyped)'' | '''DESC''' | //none// |
**Returns:** ''(none declared)'' — array
======== countPostsByYearMonthApi() ========
public function countPostsByYearMonthApi($year, $month)
//lines 883–886 (4)//
Count published posts by year and month for API.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$year'' | ''(untyped)'' | //required// | //none// |
| ''$month'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — int
======== searchPostsApi() ========
public function searchPostsApi($keyword, $type = 'all', $limit = 50)
//lines 896–899 (4)//
Search posts by keyword for API query endpoint.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$keyword'' | ''(untyped)'' | //required// | //none// |
| ''$type'' | ''(untyped)'' | '''all''' | 'blog', 'page', or 'all' |
| ''$limit'' | ''(untyped)'' | ''50'' | //none// |
**Returns:** ''(none declared)'' — array
======== getPostTopicsApi() ========
public function getPostTopicsApi($postId)
//lines 907–910 (4)//
Get topics for a post.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$postId'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — array
======== setPostTopicsApi() ========
public function setPostTopicsApi($postId, $topicIds)
//lines 919–922 (4)//
Set topic relationships for a post.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$postId'' | ''(untyped)'' | //required// | //none// |
| ''$topicIds'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — void
======== createPostApi() ========
public function createPostApi(array $data)
//lines 930–933 (4)//
Create a post for the API and return the new ID.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$data'' | ''array'' | //required// | //none// |
**Returns:** ''(none declared)'' — int
======== updatePostApi() ========
public function updatePostApi($postId, array $data)
//lines 942–945 (4)//
Update a post with dynamic fields for the API.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$postId'' | ''(untyped)'' | //required// | //none// |
| ''$data'' | ''array'' | //required// | //none// |
**Returns:** ''(none declared)'' — void
======== removePostApi() ========
public function removePostApi($postId)
//lines 953–958 (6)//
Delete a post and all related data.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$postId'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — void
======== getPostByIdApi() ========
public function getPostByIdApi($postId)
//lines 966–969 (4)//
Get a post by ID (any status).
^ Parameter ^ Type ^ Default ^ Description ^
| ''$postId'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — array|false
======== getFeaturedMediaApi() ========
public function getFeaturedMediaApi($mediaId): ?array
//lines 980–985 (6)//
Get featured media row for the API.
Normalizes the DAO result to null when no media exists so callers
never receive false or boolean true.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$mediaId'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''?array'' — array|null Media row or null when missing
======== getTopicCheckboxes() ========
public function getTopicCheckboxes($postId = null): string
//lines 996–999 (4)//
Get topic checkboxes for the post form.
Returns plain HTML so controllers pass data to views instead of DAO
objects.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$postId'' | ''(untyped)'' | ''null'' | Post ID to pre-check, null for new posts |
**Returns:** ''string'' — string Checkbox HTML
======== getMediaDropdown() ========
public function getMediaDropdown($selected = null): string
//lines 1010–1013 (4)//
Get media dropdown for the post form.
Returns plain HTML so controllers pass data to views instead of DAO
objects.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$selected'' | ''(untyped)'' | ''null'' | Media ID pre-selected in the list |
**Returns:** ''string'' — string Dropdown HTML
======== getMediaUploadField() ========
public function getMediaUploadField($mediaId = null): string
//lines 1024–1027 (4)//
Get media upload field for the post form.
Returns plain HTML so controllers pass data to views instead of DAO
objects.
^ Parameter ^ Type ^ Default ^ Description ^
| ''$mediaId'' | ''(untyped)'' | ''null'' | Current media ID for existing posts |
**Returns:** ''string'' — string Upload field HTML
======= Imports =======
^ Alias ^ Fully-qualified name ^
| ''FormValidator'' | [[scriptlog:lib:core:formvalidator|''Scriptlog\Core\FormValidator'']] |
| ''Sanitize'' | [[scriptlog:lib:core:sanitize|''Scriptlog\Core\Sanitize'']] |
| ''Session'' | [[scriptlog:lib:core:session|''Scriptlog\Core\Session'']] |
| ''MediaDao'' | [[scriptlog:lib:dao:mediadao|''Scriptlog\Dao\MediaDao'']] |
| ''PostDao'' | [[scriptlog:lib:dao:postdao|''Scriptlog\Dao\PostDao'']] |
| ''TopicDao'' | [[scriptlog:lib:dao:topicdao|''Scriptlog\Dao\TopicDao'']] |
----
//This page is generated from source by 'tools/gendoc'. Edits will be overwritten.//