-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathwp-angular.php
More file actions
69 lines (56 loc) · 2.44 KB
/
wp-angular.php
File metadata and controls
69 lines (56 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
/**
* @package WP_Angular
* @version 1.0
*/
/*
Plugin Name: WP Angular
Depends: json-rest-api/wp-api.js
Plugin URI: http://wp-angular.org/
Description: This plugin allows you to build your templates in a AngularJS way.
Author: Willem Veelenturf
Version: 0.1
Author URI: http://willemveelenturf.nl/
*/
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
add_action('init','wp_angular_init');
function wp_angular_init() {
if( is_plugin_active( 'json-rest-api/plugin.php' ) ) {
wp_enqueue_script( 'angular', plugins_url( '/lib/angular/angular.js', __FILE__ ));
wp_enqueue_script( 'angular-route', plugins_url( '/lib/angular/angular-route.js', __FILE__ ));
wp_enqueue_script( 'wp-angular-module', plugins_url( '/src/module.js', __FILE__ ));
wp_enqueue_script( 'wp-angular-directives-post', plugins_url( '/src/directives/wpPost.js', __FILE__ ));
wp_enqueue_script( 'wp-angular-directives-posts', plugins_url( '/src/directives/wpPosts.js', __FILE__ ));
wp_enqueue_script( 'wp-angular-directives-page', plugins_url( '/src/directives/wpPage.js', __FILE__ ));
wp_enqueue_script( 'wp-angular-directives-menu', plugins_url( '/src/directives/wpMenu.js', __FILE__ ));
wp_enqueue_script( 'wp-angular-directives-media', plugins_url( '/src/directives/wpMedia.js', __FILE__ ));
// Make blog info availible as constant in angular
wp_localize_script( 'wp-angular-module', 'bloginfo', load_bloginfo());
}else{
add_action( 'admin_notices', 'notice_api_not_active' );
}
}
// Load the blog info for javascript
function load_bloginfo(){
$array = array();
$array['baseUrl'] = get_bloginfo('url');
$array['templateUrl'] = get_bloginfo('template_url');
$array['pluginsUrl'] = plugins_url();
return $array;
}
// Extend Api
function myplugin_api_init() {
global $wp_json_menus;
require_once dirname( __FILE__ ) . '/api/class-wp-json-menus.php';
$wp_json_menus = new WP_JSON_Menus();
add_filter( 'json_endpoints', array( $wp_json_menus, 'register_routes' ) );
}
add_action( 'wp_json_server_before_serve', 'myplugin_api_init' );
function notice_api_not_active() {
$apiLink = "plugin-install.php?tab=search&s=+JSON+REST+API+&plugin-search-input=Search+Plugins";
?>
<div class="error">
<p><?php _e( 'WP-angular can only work when JSON REST API is installed and activated <a href="'.$apiLink.'">INSTALL</a>', 'my-text-domain' ); ?></p>
</div>
<?php
}