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