Your IP : 216.73.217.53


Current Path : /home/bonneesp/www/administrator/components/com_tabulizer/views/datasources/tmpl/
Upload File :
Current File : /home/bonneesp/www/administrator/components/com_tabulizer/views/datasources/tmpl/form.php

<?php
/**
 * @version		6.5.0 tabulizer $
 * @package		tabulizer
 * @copyright	Copyright © 2011 - All rights reserved.
 * @license		GNU/GPL
 * @author		Dimitrios Mourloukos
 * @author mail	info@alterora.gr
 * @website		www.tabulizer.com
 * 
 */


// no direct access
defined('_JEXEC') or die('Restricted access');

$jinput = JFactory::getApplication()->input;
$option = $jinput->getCmd('option');

JHTML::_('behavior.tooltip');
JHTML::_('behavior.modal'); // for article selection popup

$return_url = $this->return_urls['data_sources'];
$archive_to_rulesets = $this->archive_to_rulesets;

$edit = $this->lists['edit'];
$text = !$edit ? JText::_('COM_TABULIZER_NEW' ) : JText::_('COM_TABULIZER_EDIT' );
JToolBarHelper::title(   JText::_('COM_TABULIZER_DATA_SOURCE' ).': <small><small>[ ' . $text.' ]</small></small>','config' );
JToolBarHelper::save();
JToolBarHelper::custom( 'saveNew', 'save-new', 'save-new', JText::_('COM_TABULIZER_SAVE_AND_NEW'), false, false );
JToolBarHelper::custom( 'saveCopy', 'save-copy', 'save-copy', JText::_('COM_TABULIZER_SAVE_AS_COPY'), false, false );

if (!$edit)  {
	JToolBarHelper::cancel();
} else {
	// for existing items the button is renamed `close`
	JToolBarHelper::cancel( 'cancel', JText::_('COM_TABULIZER_CLOSE') );
}
JToolBarHelper::help( 'all_topics', true );

TabulizerUtils::opentipInit();

?>

<script language="javascript" type="text/javascript">		

	function validateAndSubmit() {
		var form = document.adminForm;	
		var value, f_value, regex, valid = true, error_msg = "";
								
		regex = /^[a-zA-Z0-9\._\-]{2,128}\<?php echo XML_FILE_EXT;?>$/i;
		value = form.ds_ruleset_archive.value;
		if (!regex.test(value)) {
			error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_RULESET_ARCHIVE_FILENAME');?>";
			valid = false;		
		}
		
		regex = /^[a-zA-Z0-9\._\-]{2,128}$/;
		value = form.ds_ruleset_name.value;
		if (!regex.test(value)) {
			error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_RULESET_NAME');?>";
			valid = false;		
		}
		
		regex = /^.{2,255}$/;
		value = form.ds_title.value;
		if (!regex.test(value)) {
			error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_TITLE');?>";
			valid = false;		
		}

        var regex_user_param_text = /({user_param_\d_url:text})|({user_param_\d:text})/gmi;

		var source_type = form.ds_source_type.value;

		if ((source_type == 'csv')||(source_type == 'excel')||(source_type == 'html')||(source_type == 'rss')||(source_type == 'json')) {
			if (form.ds_filepath.value == '') {
				error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_FILEPATH_OR_URL');?>";
				valid = false;		
			} else if (regex_user_param_text.test(form.ds_filepath.value)) {
                error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_DATA_SOURCE_FILEPATH_USER_PARAM_TEXT_NOT_ALLOWED');?>";
                valid = false;
            }
		}				
		
		switch (source_type) {
			case 'csv': 				
				break;
						
			case 'excel': 				
				if (form.ds_filepath.value != '') f_value = form.ds_filepath.value;				
				else f_value = false;				
				if (f_value) {					
					f_value = f_value.replace(/\s/g, "");		
					f_regex = new RegExp("^(.+)(xls|xlsx|ods)$","i");
					if (!f_regex.test(f_value)) { 
						error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_SHEET_FILE');?>";
						valid = false;						
					}
                    $allow_remote_files = true;
                    if (!$allow_remote_files) {
                        f_url_regex = new RegExp("^(http|https)://", "i");
                        if (f_url_regex.test(f_value)) {
                            error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_SHEET_FILE_URL');?>";
                            valid = false;
                        }
                    }
				}			
				if (form.ds_sheet_name.value == '') {
					error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_SHEET_NAME');?>";
					valid = false;
				}
                if (form.ds_sheet_references.value != '') {
                    // placeholder for future use
                }
				if (form.ds_sheet_selection.value == '') {
					error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_SHEET_SELECTION');?>";
					valid = false;
				} else {
					f_value = form.ds_sheet_selection.value;
					f_value = f_value.replace(/\s/g, "");		
					f_regex = new RegExp("^([a-zA-Z]{1,3})(\\d+):([a-zA-Z]{1,3})(\\d+)$","");
					f_regex_b = new RegExp("^(\\d+)([a-zA-Z]{1,3}):(\\d+)([a-zA-Z]{1,3})$","");
					if ((!f_regex.test(f_value))&&(!f_regex_b.test(f_value))&&(f_value.indexOf("{")==-1)) {
						error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_SHEET_SELECTION');?>";
						valid = false;						
					}					
				}												
				break;					
						
			case 'database': 
				if (form.ds_query.value == '') {
					error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_QUERY');?>";
					valid = false;
				} else if (regex_user_param_text.test(form.ds_query.value)) {
                    error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_DATA_SOURCE_QUERY_USER_PARAM_TEXT_NOT_ALLOWED');?>";
                    valid = false;
                }
				break;

            case 'external_database':
                if (form.ds_edb_driver.value == '') {
                    error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_EDB_DRIVER');?>";
                    valid = false;
                }
                if (form.ds_edb_host.value == '') {
                    error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_EDB_HOST');?>";
                    valid = false;
                }
                if (form.ds_edb_user.value == '') {
                    error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_EDB_USER');?>";
                    valid = false;
                }
                if (form.ds_edb_password.value == '') {
                    error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_EDB_PASSWORD');?>";
                    valid = false;
                }
                if (form.ds_edb_database.value == '') {
                    error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_EDB_DATABASE');?>";
                    valid = false;
                }
                if (form.ds_query.value == '') {
                    error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_QUERY');?>";
                    valid = false;
                } else if (regex_user_param_text.test(form.ds_query.value)) {
                    error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_DATA_SOURCE_QUERY_USER_PARAM_TEXT_NOT_ALLOWED');?>";
                    valid = false;
                }
                break;
						
			case 'html': 				
				if (!form.ds_table_order.value) {
					error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_TABLE_ORDER');?>";
					valid = false;
				}
				if ((form.ds_table_attribute_name.value == '') && (form.table_attribute_value.value != '')) {
					error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_TABLE_ATTRIBUTE');?>";
					valid = false;		
				}
				break;

            case 'xml':
                if (!form.ds_td_map.value) {
                    error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_TD_MAP');?>";
                    valid = false;
                }
                break;

            case 'rss':
                if (form.ds_feed_type.selectedIndex < 0) {
                    error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_FEED_TYPE');?>";
                    valid = false;
                }
                break;

            case 'json':
                break;
						
			case 'article': 
				if (form.ds_article_id.value == '') {
					error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_ARTICLE_ID');?>";
					valid = false;
				}			
				break;

            case 'merger':
                if (form.ds_merging_tree.value == '') {
                    error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_MERGING_TREE');?>";
                    valid = false;
                }
                break;

            default:
				error_msg = "Unknown source type: " + source_type;
				valid = false;
				break;			
		}
		
		regex = /^\d+$/;
		value = form.ds_cache_time.value;
		if (!regex.test(value)) {
			if (form.ds_cache_type.value != <?php echo TABULIZER_DATA_SOURCE_CACHE_OFF;?>) {
				error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_CACHE_TIME');?>";
				valid = false;		
			}	
		}
				
		if (valid) {
			form.submit();
		} else {
			error_msg = "<?php echo JText::_('COM_TABULIZER_JS_ERRORS_FOUND'); ?>" + error_msg;
			alert(error_msg);
		}	
						
	}
	
	function updateSourceParams() {
		var form = document.adminForm;
		var show_keys, all_keys = new Array('ruleset_archive','ruleset_name','table_caption','table_summary','server_side','filepath','query','edb_driver','edb_host','edb_user','edb_password','edb_database','edb_prefix','article_id','merging_tree','sheet_name','sheet_references','sheet_selection','read_font','read_color','read_images','read_hyperlinks','boost','cellcache','remove_empty','separator','enclosure','consistency','strip_tags','table_order','table_attribute_name','table_attribute_value','td_map');
		var source_type = form.ds_source_type.value;						
		
		switch (source_type) {
			case 'csv': show_keys = new Array('ruleset_archive',
						'ruleset_name',
                        'table_caption',
                        'table_summary',
                        'server_side',
						'filepath',												
						'separator',
						'enclosure',
						'consistency');
						break;
						
			case 'excel': show_keys = new Array('ruleset_archive',
						'ruleset_name',
                        'table_caption',
                        'table_summary',
                        'server_side',
						'filepath',												
						'sheet_name',
                        'sheet_selection',
                        'sheet_references',
						'read_font',	
						'read_color',	
						'read_images',	
						'read_hyperlinks',
                        'boost',
                        'cellcache',
						'remove_empty');
						break;
						
			case 'database': show_keys = new Array('ruleset_archive',
						'ruleset_name' ,
                        'table_caption',
                        'table_summary',
                        'server_side' ,
						'query');
						break;

            case 'external_database': show_keys = new Array('ruleset_archive',
                        'ruleset_name',
                        'table_caption',
                        'table_summary',
                        'server_side',
                        'edb_driver',
                        'edb_host',
                        'edb_user',
                        'edb_password',
                        'edb_database',
                        'edb_prefix',
                        'query');
                        break;
						
			case 'html': show_keys = new Array('ruleset_archive',
						'ruleset_name' ,
                        'table_caption',
                        'table_summary',
                        'server_side' ,
						'filepath',												
						'table_order',
						'table_attribute_name',
						'table_attribute_value');
						break;

            case 'xml': show_keys = new Array('ruleset_archive',
                        'ruleset_name' ,
                        'table_caption',
                        'table_summary',
                        'server_side' ,
                        'filepath',
                        'td_map');
                        break;

            case 'rss': show_keys = new Array('ruleset_archive',
                        'ruleset_name' ,
                        'table_caption',
                        'table_summary',
                        'server_side' ,
                        'filepath',
                        'feed_type',
                        'encoding');
                        break;

            case 'json': show_keys = new Array('ruleset_archive',
                        'ruleset_name' ,
                        'table_caption',
                        'table_summary',
                        'server_side' ,
                        'filepath',
                        'encoding');
                        break;
						
			case 'article':  show_keys = new Array('ruleset_archive',
						'ruleset_name' ,
                        'table_caption',
                        'table_summary',
                        'server_side' ,
						'article_id',
						'separator',
						'enclosure',
						'consistency',
						'strip_tags');
						break;

            case 'merger':  show_keys = new Array('ruleset_archive',
                        'ruleset_name' ,
                        'table_caption',
                        'table_summary',
                        'server_side' ,
                        'merging_tree');
                        break;

            default:
						show_keys = new Array();
						break;			
		}
		
		var i, el;		
		for (i = 0; i < all_keys.length; i++) {
			el = document.getElementById('tr_'+all_keys[i]);
			el.className="hidden_tr";
		}			
		for (i = 0; i < show_keys.length; i++) {
			el = document.getElementById('tr_'+show_keys[i]);
			el.className="";
		}	   
	}
		
	function TabulizerUpdateRulesetArchive(ruleset_archive_selection) {
		var archive_to_rulesets = new Array();
<?php echo $archive_to_rulesets; ?>
		var archive_filename = ruleset_archive_selection.value;
		var ruleset_select = document.getElementById("ds_ruleset_name");
		var rulesets, ruleset_count = 0;
				
		if (archive_filename) {
			rulesets = archive_to_rulesets[archive_filename];
			if (rulesets) {
				ruleset_count = 0;
				ruleset_select.options.length = 0;
				for(index in rulesets) {
					ruleset_select.options[ruleset_select.options.length] = new Option(rulesets[index], index);
					ruleset_count++;
				}
				if (ruleset_count == 0) {		
					ruleset_select.options[ruleset_select.options.length] = new Option("<?php echo JText::_('COM_TABULIZER_NONE');?>", 0);
				}				
			}
			if (typeof jtQuery != 'undefined') {
				jtQuery("#ds_ruleset_name").trigger("liszt:updated");
			}
		}				
				
	}	
	
	function updateCacheType() {		
		var cache_type = document.getElementById('ds_cache_type');
		var cache_time = document.getElementById('ds_cache_time');
		
		if (cache_type.value != <?php echo TABULIZER_DATA_SOURCE_CACHE_OFF;?>) cache_time.disabled = false; else cache_time.disabled = true;
	}

    function TabulizerUpdateSheetReferences(ref_type) {
        var custom_references = document.getElementById("ds_sheet_references_custom");
        if (ref_type.value == "none") {
            document.getElementById("ds_sheet_references").value = "";
            custom_references.style.display="none";
        } else if (ref_type.value == "all") {
            document.getElementById("ds_sheet_references").value = "all";
            custom_references.style.display="none";
        } else {
            if (document.getElementById("ds_sheet_references").value == "all") {
                document.getElementById("ds_sheet_references").value = "";
            }
            custom_references.style.display="block";
        }
    }
	
	function jSelectArticle(id, title, object) {    
		document.getElementById('ds_article_id').value = id;
		document.getElementById('sbox-window').close();
	}									
	
<?php if(version_compare(JVERSION,'1.6.0','ge')) { ?>		
	
	Joomla.submitbutton = function(pressbutton) {											
		if (pressbutton == 'save') {
			validateAndSubmit();
		} else if (pressbutton == 'saveNew') {
            document.getElementById('addnew').value = '1';
            validateAndSubmit();
        } else if (pressbutton == 'saveCopy') {
            document.getElementById('addcopy').value = '1';
            validateAndSubmit();
        } else if (pressbutton == 'cancel') {
			window.location = "<?php echo $return_url;?>";			
		}		
	}
	
<?php } else { ?>
	
	function submitbutton(pressbutton) {
		if (pressbutton == 'save') {
			validateAndSubmit();
		} else if (pressbutton == 'saveNew') {
            document.getElementById('addnew').value = '1';
            validateAndSubmit();
        } else if (pressbutton == 'saveCopy') {
            document.getElementById('addcopy').value = '1';
            validateAndSubmit();
        } else if (pressbutton == 'cancel') {
			window.location = "<?php echo $return_url;?>";			
		}											
	}	
	
<?php } ?>		
	
</script>


<form action="index.php" method="post" name="adminForm" id="adminForm">
<div class="col edit_frm_div">
	<fieldset class="adminform">
		<legend><?php echo JText::_('COM_TABULIZER_DATA_SOURCE_DETAILS' ); ?></legend>

		<table class="admintable">
		<tr class="row1">
			<td  class="key">
				<?php echo JText::_('COM_TABULIZER_DATA_SOURCE_TAG' ); ?>:
			</td>
			<td>
				<?php echo $this->lists['tag']; ?>
			</td>
		</tr>
		<tr class="row0">
			<td  class="key">
				<?php echo JText::_('COM_TABULIZER_DATA_SOURCE_TITLE' ); ?>:
			</td>
			<td>
				<?php echo $this->lists['title']; ?>
			</td>
		</tr>				
		<tr class="row1">
			<td  class="key">				
				<?php echo JText::_('COM_TABULIZER_DATA_SOURCE_TYPE' ); ?>:
			</td>
			<td>
				<?php echo $this->lists['source_type']; ?>
			</td>
		</tr>
		<tr class="row0">
			<td  class="key">
				<?php echo JText::_('COM_TABULIZER_DATA_SOURCE_PARAMS' ); ?>:
			</td>
			<td>
				<?php echo $this->lists['source_params']; ?>
			</td>
		</tr>
		<tr class="row1">
			<td  class="key">
				<?php echo JText::_('COM_TABULIZER_DATA_SOURCE_CACHE' ); ?>:
			</td>
			<td>
				<?php echo $this->lists['cache_params']; ?>
			</td>
		</tr>		
	    </table>
	</fieldset>
</div>     

<div class="clr"></div>
	<input type="hidden" name="option" value="com_tabulizer" />			
	<input type="hidden" name="task" value="saveDataSource" />
    <input type="hidden" name="addnew" id="addnew" value="0" />
    <input type="hidden" name="addcopy" id="addcopy" value="0" />
	<?php echo $this->lists['id']; ?>
	<?php echo JHTML::_( 'form.token' ); ?>
</form>