An UnoPim package to add a CMS Page feature.
- Run the following command:
composer require magentix/unopim-cms
- Add the module to
config/concord.php
:
<?php
return [
'modules' => [
/* ... */
\Magentix\Cms\Providers\ModuleServiceProvider::class,
]
];
- Run the commands to execute migrations and clear the cache:
php artisan migrate
php artisan optimize:clear
You can easily add new attributes with a custom package:
GET {{url}}/api/v1/rest/pages
Param | Value |
---|---|
filters | {"status":[{"operator":"=","value":"1"}]} |
page | 1 |
limit | 10 |
curl --location --globoff '{{url}}/api/v1/rest/pages' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{token}}'
curl --location --globoff '{{url}}/api/v1/rest/pages?filters={"status":[{"operator":"=","value":"1"}],"slug":[{"operator":"=","value":"my-slug"}]}&limit=1' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{token}}'
{
"data":[
{
"id":20,
"title":"How to recognise, treat and prevent heat damage in plants",
"content":"",
"locale":"en_US",
"group":"blog",
"code":"post_1",
"slug":"how-to-recognise-treat-and-prevent-heat-damage-in-plants",
"user_id":0,
"status":1,
"created_at":"2025-02-25T20:57:10.000000Z",
"updated_at":"2025-02-25T21:03:19.000000Z"
}
],
"current_page":1,
"last_page":4,
"total":4,
"links":{
"first":"http:\/\/localhost.unopim\/api\/v1\/rest\/pages?limit=1&page=1",
"last":"http:\/\/localhost.unopim\/api\/v1\/rest\/pages?limit=1&page=4",
"next":"http:\/\/localhost.unopim\/api\/v1\/rest\/pages?limit=1&page=2",
"prev":null
}
}
GET {{url}}/api/v1/rest/pages/{code}
curl --location --globoff '{{url}}/api/v1/rest/pages/my_code' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{token}}'
{
"id":20,
"title":"How to recognise, treat and prevent heat damage in plants",
"content":"",
"locale":"en_US",
"group":"blog",
"code":"post_1",
"slug":"how-to-recognise-treat-and-prevent-heat-damage-in-plants",
"user_id":0,
"status":1,
"created_at":"2025-02-25T20:57:10.000000Z",
"updated_at":"2025-02-25T21:03:19.000000Z"
}
POST {{url}}/api/v1/rest/pages
{
"code":"post_1",
"title":"Hardy plants for outdoor pots",
"content":"<p>Any experienced gardener will tell you that it's all about the soil.<\/p>",
"locale":"en_US",
"group":"blog",
"slug":"hardy-plants-for-outdoor-pots",
"status":1
}
curl --location --globoff '{{url}}/api/v1/rest/pages' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{token}}' \
--data '{
"code":"post_1",
"title":"Hardy plants for outdoor pots",
"content":"<p>Any experienced gardener will tell you that it''s all about the soil.<\/p>",
"locale":"en_US",
"group":"blog",
"slug":"hardy-plants-for-outdoor-pots",
"status":1
}'
{"success":true,"message":"Page created successfully"}
{"success":false,"message":"Validation failed.","errors":["The title field is required."]}
{"success":false,"message":"Validation failed.","errors":["The code has already been taken. (and 1 more error)"]}
PUT {{url}}/api/v1/rest/pages/{code}
{
"title":"Hardy plants for outdoor pots",
"content":"<p>Any experienced gardener will tell you that it's all about the soil.<\/p>",
"locale":"en_US",
"group":"blog",
"slug":"hardy-plants-for-outdoor-pots",
"status":1
}
curl --location --globoff --request PUT '{{url}}/api/v1/rest/pages/my_code' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{token}}' \
--data '{
"title":"Hardy plants for outdoor pots",
"content":"<p>Any experienced gardener will tell you that it''s all about the soil.<\/p>",
"locale":"en_US",
"group":"blog",
"slug":"hardy-plants-for-outdoor-pots",
"status":1
}'
{"success":true,"message":"Page updated successfully"}
{"success":false,"message":"Page with code \"my_code\" was not found"}
{"success":false,"message":"Validation failed.","errors":["The title field is required."]}