Scriptlog Docs

Scriptlog Documentation

Code reference for the Scriptlog codebase

User Tools

Site Tools


scriptlog:lib:service:postservice

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 ''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

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


This page is generated from source by 'tools/gendoc'. Edits will be overwritten.

scriptlog/lib/service/postservice.txt · Last modified: by admin