Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //gettext files
- // languages/my-plugin-fr_FR.pot
- // languages/my-plugin-fr_FR.mo
- //Javascript files
- // js/main.js
- (function($){
- function getResources() {
- $.ajax({
- type: "POST",
- url: ajax_object.ajaxurl,
- dataType: "json",
- data: {
- action: 'get_resources'
- }
- })
- .done(function(data) {
- if (typeof data == "object" && data.hasOwnProperty("html")) {
- $(".my-selector").empty().html(data.html);
- } else {
- alert("error on server");
- }
- })
- .fail(function() {
- alert("error on server");
- });
- }
- $(document).ready(function() {
- getResources();
- });
- })(jQuery);
- // end js/main.js
- <?php
- //MyPlugin class
- class MyPlugin {
- /// This value will be used as a unique identifier for translations
- public static $theme_domain_name = 'my-plugin';
- public function init() {
- if (!is_admin()) {
- //any scripts and styles needed for the plugin to work in the front end
- add_action( 'wp_enqueue_scripts', array($this,'add_scripts_styles') );
- }
- add_action('wp_ajax_get_resources', array($this,'ajax_get_resources'));
- add_action('wp_ajax_nopriv_get_resources', array($this,'ajax_get_resources'));
- }
- public function ajax_get_resources() {
- $html = "";
- //just an example of returning post objects
- $posts = get_posts();
- $html .= $this->get_resources_html($posts);
- echo json_encode(array('html'=>$html));
- die();
- }
- public function add_scripts_styles() {
- wp_register_script('main-js', plugin_dir_url(__FILE__) . 'js/main.js', array('jquery'), '20131023' );
- wp_enqueue_script('main-js' );
- wp_localize_script('main-js', 'ajax_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
- }
- public function get_resources_html($resources) {
- $load_more_text = __('Load more',MyPlugin::$theme_domain_name);
- //$html .= < do some other work on the resource posts provided >
- $html .= <<<LOAD
- <a href="#">
- <span class="text-wrapper"><span class="text">
- {$load_more_text}
- </span></span>
- </a>
- LOAD;
- return $html;
- }
- }
- ?>
- <?php
- //root plugin file my-plugin.php
- require_once dirname( __FILE__ ) .'/MyPlugin.php';
- $MyPlugin = new MyPlugin();
- add_action("plugins_loaded",function() {
- load_plugin_textdomain(MyPlugin::$theme_domain_name , false, dirname( plugin_basename(__FILE__) ) . '/languages/');
- });
- $MyPlugin->init();
- ?>
- /* if qTranslate is installed */
- /* set front locale for ajax calls requested from front-end */
- function set_locale_for_frontend_ajax_calls() {
- if ( is_admin() && defined( 'DOING_AJAX' ) && DOING_AJAX
- && substr( $_SERVER['HTTP_REFERER'], 0, strlen( admin_url() ) ) != admin_url() ) {
- load_theme_textdomain( 'your-theme-domain-name', get_template_directory() . '/languages’ );
- }
- }
- add_action( 'admin_init', 'set_locale_for_frontend_ajax_calls' );
- add_action('wp_head','jsURLs');
- function jsURLs(){
- global $q_config;
- ?><script type="text/javascript">
- /* <![CDATA[ */
- var ajaxurl = "<?php echo admin_url('admin-ajax.php?lang='.$q_config['language']); ?>";
- /* ]]> */
- </script><?php
- }
- /* if qTranslate is not installed */
- /* set front locale for ajax calls requested from front-end */
- function set_locale_for_frontend_ajax_calls() {
- if ( is_admin() && defined( 'DOING_AJAX' ) && DOING_AJAX
- && substr( $_SERVER['HTTP_REFERER'], 0, strlen( admin_url() ) ) != admin_url() ) {
- setlocale(LC_ALL, $_GET['lang']);
- load_theme_textdomain( 'your-theme-domain-name', get_template_directory() . '/languages’ );
- }
- }
- add_action( 'admin_init', 'set_locale_for_frontend_ajax_calls' );
- add_action('wp_head','jsURLs');
- function jsURLs(){
- global $q_config;
- ?><script type="text/javascript">
- /* <![CDATA[ */
- var ajaxurl = "<?php echo admin_url('admin-ajax.php?lang='.get_locale()); ?>";
- /* ]]> */
- </script><?php
- }
- <?php
- global $sitepress;
- $current_language = $sitepress->get_current_language(); // get current language
- ?>
- (function($){
- function getResources() {
- $.ajax({
- type: "POST",
- url: ajax_object.ajaxurl,
- dataType: "json",
- data: {
- action: 'get_resources',
- lang: <?php echo $current_language; ?>
- }
- })
- [...]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement