| Current Path : /home/bonneesp/www/administrator/components/com_tabulizer/assets/classes/dialog/ |
| Current File : /home/bonneesp/www/administrator/components/com_tabulizer/assets/classes/dialog/grab_table_data.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' );
function grabTableData() {
$jinput = JFactory::getApplication()->input;
$params['filepath'] = $jinput->getString('grab_url','');
$params['table_order'] = $jinput->getString('grab_index','');
$params['table_attribute_name'] = $jinput->getString('grab_attr_name','');
$params['table_attribute_value'] = $jinput->getString('grab_attr_value','');
TabulizerPath::requireLib('html_extraction','common');
$grabber = new HTMLExtraction();
$grabber->getTableRows($rows, $params, $error_msg);
if (empty($error_msg)) {
$cell_values = array();
foreach ($rows as $row) {
$cell_values[] = implode('', $row);
}
$column_separator_found = false;
if (empty($cell_values)) {
$extracted_data['error_msg'] = JText::_('COM_TABULIZER_INVALID_TABLE_SELECTION');
return false;
} else {
$separators = TabulizerUtils::getSeparatorList(true);
foreach ($separators as $sep => $column_separator) {
$valid = true;
foreach ($cell_values as $value) {
if (empty($value)) continue;
if (strpos($value,$sep) !== false) { $valid = false; break; }
}
if ($valid) {
$column_separator_found = true;
break;
}
}
}
# use text enclosure, if needed
if (!$column_separator_found) {
$column_separator = SEPARATOR_COMMA;
$column_enclosure = ENCLOSURE_DOUBLE_QUOTES;
$sep = ',';
$enclosure = '"';
$escape = ENCLOSURE_ESCAPE;
} else {
$column_enclosure = ENCLOSURE_NONE;
$enclosure = '';
}
$sep = $enclosure . $sep . $enclosure;
$table_text = '';
foreach ($rows as $row_id => $cells) {
if ($column_enclosure != ENCLOSURE_NONE) {
$ra = $escape . $enclosure;
$rw = $enclosure;
foreach ($cells as &$cell) {
$cell = str_replace($rw, $ra, $cell);
}
}
$table_text .= $enclosure. implode($sep,$cells) . $enclosure . "\n";
}
$json_response = json_encode(array('input_text'=>$table_text, 'input_separator'=>$column_separator, 'input_enclosure'=>$column_enclosure));
jexit($json_response);
} else {
jexit($error_msg);
}
}
grabTableData();
?>