PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 2.3.8
AI Engine – The Chatbot, AI Framework & MCP for WordPress v2.3.8
3.5.7 3.5.6 3.5.5 3.5.4 3.5.3 3.5.2 3.5.1 3.5.0 3.4.9 3.4.8 3.4.7 0.2.1 1.6.91 0.2.2 1.6.92 0.2.3 1.6.93 0.2.4 1.6.94 0.2.5 1.6.95 0.2.6 1.6.96 0.2.7 1.6.97 0.2.8 1.6.98 0.2.9 1.6.99 0.3.0 1.7.0 0.3.1 1.7.1 0.3.2 1.7.2 0.3.3 1.7.3 0.3.4 1.7.4 0.3.5 1.7.5 0.3.6 1.7.6 0.4.0 1.7.7 0.4.1 1.7.8 0.4.2 1.7.9 0.4.3 1.8.0 0.4.4 1.8.1 0.4.5 1.8.2 0.4.6 1.8.3 0.4.7 1.8.4 0.4.8 1.8.5 0.4.9 1.8.6 0.5.0 1.8.7 0.5.1 1.8.8 0.5.2 1.8.9 0.5.3 1.9.0 0.5.4 1.9.1 0.5.5 1.9.2 0.5.6 1.9.3 0.5.7 1.9.4 0.5.8 1.9.5 0.5.9 1.9.6 0.6.0 1.9.7 0.6.1 1.9.8 0.6.2 1.9.81 0.6.3 1.9.82 0.6.4 1.9.83 0.6.5 1.9.84 0.6.6 1.9.85 0.6.7 1.9.86 0.6.8 1.9.87 0.6.9 1.9.88 0.7.0 1.9.89 0.7.1 1.9.90 0.7.2 1.9.91 0.7.3 1.9.92 0.7.4 1.9.93 0.7.5 1.9.94 0.7.6 1.9.95 0.7.7 1.9.96 0.7.8 1.9.97 0.7.9 1.9.98 0.8.0 1.9.99 0.8.1 2.0.0 0.8.2 2.0.1 0.8.3 2.0.2 0.8.4 2.0.3 0.8.5 2.0.4 0.8.6 2.0.5 0.8.7 2.0.6 0.8.8 2.0.7 0.8.9 2.0.8 0.9.0 2.0.9 0.9.2 2.1.0 0.9.3 2.1.1 0.9.4 2.1.2 0.9.5 2.1.3 0.9.6 2.1.4 0.9.7 2.1.5 0.9.8 2.1.6 0.9.81 2.1.7 0.9.82 2.1.8 0.9.83 2.1.9 0.9.84 2.2.0 0.9.85 2.2.1 0.9.86 2.2.2 0.9.87 2.2.3 0.9.88 2.2.4 0.9.89 2.2.5 0.9.9 2.2.51 0.9.91 2.2.52 0.9.92 2.2.53 0.9.93 2.2.54 0.9.94 2.2.56 0.9.95 2.2.57 0.9.96 2.2.6 0.9.97 2.2.60 0.9.98 2.2.61 0.9.99 2.2.62 1.0.0 2.2.63 1.0.01 2.2.70 1.0.1 2.2.80 1.0.2 2.2.81 1.0.3 2.2.90 1.0.4 2.2.91 1.0.5 2.2.92 1.0.6 2.2.93 1.0.7 2.2.94 1.0.8 2.2.95 1.0.9 2.3.0 1.1.0 2.3.1 1.1.1 2.3.2 1.1.2 2.3.3 1.1.3 2.3.4 1.1.4 2.3.5 1.1.5 2.3.6 1.1.6 2.3.7 1.1.7 2.3.8 1.1.8 2.3.9 1.1.9 2.4.0 1.2.0 2.4.1 1.2.1 2.4.2 1.2.2 2.4.3 1.2.21 2.4.4 1.2.3 2.4.5 1.2.30 2.4.6 1.3.0 2.4.7 1.3.1 2.4.8 1.3.2 2.4.9 1.3.3 2.5.0 1.3.31 2.5.1 1.3.32 2.5.2 1.3.33 2.5.3 1.3.34 2.5.4 1.3.35 2.5.5 1.3.36 2.5.6 1.3.37 2.5.7 1.3.38 2.5.8 1.3.39 2.5.9 1.3.40 2.6.0 1.3.41 2.6.1 1.3.42 2.6.2 1.3.43 2.6.3 1.3.44 2.6.5 1.3.45 2.6.6 1.3.46 2.6.7 1.3.47 2.6.8 1.3.48 2.6.9 1.3.49 2.7.0 1.3.50 2.7.1 1.3.51 2.7.2 1.3.52 2.7.3 1.3.53 2.7.4 1.3.54 2.7.5 1.3.56 2.7.6 1.3.57 2.7.7 1.3.58 2.7.8 1.3.59 2.7.9 1.3.60 2.8.0 1.3.61 2.8.1 1.3.62 2.8.2 1.3.63 2.8.3 1.3.64 2.8.4 1.3.65 2.8.5 1.3.66 2.8.6 1.3.67 2.8.7 1.3.68 2.8.8 1.3.69 2.8.9 1.3.70 2.9.0 1.3.71 2.9.1 1.3.72 2.9.2 1.3.73 2.9.3 1.3.74 2.9.4 1.3.75 2.9.5 1.3.76 2.9.6 1.3.77 2.9.7 1.3.78 2.9.8 1.3.79 2.9.9 1.3.80 3.0.0 1.3.81 3.0.1 1.3.82 3.0.2 1.3.83 3.0.3 1.3.84 3.0.4 1.3.85 3.0.5 1.3.86 3.0.6 1.3.87 3.0.7 1.3.88 3.0.8 1.3.89 3.0.9 1.3.90 3.1.0 1.3.91 3.1.1 1.3.92 3.1.2 1.3.93 3.1.3 1.3.94 3.1.4 1.3.95 3.1.5 1.3.96 3.1.6 1.3.97 3.1.7 1.3.98 3.1.8 1.3.99 3.1.9 1.4.0 3.2.0 1.4.1 3.2.1 1.4.2 3.2.2 1.4.3 3.2.3 1.4.4 3.2.4 1.4.5 3.2.5 1.4.6 3.2.6 1.4.7 3.2.7 1.4.8 3.2.8 1.4.9 3.2.9 1.5.0 3.3.0 1.5.1 3.3.1 1.5.2 3.3.2 1.5.3 3.3.3 1.5.4 3.3.4 1.5.5 3.3.5 1.5.6 3.3.6 1.5.7 3.3.7 1.5.8 3.3.8 1.5.9 3.3.9 1.6.0 3.4.0 1.6.1 3.4.1 1.6.2 3.4.2 1.6.3 3.4.3 1.6.5 3.4.4 1.6.51 3.4.5 1.6.52 3.4.6 1.6.53 1.6.54 1.6.55 1.6.56 1.6.57 1.6.58 1.6.59 1.6.60 1.6.61 1.6.62 1.6.63 1.6.64 1.6.65 1.6.66 1.6.67 1.6.68 trunk 1.6.69 0.0.1 1.6.70 0.0.2 1.6.71 0.0.3 1.6.72 0.0.4 1.6.73 0.0.5 1.6.74 0.0.6 1.6.75 0.0.7 1.6.76 0.0.8 1.6.77 0.0.9 1.6.78 0.1.0 1.6.79 0.1.1 1.6.81 0.1.2 1.6.82 0.1.3 1.6.83 0.1.4 1.6.84 0.1.5 1.6.85 0.1.6 1.6.86 0.1.7 1.6.87 0.1.8 1.6.88 0.1.9 1.6.89 0.2.0 1.6.90
ai-engine / classes / admin.php
ai-engine / classes Last commit date
engines 2 years ago modules 2 years ago queries 2 years ago admin.php 2 years ago api.php 2 years ago core.php 2 years ago init.php 2 years ago reply.php 2 years ago rest.php 2 years ago
admin.php
228 lines
1 <?php
2
3
4 class Meow_MWAI_Admin extends MeowCommon_Admin {
5 public $core;
6 public $contentGeneratorEnabled;
7 public $imagesGeneratorEnabled;
8 public $playgroundEnabled;
9 public $suggestionsEnabled;
10
11 public function __construct( $core ) {
12 $this->core = $core;
13 parent::__construct( MWAI_PREFIX, MWAI_ENTRY, MWAI_DOMAIN, class_exists( 'MeowPro_MWAI_Core' ) );
14 if ( is_admin() ) {
15 $this->contentGeneratorEnabled = $this->core->get_option( 'module_generator_content' );
16 $this->imagesGeneratorEnabled = $this->core->get_option( 'module_generator_images' );
17 $this->playgroundEnabled = $this->core->get_option( 'module_playground' );
18 $can_access_settings = $this->core->can_access_settings();
19 $can_access_features = $this->core->can_access_features();
20
21 if ( $can_access_settings || $can_access_features ) {
22 add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
23 }
24
25 if ( $can_access_settings ) {
26 add_action( 'admin_menu', array( $this, 'app_menu' ) );
27 }
28
29 if ( $can_access_features ) {
30 add_action( 'admin_menu', array( $this, 'admin_menu' ) );
31
32 // Only if the Suggestions are enabled.
33 $this->suggestionsEnabled = $this->core->get_option( 'module_suggestions' );
34 if ( $this->suggestionsEnabled ) {
35 add_filter( 'post_row_actions', [ $this, 'post_row_actions' ], 10, 2 );
36 }
37
38 add_action( 'admin_footer', [ $this, 'admin_footer' ] );
39 }
40 }
41 }
42
43 function admin_menu() {
44
45 // Generate New (under Posts)
46 if ( $this->contentGeneratorEnabled) {
47 add_submenu_page( 'edit.php', 'Generate New', 'Generate New', 'read', 'mwai_content_generator',
48 array( $this, 'ai_content_generator' ), 2 );
49 }
50
51 // In Tools
52 if ( $this->playgroundEnabled ) {
53 add_management_page( 'Playground', __( 'Playground', 'ai-engine' ), 'read',
54 'mwai_dashboard', array( $this, 'ai_playground' ) );
55 }
56 if ( $this->contentGeneratorEnabled ) {
57 add_management_page( 'Generate Content', 'Generate Content', 'read', 'mwai_content_generator',
58 array( $this, 'ai_content_generator' ) );
59 }
60 if ( $this->imagesGeneratorEnabled ) {
61 add_management_page( 'Generate Images', 'Generate Images', 'read', 'mwai_images_generator',
62 array( $this, 'ai_image_generator' ) );
63 }
64
65 // Addons
66 if ( $this->core->get_option( 'addons' ) ) {
67 add_submenu_page( 'meowapps-main-menu', 'Add-ons', '<div style="position: relative; top: -3px;">→ Add-ons</div>', 'manage_options', 'mwai_addons',
68 array( $this, 'mwai_addons' ), array( $this, 'mwai_addons' ) );
69 }
70
71 // In the Admin Bar:
72 add_action( 'admin_bar_menu', array( $this, 'admin_bar_menu' ), 100 );
73 }
74
75 function admin_bar_menu( $wp_admin_bar ) {
76
77 $admin_bar = $this->core->get_option( 'admin_bar' );
78 $settings = isset( $admin_bar['settings'] ) && $admin_bar['settings'];
79 $playground = isset( $admin_bar['playground'] ) && $admin_bar['playground'];
80 $content_generator = isset( $admin_bar['content_generator'] ) && $admin_bar['content_generator'];
81 $images_generator = isset( $admin_bar['images_generator'] ) && $admin_bar['images_generator'];
82
83 if ( $settings ) {
84 $wp_admin_bar->add_node( array(
85 'id' => 'mwai-settings',
86 'title' => '<span class="ab-icon dashicons-before dashicons-admin-settings" style="top: 2px;"></span>' . __( 'AI Engine', 'ai-engine' ),
87 'href' => admin_url( 'admin.php?page=mwai_settings' ),
88 'meta' => array( 'class' => 'mwai-settings' ),
89 ) );
90 }
91
92 if ( $content_generator ) {
93 $wp_admin_bar->add_node( array(
94 'id' => 'mwai-content-generator',
95 'title' => MWAI_IMG_WAND_HTML . __( 'Content', 'ai-engine' ),
96 'href' => admin_url( 'tools.php?page=mwai_content_generator' ),
97 'meta' => array( 'class' => 'mwai-content-generator' ),
98 ) );
99 }
100 if ( $images_generator ) {
101 $wp_admin_bar->add_node( array(
102 'id' => 'mwai-image-generator',
103 'title' => MWAI_IMG_WAND_HTML . __( 'Images', 'ai-engine' ),
104 'href' => admin_url( 'tools.php?page=mwai_images_generator' ),
105 'meta' => array( 'class' => 'mwai-images-generator' ),
106 ) );
107 }
108
109 // The Global Magic Wand
110 // if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
111 // $wp_admin_bar->add_node( array(
112 // 'id' => 'mwai-debug',
113 // 'title' => MWAI_IMG_WAND_HTML . __( 'Magic Wand', 'ai-engine' ),
114 // //'href' => admin_url( 'tools.php?page=mwai_debug' ),
115 // 'meta' => array( 'class' => 'mwai-debug' ),
116 // ) );
117 // }
118
119 if ( $playground ) {
120 $wp_admin_bar->add_node( array(
121 'id' => 'mwai-playground',
122 'title' => MWAI_IMG_WAND_HTML . __( 'Playground', 'ai-engine' ),
123 'href' => admin_url( 'tools.php?page=mwai_dashboard' ),
124 'meta' => array( 'class' => 'mwai-playground' ),
125 ) );
126 }
127 }
128
129 public function ai_playground() {
130 echo '<div id="mwai-playground"></div>';
131 }
132
133 public function ai_content_generator() {
134 echo '<div id="mwai-content-generator"></div>';
135 }
136
137 public function ai_image_generator() {
138 echo '<div id="mwai-image-generator"></div>';
139 }
140
141 function mwai_addons() {
142 $addons = apply_filters( 'mwai_addons', [
143 [
144 'slug' => "mwai-notifications",
145 'name' => "Notifications",
146 'icon_url' => MeowCommon_Admin::$logo,
147 'description' => "Add-on for AI Engine that adds notifications.",
148 'install_url' => "https://meowapps.com/products/mwai-notifications/",
149 'settings_url' => null,
150 'enabled' => false,
151 ]
152 ] );
153 $encoded = json_encode( $addons );
154 $encoded_escaped = htmlspecialchars( $encoded, ENT_QUOTES, 'UTF-8' );
155 echo '<div id="mwai-addons" data-addons=\'' . $encoded_escaped . '\'></div>';
156 }
157
158 function post_row_actions( $actions, $post ) {
159 //if ( $post->post_type === 'post' ) {
160 $actions['ai_titles'] = '<a class="mwai-link-title" href="#" data-id="' .
161 $post->ID . '" data-title="' . $post->post_title . '">
162 ' . MWAI_IMG_WAND_HTML_XS . ' Title</a>';
163 $actions['ai_excerpts'] = '<a class="mwai-link-excerpt" href="#" data-id="' .
164 $post->ID . '" data-title="' . $post->post_title . '">
165 ' . MWAI_IMG_WAND_HTML_XS . ' Excerpt</a>';
166 //}
167 return $actions;
168 }
169
170 function admin_footer() {
171 echo '<div id="mwai-admin-postsList"></div>';
172 }
173
174 function admin_enqueue_scripts() {
175 $physical_file = MWAI_PATH . '/app/index.js';
176 $cache_buster = file_exists( $physical_file ) ? filemtime( $physical_file ) : MWAI_VERSION;
177 wp_register_script( 'mwai-vendor', MWAI_URL . 'app/vendor.js', null, $cache_buster );
178 wp_register_script( 'mwai', MWAI_URL . 'app/index.js', [ 'mwai-vendor',
179 'wp-element', 'wp-components', 'wp-edit-post', 'wp-plugins', 'wp-i18n'
180 ], $cache_buster );
181 wp_enqueue_script( 'mwai' );
182
183 // The MD5 of the translation file built by WP uses app/i18n.js instead of app/index.js
184 add_filter( 'load_script_translation_file', function( $file, $handle, $domain ) {
185 if ( $domain !== 'ai-engine' ) { return $file; }
186 $file = str_replace( md5( 'app/index.js' ), md5( 'app/i18n.js' ), $file );
187 return $file;
188 }, 10, 3 );
189
190 // This is useless for AI Engine, but it avoids issues when themes and plugin calls
191 // wp_enqueue_media too late (usually, they call it in the footer). Until someone
192 // figures out what the issue is, let's load it here.
193 wp_enqueue_media();
194
195 wp_set_script_translations( 'mwai', 'ai-engine' );
196 wp_localize_script( 'mwai', 'mwai', [
197 'api_url' => get_rest_url( null, 'mwai/v1' ),
198 'rest_url' => get_rest_url(),
199 'plugin_url' => MWAI_URL,
200 'user_data' => $this->core->get_user_data(),
201 'prefix' => MWAI_PREFIX,
202 'domain' => MWAI_DOMAIN,
203 'is_pro' => class_exists( 'MeowPro_MWAI_Core' ),
204 'is_registered' => !!$this->is_registered(),
205 'rest_nonce' => wp_create_nonce( 'wp_rest' ),
206 'session' => $this->core->get_session_id(),
207 'options' => $this->core->get_all_options(),
208 'chatbots' => $this->core->get_chatbots(),
209 'themes' => $this->core->get_themes(),
210 'stream' => $this->core->get_option( 'shortcode_chat_stream' ),
211 ] );
212 }
213
214 function is_registered() {
215 return apply_filters( MWAI_PREFIX . '_meowapps_is_registered', false, MWAI_PREFIX );
216 }
217
218 function app_menu() {
219 add_submenu_page( 'meowapps-main-menu', 'AI Engine', 'AI Engine', 'manage_options',
220 'mwai_settings', array( $this, 'admin_settings' ) );
221 }
222
223 function admin_settings() {
224 echo '<div id="mwai-admin-settings"></div>';
225 }
226 }
227
228 ?>