Skip to content

Commit

Permalink
more on integration framework
Browse files Browse the repository at this point in the history
  • Loading branch information
johnclause committed Jun 2, 2015
1 parent 7b9d097 commit 925fca2
Show file tree
Hide file tree
Showing 8 changed files with 267 additions and 196 deletions.
2 changes: 1 addition & 1 deletion admin/js/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -717,7 +717,7 @@ var qTranslateX=function(pg)
}

/**
* Parses page configuration, loaded in qtranxf_get_admin_page_config.
* Parses page configuration, loaded in qtranxf_get_admin_page_config_post_type.
* @since 3.1-b2
*/
var addPageHooks=function(page_config_forms)
Expand Down
133 changes: 89 additions & 44 deletions admin/qtx_admin.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ function qtranxf_collect_translations_posted() {

function qtranxf_admin_init()
{
global $q_config, $post, $post_type;
global $q_config, $post;
//qtranxf_dbg_log('qtranxf_admin_init: REQUEST_TIME_FLOAT: ', $_SERVER['REQUEST_TIME_FLOAT']);
qtranxf_admin_loadConfig();

Expand Down Expand Up @@ -94,10 +94,9 @@ function qtranxf_admin_init()
qtranxf_updateTermLibraryJoin();
}

$post_type = qtranxf_post_type();
$page_config = qtranxf_get_admin_page_config($post_type);
if(!empty($page_config)){
qtranxf_add_filters($page_config);
$page_configs = qtranxf_get_admin_page_config();
if(!empty($page_configs['']['filters'])){
qtranxf_add_filters($page_configs['']['filters']);
}

add_action('admin_notices', 'qtranxf_admin_notices_config');
Expand All @@ -108,9 +107,9 @@ function qtranxf_admin_init()
/**
* load field configurations for the current admin page
*/
function qtranxf_get_admin_page_config($post_type) {
static $page_config;
if($page_config) return $page_config;
function qtranxf_get_admin_page_config() {
static $page_configs;//cache
if($page_configs) return $page_configs;

global $q_config, $pagenow;
$admin_config = $q_config['admin_config'];
Expand All @@ -123,7 +122,82 @@ function qtranxf_get_admin_page_config($post_type) {
$admin_config = apply_filters('i18n_admin_config', $admin_config);
//qtranxf_dbg_log('qtranxf_get_admin_page_config: $admin_config: ',qtranxf_json_encode($admin_config));

$page_config = qtranxf_parse_page_config($admin_config, $pagenow, $url_query, $post_type);
$page_configs = qtranxf_parse_page_config($admin_config, $pagenow, $url_query);
//qtranxf_dbg_log('qtranxf_get_admin_page_config: $page_configs: ', $page_configs);
return $page_configs;
}

function qtranxf_get_admin_page_config_post_type($post_type) {
global $q_config, $pagenow;
static $page_config;//cache
if(!is_null($page_config)){
//qtranxf_dbg_log('qtranxf_get_admin_page_config_post_type: cached: '.$pagenow.'; post_type: ', $post_type);
return $page_config;
}
if( $q_config['editor_mode'] == QTX_EDITOR_MODE_RAW){
//qtranxf_dbg_log('qtranxf_get_admin_page_config_post_type: QTX_EDITOR_MODE_RAW: '.$pagenow.'; post_type: ', $post_type);
$page_config = array();
return $page_config;
}
if(!empty($q_config['post_type_excluded'])){
switch($pagenow){
case 'post.php':
case 'post-new.php':
if(in_array($post_type,$q_config['post_type_excluded'])){
//qtranxf_dbg_log('qtranxf_get_admin_page_config_post_type: post_type_excluded: pagenow: '.$pagenow.'; post_type: ', $post_type);
$page_config = array();
return $page_config;
}
default: break;
}
}
//qtranxf_dbg_log('qtranxf_get_admin_page_config_post_type: pagenow: '.$pagenow.'; post_type: ', $post_type);
$page_configs = qtranxf_get_admin_page_config();
//qtranxf_dbg_log('qtranxf_get_admin_page_config_post_type: $page_configs: ', $page_configs);
$page_config = isset($page_configs['']) ? $page_configs[''] : array();
if($post_type){
foreach($page_configs as $k => $cfg){
if(empty($k)) continue;
if(isset($cfg['post_type'])){
$cfg_post_type = $cfg['post_type'];
unset($cfg['post_type']);
}else{
$cfg_post_type = $k;
}
$matched = qtranxf_match_post_type($cfg_post_type, $post_type);
//qtranxf_dbg_log('qtranxf_get_admin_page_config_post_type: $cfg: ', $cfg);
//qtranxf_dbg_log('qtranxf_get_admin_page_config_post_type: $matched: ', $matched);
if($matched === false) continue;
if(is_null($matched)){
$page_config = array();
break;
}
$page_config = qtranxf_merge_config($page_config,$cfg);
}
}
//qtranxf_dbg_log('qtranxf_get_admin_page_config_post_type: $page_config: ', $page_config);

if(!empty($page_config)){
//clean up empty items
if(!empty($page_config['forms'])){
foreach($page_config['forms'] as $form_id => &$frm){
if(!isset($frm['fields'])) continue;
foreach($frm['fields'] as $k => $f){
if(isset($f['encode']) && $f['encode'] == 'none'){
//unset($page_config['forms'][$form_id]['fields'][$k]);
unset($frm['fields'][$k]);
}
}
foreach($frm as $k => $token){
if(empty($token)) unset($frm[$k]);
}
if(empty($frm)) unset($page_config['forms'][$form_id]);
}
}
foreach($page_config as $k => $cfg){
if(empty($cfg)) unset($page_config[$k]);
}
}

if(!empty($page_config)){
$page_config['js'] = array();
Expand Down Expand Up @@ -170,54 +244,25 @@ function qtranxf_get_admin_page_config($post_type) {
qtranxf_error_log(sprintf(__('Could not find script file "%s" for handle "%s".', 'qtranslate'), $src, $js['handle']));
}
}

}

/**
/*
* Customize the $page_config for this admin request.
* @param (array) $page_config 'admin_config', filtered for the current page.
* @param (string) $pagenow value of WordPress global variable $pagenow.
* @param (string) $url_query query part of URL without '?', sanitized version of $_SERVER['QUERY_STRING'].
* @param (string) $post_type type of post serving on the current page, or null if not applicable.
*/
$page_config = apply_filters('i18n_admin_page_config', $page_config, $pagenow, $url_query, $post_type);
//$page_config = apply_filters('i18n_admin_page_config', $page_config, $pagenow, $url_query, $post_type);
//qtranxf_dbg_log('qtranxf_get_admin_page_config: $pagenow='.$pagenow.'; $url_query='.$url_query.'; $post_type='.$post_type.'; $page_config: ',qtranxf_json_encode($page_config));
qtranxf_write_config_log($page_config, '', $pagenow, '', $post_type);
return $page_config;
}

function qtranxf_get_admin_page_config_LSB($post_type) {
global $q_config, $pagenow;
static $page_config_lsb = null;
if(!is_null($page_config_lsb)){
//qtranxf_dbg_log('qtranxf_get_admin_page_config_LSB: cached: '.$pagenow.'; post_type: ', $post_type);
return $page_config_lsb;
}
if( $q_config['editor_mode'] == QTX_EDITOR_MODE_RAW){
//qtranxf_dbg_log('qtranxf_get_admin_page_config_LSB: QTX_EDITOR_MODE_RAW: '.$pagenow.'; post_type: ', $post_type);
$page_config_lsb = array();
return $page_config_lsb;
}
if(!empty($q_config['post_type_excluded'])){
switch($pagenow){
case 'post.php':
case 'post-new.php':
if(in_array($post_type,$q_config['post_type_excluded'])){
//qtranxf_dbg_log('qtranxf_get_admin_page_config_LSB: post_type_excluded: pagenow: '.$pagenow.'; post_type: ', $post_type);
return;
}
default: break;
}
}
//qtranxf_dbg_log('qtranxf_get_admin_page_config_LSB: pagenow: '.$pagenow.'; post_type: ', $post_type);
$page_config_lsb = qtranxf_get_admin_page_config($post_type);
//qtranxf_dbg_log('qtranxf_get_admin_page_config_LSB: $page_config: ', $page_config_lsb);
return $page_config_lsb;
}

function qtranxf_add_admin_footer_js ( $enqueue_script=false ) {
global $q_config, $post_type;
if(!$post_type) $post_type = qtranxf_post_type();
$page_config = qtranxf_get_admin_page_config_LSB($post_type);
global $q_config;
$post_type = qtranxf_post_type();
$page_config = qtranxf_get_admin_page_config_post_type($post_type);
if(empty($page_config)) return;

wp_dequeue_script('autosave');
Expand Down
7 changes: 3 additions & 4 deletions admin/qtx_admin_utils.php
Original file line number Diff line number Diff line change
Expand Up @@ -808,11 +808,10 @@ function qtranxf_add_meta_box_LSB($post_type, $post)
default: return;
}
if(empty($post_type)) if(isset($post->post_type)) $post_type = $post->post_type; else return;
//qtranxf_dbg_log('qtranxf_add_meta_box_LSB: $post_type: ',$post_type);//, true);
$page_config = qtranxf_get_admin_page_config_LSB($post_type);
//qtranxf_dbg_log('qtranxf_add_meta_box_LSB: $post_type: ', $post_type);//, true);
$page_config = qtranxf_get_admin_page_config_post_type($post_type);
if(empty($page_config)) return;
//add_meta_box( 'qtranxs-lsb', 'LSB', 'qtranxf_meta_box_LSB', $post_type, 'normal', 'high');
add_meta_box( 'qtranxs-meta-box-lsb', qtranxf_translate_wp('Language'), 'qtranxf_meta_box_LSB', null, 'normal', 'low');
add_meta_box( 'qtranxs-meta-box-lsb', qtranxf_translate_wp('Language'), 'qtranxf_meta_box_LSB', $post_type, 'normal', 'low');
}
add_action( 'add_meta_boxes', 'qtranxf_add_meta_box_LSB', 10, 2 );

Expand Down
4 changes: 2 additions & 2 deletions qtranslate.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Plugin Name: qTranslate-X
Plugin URI: http://wordpress.org/plugins/qtranslate-x/
Description: Adds user-friendly and database-friendly multilingual content support.
Version: 3.3.6
Version: 3.3.7
Author: qTranslate Team
Author URI: http://qtranslatexteam.wordpress.com/about
Tags: multilingual, multi, language, admin, tinymce, Polyglot, bilingual, widget, switcher, professional, human, translation, service, qTranslate, zTranslate, mqTranslate, qTranslate Plus, WPML
Expand Down Expand Up @@ -116,7 +116,7 @@
* Designed as interface for other plugin integration. The documentation is available at
* https://qtranslatexteam.wordpress.com/integration/
*/
define('QTX_VERSION','3.3.6');
define('QTX_VERSION','3.3.7');

if ( ! defined( 'QTRANSLATE_FILE' ) ) {
define( 'QTRANSLATE_FILE', __FILE__ );
Expand Down
22 changes: 11 additions & 11 deletions qtranslate_frontend.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

add_filter('wp_translator', 'QTX_Translator::get_translator');

function qtranxf_get_front_page_config($post_type) {
static $page_config;
if($page_config) return $page_config;
function qtranxf_get_front_page_config() {
static $page_configs;//cache
if($page_configs) return $page_configs;

global $q_config;
$url_path = $q_config['url_info']['wp-path'];
Expand All @@ -22,17 +22,18 @@ function qtranxf_get_front_page_config($post_type) {
$front_config = apply_filters('i18n_front_config', $front_config);
//qtranxf_dbg_log('qtranxf_get_front_page_config: $front_config: ', json_encode($front_config,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES));

$page_config = qtranxf_parse_page_config($front_config, $url_path, $url_query, $post_type);
/**
$page_configs = qtranxf_parse_page_config($front_config, $url_path, $url_query);
/*
* Customize the $page_config for this front request.
* @param (array) $page_config 'front_config', filtered for the current page.
* @param (string) $url_path URL path without 'Site Address (URL)'.
* @param (string) $url_query query part of URL without '?', sanitized version of $_SERVER['QUERY_STRING'].
* @param (string) $post_type type of post serving on the current page, or null if not applicable.
*/
$page_config = apply_filters('i18n_front_page_config', $page_config, $url_path, $url_query, $post_type);
//$page_config = apply_filters('i18n_front_page_config', $page_config, $url_path, $url_query, $post_type);
//qtranxf_dbg_log('qtranxf_get_front_page_config: $url_path='.$url_path.'; $url_query='.$url_query.'; $post_type='.$post_type.'; $page_config: ', json_encode($page_config,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES));
return $page_config;
//if(isset($q_config['i18n-log-dir'])) qtranxf_write_config_log($page_configs[''], '', $url_path, $url_query);
return $page_configs;
}

/**
Expand All @@ -51,10 +52,9 @@ function qtranxf_front_init(){
add_filter($nm, 'qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage');
}

$post_type = qtranxf_post_type();
$page_config = qtranxf_get_front_page_config($post_type);
if(!empty($page_config)){
qtranxf_add_filters($page_config);
$page_configs = qtranxf_get_front_page_config();
if(!empty($page_configs['']['filters'])){
qtranxf_add_filters($page_configs['']['filters']);
}
}
add_action('init','qtranxf_front_init');
Expand Down
9 changes: 8 additions & 1 deletion qtranslate_hooks.php
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,20 @@ function qtranxf_fixSearchForm($form) {
}
add_filter('get_search_form', 'qtranxf_fixSearchForm', 10, 1);
*/
/* // action 'wp' does not seem to fire
/* // action 'wp' fires at front-end only
function qtranxf_on_wp()
{
//qtranxf_dbg_log('qtranxf_on_wp:');
}
add_action( 'wp', 'qtranxf_on_wp');
*/
/*
function qtranxf_on_posts_selection($selection)
{
//qtranxf_dbg_log('qtranxf_on_posts_selection:', $selection);
}
add_action( 'posts_selection', 'qtranxf_on_posts_selection');
*/

// Hooks for Plugin compatibility
/* //no need any more since $_SERVER['REQUEST_URI'] is no longer modified.
Expand Down
Loading

0 comments on commit 925fca2

Please sign in to comment.