PluginProbe
Elementor Website Builder – more than just a page builder / 3.6.0-dev1
Elementor Website Builder – more than just a page builder v3.6.0-dev1
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / modules / favorites / controller.php

controller.php in Elementor Website Builder – more than just a page builder 3.6.0-dev1, at modules/favorites/controller.php

77 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Modules\Favorites;
4
5 if ( ! defined( 'ABSPATH' ) ) {
6 exit; // Exit if accessed directly.
7 }
8
9 use Elementor\Data\V2\Base\Controller as Controller_Base;
10 use Elementor\Plugin;
11
12 class Controller extends Controller_Base {
13
14 public function get_name() {
15 return 'favorites';
16 }
17
18 public function create_item( $request ) {
19 $module = $this->get_module();
20 $type = $request->get_param( 'id' );
21 $favorite = $request->get_param( 'favorite' );
22
23 $module->update( $type, $favorite, $module::ACTION_MERGE );
24
25 return $module->get( $type );
26 }
27
28 public function delete_item( $request ) {
29 $module = $this->get_module();
30 $type = $request->get_param( 'id' );
31 $favorite = $request->get_param( 'favorite' );
32
33 $module->update( $type, $favorite, $module::ACTION_DELETE );
34
35 return $module->get( $type );
36 }
37
38 /**
39 * Get the favorites module instance.
40 *
41 * @return Module
42 */
43 protected function get_module() {
44 return Plugin::instance()->modules_manager->get_modules( 'favorites' );
45 }
46
47 public function register_endpoints() {
48 $this->index_endpoint->register_item_route( \WP_REST_Server::CREATABLE, [
49 'id_arg_type_regex' => '[\w]+',
50 'id' => [
51 'description' => 'Type of favorites.',
52 'type' => 'string',
53 'required' => true,
54 ],
55 'favorite' => [
56 'description' => 'The favorite slug to create.',
57 'type' => 'string',
58 'required' => true,
59 ],
60 ] );
61
62 $this->index_endpoint->register_item_route( \WP_REST_Server::DELETABLE, [
63 'id_arg_type_regex' => '[\w]+',
64 'id' => [
65 'description' => 'Type of favorites.',
66 'type' => 'string',
67 'required' => true,
68 ],
69 'favorite' => [
70 'description' => 'The favorite slug to delete.',
71 'type' => 'string',
72 'required' => true,
73 ],
74 ] );
75 }
76 }
77