PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Campaigns / Models / CampaignPage.php
give / src / Campaigns / Models Last commit date
Campaign.php 7 months ago CampaignPage.php 1 year ago
CampaignPage.php
122 lines
1 <?php
2
3 namespace Give\Campaigns\Models;
4
5 use DateTime;
6 use Give\Campaigns\Repositories\CampaignPageRepository;
7 use Give\Campaigns\ValueObjects\CampaignPageStatus;
8 use Give\Framework\Models\Contracts\ModelCrud;
9 use Give\Framework\Models\Model;
10 use Give\Framework\Models\ModelQueryBuilder;
11 use Give\Framework\Models\ValueObjects\Relationship;
12 use Give\Framework\Support\Facades\DateTime\Temporal;
13
14 /**
15 * @since 4.0.0
16 *
17 * @property int $id
18 * @property int $campaignId
19 * @property DateTime $createdAt
20 * @property DateTime $updatedAt
21 * @property CampaignPageStatus $status
22 * @property string $content
23 */
24 class CampaignPage extends Model implements ModelCrud
25 {
26 public $properties = [
27 'id' => 'int',
28 'campaignId' => 'int',
29 'createdAt' => DateTime::class,
30 'updatedAt' => DateTime::class,
31 'status' => CampaignPageStatus::class,
32 'content' => 'string'
33 ];
34
35 public $relationships = [
36 'campaign' => Relationship::BELONGS_TO,
37 ];
38
39 /**
40 * @since 4.0.0
41 */
42 public function getEditLinkUrl(): string
43 {
44 // By default, the URL is encoded for display purposes.
45 // Setting any other value prevents encoding the URL.
46 return get_edit_post_link($this->id, 'redirect');
47 }
48
49 /**
50 * @since 4.0.0
51 */
52 public function campaign(): ?Campaign
53 {
54 return Campaign::find($this->campaignId);
55 }
56
57 /**
58 * @since 4.0.0
59 */
60 public static function find($id): ?CampaignPage
61 {
62 return give(CampaignPageRepository::class)->getById($id);
63 }
64
65 /**
66 * @since 4.0.0
67 */
68 public static function create(array $attributes): CampaignPage
69 {
70 $campaignPage = new static($attributes);
71
72 give(CampaignPageRepository::class)->insert($campaignPage);
73
74 return $campaignPage;
75 }
76
77 /**
78 * @since 4.0.0
79 */
80 public function save(): void
81 {
82 if (!$this->id) {
83 give(CampaignPageRepository::class)->insert($this);
84 } else {
85 give(CampaignPageRepository::class)->update($this);
86 }
87 }
88
89 /**
90 * @since 4.0.0
91 */
92 public function delete(): bool
93 {
94 return give(CampaignPageRepository::class)->delete($this);
95 }
96
97 /**
98 * @since 4.0.0
99 *
100 * @return ModelQueryBuilder<CampaignPage>
101 */
102 public static function query(): ModelQueryBuilder
103 {
104 return give(CampaignPageRepository::class)->prepareQuery();
105 }
106
107 /**
108 * @since 4.0.0
109 */
110 public static function fromQueryBuilderObject($object): CampaignPage
111 {
112 return new CampaignPage([
113 'id' => (int) $object->id,
114 'campaignId' => (int) $object->campaignId,
115 'createdAt' => Temporal::toDateTime($object->createdAt),
116 'updatedAt' => Temporal::toDateTime($object->updatedAt),
117 'status' => new CampaignPageStatus($object->status),
118 'content' => $object->content
119 ]);
120 }
121 }
122