PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 3.0.0
AI Engine – The Chatbot, AI Framework & MCP for WordPress v3.0.0
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
data 1 year ago engines 10 months ago exceptions 1 year ago modules 10 months ago query 10 months ago rest 11 months ago services 10 months ago admin.php 1 year ago api.php 11 months ago core.php 10 months ago discussion.php 1 year ago event.php 1 year ago init.php 1 year ago logging.php 1 year ago reply.php 11 months ago rest.php 11 months ago
admin.php
249 lines
1 <?php
2
3 class Meow_MWAI_Admin extends MeowCommon_Admin {
4 public $core;
5 public $contentGeneratorEnabled;
6 public $imagesGeneratorEnabled;
7 public $playgroundEnabled;
8 public $suggestionsEnabled;
9
10 public function __construct( $core ) {
11 $this->core = $core;
12 parent::__construct( MWAI_PREFIX, MWAI_ENTRY, MWAI_DOMAIN, class_exists( 'MeowPro_MWAI_Core' ) );
13 if ( is_admin() ) {
14 $this->contentGeneratorEnabled = $this->core->get_option( 'module_generator_content' );
15 $this->imagesGeneratorEnabled = $this->core->get_option( 'module_generator_images' );
16 $this->playgroundEnabled = $this->core->get_option( 'module_playground' );
17 $can_access_settings = $this->core->can_access_settings();
18 $can_access_features = $this->core->can_access_features();
19
20 if ( $can_access_settings || $can_access_features ) {
21 add_action( 'admin_enqueue_scripts', [ $this, 'admin_enqueue_scripts' ] );
22 }
23
24 if ( $can_access_settings ) {
25 add_action( 'admin_menu', [ $this, 'app_menu' ] );
26 }
27
28 if ( $can_access_features ) {
29 add_action( 'admin_menu', [ $this, 'admin_menu' ] );
30
31 // Only if the Suggestions are enabled.
32 $this->suggestionsEnabled = $this->core->get_option( 'module_suggestions' );
33 if ( $this->suggestionsEnabled ) {
34 add_filter( 'post_row_actions', [ $this, 'post_row_actions' ], 10, 2 );
35 add_filter( 'page_row_actions', [ $this, 'post_row_actions' ], 10, 2 );
36 }
37
38 if ( $this->imagesGeneratorEnabled ) {
39 add_filter( 'media_row_actions', [ $this, 'media_row_actions' ], 10, 2 );
40 }
41
42 add_action( 'admin_footer', [ $this, 'admin_footer' ] );
43 }
44 }
45 }
46
47 public function admin_menu() {
48
49 // Generate New (under Posts)
50 if ( $this->contentGeneratorEnabled ) {
51 add_submenu_page(
52 'edit.php',
53 'Generate New',
54 'Generate New',
55 'read',
56 'mwai_content_generator',
57 [ $this, 'ai_content_generator' ],
58 2
59 );
60 }
61
62 // In Tools
63 if ( $this->playgroundEnabled ) {
64 add_management_page(
65 'Playground',
66 __( 'Playground', 'ai-engine' ),
67 'read',
68 'mwai_dashboard',
69 [ $this, 'ai_playground' ]
70 );
71 }
72 if ( $this->contentGeneratorEnabled ) {
73 add_management_page(
74 'Generate Content',
75 'Generate Content',
76 'read',
77 'mwai_content_generator',
78 [ $this, 'ai_content_generator' ]
79 );
80 }
81 if ( $this->imagesGeneratorEnabled ) {
82 add_management_page(
83 'Generate Images',
84 'Generate Images',
85 'read',
86 'mwai_images_generator',
87 [ $this, 'ai_image_generator' ]
88 );
89 }
90
91 // In the Admin Bar:
92 add_action( 'admin_bar_menu', [ $this, 'admin_bar_menu' ], 100 );
93 }
94
95 public function admin_bar_menu( $wp_admin_bar ) {
96
97 $admin_bar = $this->core->get_option( 'admin_bar' );
98 $settings = isset( $admin_bar['settings'] ) && $admin_bar['settings'];
99 $playground = isset( $admin_bar['playground'] ) && $admin_bar['playground'];
100 $content_generator = isset( $admin_bar['content_generator'] ) && $admin_bar['content_generator'];
101 $images_generator = isset( $admin_bar['images_generator'] ) && $admin_bar['images_generator'];
102
103 if ( $settings ) {
104 $wp_admin_bar->add_node( [
105 'id' => 'mwai-settings',
106 'title' => '<span class="ab-icon dashicons-before dashicons-admin-settings" style="top: 2px;"></span>' . __( 'AI Engine', 'ai-engine' ),
107 'href' => admin_url( 'admin.php?page=mwai_settings' ),
108 'meta' => [ 'class' => 'mwai-settings' ],
109 ] );
110 }
111
112 if ( $content_generator ) {
113 $wp_admin_bar->add_node( [
114 'id' => 'mwai-content-generator',
115 'title' => MWAI_IMG_WAND_HTML . __( 'Content', 'ai-engine' ),
116 'href' => admin_url( 'tools.php?page=mwai_content_generator' ),
117 'meta' => [ 'class' => 'mwai-content-generator' ],
118 ] );
119 }
120 if ( $images_generator ) {
121 $wp_admin_bar->add_node( [
122 'id' => 'mwai-image-generator',
123 'title' => MWAI_IMG_WAND_HTML . __( 'Images', 'ai-engine' ),
124 'href' => admin_url( 'tools.php?page=mwai_images_generator' ),
125 'meta' => [ 'class' => 'mwai-images-generator' ],
126 ] );
127 }
128
129 // The Global Magic Wand
130 // if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
131 // $wp_admin_bar->add_node( array(
132 // 'id' => 'mwai-debug',
133 // 'title' => MWAI_IMG_WAND_HTML . __( 'Magic Wand', 'ai-engine' ),
134 // //'href' => admin_url( 'tools.php?page=mwai_debug' ),
135 // 'meta' => array( 'class' => 'mwai-debug' ),
136 // ) );
137 // }
138
139 if ( $playground ) {
140 $wp_admin_bar->add_node( [
141 'id' => 'mwai-playground',
142 'title' => MWAI_IMG_WAND_HTML . __( 'Playground', 'ai-engine' ),
143 'href' => admin_url( 'tools.php?page=mwai_dashboard' ),
144 'meta' => [ 'class' => 'mwai-playground' ],
145 ] );
146 }
147 }
148
149 public function ai_playground() {
150 echo '<div id="mwai-playground"></div>';
151 }
152
153 public function ai_content_generator() {
154 echo '<div id="mwai-content-generator"></div>';
155 }
156
157 public function ai_image_generator() {
158 echo '<div id="mwai-image-generator"></div>';
159 }
160
161 public function post_row_actions( $actions, $post ) {
162 $actions['ai_titles'] = '<a class="mwai-link-title" href="#" data-id="' .
163 $post->ID . '" data-title="' . $post->post_title . '">
164 ' . MWAI_IMG_WAND_HTML_XS . ' Title</a>';
165 $actions['ai_excerpts'] = '<a class="mwai-link-excerpt" href="#" data-id="' .
166 $post->ID . '" data-title="' . $post->post_title . '">
167 ' . MWAI_IMG_WAND_HTML_XS . ' Excerpt</a>';
168 return $actions;
169 }
170
171 public function media_row_actions( $actions, $post ) {
172 if ( strpos( $post->post_mime_type, 'image/' ) === 0 ) {
173 $url = admin_url( 'tools.php?page=mwai_images_generator&editId=' . $post->ID );
174 $actions['mwai_remix'] = '<a href="' . $url . '">' . MWAI_IMG_WAND_HTML_XS . ' ' . __( 'Edit', 'ai-engine' ) . '</a>';
175 }
176 return $actions;
177 }
178
179 public function admin_footer() {
180 echo '<div id="mwai-admin-postsList"></div>';
181 }
182
183 public function admin_enqueue_scripts() {
184 $physical_file = MWAI_PATH . '/app/index.js';
185 $cache_buster = file_exists( $physical_file ) ? filemtime( $physical_file ) : MWAI_VERSION;
186 wp_register_script( 'mwai-vendor', MWAI_URL . 'app/vendor.js', null, $cache_buster );
187 wp_register_script( 'mwai', MWAI_URL . 'app/index.js', [ 'mwai-vendor',
188 'wp-element', 'wp-components', 'wp-edit-post', 'wp-plugins', 'wp-i18n'
189 ], $cache_buster );
190 wp_enqueue_script( 'mwai' );
191
192 // The MD5 of the translation file built by WP uses app/i18n.js instead of app/index.js
193 add_filter( 'load_script_translation_file', function ( $file, $handle, $domain ) {
194 if ( $domain !== 'ai-engine' ) {
195 return $file;
196 }
197 $file = str_replace( md5( 'app/index.js' ), md5( 'app/i18n.js' ), $file );
198 return $file;
199 }, 10, 3 );
200
201 // This is useless for AI Engine, but it avoids issues when themes and plugin calls
202 // wp_enqueue_media too late (usually, they call it in the footer). Until someone
203 // figures out what the issue is, let's load it here.
204 wp_enqueue_media();
205
206 wp_set_script_translations( 'mwai', 'ai-engine' );
207
208 // Prepare localization data
209 $localize_data = [
210 'api_url' => get_rest_url( null, 'mwai/v1' ),
211 'rest_url' => get_rest_url(),
212 'plugin_url' => MWAI_URL,
213 'user_data' => $this->core->get_user_data(),
214 'prefix' => MWAI_PREFIX,
215 'domain' => MWAI_DOMAIN,
216 'is_pro' => class_exists( 'MeowPro_MWAI_Core' ),
217 'is_registered' => !!$this->is_registered(),
218 'rest_nonce' => wp_create_nonce( 'wp_rest' ),
219 'session' => $this->core->get_session_id(),
220 'options' => $this->core->get_all_options(),
221 'chatbots' => $this->core->get_chatbots(),
222 'themes' => $this->core->get_themes(),
223 'stream' => $this->core->get_option( 'ai_streaming' ),
224 ];
225
226
227 wp_localize_script( 'mwai', 'mwai', $localize_data );
228 }
229
230 public function is_registered() {
231 return apply_filters( MWAI_PREFIX . '_meowapps_is_registered', false, MWAI_PREFIX );
232 }
233
234 public function app_menu() {
235 add_submenu_page(
236 'meowapps-main-menu',
237 'AI Engine',
238 'AI Engine',
239 'manage_options',
240 'mwai_settings',
241 [ $this, 'admin_settings' ]
242 );
243 }
244
245 public function admin_settings() {
246 echo '<div id="mwai-admin-settings"></div>';
247 }
248 }
249