304 lines
12 KiB
PHP
304 lines
12 KiB
PHP
<script type="text/javascript">
|
|
jQuery(document).ready(function(){
|
|
jQuery('.icl-quote-get-next').click(function(){
|
|
jQuery(this).parent().parent().fadeOut('fast', function(){
|
|
jQuery(this).next('div').fadeIn();
|
|
});
|
|
});
|
|
jQuery('.icl-quote-get-back').click(function(){
|
|
jQuery(this).parent().parent().fadeOut('fast', function(){
|
|
jQuery(this).prev('div').fadeIn();
|
|
});
|
|
});
|
|
iclQuoteGetCheckContentCb();
|
|
jQuery('#icl-quote-get-form').ajaxForm({target:'#icl-quote-get-wrap'});
|
|
});
|
|
function iclQuoteGetSetSelectLangs() {
|
|
if (jQuery('#icl-quote-get-from').val() == 0) {
|
|
jQuery('.icl-quote-get-toggle-to').fadeOut();
|
|
jQuery('.icl-quote-get-to').removeAttr('checked');
|
|
iclQuoteGetCheckFromTo();
|
|
return false;
|
|
}
|
|
jQuery('.icl-quote-get-toggle-to').fadeIn();
|
|
jQuery('#icl-quote-get-to-'+jQuery('#icl-quote-get-from').val()).removeAttr('checked').parent().hide(0,
|
|
function(){
|
|
iclQuoteGetCheckFromTo();
|
|
}
|
|
);
|
|
jQuery('.icl-quote-get-to').not('#icl-quote-get-to-'+jQuery('#icl-quote-get-from').val()).parent().show();
|
|
}
|
|
function iclQuoteGetCheckFromTo() {
|
|
var enable = false;
|
|
jQuery('.icl-quote-get-to').each(function(){
|
|
if (jQuery(this).is(':checked')) {
|
|
enable = true;
|
|
}
|
|
});
|
|
if (jQuery('#icl-quote-get-from').val() == 0) {
|
|
enable = false;
|
|
}
|
|
if (enable) {
|
|
jQuery('#icl-quote-next-1').removeAttr('disabled');
|
|
} else {
|
|
jQuery('#icl-quote-next-1').attr('disabled', 'disabled');
|
|
}
|
|
}
|
|
function iclQuoteGetCheckContentCb() {
|
|
var enable = false;
|
|
jQuery('.icl-quote-get-content-checbox').each(function(){
|
|
if (jQuery(this).is(':checked')) {
|
|
enable = true;
|
|
}
|
|
});
|
|
if (enable) {
|
|
jQuery('#icl-quote-next-2').removeAttr('disabled');
|
|
} else {
|
|
jQuery('#icl-quote-next-2').attr('disabled', 'disabled');
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<?php
|
|
|
|
/**
|
|
* Step one (select languages)
|
|
*
|
|
* @global object $sitepress
|
|
* @global array $sitepress_settings
|
|
* @param array $saved
|
|
*/
|
|
function icl_quote_get_step_one($saved) {
|
|
global $sitepress, $sitepress_settings;
|
|
$active_languages = $sitepress->get_active_languages();
|
|
|
|
?>
|
|
<input type="hidden" name="step" value="1" />
|
|
<h1><?php _e('Translation Languages', 'sitepress'); ?></h1>
|
|
<p>
|
|
<label><?php _e('I need translation from', 'sitepress'); ?>
|
|
<select id="icl-quote-get-from" name="from" onchange="iclQuoteGetSetSelectLangs();">
|
|
<option value="0"><?php _e('Select Language', 'sitepress'); ?> </option>
|
|
<?php
|
|
foreach ($active_languages as $code => $lang) {
|
|
$selected = '';
|
|
|
|
?>
|
|
<option value="<?php echo $code; ?>"<?php echo $selected; ?>><?php echo $lang['display_name']; ?></option>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
</select>
|
|
</label>
|
|
<br />
|
|
<?php _e('to these languages:', 'sitepress'); ?>
|
|
<?php
|
|
foreach ($active_languages as $code => $lang) {
|
|
$selected = @is_array($saved['to']) && @in_array($code, $saved['to']) ? ' checked="checked"' : '';
|
|
|
|
?>
|
|
<div class="icl-quote-get-toggle-to" style="display:none;">
|
|
<label><input type="checkbox" name="to[<?php echo $code; ?>]" onclick="iclQuoteGetCheckFromTo();" value="<?php echo $code; ?>" class="icl-quote-get-to" id="icl-quote-get-to-<?php echo $code; ?>"<?php echo $selected; ?> /> <?php echo $lang['display_name']; ?><br /></label>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
</p>
|
|
<p>
|
|
<input type="submit" id="icl-quote-next-1" value="<?php _e('Continue', 'sitepress'); ?>" name="next" disabled="disabled" class="button-secondary icl-quote-get-next" />
|
|
</p>
|
|
<?php
|
|
}
|
|
/**
|
|
* Step two (select contents)
|
|
*
|
|
* @global object $sitepress
|
|
* @global <type> $iclTranslationManagement
|
|
* @global <type> $wpdb
|
|
* @param <type> $saved
|
|
*/
|
|
function icl_quote_get_step_two($saved) {
|
|
global $sitepress, $iclTranslationManagement, $wpdb;
|
|
$iclTranslationManagement->init();
|
|
$cf_settings = $iclTranslationManagement->settings['custom_fields_translation'];
|
|
$rows = array();
|
|
$add = 0;
|
|
$types = get_post_types('', 'objects');
|
|
foreach ($types as $name => $type) {
|
|
if (in_array($name, array('attachment', 'revision', 'nav_menu_item'))) {
|
|
continue;
|
|
}
|
|
$source_code = $saved['from'] == $sitepress->get_default_language() ? 'IS NULL' : "= '" . $saved['from'] . "'";
|
|
$posts = $wpdb->get_results("SELECT p.ID, p.post_title, p.post_content
|
|
FROM {$wpdb->prefix}posts p
|
|
JOIN {$wpdb->prefix}icl_translations t
|
|
WHERE p.post_type = '" . $name . "'
|
|
AND t.element_type = 'post_" . $name . "'
|
|
AND t.element_id = p.ID
|
|
AND t.language_code = '" . $saved['from'] . "'
|
|
AND p.post_status = 'publish'
|
|
");
|
|
$rows[$name]['ID'] = $name;
|
|
$rows[$name]['title'] = $type->label;
|
|
if (empty($posts)) {
|
|
$rows[$name]['words'] = 0;
|
|
$rows[$name]['num'] = 0;
|
|
continue;
|
|
}
|
|
$rows[$name]['words'] = 0;
|
|
foreach ($posts as $post) {
|
|
$meta_count = 0;
|
|
if (!empty($cf_settings)) {
|
|
foreach ($cf_settings as $meta_key => $translate) {
|
|
if ($translate == 2) {
|
|
$meta = get_post_meta($post->ID, $meta_key, true);
|
|
if (is_string($meta)) {
|
|
$meta_count += str_word_count(strip_tags(
|
|
$meta));
|
|
}
|
|
} else {
|
|
unset($cf_settings[$meta_key]);
|
|
}
|
|
}
|
|
}
|
|
$add = $meta_count + str_word_count(strip_tags($post->post_title)) + str_word_count(strip_tags($post->post_content));
|
|
$rows[$name]['words'] += $add;
|
|
}
|
|
$rows[$name]['num'] = count($posts);
|
|
}
|
|
|
|
?>
|
|
<h1><?php _e('Content Types', 'sitepress'); ?></h1>
|
|
<p>
|
|
<?php printf(__('Your site includes different kinds of content items. Choose which types to include in the quote. <br /><br />To get the word count of specific documents, use the %sTranslation Dashboard%s.',
|
|
'sitepress'), '<a href="admin.php?page=' . WPML_TM_FOLDER . '/menu/main.php">', '</a>'); ?>
|
|
</p>
|
|
<input type="hidden" name="step" value="2" />
|
|
<table border="0" cellpadding="5" cellspacing="15" class="widefat" style="margin-top: 15px;">
|
|
<thead>
|
|
<tr>
|
|
<th></th>
|
|
<th><?php _e('Type', 'sitepress'); ?></th>
|
|
<th><?php _e('Number of items', 'sitepress'); ?></th>
|
|
<th><?php _e('Number of words', 'sitepress'); ?></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php
|
|
foreach ($rows as $type => $data) {
|
|
$selected = @is_array($saved['content']) && @array_key_exists($data['ID'], $saved['content']) ? ' checked="checked"' : '';
|
|
|
|
?>
|
|
<tr>
|
|
<td>
|
|
<input type="checkbox" name="content[<?php echo $data['ID']; ?>]" value="1" class="icl-quote-get-content-checbox" onclick="iclQuoteGetCheckContentCb();"<?php echo $selected; ?> />
|
|
<input type="hidden" name="description[<?php echo $data['ID']; ?>][title]" value="<?php echo $data['title']; ?>" />
|
|
<input type="hidden" name="description[<?php echo $data['ID']; ?>][num]" value="<?php echo $data['num']; ?>" />
|
|
<input type="hidden" name="description[<?php echo $data['ID']; ?>][words]" value="<?php echo $data['words']; ?>" />
|
|
</td>
|
|
<td><?php echo $data['title']; ?></td>
|
|
<td><?php echo $data['num']; ?></td>
|
|
<td><?php echo $data['words']; ?></td>
|
|
</tr>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
</tbody>
|
|
</table>
|
|
<p>
|
|
<input type="submit" id="icl-quote-back-1" value="<?php _e('Back', 'sitepress'); ?>" name="back" class="button-secondary icl-quote-get-back" />
|
|
<input type="submit" id="icl-quote-next-2" value="<?php _e('Continue', 'sitepress'); ?>" name="next" disabled="disabled" class="button-secondary icl-quote-get-next" />
|
|
</p>
|
|
<?php
|
|
}
|
|
|
|
/**
|
|
* Step three (create or save)
|
|
*
|
|
* @param array $saved
|
|
*/
|
|
function icl_quote_get_step_three($saved) {
|
|
if ($saved['content']) {
|
|
$wc_description = array();
|
|
foreach ($saved['content'] as $ID => $true) {
|
|
$wc_description[] = $saved['description'][$ID]['num'] . ' '
|
|
. $saved['description'][$ID]['title'] . ' with '
|
|
. $saved['description'][$ID]['words'] . ' words';
|
|
}
|
|
|
|
?>
|
|
<h1><?php _e('Summary', 'sitepress'); ?></h1>
|
|
<?php _e('You have selected the following content:', 'sitepress'); ?>
|
|
<br /><br />
|
|
<ul style="list-style: square; margin-left: 15px;">
|
|
<li><?php echo implode('</li><li>', $wc_description); ?></li>
|
|
</ul>
|
|
<input type="hidden" name="step" value="3" />
|
|
<p>
|
|
<input type="submit" id="icl-quote-back-2" value="<?php _e('Back', 'sitepress'); ?>" name="back" class="button-secondary icl-quote-get-back" />
|
|
<input type="submit" value="<?php _e('Produce Quote', 'sitepress'); ?>" name="submit-produce" id="icl-quote-get-submit-produce" class="button-primary" />
|
|
<input type="submit" value="<?php _e('Save for later', 'sitepress'); ?>" name="submit-for-later" id="icl-quote-get-submit-for-later" class="button-secondary" />
|
|
</p>
|
|
<?php
|
|
}
|
|
}
|
|
|
|
?>
|
|
|
|
<div id="icl-quote-get-wrap" style="margin: 25px 0 0 0">
|
|
<form id="icl-quote-get-form" action="" method="post">
|
|
<input type="hidden" name="icl_ajx_action" value="quote-get-submit" />
|
|
<?php wp_nonce_field('quote-get-submit_nonce', '_icl_nonce'); ?>
|
|
<?php
|
|
global $sitepress, $sitepress_settings;
|
|
$continue = FALSE;
|
|
$saved = array();
|
|
|
|
if (isset($sitepress_settings['quote-get'])) {
|
|
if ($sitepress_settings['quote-get']['step'] == 3) {
|
|
$continue = TRUE;
|
|
}
|
|
$saved = $sitepress_settings['quote-get'];
|
|
}
|
|
|
|
if (isset($data['back'])) {
|
|
$data['step'] -= 1;
|
|
} else if (isset($data['next'])) {
|
|
$data['step'] += 1;
|
|
}
|
|
|
|
if ($continue && (!isset($data['next']) && !isset($data['back']))) {
|
|
icl_quote_get_step_three($saved);
|
|
} else if (!isset($data['step']) || $data['step'] == 1) {
|
|
if (isset($data['back'])) {
|
|
$saved['content'] = empty($data['content'])?'':$data['content'];
|
|
$saved['description'] = $data['description'];
|
|
}
|
|
$saved['step'] = 1;
|
|
$sitepress->save_settings(array('quote-get' => $saved));
|
|
icl_quote_get_step_one($saved);
|
|
} else if ($data['step'] == 2) {
|
|
if (isset($data['next'])) {
|
|
$saved['from'] = $data['from'];
|
|
$saved['to'] = $data['to'];
|
|
}
|
|
$saved['step'] = 2;
|
|
$sitepress->save_settings(array('quote-get' => $saved));
|
|
icl_quote_get_step_two($saved);
|
|
} else if ($data['step'] == 3) {
|
|
if (isset($data['next'])) {
|
|
$saved['content'] = $data['content'];
|
|
$saved['description'] = $data['description'];
|
|
}
|
|
$saved['step'] = 3;
|
|
$sitepress->save_settings(array('quote-get' => $saved));
|
|
icl_quote_get_step_three($saved);
|
|
}
|
|
|
|
?>
|
|
</form>
|
|
</div>
|