Layer: Service · Source: lib/service/PostService.php:25 (lines 25–1028)
class PostService
| Tag | Value |
|---|---|
@category | Service class |
@author | M.Noermoehammad |
@license | MIT |
@version | 1.0 |
@since | Since Release 1.0 |
No parent, interface or trait. This is a root type.
None.
| 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 |
| 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 |
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 | ''PostDao'' | required | none |
$validator | ''FormValidator'' | required | none |
$sanitizer | ''Sanitize'' | required | none |
$topicDao | ''?TopicDao'' | null | Data access for post category lookups and writes |
$mediaDao | ''?MediaDao'' | null | Data access for post media lookups and writes |
public function setPostId($postId)
lines 220–223 (4)
set post's ID
| Parameter | Type | Default | Description |
|---|---|---|---|
$postId | (untyped) | required | none |
Returns: (none declared)
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)
public function setPostAuthor($author)
lines 242–245 (4)
set post's author
| Parameter | Type | Default | Description |
|---|---|---|---|
$author | (untyped) | required | none |
Returns: (none declared)
public function setPostDate($date_created)
lines 253–256 (4)
setPostDate
| Parameter | Type | Default | Description |
|---|---|---|---|
$date_created | (untyped) | required | none |
Returns: (none declared)
public function setPostModified($date_modified)
lines 264–267 (4)
setPostModified
| Parameter | Type | Default | Description |
|---|---|---|---|
$date_modified | (untyped) | required | none |
Returns: (none declared)
public function setPostTitle($title)
lines 274–277 (4)
set post's title
| Parameter | Type | Default | Description |
|---|---|---|---|
$title | (untyped) | required | none |
Returns: (none declared)
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)
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)
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)
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)
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)
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)
public function setHeadlines($post_headlines)
lines 353–356 (4)
setHeadlines
| Parameter | Type | Default | Description |
|---|---|---|---|
$post_headlines | (untyped) | required | none |
Returns: (none declared)
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)
public function setPassPhrase($passphrase)
lines 375–378 (4)
setPassPhrase
| Parameter | Type | Default | Description |
|---|---|---|---|
$passphrase | (untyped) | required | none |
Returns: (none declared)
public function setTopics($topics)
lines 386–389 (4)
set post's topic
| Parameter | Type | Default | Description |
|---|---|---|---|
$topics | (untyped) | required | none |
Returns: (none declared)
public function setPostTags($tags)
lines 397–400 (4)
setPostTags
| Parameter | Type | Default | Description |
|---|---|---|---|
$tags | (untyped) | required | none |
Returns: (none declared)
public function setPostLocale($post_locale)
lines 408–411 (4)
setPostLocale
| Parameter | Type | Default | Description |
|---|---|---|---|
$post_locale | (untyped) | required | none |
Returns: (none declared)
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
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
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
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
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
public function addPost()
lines 481–523 (43)
Insert new post
Takes no parameters.
Returns: (none declared) — integer
public function modifyPost()
lines 531–570 (40)
modifyPost
Takes no parameters.
Returns: (none declared) — void
public function removePost()
lines 577–628 (52)
removePost
removing an existing post record
Takes no parameters.
Returns: (none declared)
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
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
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
public function postAuthorId()
lines 785–793 (9)
postAuthorId
Checking whether author cookie_id or session_id exists
Takes no parameters.
Returns: (none declared) — string
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
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
public function getArchiveIndexApi()
lines 827–830 (4)
Get archive index (distinct year/month with post counts).
Takes no parameters.
Returns: (none declared) — array
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
| Alias | Fully-qualified name |
|---|---|
FormValidator | ''Scriptlog\Core\FormValidator'' |
Sanitize | ''Scriptlog\Core\Sanitize'' |
Session | ''Scriptlog\Core\Session'' |
MediaDao | ''Scriptlog\Dao\MediaDao'' |
PostDao | ''Scriptlog\Dao\PostDao'' |
TopicDao | ''Scriptlog\Dao\TopicDao'' |
This page is generated from source by 'tools/gendoc'. Edits will be overwritten.