Completed
Push — issue/233 ( a6a112 )
by Tomas Norre
13:07
created
modfunc1/class.tx_crawler_modfunc1.php 1 patch
Indentation   +942 added lines, -942 removed lines patch added patch discarded remove patch
@@ -35,126 +35,126 @@  discard block
 block discarded – undo
35 35
  * @subpackage tx_crawler
36 36
  */
37 37
 class tx_crawler_modfunc1 extends \TYPO3\CMS\Backend\Module\AbstractFunctionModule {
38
-		// Internal, dynamic:
39
-	var $duplicateTrack = array();
40
-	var $submitCrawlUrls = FALSE;
41
-	var $downloadCrawlUrls = FALSE;
42
-
43
-	var $scheduledTime = 0;
44
-	var $reqMinute = 0;
45
-
46
-	/**
47
-	 * @var array holds the selection of configuration from the configuration selector box
48
-	 */
49
-	var $incomingConfigurationSelection = array();
50
-
51
-	/**
52
-	 * @var tx_crawler_lib
53
-	 */
54
-	var $crawlerObj;
55
-
56
-	var $CSVaccu = array();
57
-
58
-	/**
59
-	 * If true the user requested a CSV export of the queue
60
-	 *
61
-	 * @var boolean
62
-	 */
63
-	var $CSVExport = FALSE;
64
-
65
-	var $downloadUrls = array();
66
-
67
-	/**
68
-	 * Holds the configuration from ext_conf_template loaded by loadExtensionSettings()
69
-	 *
70
-	 * @var array
71
-	 */
72
-	protected $extensionSettings = array();
73
-
74
-	/**
75
-	 * Indicate that an flash message with an error is present.
76
-	 *
77
-	 * @var boolean
78
-	 */
79
-	protected $isErrorDetected = false;
80
-
81
-	/**
82
-	 * the constructor
83
-	 */
84
-	public function __construct() {
85
-		$this->processManager = new tx_crawler_domain_process_manager();
86
-	}
87
-
88
-	/**
89
-	 * Additions to the function menu array
90
-	 *
91
-	 * @return	array		Menu array
92
-	 */
93
-	function modMenu()	{
94
-		global $LANG;
95
-
96
-		return array (
97
-			'depth' => array(
98
-				0 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_0'),
99
-				1 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_1'),
100
-				2 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_2'),
101
-				3 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_3'),
102
-				4 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_4'),
103
-				99 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_infi'),
104
-			),
105
-			'crawlaction' => array(
106
-				'start' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.start'),
107
-				'log' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.log'),
108
-				'multiprocess' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.multiprocess')
109
-			),
110
-			'log_resultLog' => '',
111
-			'log_feVars' => '',
112
-			'processListMode' => '',
113
-			'log_display' => array(
114
-				'all' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.all'),
115
-				'pending' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.pending'),
116
-				'finished' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.finished')
117
-			),
118
-			'itemsPerPage' => array(
119
-				'5' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.itemsPerPage.5'),
120
-				'10' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.itemsPerPage.10'),
121
-				'50' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.itemsPerPage.50'),
122
-				'0' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.itemsPerPage.0')
123
-			)
124
-		);
125
-	}
126
-
127
-	/**
128
-	 * Load extension settings
129
-	 *
130
-	 * @param void
131
-	 * @return void
132
-	 */
133
-	protected function loadExtensionSettings()
134
-	{
135
-		$this->extensionSettings = \AOE\Crawler\Utility\SettingsUtility::getExtensionSettings();
136
-	}
137
-	/**
138
-	 * Main function
139
-	 *
140
-	 * @return	string		HTML output
141
-	 */
142
-	function main() {
143
-		global $LANG, $BACK_PATH;
144
-
145
-		$this->incLocalLang();
146
-
147
-		$this->loadExtensionSettings();
148
-		if (empty($this->pObj->MOD_SETTINGS['processListMode'])) {
149
-			$this->pObj->MOD_SETTINGS['processListMode'] = 'simple';
150
-		}
38
+        // Internal, dynamic:
39
+    var $duplicateTrack = array();
40
+    var $submitCrawlUrls = FALSE;
41
+    var $downloadCrawlUrls = FALSE;
42
+
43
+    var $scheduledTime = 0;
44
+    var $reqMinute = 0;
45
+
46
+    /**
47
+     * @var array holds the selection of configuration from the configuration selector box
48
+     */
49
+    var $incomingConfigurationSelection = array();
50
+
51
+    /**
52
+     * @var tx_crawler_lib
53
+     */
54
+    var $crawlerObj;
55
+
56
+    var $CSVaccu = array();
57
+
58
+    /**
59
+     * If true the user requested a CSV export of the queue
60
+     *
61
+     * @var boolean
62
+     */
63
+    var $CSVExport = FALSE;
64
+
65
+    var $downloadUrls = array();
66
+
67
+    /**
68
+     * Holds the configuration from ext_conf_template loaded by loadExtensionSettings()
69
+     *
70
+     * @var array
71
+     */
72
+    protected $extensionSettings = array();
73
+
74
+    /**
75
+     * Indicate that an flash message with an error is present.
76
+     *
77
+     * @var boolean
78
+     */
79
+    protected $isErrorDetected = false;
80
+
81
+    /**
82
+     * the constructor
83
+     */
84
+    public function __construct() {
85
+        $this->processManager = new tx_crawler_domain_process_manager();
86
+    }
87
+
88
+    /**
89
+     * Additions to the function menu array
90
+     *
91
+     * @return	array		Menu array
92
+     */
93
+    function modMenu()	{
94
+        global $LANG;
95
+
96
+        return array (
97
+            'depth' => array(
98
+                0 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_0'),
99
+                1 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_1'),
100
+                2 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_2'),
101
+                3 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_3'),
102
+                4 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_4'),
103
+                99 => $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.depth_infi'),
104
+            ),
105
+            'crawlaction' => array(
106
+                'start' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.start'),
107
+                'log' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.log'),
108
+                'multiprocess' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.multiprocess')
109
+            ),
110
+            'log_resultLog' => '',
111
+            'log_feVars' => '',
112
+            'processListMode' => '',
113
+            'log_display' => array(
114
+                'all' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.all'),
115
+                'pending' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.pending'),
116
+                'finished' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.finished')
117
+            ),
118
+            'itemsPerPage' => array(
119
+                '5' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.itemsPerPage.5'),
120
+                '10' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.itemsPerPage.10'),
121
+                '50' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.itemsPerPage.50'),
122
+                '0' => $LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.itemsPerPage.0')
123
+            )
124
+        );
125
+    }
126
+
127
+    /**
128
+     * Load extension settings
129
+     *
130
+     * @param void
131
+     * @return void
132
+     */
133
+    protected function loadExtensionSettings()
134
+    {
135
+        $this->extensionSettings = \AOE\Crawler\Utility\SettingsUtility::getExtensionSettings();
136
+    }
137
+    /**
138
+     * Main function
139
+     *
140
+     * @return	string		HTML output
141
+     */
142
+    function main() {
143
+        global $LANG, $BACK_PATH;
144
+
145
+        $this->incLocalLang();
146
+
147
+        $this->loadExtensionSettings();
148
+        if (empty($this->pObj->MOD_SETTINGS['processListMode'])) {
149
+            $this->pObj->MOD_SETTINGS['processListMode'] = 'simple';
150
+        }
151 151
 
152
-			// Set CSS styles specific for this document:
153
-		$this->pObj->content = str_replace('/*###POSTCSSMARKER###*/','
152
+            // Set CSS styles specific for this document:
153
+        $this->pObj->content = str_replace('/*###POSTCSSMARKER###*/','
154 154
 			TABLE.c-list TR TD { white-space: nowrap; vertical-align: top; }
155 155
 		',$this->pObj->content);
156 156
 
157
-		$this->pObj->content .= '<style type="text/css"><!--
157
+        $this->pObj->content .= '<style type="text/css"><!--
158 158
 			table.url-table,
159 159
 			table.param-expanded,
160 160
 			table.crawlerlog {
@@ -172,16 +172,16 @@  discard block
 block discarded – undo
172 172
 		<link rel="stylesheet" type="text/css" href="'.$BACK_PATH.'../typo3conf/ext/crawler/template/res.css" />
173 173
 		';
174 174
 
175
-			// Type function menu:
176
-		$h_func = \TYPO3\CMS\Backend\Utility\BackendUtility::getFuncMenu(
177
-			$this->pObj->id,
178
-			'SET[crawlaction]',
179
-			$this->pObj->MOD_SETTINGS['crawlaction'],
180
-			$this->pObj->MOD_MENU['crawlaction'],
181
-			'index.php'
182
-		);
175
+            // Type function menu:
176
+        $h_func = \TYPO3\CMS\Backend\Utility\BackendUtility::getFuncMenu(
177
+            $this->pObj->id,
178
+            'SET[crawlaction]',
179
+            $this->pObj->MOD_SETTINGS['crawlaction'],
180
+            $this->pObj->MOD_MENU['crawlaction'],
181
+            'index.php'
182
+        );
183 183
 
184
-		/*
184
+        /*
185 185
 			// Showing depth-menu in certain cases:
186 186
 		if ($this->pObj->MOD_SETTINGS['crawlaction']!=='cli' && $this->pObj->MOD_SETTINGS['crawlaction']!== 'multiprocess' && ($this->pObj->MOD_SETTINGS['crawlaction']!=='log' || $this->pObj->id))	{
187 187
 			$h_func .= \TYPO3\CMS\Backend\Utility\BackendUtility::getFuncMenu(
@@ -194,63 +194,63 @@  discard block
 block discarded – undo
194 194
 		}
195 195
 		*/
196 196
 
197
-			// Additional menus for the log type:
198
-		if ($this->pObj->MOD_SETTINGS['crawlaction']==='log')	{
199
-			$h_func .= \TYPO3\CMS\Backend\Utility\BackendUtility::getFuncMenu(
200
-				$this->pObj->id,
201
-				'SET[depth]',
202
-				$this->pObj->MOD_SETTINGS['depth'],
203
-				$this->pObj->MOD_MENU['depth'],
204
-				'index.php'
205
-			);
197
+            // Additional menus for the log type:
198
+        if ($this->pObj->MOD_SETTINGS['crawlaction']==='log')	{
199
+            $h_func .= \TYPO3\CMS\Backend\Utility\BackendUtility::getFuncMenu(
200
+                $this->pObj->id,
201
+                'SET[depth]',
202
+                $this->pObj->MOD_SETTINGS['depth'],
203
+                $this->pObj->MOD_MENU['depth'],
204
+                'index.php'
205
+            );
206
+
207
+            $quiPart = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('qid_details') ? '&qid_details=' . intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('qid_details')) : '';
208
+
209
+            $setId = intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('setID'));
210
+
211
+            $h_func.= '<hr/>'.
212
+                    $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.display').': '.\TYPO3\CMS\Backend\Utility\BackendUtility::getFuncMenu($this->pObj->id,'SET[log_display]',$this->pObj->MOD_SETTINGS['log_display'],$this->pObj->MOD_MENU['log_display'],'index.php','&setID='.$setId) . ' - ' .
213
+                    $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.showresultlog').': '.\TYPO3\CMS\Backend\Utility\BackendUtility::getFuncCheck($this->pObj->id,'SET[log_resultLog]',$this->pObj->MOD_SETTINGS['log_resultLog'],'index.php','&setID='.$setId . $quiPart) . ' - ' .
214
+                    $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.showfevars').': '.\TYPO3\CMS\Backend\Utility\BackendUtility::getFuncCheck($this->pObj->id,'SET[log_feVars]',$this->pObj->MOD_SETTINGS['log_feVars'],'index.php','&setID='.$setId . $quiPart) . ' - ' .
215
+                    $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.itemsPerPage').': ' .
216
+                    \TYPO3\CMS\Backend\Utility\BackendUtility::getFuncMenu(
217
+                        $this->pObj->id,
218
+                        'SET[itemsPerPage]',
219
+                        $this->pObj->MOD_SETTINGS['itemsPerPage'],
220
+                        $this->pObj->MOD_MENU['itemsPerPage'],
221
+                        'index.php'
222
+                    );
223
+        }
206 224
 
207
-			$quiPart = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('qid_details') ? '&qid_details=' . intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('qid_details')) : '';
208
-
209
-			$setId = intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('setID'));
210
-
211
-			$h_func.= '<hr/>'.
212
-					$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.display').': '.\TYPO3\CMS\Backend\Utility\BackendUtility::getFuncMenu($this->pObj->id,'SET[log_display]',$this->pObj->MOD_SETTINGS['log_display'],$this->pObj->MOD_MENU['log_display'],'index.php','&setID='.$setId) . ' - ' .
213
-					$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.showresultlog').': '.\TYPO3\CMS\Backend\Utility\BackendUtility::getFuncCheck($this->pObj->id,'SET[log_resultLog]',$this->pObj->MOD_SETTINGS['log_resultLog'],'index.php','&setID='.$setId . $quiPart) . ' - ' .
214
-					$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.showfevars').': '.\TYPO3\CMS\Backend\Utility\BackendUtility::getFuncCheck($this->pObj->id,'SET[log_feVars]',$this->pObj->MOD_SETTINGS['log_feVars'],'index.php','&setID='.$setId . $quiPart) . ' - ' .
215
-					$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.itemsPerPage').': ' .
216
-					\TYPO3\CMS\Backend\Utility\BackendUtility::getFuncMenu(
217
-						$this->pObj->id,
218
-						'SET[itemsPerPage]',
219
-						$this->pObj->MOD_SETTINGS['itemsPerPage'],
220
-						$this->pObj->MOD_MENU['itemsPerPage'],
221
-						'index.php'
222
-					);
223
-		}
225
+        $theOutput= $this->pObj->doc->spacer(5);
226
+        $theOutput.= $this->pObj->doc->section($LANG->getLL('title'), $h_func, 0, 1);
224 227
 
225
-		$theOutput= $this->pObj->doc->spacer(5);
226
-		$theOutput.= $this->pObj->doc->section($LANG->getLL('title'), $h_func, 0, 1);
227
-
228
-			// Branch based on type:
229
-		switch ((string)$this->pObj->MOD_SETTINGS['crawlaction']) {
230
-			case 'start':
231
-				if (empty($this->pObj->id)) {
232
-					$this->addErrorMessage($GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.noPageSelected'));
233
-				} else {
234
-					$theOutput .= $this->pObj->doc->section('', $this->drawURLs(), 0, 1);
235
-				}
236
-				break;
237
-			case 'log':
238
-				if (empty($this->pObj->id)) {
239
-					$this->addErrorMessage($GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.noPageSelected'));
240
-				} else {
241
-					$theOutput .= $this->pObj->doc->section('', $this->drawLog(), 0, 1);
242
-				}
243
-				break;
244
-			case 'cli':
245
-				$theOutput .= $this->pObj->doc->section('', $this->drawCLIstatus(), 0, 1);
246
-				break;
247
-			case 'multiprocess':
248
-				$theOutput .= $this->pObj->doc->section('', $this->drawProcessOverviewAction(), 0, 1);
249
-				break;
250
-		}
228
+            // Branch based on type:
229
+        switch ((string)$this->pObj->MOD_SETTINGS['crawlaction']) {
230
+            case 'start':
231
+                if (empty($this->pObj->id)) {
232
+                    $this->addErrorMessage($GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.noPageSelected'));
233
+                } else {
234
+                    $theOutput .= $this->pObj->doc->section('', $this->drawURLs(), 0, 1);
235
+                }
236
+                break;
237
+            case 'log':
238
+                if (empty($this->pObj->id)) {
239
+                    $this->addErrorMessage($GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.noPageSelected'));
240
+                } else {
241
+                    $theOutput .= $this->pObj->doc->section('', $this->drawLog(), 0, 1);
242
+                }
243
+                break;
244
+            case 'cli':
245
+                $theOutput .= $this->pObj->doc->section('', $this->drawCLIstatus(), 0, 1);
246
+                break;
247
+            case 'multiprocess':
248
+                $theOutput .= $this->pObj->doc->section('', $this->drawProcessOverviewAction(), 0, 1);
249
+                break;
250
+        }
251 251
 
252
-		return $theOutput;
253
-	}
252
+        return $theOutput;
253
+    }
254 254
 
255 255
 
256 256
 
@@ -263,176 +263,176 @@  discard block
 block discarded – undo
263 263
 
264 264
 
265 265
 
266
-	/*******************************
266
+    /*******************************
267 267
 	 *
268 268
 	 * Generate URLs for crawling:
269 269
 	 *
270 270
 	 ******************************/
271 271
 
272
-	/**
273
-	 * Produces a table with overview of the URLs to be crawled for each page
274
-	 *
275
-	 * @return	string		HTML output
276
-	 */
277
-	function drawURLs()	{
278
-		global $BACK_PATH, $BE_USER;
279
-
280
-			// Init:
281
-		$this->duplicateTrack = array();
282
-		$this->submitCrawlUrls = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('_crawl');
283
-		$this->downloadCrawlUrls = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('_download');
284
-		$this->makeCrawlerProcessableChecks();
285
-
286
-		switch((string)\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('tstamp'))	{
287
-			case 'midnight':
288
-				$this->scheduledTime = mktime(0,0,0);
289
-			break;
290
-			case '04:00':
291
-				$this->scheduledTime = mktime(0,0,0)+4*3600;
292
-			break;
293
-			case 'now':
294
-			default:
295
-				$this->scheduledTime = time();
296
-			break;
297
-		}
298
-		// $this->reqMinute = \TYPO3\CMS\Core\Utility\GeneralUtility::intInRange(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('perminute'),1,10000);
299
-		// TODO: check relevance
300
-		$this->reqMinute = 1000;
272
+    /**
273
+     * Produces a table with overview of the URLs to be crawled for each page
274
+     *
275
+     * @return	string		HTML output
276
+     */
277
+    function drawURLs()	{
278
+        global $BACK_PATH, $BE_USER;
279
+
280
+            // Init:
281
+        $this->duplicateTrack = array();
282
+        $this->submitCrawlUrls = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('_crawl');
283
+        $this->downloadCrawlUrls = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('_download');
284
+        $this->makeCrawlerProcessableChecks();
285
+
286
+        switch((string)\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('tstamp'))	{
287
+            case 'midnight':
288
+                $this->scheduledTime = mktime(0,0,0);
289
+            break;
290
+            case '04:00':
291
+                $this->scheduledTime = mktime(0,0,0)+4*3600;
292
+            break;
293
+            case 'now':
294
+            default:
295
+                $this->scheduledTime = time();
296
+            break;
297
+        }
298
+        // $this->reqMinute = \TYPO3\CMS\Core\Utility\GeneralUtility::intInRange(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('perminute'),1,10000);
299
+        // TODO: check relevance
300
+        $this->reqMinute = 1000;
301 301
 
302 302
 
303
-		$this->incomingConfigurationSelection = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('configurationSelection');
304
-		$this->incomingConfigurationSelection = is_array($this->incomingConfigurationSelection) ? $this->incomingConfigurationSelection : array('');
303
+        $this->incomingConfigurationSelection = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('configurationSelection');
304
+        $this->incomingConfigurationSelection = is_array($this->incomingConfigurationSelection) ? $this->incomingConfigurationSelection : array('');
305 305
 
306
-		$this->crawlerObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_crawler_lib');
307
-		$this->crawlerObj->setAccessMode('gui');
308
-		$this->crawlerObj->setID = \TYPO3\CMS\Core\Utility\GeneralUtility::md5int(microtime());
306
+        $this->crawlerObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_crawler_lib');
307
+        $this->crawlerObj->setAccessMode('gui');
308
+        $this->crawlerObj->setID = \TYPO3\CMS\Core\Utility\GeneralUtility::md5int(microtime());
309 309
 
310
-		if (empty($this->incomingConfigurationSelection)
311
-			|| (count($this->incomingConfigurationSelection)==1 && empty($this->incomingConfigurationSelection[0]))
312
-			) {
313
-			$code= '
310
+        if (empty($this->incomingConfigurationSelection)
311
+            || (count($this->incomingConfigurationSelection)==1 && empty($this->incomingConfigurationSelection[0]))
312
+            ) {
313
+            $code= '
314 314
 			<tr>
315 315
 				<td colspan="7"><b>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.noConfigSelected').'</b></td>
316 316
 			</tr>';
317
-		} else {
318
-			if($this->submitCrawlUrls){
319
-				$reason = new tx_crawler_domain_reason();
320
-				$reason->setReason(tx_crawler_domain_reason::REASON_GUI_SUBMIT);
321
-
322
-				if($BE_USER instanceof \TYPO3\CMS\Core\Authentication\BackendUserAuthentication){ $username = $BE_USER->user['username']; }
323
-				$reason->setDetailText('The user '.$username.' added pages to the crawler queue manually ');
324
-
325
-				tx_crawler_domain_events_dispatcher::getInstance()->post(	'invokeQueueChange',
326
-																			$this->findCrawler()->setID,
327
-																			array(	'reason' => $reason ));
328
-			}
329
-
330
-			$code = $this->crawlerObj->getPageTreeAndUrls(
331
-				$this->pObj->id,
332
-				$this->pObj->MOD_SETTINGS['depth'],
333
-				$this->scheduledTime,
334
-				$this->reqMinute,
335
-				$this->submitCrawlUrls,
336
-				$this->downloadCrawlUrls,
337
-				array(), // Do not filter any processing instructions
338
-				$this->incomingConfigurationSelection
339
-			);
317
+        } else {
318
+            if($this->submitCrawlUrls){
319
+                $reason = new tx_crawler_domain_reason();
320
+                $reason->setReason(tx_crawler_domain_reason::REASON_GUI_SUBMIT);
321
+
322
+                if($BE_USER instanceof \TYPO3\CMS\Core\Authentication\BackendUserAuthentication){ $username = $BE_USER->user['username']; }
323
+                $reason->setDetailText('The user '.$username.' added pages to the crawler queue manually ');
324
+
325
+                tx_crawler_domain_events_dispatcher::getInstance()->post(	'invokeQueueChange',
326
+                                                                            $this->findCrawler()->setID,
327
+                                                                            array(	'reason' => $reason ));
328
+            }
329
+
330
+            $code = $this->crawlerObj->getPageTreeAndUrls(
331
+                $this->pObj->id,
332
+                $this->pObj->MOD_SETTINGS['depth'],
333
+                $this->scheduledTime,
334
+                $this->reqMinute,
335
+                $this->submitCrawlUrls,
336
+                $this->downloadCrawlUrls,
337
+                array(), // Do not filter any processing instructions
338
+                $this->incomingConfigurationSelection
339
+            );
340 340
 
341 341
 
342
-		}
342
+        }
343 343
 
344
-		$this->downloadUrls = $this->crawlerObj->downloadUrls;
345
-		$this->duplicateTrack = $this->crawlerObj->duplicateTrack;
344
+        $this->downloadUrls = $this->crawlerObj->downloadUrls;
345
+        $this->duplicateTrack = $this->crawlerObj->duplicateTrack;
346 346
 
347
-		$output = '';
348
-		if ($code)	{
347
+        $output = '';
348
+        if ($code)	{
349 349
 
350
-			$output .= '<h3>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.configuration').':</h3>';
351
-			$output .= '<input type="hidden" name="id" value="'.intval($this->pObj->id).'" />';
350
+            $output .= '<h3>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.configuration').':</h3>';
351
+            $output .= '<input type="hidden" name="id" value="'.intval($this->pObj->id).'" />';
352 352
 
353
-			if (!$this->submitCrawlUrls)	{
354
-				$output .= $this->drawURLs_cfgSelectors().'<br />';
355
-				$output .= '<input type="submit" name="_update" value="'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.triggerUpdate').'" /> ';
356
-				$output .= '<input type="submit" name="_crawl" value="'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.triggerCrawl').'" /> ';
357
-				$output .= '<input type="submit" name="_download" value="'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.triggerDownload').'" /><br /><br />';
358
-				$output .= $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.count').': '.count(array_keys($this->duplicateTrack)).'<br />';
359
-				$output .= $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.curtime').': '.date('H:i:s',time()).'<br />';
360
-				$output .= '<br />
353
+            if (!$this->submitCrawlUrls)	{
354
+                $output .= $this->drawURLs_cfgSelectors().'<br />';
355
+                $output .= '<input type="submit" name="_update" value="'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.triggerUpdate').'" /> ';
356
+                $output .= '<input type="submit" name="_crawl" value="'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.triggerCrawl').'" /> ';
357
+                $output .= '<input type="submit" name="_download" value="'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.triggerDownload').'" /><br /><br />';
358
+                $output .= $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.count').': '.count(array_keys($this->duplicateTrack)).'<br />';
359
+                $output .= $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.curtime').': '.date('H:i:s',time()).'<br />';
360
+                $output .= '<br />
361 361
 					<table class="lrPadding c-list url-table">'.
362
-						$this->drawURLs_printTableHeader().
363
-						$code.
364
-					'</table>';
365
-			} else {
366
-				$output .= count(array_keys($this->duplicateTrack)).' '.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.submitted').'. <br /><br />';
367
-				$output .= '<input type="submit" name="_" value="'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.continue').'" />';
368
-				$output .= '<input type="submit" onclick="this.form.elements[\'SET[crawlaction]\'].value=\'log\';" value="'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.continueinlog').'" />';
369
-			}
370
-		}
371
-
372
-			// Download Urls to crawl:
373
-		if ($this->downloadCrawlUrls)	{
374
-
375
-				// Creating output header:
376
-			$mimeType = 'application/octet-stream';
377
-			Header('Content-Type: '.$mimeType);
378
-			Header('Content-Disposition: attachment; filename=CrawlerUrls.txt');
379
-
380
-				// Printing the content of the CSV lines:
381
-			echo implode(chr(13).chr(10),$this->downloadUrls);
382
-
383
-				// Exits:
384
-			exit;
385
-		}
386
-
387
-			// Return output:
388
-		return 	$output;
389
-	}
362
+                        $this->drawURLs_printTableHeader().
363
+                        $code.
364
+                    '</table>';
365
+            } else {
366
+                $output .= count(array_keys($this->duplicateTrack)).' '.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.submitted').'. <br /><br />';
367
+                $output .= '<input type="submit" name="_" value="'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.continue').'" />';
368
+                $output .= '<input type="submit" onclick="this.form.elements[\'SET[crawlaction]\'].value=\'log\';" value="'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.continueinlog').'" />';
369
+            }
370
+        }
390 371
 
391
-	/**
392
-	 * Draws the configuration selectors for compiling URLs:
393
-	 *
394
-	 * @return	string		HTML table
395
-	 */
396
-	function drawURLs_cfgSelectors()	{
372
+            // Download Urls to crawl:
373
+        if ($this->downloadCrawlUrls)	{
397 374
 
398
-			// depth
399
-		$cell[] = $this->selectorBox(
400
-			array(
401
-				0 => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.depth_0'),
402
-				1 => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.depth_1'),
403
-				2 => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.depth_2'),
404
-				3 => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.depth_3'),
405
-				4 => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.depth_4'),
406
-				99 => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.depth_infi'),
407
-			),
408
-			'SET[depth]',
409
-			$this->pObj->MOD_SETTINGS['depth'],
410
-			0
411
-		);
412
-		$availableConfigurations = $this->crawlerObj->getConfigurationsForBranch($this->pObj->id, $this->pObj->MOD_SETTINGS['depth']?$this->pObj->MOD_SETTINGS['depth']:0 );
375
+                // Creating output header:
376
+            $mimeType = 'application/octet-stream';
377
+            Header('Content-Type: '.$mimeType);
378
+            Header('Content-Disposition: attachment; filename=CrawlerUrls.txt');
413 379
 
414
-			// Configurations
415
-		$cell[] = $this->selectorBox(
416
-			empty($availableConfigurations)?array():array_combine($availableConfigurations, $availableConfigurations),
417
-			'configurationSelection',
418
-			$this->incomingConfigurationSelection,
419
-			1
420
-		);
380
+                // Printing the content of the CSV lines:
381
+            echo implode(chr(13).chr(10),$this->downloadUrls);
421 382
 
422
-			// Scheduled time:
423
-		$cell[] = $this->selectorBox(
424
-			array(
425
-				'now' => $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.time.now'),
426
-				'midnight' => $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.time.midnight'),
427
-				'04:00' => $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.time.4am'),
428
-			),
429
-			'tstamp',
430
-			\TYPO3\CMS\Core\Utility\GeneralUtility::_POST('tstamp'),
431
-			0
432
-		);
383
+                // Exits:
384
+            exit;
385
+        }
433 386
 
434
-		// TODO: check relevance
435
-		/*
387
+            // Return output:
388
+        return 	$output;
389
+    }
390
+
391
+    /**
392
+     * Draws the configuration selectors for compiling URLs:
393
+     *
394
+     * @return	string		HTML table
395
+     */
396
+    function drawURLs_cfgSelectors()	{
397
+
398
+            // depth
399
+        $cell[] = $this->selectorBox(
400
+            array(
401
+                0 => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.depth_0'),
402
+                1 => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.depth_1'),
403
+                2 => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.depth_2'),
404
+                3 => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.depth_3'),
405
+                4 => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.depth_4'),
406
+                99 => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.depth_infi'),
407
+            ),
408
+            'SET[depth]',
409
+            $this->pObj->MOD_SETTINGS['depth'],
410
+            0
411
+        );
412
+        $availableConfigurations = $this->crawlerObj->getConfigurationsForBranch($this->pObj->id, $this->pObj->MOD_SETTINGS['depth']?$this->pObj->MOD_SETTINGS['depth']:0 );
413
+
414
+            // Configurations
415
+        $cell[] = $this->selectorBox(
416
+            empty($availableConfigurations)?array():array_combine($availableConfigurations, $availableConfigurations),
417
+            'configurationSelection',
418
+            $this->incomingConfigurationSelection,
419
+            1
420
+        );
421
+
422
+            // Scheduled time:
423
+        $cell[] = $this->selectorBox(
424
+            array(
425
+                'now' => $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.time.now'),
426
+                'midnight' => $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.time.midnight'),
427
+                '04:00' => $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.time.4am'),
428
+            ),
429
+            'tstamp',
430
+            \TYPO3\CMS\Core\Utility\GeneralUtility::_POST('tstamp'),
431
+            0
432
+        );
433
+
434
+        // TODO: check relevance
435
+        /*
436 436
 			// Requests per minute:
437 437
 		$cell[] = $this->selectorBox(
438 438
 			array(
@@ -453,7 +453,7 @@  discard block
 block discarded – undo
453 453
 		);
454 454
 		*/
455 455
 
456
-		$output = '
456
+        $output = '
457 457
 			<table class="lrPadding c-list">
458 458
 				<tr class="bgColor5 tableheader">
459 459
 					<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.depth').':</td>
@@ -466,17 +466,17 @@  discard block
 block discarded – undo
466 466
 				</tr>
467 467
 			</table>';
468 468
 
469
-		return $output;
470
-	}
469
+        return $output;
470
+    }
471 471
 
472
-	/**
473
-	 * Create Table header row for URL display
474
-	 *
475
-	 * @return	string		Table header
476
-	 */
477
-	function drawURLs_printTableHeader()	{
472
+    /**
473
+     * Create Table header row for URL display
474
+     *
475
+     * @return	string		Table header
476
+     */
477
+    function drawURLs_printTableHeader()	{
478 478
 
479
-		$content = '
479
+        $content = '
480 480
 			<tr class="bgColor5 tableheader">
481 481
 				<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.pagetitle').':</td>
482 482
 				<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.key').':</td>
@@ -487,8 +487,8 @@  discard block
 block discarded – undo
487 487
 				<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.parameters').':</td>
488 488
 			</tr>';
489 489
 
490
-		return $content;
491
-	}
490
+        return $content;
491
+    }
492 492
 
493 493
 
494 494
 
@@ -501,109 +501,109 @@  discard block
 block discarded – undo
501 501
 
502 502
 
503 503
 
504
-	/*******************************
504
+    /*******************************
505 505
 	 *
506 506
 	 * Shows log of indexed URLs
507 507
 	 *
508 508
 	 ******************************/
509 509
 
510
-	/**
511
-	 * Shows the log of indexed URLs
512
-	 *
513
-	 * @return	string		HTML output
514
-	 */
515
-	function drawLog()	{
516
-		global $BACK_PATH;
517
-		$output = '';
518
-
519
-			// Init:
520
-		$this->crawlerObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_crawler_lib');
521
-		$this->crawlerObj->setAccessMode('gui');
522
-		$this->crawlerObj->setID = \TYPO3\CMS\Core\Utility\GeneralUtility::md5int(microtime());
523
-
524
-		$this->CSVExport = \TYPO3\CMS\Core\Utility\GeneralUtility::_POST('_csv');
525
-
526
-			// Read URL:
527
-		if (\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('qid_read'))	{
528
-			$this->crawlerObj->readUrl(intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('qid_read')),TRUE);
529
-		}
510
+    /**
511
+     * Shows the log of indexed URLs
512
+     *
513
+     * @return	string		HTML output
514
+     */
515
+    function drawLog()	{
516
+        global $BACK_PATH;
517
+        $output = '';
518
+
519
+            // Init:
520
+        $this->crawlerObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_crawler_lib');
521
+        $this->crawlerObj->setAccessMode('gui');
522
+        $this->crawlerObj->setID = \TYPO3\CMS\Core\Utility\GeneralUtility::md5int(microtime());
523
+
524
+        $this->CSVExport = \TYPO3\CMS\Core\Utility\GeneralUtility::_POST('_csv');
525
+
526
+            // Read URL:
527
+        if (\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('qid_read'))	{
528
+            $this->crawlerObj->readUrl(intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('qid_read')),TRUE);
529
+        }
530 530
 
531
-			// Look for set ID sent - if it is, we will display contents of that set:
532
-		$showSetId = intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('setID'));
531
+            // Look for set ID sent - if it is, we will display contents of that set:
532
+        $showSetId = intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('setID'));
533 533
 
534
-			// Show details:
535
-		if (\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('qid_details'))	{
534
+            // Show details:
535
+        if (\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('qid_details'))	{
536 536
 
537
-				// Get entry record:
538
-			list($q_entry) = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*','tx_crawler_queue','qid='.intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('qid_details')));
537
+                // Get entry record:
538
+            list($q_entry) = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*','tx_crawler_queue','qid='.intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('qid_details')));
539 539
 
540
-				// Explode values:
541
-				$resStatus = $this->getResStatus($q_entry);
542
-			$q_entry['parameters'] = unserialize($q_entry['parameters']);
543
-			$q_entry['result_data'] = unserialize($q_entry['result_data']);
544
-			if (is_array($q_entry['result_data']))	{
545
-				$q_entry['result_data']['content'] = unserialize($q_entry['result_data']['content']);
546
-			}
540
+                // Explode values:
541
+                $resStatus = $this->getResStatus($q_entry);
542
+            $q_entry['parameters'] = unserialize($q_entry['parameters']);
543
+            $q_entry['result_data'] = unserialize($q_entry['result_data']);
544
+            if (is_array($q_entry['result_data']))	{
545
+                $q_entry['result_data']['content'] = unserialize($q_entry['result_data']['content']);
546
+            }
547 547
 
548
-			if(!$this->pObj->MOD_SETTINGS['log_resultLog']) {
549
-				unset($q_entry['result_data']['content']['log']);
550
-			}
548
+            if(!$this->pObj->MOD_SETTINGS['log_resultLog']) {
549
+                unset($q_entry['result_data']['content']['log']);
550
+            }
551 551
 
552
-				// Print rudimentary details:
553
-			$output .= '
552
+                // Print rudimentary details:
553
+            $output .= '
554 554
 				<br /><br />
555 555
 				<input type="submit" value="' . $GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.back') . '" name="_back" />
556 556
 				<input type="hidden" value="' . $this->pObj->id . '" name="id" />
557 557
 				<input type="hidden" value="' . $showSetId . '" name="setID" />
558 558
 				<br />
559 559
 				Current server time: ' . date('H:i:s', time()) . '<br />' .
560
-				'Status: ' . $resStatus . '<br />' .
561
-				\TYPO3\CMS\Core\Utility\DebugUtility::viewArray($q_entry);
562
-		} else {	// Show list:
563
-
564
-				// If either id or set id, show list:
565
-			if ($this->pObj->id || $showSetId)	{
566
-				if ($this->pObj->id)	{
567
-						// Drawing tree:
568
-					$tree = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Backend\Tree\View\PageTreeView');
569
-					$perms_clause = $GLOBALS['BE_USER']->getPagePermsClause(1);
570
-					$tree->init('AND '.$perms_clause);
571
-
572
-						// Set root row:
573
-					$HTML = \AOE\Crawler\Utility\IconUtility::getIconForRecord('pages', $this->pObj->pageinfo);
574
-					$tree->tree[] = Array(
575
-						'row' => $this->pObj->pageinfo,
576
-						'HTML' => $HTML
577
-					);
578
-
579
-						// Get branch beneath:
580
-					if ($this->pObj->MOD_SETTINGS['depth'])	{
581
-						$tree->getTree($this->pObj->id, $this->pObj->MOD_SETTINGS['depth'], '');
582
-					}
583
-
584
-						// Traverse page tree:
585
-					$code = ''; $count = 0;
586
-					foreach($tree->tree as $data)	{
587
-						$code .= $this->drawLog_addRows(
588
-									$data['row'],
589
-									$data['HTML'] . \TYPO3\CMS\Backend\Utility\BackendUtility::getRecordTitle('pages',$data['row'],TRUE),
590
-									intval($this->pObj->MOD_SETTINGS['itemsPerPage'])
591
-								);
592
-						if (++$count == 1000) {
593
-							break;
594
-						}
595
-					}
596
-				} else {
597
-					$code = '';
598
-					$code.= $this->drawLog_addRows(
599
-								$showSetId,
600
-								'Set ID: '.$showSetId
601
-							);
602
-				}
603
-
604
-				if ($code)	{
605
-
606
-					$output .= '
560
+                'Status: ' . $resStatus . '<br />' .
561
+                \TYPO3\CMS\Core\Utility\DebugUtility::viewArray($q_entry);
562
+        } else {	// Show list:
563
+
564
+                // If either id or set id, show list:
565
+            if ($this->pObj->id || $showSetId)	{
566
+                if ($this->pObj->id)	{
567
+                        // Drawing tree:
568
+                    $tree = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Backend\Tree\View\PageTreeView');
569
+                    $perms_clause = $GLOBALS['BE_USER']->getPagePermsClause(1);
570
+                    $tree->init('AND '.$perms_clause);
571
+
572
+                        // Set root row:
573
+                    $HTML = \AOE\Crawler\Utility\IconUtility::getIconForRecord('pages', $this->pObj->pageinfo);
574
+                    $tree->tree[] = Array(
575
+                        'row' => $this->pObj->pageinfo,
576
+                        'HTML' => $HTML
577
+                    );
578
+
579
+                        // Get branch beneath:
580
+                    if ($this->pObj->MOD_SETTINGS['depth'])	{
581
+                        $tree->getTree($this->pObj->id, $this->pObj->MOD_SETTINGS['depth'], '');
582
+                    }
583
+
584
+                        // Traverse page tree:
585
+                    $code = ''; $count = 0;
586
+                    foreach($tree->tree as $data)	{
587
+                        $code .= $this->drawLog_addRows(
588
+                                    $data['row'],
589
+                                    $data['HTML'] . \TYPO3\CMS\Backend\Utility\BackendUtility::getRecordTitle('pages',$data['row'],TRUE),
590
+                                    intval($this->pObj->MOD_SETTINGS['itemsPerPage'])
591
+                                );
592
+                        if (++$count == 1000) {
593
+                            break;
594
+                        }
595
+                    }
596
+                } else {
597
+                    $code = '';
598
+                    $code.= $this->drawLog_addRows(
599
+                                $showSetId,
600
+                                'Set ID: '.$showSetId
601
+                            );
602
+                }
603
+
604
+                if ($code)	{
605
+
606
+                    $output .= '
607 607
 						<br /><br />
608 608
 						<input type="submit" value="'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.reloadlist').'" name="_reload" />
609 609
 						<input type="submit" value="'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.downloadcsv').'" name="_csv" />
@@ -617,20 +617,20 @@  discard block
 block discarded – undo
617 617
 
618 618
 
619 619
 						<table class="lrPadding c-list crawlerlog">'.
620
-							$this->drawLog_printTableHeader().
621
-							$code.
622
-						'</table>';
623
-				}
624
-			} else {	// Otherwise show available sets:
625
-				$setList = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows(
626
-								'set_id, count(*) as count_value, scheduled',
627
-								'tx_crawler_queue',
628
-								'',
629
-								'set_id, scheduled',
630
-								'scheduled DESC'
631
-							);
632
-
633
-				$code = '
620
+                            $this->drawLog_printTableHeader().
621
+                            $code.
622
+                        '</table>';
623
+                }
624
+            } else {	// Otherwise show available sets:
625
+                $setList = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows(
626
+                                'set_id, count(*) as count_value, scheduled',
627
+                                'tx_crawler_queue',
628
+                                '',
629
+                                'set_id, scheduled',
630
+                                'scheduled DESC'
631
+                            );
632
+
633
+                $code = '
634 634
 					<tr class="bgColor5 tableheader">
635 635
 						<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.setid').':</td>
636 636
 						<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.count').'t:</td>
@@ -638,9 +638,9 @@  discard block
 block discarded – undo
638 638
 					</tr>
639 639
 				';
640 640
 
641
-				$cc=0;
642
-				foreach($setList as $set)	{
643
-					$code.= '
641
+                $cc=0;
642
+                foreach($setList as $set)	{
643
+                    $code.= '
644 644
 						<tr class="bgColor'.($cc%2 ? '-20':'-10').'">
645 645
 							<td><a href="'.htmlspecialchars('index.php?setID='.$set['set_id']).'">'.$set['set_id'].'</a></td>
646 646
 							<td>'.$set['count_value'].'</td>
@@ -648,217 +648,217 @@  discard block
 block discarded – undo
648 648
 						</tr>
649 649
 					';
650 650
 
651
-					$cc++;
652
-				}
651
+                    $cc++;
652
+                }
653 653
 
654
-				$output .= '
654
+                $output .= '
655 655
 					<br /><br />
656 656
 					<table class="lrPadding c-list">'.
657
-						$code.
658
-					'</table>';
659
-			}
660
-		}
657
+                        $code.
658
+                    '</table>';
659
+            }
660
+        }
661 661
 
662
-		if($this->CSVExport) {
663
-			$this->outputCsvFile();
664
-		}
662
+        if($this->CSVExport) {
663
+            $this->outputCsvFile();
664
+        }
665 665
 
666
-			// Return output
667
-		return 	$output;
668
-	}
666
+            // Return output
667
+        return 	$output;
668
+    }
669 669
 
670
-	/**
671
-	 * Outputs the CSV file and sets the correct headers
672
-	 */
673
-	protected function outputCsvFile() {
670
+    /**
671
+     * Outputs the CSV file and sets the correct headers
672
+     */
673
+    protected function outputCsvFile() {
674 674
 
675
-		if (!count($this->CSVaccu)) {
676
-			$this->addWarningMessage($GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:message.canNotExportEmptyQueueToCsvText'));
677
-			return;
678
-		}
675
+        if (!count($this->CSVaccu)) {
676
+            $this->addWarningMessage($GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:message.canNotExportEmptyQueueToCsvText'));
677
+            return;
678
+        }
679 679
 
680
-		$csvLines = array();
680
+        $csvLines = array();
681 681
 
682
-			// Field names:
683
-		reset($this->CSVaccu);
684
-		$fieldNames = array_keys(current($this->CSVaccu));
685
-		$csvLines[] = \TYPO3\CMS\Core\Utility\GeneralUtility::csvValues($fieldNames);
682
+            // Field names:
683
+        reset($this->CSVaccu);
684
+        $fieldNames = array_keys(current($this->CSVaccu));
685
+        $csvLines[] = \TYPO3\CMS\Core\Utility\GeneralUtility::csvValues($fieldNames);
686 686
 
687
-			// Data:
688
-		foreach($this->CSVaccu as $row)	{
689
-			$csvLines[] = \TYPO3\CMS\Core\Utility\GeneralUtility::csvValues($row);
690
-		}
687
+            // Data:
688
+        foreach($this->CSVaccu as $row)	{
689
+            $csvLines[] = \TYPO3\CMS\Core\Utility\GeneralUtility::csvValues($row);
690
+        }
691 691
 
692
-			// Creating output header:
693
-		$mimeType = 'application/octet-stream';
694
-		Header('Content-Type: '.$mimeType);
695
-		Header('Content-Disposition: attachment; filename=CrawlerLog.csv');
692
+            // Creating output header:
693
+        $mimeType = 'application/octet-stream';
694
+        Header('Content-Type: '.$mimeType);
695
+        Header('Content-Disposition: attachment; filename=CrawlerLog.csv');
696
+
697
+            // Printing the content of the CSV lines:
698
+        echo implode(chr(13).chr(10),$csvLines);
699
+
700
+            // Exits:
701
+        exit;
702
+    }
703
+
704
+    /**
705
+     * Create the rows for display of the page tree
706
+     * For each page a number of rows are shown displaying GET variable configuration
707
+     *
708
+     * @param	array		Page row or set-id
709
+     * @param	string		Title string
710
+     * @param	int			Items per Page setting
711
+     * @return	string		HTML <tr> content (one or more)
712
+     */
713
+    function drawLog_addRows($pageRow_setId, $titleString, $itemsPerPage=10) {
714
+
715
+            // If Flush button is pressed, flush tables instead of selecting entries:
716
+
717
+        if(\TYPO3\CMS\Core\Utility\GeneralUtility::_POST('_flush')) {
718
+            $doFlush = true;
719
+            $doFullFlush = false;
720
+        } elseif(\TYPO3\CMS\Core\Utility\GeneralUtility::_POST('_flush_all')) {
721
+            $doFlush = true;
722
+            $doFullFlush = true;
723
+        } else {
724
+            $doFlush = false;
725
+            $doFullFlush = false;
726
+        }
696 727
 
697
-			// Printing the content of the CSV lines:
698
-		echo implode(chr(13).chr(10),$csvLines);
728
+            // Get result:
729
+        if (is_array($pageRow_setId))	{
730
+            $res = $this->crawlerObj->getLogEntriesForPageId($pageRow_setId['uid'], $this->pObj->MOD_SETTINGS['log_display'], $doFlush, $doFullFlush, intval($itemsPerPage));
731
+        } else {
732
+            $res = $this->crawlerObj->getLogEntriesForSetId($pageRow_setId, $this->pObj->MOD_SETTINGS['log_display'], $doFlush, $doFullFlush, intval($itemsPerPage));
733
+        }
699 734
 
700
-			// Exits:
701
-		exit;
702
-	}
735
+            // Init var:
736
+        $colSpan = 9
737
+                + ($this->pObj->MOD_SETTINGS['log_resultLog'] ? -1 : 0)
738
+                + ($this->pObj->MOD_SETTINGS['log_feVars'] ? 3 : 0);
739
+
740
+        if (count($res))	{
741
+                // Traverse parameter combinations:
742
+            $c = 0;
743
+            $content='';
744
+            foreach($res as $kk => $vv)	{
745
+
746
+                    // Title column:
747
+                if (!$c)	{
748
+                    $titleClm = '<td rowspan="'.count($res).'">'.$titleString.'</td>';
749
+                } else {
750
+                    $titleClm = '';
751
+                }
703 752
 
704
-	/**
705
-	 * Create the rows for display of the page tree
706
-	 * For each page a number of rows are shown displaying GET variable configuration
707
-	 *
708
-	 * @param	array		Page row or set-id
709
-	 * @param	string		Title string
710
-	 * @param	int			Items per Page setting
711
-	 * @return	string		HTML <tr> content (one or more)
712
-	 */
713
-	function drawLog_addRows($pageRow_setId, $titleString, $itemsPerPage=10) {
714
-
715
-			// If Flush button is pressed, flush tables instead of selecting entries:
716
-
717
-		if(\TYPO3\CMS\Core\Utility\GeneralUtility::_POST('_flush')) {
718
-			$doFlush = true;
719
-			$doFullFlush = false;
720
-		} elseif(\TYPO3\CMS\Core\Utility\GeneralUtility::_POST('_flush_all')) {
721
-			$doFlush = true;
722
-			$doFullFlush = true;
723
-		} else {
724
-			$doFlush = false;
725
-			$doFullFlush = false;
726
-		}
753
+                    // Result:
754
+                $resLog = $this->getResultLog($vv);
727 755
 
728
-			// Get result:
729
-		if (is_array($pageRow_setId))	{
730
-			$res = $this->crawlerObj->getLogEntriesForPageId($pageRow_setId['uid'], $this->pObj->MOD_SETTINGS['log_display'], $doFlush, $doFullFlush, intval($itemsPerPage));
731
-		} else {
732
-			$res = $this->crawlerObj->getLogEntriesForSetId($pageRow_setId, $this->pObj->MOD_SETTINGS['log_display'], $doFlush, $doFullFlush, intval($itemsPerPage));
733
-		}
756
+                $resStatus = $this->getResStatus($vv);
757
+                $resFeVars = $this->getResFeVars($vv);
758
+
759
+                    // Compile row:
760
+                $parameters = unserialize($vv['parameters']);
761
+
762
+                    // Put data into array:
763
+                $rowData = array();
764
+                if ($this->pObj->MOD_SETTINGS['log_resultLog'])	{
765
+                    $rowData['result_log'] = $resLog;
766
+                } else {
767
+                    $rowData['scheduled'] = ($vv['scheduled']> 0) ? \TYPO3\CMS\Backend\Utility\BackendUtility::datetime($vv['scheduled']) : ' '.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.immediate');
768
+                    $rowData['exec_time'] = $vv['exec_time'] ? \TYPO3\CMS\Backend\Utility\BackendUtility::datetime($vv['exec_time']) : '-';
769
+                }
770
+                $rowData['result_status'] = \TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($resStatus,50);
771
+                $rowData['url'] = '<a href="'.htmlspecialchars($parameters['url']).'" target="_newWIndow">'.htmlspecialchars($parameters['url']).'</a>';
772
+                $rowData['feUserGroupList'] = $parameters['feUserGroupList'];
773
+                $rowData['procInstructions'] = is_array($parameters['procInstructions']) ? implode('; ',$parameters['procInstructions']) : '';
774
+                $rowData['set_id'] = $vv['set_id'];
775
+
776
+                if ($this->pObj->MOD_SETTINGS['log_feVars']) {
777
+                    $rowData['tsfe_id'] = $resFeVars['id'];
778
+                    $rowData['tsfe_gr_list'] = $resFeVars['gr_list'];
779
+                    $rowData['tsfe_no_cache'] = $resFeVars['no_cache'];
780
+                }
781
+
782
+                $setId = intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('setID'));
783
+
784
+                $refreshIcon = $GLOBALS['BACK_PATH'] . 'gfx/refresh_n.gif';
785
+                if (version_compare(TYPO3_version,'7.0','>=')) {
786
+                    $refreshIcon = $GLOBALS['BACK_PATH'] . 'sysext/t3skin/extjs/images/grid/refresh.gif';
787
+                }
734 788
 
735
-			// Init var:
736
-		$colSpan = 9
737
-				+ ($this->pObj->MOD_SETTINGS['log_resultLog'] ? -1 : 0)
738
-				+ ($this->pObj->MOD_SETTINGS['log_feVars'] ? 3 : 0);
739
-
740
-		if (count($res))	{
741
-				// Traverse parameter combinations:
742
-			$c = 0;
743
-			$content='';
744
-			foreach($res as $kk => $vv)	{
745
-
746
-					// Title column:
747
-				if (!$c)	{
748
-					$titleClm = '<td rowspan="'.count($res).'">'.$titleString.'</td>';
749
-				} else {
750
-					$titleClm = '';
751
-				}
752
-
753
-					// Result:
754
-				$resLog = $this->getResultLog($vv);
755
-
756
-				$resStatus = $this->getResStatus($vv);
757
-				$resFeVars = $this->getResFeVars($vv);
758
-
759
-					// Compile row:
760
-				$parameters = unserialize($vv['parameters']);
761
-
762
-					// Put data into array:
763
-				$rowData = array();
764
-				if ($this->pObj->MOD_SETTINGS['log_resultLog'])	{
765
-					$rowData['result_log'] = $resLog;
766
-				} else {
767
-					$rowData['scheduled'] = ($vv['scheduled']> 0) ? \TYPO3\CMS\Backend\Utility\BackendUtility::datetime($vv['scheduled']) : ' '.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.immediate');
768
-					$rowData['exec_time'] = $vv['exec_time'] ? \TYPO3\CMS\Backend\Utility\BackendUtility::datetime($vv['exec_time']) : '-';
769
-				}
770
-				$rowData['result_status'] = \TYPO3\CMS\Core\Utility\GeneralUtility::fixed_lgd_cs($resStatus,50);
771
-				$rowData['url'] = '<a href="'.htmlspecialchars($parameters['url']).'" target="_newWIndow">'.htmlspecialchars($parameters['url']).'</a>';
772
-				$rowData['feUserGroupList'] = $parameters['feUserGroupList'];
773
-				$rowData['procInstructions'] = is_array($parameters['procInstructions']) ? implode('; ',$parameters['procInstructions']) : '';
774
-				$rowData['set_id'] = $vv['set_id'];
775
-
776
-				if ($this->pObj->MOD_SETTINGS['log_feVars']) {
777
-					$rowData['tsfe_id'] = $resFeVars['id'];
778
-					$rowData['tsfe_gr_list'] = $resFeVars['gr_list'];
779
-					$rowData['tsfe_no_cache'] = $resFeVars['no_cache'];
780
-				}
781
-
782
-				$setId = intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('setID'));
783
-
784
-				$refreshIcon = $GLOBALS['BACK_PATH'] . 'gfx/refresh_n.gif';
785
-				if (version_compare(TYPO3_version,'7.0','>=')) {
786
-					$refreshIcon = $GLOBALS['BACK_PATH'] . 'sysext/t3skin/extjs/images/grid/refresh.gif';
787
-				}
788
-
789
-					// Put rows together:
790
-				$content.= '
789
+                    // Put rows together:
790
+                $content.= '
791 791
 					<tr class="bgColor'.($c%2 ? '-20':'-10').'">
792 792
 						'.$titleClm.'
793 793
 						<td><a href="' . $this->getModuleUrl(array('qid_details' => $vv['qid'], 'setID' => $setId)) . '">'.htmlspecialchars($vv['qid']).'</a></td>
794 794
 						<td><a href="' . $this->getModuleUrl(array('qid_read' => $vv['qid'], 'setID' => $setId)) . '"><img src="' . $refreshIcon . '" width="14" hspace="1" vspace="2" height="14" border="0" title="'.htmlspecialchars('Read').'" alt="" /></a></td>';
795
-				foreach($rowData as $fKey => $value) {
795
+                foreach($rowData as $fKey => $value) {
796 796
 
797
-					if (\TYPO3\CMS\Core\Utility\GeneralUtility::inList('url',$fKey))	{
798
-						$content.= '
797
+                    if (\TYPO3\CMS\Core\Utility\GeneralUtility::inList('url',$fKey))	{
798
+                        $content.= '
799 799
 						<td>'.$value.'</td>';
800
-					} else {
801
-						$content.= '
800
+                    } else {
801
+                        $content.= '
802 802
 						<td>'.nl2br(htmlspecialchars($value)).'</td>';
803
-					}
804
-				}
805
-				$content.= '
803
+                    }
804
+                }
805
+                $content.= '
806 806
 					</tr>';
807
-				$c++;
808
-
809
-				if ($this->CSVExport)	{
810
-						// Only for CSV (adding qid and scheduled/exec_time if needed):
811
-					$rowData['result_log'] = implode('// ',explode(chr(10),$resLog));
812
-					$rowData['qid'] = $vv['qid'];
813
-					$rowData['scheduled'] = \TYPO3\CMS\Backend\Utility\BackendUtility::datetime($vv['scheduled']);
814
-					$rowData['exec_time'] = $vv['exec_time'] ? \TYPO3\CMS\Backend\Utility\BackendUtility::datetime($vv['exec_time']) : '-';
815
-					$this->CSVaccu[] = $rowData;
816
-				}
817
-			}
818
-		} else {
807
+                $c++;
808
+
809
+                if ($this->CSVExport)	{
810
+                        // Only for CSV (adding qid and scheduled/exec_time if needed):
811
+                    $rowData['result_log'] = implode('// ',explode(chr(10),$resLog));
812
+                    $rowData['qid'] = $vv['qid'];
813
+                    $rowData['scheduled'] = \TYPO3\CMS\Backend\Utility\BackendUtility::datetime($vv['scheduled']);
814
+                    $rowData['exec_time'] = $vv['exec_time'] ? \TYPO3\CMS\Backend\Utility\BackendUtility::datetime($vv['exec_time']) : '-';
815
+                    $this->CSVaccu[] = $rowData;
816
+                }
817
+            }
818
+        } else {
819 819
 
820
-				// Compile row:
821
-			$content = '
820
+                // Compile row:
821
+            $content = '
822 822
 				<tr class="bgColor-20">
823 823
 					<td>'.$titleString.'</td>
824 824
 					<td colspan="'.$colSpan.'"><em>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.noentries').'</em></td>
825 825
 				</tr>';
826
-		}
827
-
828
-		return $content;
829
-	}
826
+        }
830 827
 
831
-	/**
832
-	 * Find Fe vars
833
-	 *
834
-	 * @param array $row
835
-	 * @return array
836
-	 */
837
-	function getResFeVars($row) {
838
-		$feVars = array();
839
-
840
-		if ($row['result_data']) {
841
-			$resultData = unserialize($row['result_data']);
842
-			$requestResult = unserialize($resultData['content']);
843
-			$feVars = $requestResult['vars'];
844
-		}
828
+        return $content;
829
+    }
830
+
831
+    /**
832
+     * Find Fe vars
833
+     *
834
+     * @param array $row
835
+     * @return array
836
+     */
837
+    function getResFeVars($row) {
838
+        $feVars = array();
839
+
840
+        if ($row['result_data']) {
841
+            $resultData = unserialize($row['result_data']);
842
+            $requestResult = unserialize($resultData['content']);
843
+            $feVars = $requestResult['vars'];
844
+        }
845 845
 
846
-		return $feVars;
847
-	}
846
+        return $feVars;
847
+    }
848 848
 
849
-	/**
850
-	 * Create Table header row (log)
851
-	 *
852
-	 * @return	string		Table header
853
-	 */
854
-	function drawLog_printTableHeader()	{
849
+    /**
850
+     * Create Table header row (log)
851
+     *
852
+     * @return	string		Table header
853
+     */
854
+    function drawLog_printTableHeader()	{
855 855
 
856
-		$content = '
856
+        $content = '
857 857
 			<tr class="bgColor5 tableheader">
858 858
 				<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.pagetitle').':</td>
859 859
 				<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.qid').':</td>
860 860
 				<td>&nbsp;</td>'.
861
-				($this->pObj->MOD_SETTINGS['log_resultLog'] ? '
861
+                ($this->pObj->MOD_SETTINGS['log_resultLog'] ? '
862 862
 				<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.resultlog').':</td>' : '
863 863
 				<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.scheduledtime').':</td>
864 864
 				<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.runtime').':</td>').'
@@ -867,14 +867,14 @@  discard block
 block discarded – undo
867 867
 				<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.groups').':</td>
868 868
 				<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.procinstr').':</td>
869 869
 				<td>'.$GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.setid').':</td>'.
870
-				($this->pObj->MOD_SETTINGS['log_feVars'] ? '
870
+                ($this->pObj->MOD_SETTINGS['log_feVars'] ? '
871 871
 				<td>'.htmlspecialchars('TSFE->id').'</td>
872 872
 				<td>'.htmlspecialchars('TSFE->gr_list').'</td>
873 873
 				<td>'.htmlspecialchars('TSFE->no_cache').'</td>' : '').'
874 874
 			</tr>';
875 875
 
876
-		return $content;
877
-	}
876
+        return $content;
877
+    }
878 878
 
879 879
         /**
880 880
          * Extract the log information from the current row and retrive it as formatted string.
@@ -901,25 +901,25 @@  discard block
 block discarded – undo
901 901
                 return $content;
902 902
         }
903 903
 
904
-	function getResStatus($vv) {
905
-		if ($vv['result_data'])	{
906
-			$requestContent = unserialize($vv['result_data']);
907
-			$requestResult = unserialize($requestContent['content']);
908
-			if (is_array($requestResult)) {
909
-				if (empty($requestResult['errorlog'])) {
910
-					$resStatus = 'OK';
911
-				} else {
912
-					$resStatus = implode("\n", $requestResult['errorlog']);
913
-				}
914
-				$resLog = is_array($requestResult['log']) ?  implode(chr(10),$requestResult['log']) : '';
915
-			} else {
916
-				$resStatus = 'Error: '.substr(preg_replace('/\s+/',' ',strip_tags($requestContent['content'])),0,10000).'...';
917
-			}
918
-		} else {
919
-			$resStatus = '-';
920
-		}
921
-		return $resStatus;
922
-	}
904
+    function getResStatus($vv) {
905
+        if ($vv['result_data'])	{
906
+            $requestContent = unserialize($vv['result_data']);
907
+            $requestResult = unserialize($requestContent['content']);
908
+            if (is_array($requestResult)) {
909
+                if (empty($requestResult['errorlog'])) {
910
+                    $resStatus = 'OK';
911
+                } else {
912
+                    $resStatus = implode("\n", $requestResult['errorlog']);
913
+                }
914
+                $resLog = is_array($requestResult['log']) ?  implode(chr(10),$requestResult['log']) : '';
915
+            } else {
916
+                $resStatus = 'Error: '.substr(preg_replace('/\s+/',' ',strip_tags($requestContent['content'])),0,10000).'...';
917
+            }
918
+        } else {
919
+            $resStatus = '-';
920
+        }
921
+        return $resStatus;
922
+    }
923 923
 
924 924
 
925 925
 
@@ -928,343 +928,343 @@  discard block
 block discarded – undo
928 928
 
929 929
 
930 930
 
931
-	/*****************************
931
+    /*****************************
932 932
 	 *
933 933
 	 * CLI status display
934 934
 	 *
935 935
 	 *****************************/
936 936
 
937
-	/**
938
-	 * This method is used to show an overview about the active an the finished crawling processes
939
-	 *
940
-	 * @author Timo Schmidt
941
-	 * @param void
942
-	 * @return string
943
-	 */
944
-	protected function drawProcessOverviewAction(){
945
-
946
-		$this->runRefreshHooks();
947
-
948
-		global $BACK_PATH;
949
-		$this->makeCrawlerProcessableChecks();
950
-
951
-		$crawler = $this->findCrawler();
952
-		try {
953
-			$this->handleProcessOverviewActions();
954
-		} catch (Exception $e) {
955
-			$this->addErrorMessage($e->getMessage());
956
-		}
957
-
958
-		$offset 	= intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('offset'));
959
-		$perpage 	= 20;
960
-
961
-		$processRepository	= new tx_crawler_domain_process_repository();
962
-		$queueRepository	= new tx_crawler_domain_queue_repository();
963
-
964
-		$mode = $this->pObj->MOD_SETTINGS['processListMode'];
965
-		if ($mode == 'detail') {
966
-			$where = '';
967
-		} elseif($mode == 'simple') {
968
-			$where = 'active = 1';
969
-		}
970
-
971
-		$allProcesses 		= $processRepository->findAll('ttl','DESC', $perpage, $offset,$where);
972
-		$allCount			= $processRepository->countAll($where);
973
-
974
-		$listView			= new tx_crawler_view_process_list();
975
-		$listView->setPageId($this->pObj->id);
976
-		$listView->setIconPath($BACK_PATH.'../typo3conf/ext/crawler/template/process/res/img/');
977
-		$listView->setProcessCollection($allProcesses);
978
-		$listView->setCliPath($this->processManager->getCrawlerCliPath());
979
-		$listView->setIsCrawlerEnabled(!$crawler->getDisabled() && !$this->isErrorDetected);
980
-		$listView->setTotalUnprocessedItemCount($queueRepository->countAllPendingItems());
981
-		$listView->setAssignedUnprocessedItemCount($queueRepository->countAllAssignedPendingItems());
982
-		$listView->setActiveProcessCount($processRepository->countActive());
983
-		$listView->setMaxActiveProcessCount(tx_crawler_api::forceIntegerInRange($this->extensionSettings['processLimit'],1,99,1));
984
-		$listView->setMode($mode);
985
-
986
-		$paginationView		= new tx_crawler_view_pagination();
987
-		$paginationView->setCurrentOffset($offset);
988
-		$paginationView->setPerPage($perpage);
989
-		$paginationView->setTotalItemCount($allCount);
990
-
991
-		$output = $listView->render();
992
-
993
-		if ($paginationView->getTotalPagesCount() > 1) {
994
-			$output .= ' <br />'.$paginationView->render();
995
-		}
996
-
997
-		return $output;
998
-	}
999
-
1000
-	/**
1001
-	 * Verify that the crawler is exectuable.
1002
-	 *
1003
-	 * @access protected
1004
-	 * @return void
1005
-	 *
1006
-	 * @author Michael Klapper <[email protected]>
1007
-	 */
1008
-	protected function makeCrawlerProcessableChecks() {
1009
-		global $LANG;
1010
-
1011
-		if ($this->isCrawlerUserAvailable() === false) {
1012
-			$this->addErrorMessage($LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:message.noBeUserAvailable'));
1013
-		} elseif ($this->isCrawlerUserNotAdmin() === false) {
1014
-			$this->addErrorMessage($LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:message.beUserIsAdmin'));
1015
-		}
937
+    /**
938
+     * This method is used to show an overview about the active an the finished crawling processes
939
+     *
940
+     * @author Timo Schmidt
941
+     * @param void
942
+     * @return string
943
+     */
944
+    protected function drawProcessOverviewAction(){
945
+
946
+        $this->runRefreshHooks();
947
+
948
+        global $BACK_PATH;
949
+        $this->makeCrawlerProcessableChecks();
950
+
951
+        $crawler = $this->findCrawler();
952
+        try {
953
+            $this->handleProcessOverviewActions();
954
+        } catch (Exception $e) {
955
+            $this->addErrorMessage($e->getMessage());
956
+        }
1016 957
 
1017
-		if ($this->isPhpForkAvailable() === false) {
1018
-			$this->addErrorMessage($LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:message.noPhpForkAvailable'));
1019
-		}
958
+        $offset 	= intval(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('offset'));
959
+        $perpage 	= 20;
1020 960
 
1021
-		$exitCode = 0;
1022
-		$out = array();
1023
-		exec(escapeshellcmd($this->extensionSettings['phpPath'] . ' -v'), $out, $exitCode);
1024
-		if ($exitCode > 0) {
1025
-			$this->addErrorMessage(sprintf($LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:message.phpBinaryNotFound'), htmlspecialchars($this->extensionSettings['phpPath'])));
1026
-		}
1027
-	}
1028
-
1029
-	/**
1030
-	 * Indicate that the required PHP method "popen" is
1031
-	 * available in the system.
1032
-	 *
1033
-	 * @access protected
1034
-	 * @return boolean
1035
-	 *
1036
-	 * @author Michael Klapper <[email protected]>
1037
-	 */
1038
-	protected function isPhpForkAvailable() {
1039
-		return function_exists('popen');
1040
-	}
1041
-
1042
-	/**
1043
-	 * Indicate that the required be_user "_cli_crawler" is
1044
-	 * global available in the system.
1045
-	 *
1046
-	 * @access protected
1047
-	 * @return boolean
1048
-	 *
1049
-	 * @author Michael Klapper <[email protected]>
1050
-	 */
1051
-	protected function isCrawlerUserAvailable() {
1052
-		$isAvailable = false;
1053
-		$userArray = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecordsByField('be_users', 'username', '_cli_crawler');
961
+        $processRepository	= new tx_crawler_domain_process_repository();
962
+        $queueRepository	= new tx_crawler_domain_queue_repository();
1054 963
 
1055
-		if (is_array($userArray))
1056
-			$isAvailable = true;
1057
-
1058
-		return $isAvailable;
1059
-	}
964
+        $mode = $this->pObj->MOD_SETTINGS['processListMode'];
965
+        if ($mode == 'detail') {
966
+            $where = '';
967
+        } elseif($mode == 'simple') {
968
+            $where = 'active = 1';
969
+        }
1060 970
 
1061
-	/**
1062
-	 * Indicate that the required be_user "_cli_crawler" is
1063
-	 * has no admin rights.
1064
-	 *
1065
-	 * @access protected
1066
-	 * @return boolean
1067
-	 *
1068
-	 * @author Michael Klapper <[email protected]>
1069
-	 */
1070
-	protected function isCrawlerUserNotAdmin() {
1071
-		$isAvailable = false;
1072
-		$userArray = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecordsByField('be_users', 'username', '_cli_crawler');
971
+        $allProcesses 		= $processRepository->findAll('ttl','DESC', $perpage, $offset,$where);
972
+        $allCount			= $processRepository->countAll($where);
973
+
974
+        $listView			= new tx_crawler_view_process_list();
975
+        $listView->setPageId($this->pObj->id);
976
+        $listView->setIconPath($BACK_PATH.'../typo3conf/ext/crawler/template/process/res/img/');
977
+        $listView->setProcessCollection($allProcesses);
978
+        $listView->setCliPath($this->processManager->getCrawlerCliPath());
979
+        $listView->setIsCrawlerEnabled(!$crawler->getDisabled() && !$this->isErrorDetected);
980
+        $listView->setTotalUnprocessedItemCount($queueRepository->countAllPendingItems());
981
+        $listView->setAssignedUnprocessedItemCount($queueRepository->countAllAssignedPendingItems());
982
+        $listView->setActiveProcessCount($processRepository->countActive());
983
+        $listView->setMaxActiveProcessCount(tx_crawler_api::forceIntegerInRange($this->extensionSettings['processLimit'],1,99,1));
984
+        $listView->setMode($mode);
985
+
986
+        $paginationView		= new tx_crawler_view_pagination();
987
+        $paginationView->setCurrentOffset($offset);
988
+        $paginationView->setPerPage($perpage);
989
+        $paginationView->setTotalItemCount($allCount);
990
+
991
+        $output = $listView->render();
992
+
993
+        if ($paginationView->getTotalPagesCount() > 1) {
994
+            $output .= ' <br />'.$paginationView->render();
995
+        }
1073 996
 
1074
-		if (is_array($userArray) && $userArray[0]['admin'] == 0)
1075
-			$isAvailable = true;
997
+        return $output;
998
+    }
999
+
1000
+    /**
1001
+     * Verify that the crawler is exectuable.
1002
+     *
1003
+     * @access protected
1004
+     * @return void
1005
+     *
1006
+     * @author Michael Klapper <[email protected]>
1007
+     */
1008
+    protected function makeCrawlerProcessableChecks() {
1009
+        global $LANG;
1010
+
1011
+        if ($this->isCrawlerUserAvailable() === false) {
1012
+            $this->addErrorMessage($LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:message.noBeUserAvailable'));
1013
+        } elseif ($this->isCrawlerUserNotAdmin() === false) {
1014
+            $this->addErrorMessage($LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:message.beUserIsAdmin'));
1015
+        }
1076 1016
 
1077
-		return $isAvailable;
1078
-	}
1017
+        if ($this->isPhpForkAvailable() === false) {
1018
+            $this->addErrorMessage($LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:message.noPhpForkAvailable'));
1019
+        }
1079 1020
 
1080
-	/**
1081
-	 * Method to handle incomming actions of the process overview
1082
-	 *
1083
-	 * @param void
1084
-	 * @return void
1085
-	 */
1086
-	protected function handleProcessOverviewActions(){
1087
-
1088
-		$crawler = $this->findCrawler();
1089
-
1090
-		switch (\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('action')) {
1091
-			case 'stopCrawling' :
1092
-				//set the cli status to disable (all processes will be terminated)
1093
-				$crawler->setDisabled(true);
1094
-				break;
1095
-			case 'resumeCrawling' :
1096
-				//set the cli status to end (all processes will be terminated)
1097
-				$crawler->setDisabled(false);
1098
-				break;
1099
-			case 'addProcess' :
1100
-				$handle = $this->processManager->startProcess();
1101
-				if ($handle === false) {
1102
-					throw new Exception($GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.newprocesserror'));
1103
-				}
1104
-				$this->addNoticeMessage($GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.newprocess'));
1105
-				break;
1106
-		}
1107
-	}
1021
+        $exitCode = 0;
1022
+        $out = array();
1023
+        exec(escapeshellcmd($this->extensionSettings['phpPath'] . ' -v'), $out, $exitCode);
1024
+        if ($exitCode > 0) {
1025
+            $this->addErrorMessage(sprintf($LANG->sL('LLL:EXT:crawler/modfunc1/locallang.xml:message.phpBinaryNotFound'), htmlspecialchars($this->extensionSettings['phpPath'])));
1026
+        }
1027
+    }
1028
+
1029
+    /**
1030
+     * Indicate that the required PHP method "popen" is
1031
+     * available in the system.
1032
+     *
1033
+     * @access protected
1034
+     * @return boolean
1035
+     *
1036
+     * @author Michael Klapper <[email protected]>
1037
+     */
1038
+    protected function isPhpForkAvailable() {
1039
+        return function_exists('popen');
1040
+    }
1041
+
1042
+    /**
1043
+     * Indicate that the required be_user "_cli_crawler" is
1044
+     * global available in the system.
1045
+     *
1046
+     * @access protected
1047
+     * @return boolean
1048
+     *
1049
+     * @author Michael Klapper <[email protected]>
1050
+     */
1051
+    protected function isCrawlerUserAvailable() {
1052
+        $isAvailable = false;
1053
+        $userArray = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecordsByField('be_users', 'username', '_cli_crawler');
1054
+
1055
+        if (is_array($userArray))
1056
+            $isAvailable = true;
1057
+
1058
+        return $isAvailable;
1059
+    }
1060
+
1061
+    /**
1062
+     * Indicate that the required be_user "_cli_crawler" is
1063
+     * has no admin rights.
1064
+     *
1065
+     * @access protected
1066
+     * @return boolean
1067
+     *
1068
+     * @author Michael Klapper <[email protected]>
1069
+     */
1070
+    protected function isCrawlerUserNotAdmin() {
1071
+        $isAvailable = false;
1072
+        $userArray = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecordsByField('be_users', 'username', '_cli_crawler');
1073
+
1074
+        if (is_array($userArray) && $userArray[0]['admin'] == 0)
1075
+            $isAvailable = true;
1076
+
1077
+        return $isAvailable;
1078
+    }
1079
+
1080
+    /**
1081
+     * Method to handle incomming actions of the process overview
1082
+     *
1083
+     * @param void
1084
+     * @return void
1085
+     */
1086
+    protected function handleProcessOverviewActions(){
1087
+
1088
+        $crawler = $this->findCrawler();
1089
+
1090
+        switch (\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('action')) {
1091
+            case 'stopCrawling' :
1092
+                //set the cli status to disable (all processes will be terminated)
1093
+                $crawler->setDisabled(true);
1094
+                break;
1095
+            case 'resumeCrawling' :
1096
+                //set the cli status to end (all processes will be terminated)
1097
+                $crawler->setDisabled(false);
1098
+                break;
1099
+            case 'addProcess' :
1100
+                $handle = $this->processManager->startProcess();
1101
+                if ($handle === false) {
1102
+                    throw new Exception($GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.newprocesserror'));
1103
+                }
1104
+                $this->addNoticeMessage($GLOBALS['LANG']->sL('LLL:EXT:crawler/modfunc1/locallang.xml:labels.newprocess'));
1105
+                break;
1106
+        }
1107
+    }
1108 1108
 
1109 1109
 
1110 1110
 
1111 1111
 
1112
-	/**
1113
-	 * Returns the singleton instance of the crawler.
1114
-	 *
1115
-	 * @param void
1116
-	 * @return tx_crawler_lib crawler object
1117
-	 * @author Timo Schmidt <[email protected]>
1118
-	 */
1119
-	protected function findCrawler(){
1120
-		if(!$this->crawlerObj instanceof tx_crawler_lib){
1121
-			$this->crawlerObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_crawler_lib');
1122
-		}
1123
-		return $this->crawlerObj;
1124
-	}
1112
+    /**
1113
+     * Returns the singleton instance of the crawler.
1114
+     *
1115
+     * @param void
1116
+     * @return tx_crawler_lib crawler object
1117
+     * @author Timo Schmidt <[email protected]>
1118
+     */
1119
+    protected function findCrawler(){
1120
+        if(!$this->crawlerObj instanceof tx_crawler_lib){
1121
+            $this->crawlerObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_crawler_lib');
1122
+        }
1123
+        return $this->crawlerObj;
1124
+    }
1125 1125
 
1126 1126
 
1127 1127
 
1128
-	/*****************************
1128
+    /*****************************
1129 1129
 	 *
1130 1130
 	 * General Helper Functions
1131 1131
 	 *
1132 1132
 	 *****************************/
1133 1133
 
1134
-	/**
1135
-	 * This method is used to add a message to the internal queue
1136
-	 *
1137
-	 * NOTE:
1138
-	 * This method is basesd on TYPO3 4.3 or higher!
1139
-	 *
1140
-	 * @param  string  the message itself
1141
-	 * @param  integer message level (-1 = success (default), 0 = info, 1 = notice, 2 = warning, 3 = error)
1142
-	 *
1143
-	 * @access private
1144
-	 * @return void
1145
-	 */
1146
-	private function addMessage($message, $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::OK) {
1147
-		$message = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(
1148
-			'TYPO3\CMS\Core\Messaging\FlashMessage',
1149
-			$message,
1150
-			'',
1151
-			$severity
1152
-		);
1153
-
1154
-		// TODO:
1155
-		/** @var \TYPO3\CMS\Core\Messaging\FlashMessageService $flashMessageService */
1156
-		$flashMessageService = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessageService');
1157
-		$flashMessageService->getMessageQueueByIdentifier()->addMessage($message);
1158
-	}
1159
-
1160
-	/**
1161
-	 * Add notice message to the user interface.
1162
-	 *
1163
-	 * NOTE:
1164
-	 * This method is basesd on TYPO3 4.3 or higher!
1165
-	 *
1166
-	 * @param string The message
1167
-	 *
1168
-	 * @access protected
1169
-	 * @return void
1170
-	 *
1171
-	 * @author Michael Klapper <[email protected]>
1172
-	 */
1173
-	protected function addNoticeMessage($message) {
1174
-		$this->addMessage($message, \TYPO3\CMS\Core\Messaging\FlashMessage::NOTICE);
1175
-	}
1176
-
1177
-	/**
1178
-	 * Add error message to the user interface.
1179
-	 *
1180
-	 * NOTE:
1181
-	 * This method is basesd on TYPO3 4.3 or higher!
1182
-	 *
1183
-	 * @param string The message
1184
-	 *
1185
-	 * @access protected
1186
-	 * @return void
1187
-	 *
1188
-	 * @author Michael Klapper <[email protected]>
1189
-	 */
1190
-	protected function addErrorMessage($message) {
1191
-		$this->isErrorDetected = TRUE;
1192
-		$this->addMessage($message, \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
1193
-	}
1194
-
1195
-	/**
1196
-	 * Add error message to the user interface.
1197
-	 *
1198
-	 * NOTE:
1199
-	 * This method is basesd on TYPO3 4.3 or higher!
1200
-	 *
1201
-	 * @param string The message
1202
-	 *
1203
-	 * @access protected
1204
-	 * @return void
1205
-	 *
1206
-	 * @author Michael Klapper <[email protected]>
1207
-	 */
1208
-	protected function addWarningMessage($message) {
1209
-		$this->addMessage($message, \TYPO3\CMS\Core\Messaging\FlashMessage::WARNING);
1210
-	}
1211
-
1212
-	/**
1213
-	 * Create selector box
1214
-	 *
1215
-	 * @param	array		Options key(value) => label pairs
1216
-	 * @param	string		Selector box name
1217
-	 * @param	string		Selector box value (array for multiple...)
1218
-	 * @param	boolean		If set, will draw multiple box.
1219
-	 * @return	string		HTML select element
1220
-	 */
1221
-	function selectorBox($optArray, $name, $value, $multiple)	{
1222
-
1223
-		$options = array();
1224
-		foreach($optArray as $key => $val)	{
1225
-			$options[] = '
1134
+    /**
1135
+     * This method is used to add a message to the internal queue
1136
+     *
1137
+     * NOTE:
1138
+     * This method is basesd on TYPO3 4.3 or higher!
1139
+     *
1140
+     * @param  string  the message itself
1141
+     * @param  integer message level (-1 = success (default), 0 = info, 1 = notice, 2 = warning, 3 = error)
1142
+     *
1143
+     * @access private
1144
+     * @return void
1145
+     */
1146
+    private function addMessage($message, $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::OK) {
1147
+        $message = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(
1148
+            'TYPO3\CMS\Core\Messaging\FlashMessage',
1149
+            $message,
1150
+            '',
1151
+            $severity
1152
+        );
1153
+
1154
+        // TODO:
1155
+        /** @var \TYPO3\CMS\Core\Messaging\FlashMessageService $flashMessageService */
1156
+        $flashMessageService = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessageService');
1157
+        $flashMessageService->getMessageQueueByIdentifier()->addMessage($message);
1158
+    }
1159
+
1160
+    /**
1161
+     * Add notice message to the user interface.
1162
+     *
1163
+     * NOTE:
1164
+     * This method is basesd on TYPO3 4.3 or higher!
1165
+     *
1166
+     * @param string The message
1167
+     *
1168
+     * @access protected
1169
+     * @return void
1170
+     *
1171
+     * @author Michael Klapper <[email protected]>
1172
+     */
1173
+    protected function addNoticeMessage($message) {
1174
+        $this->addMessage($message, \TYPO3\CMS\Core\Messaging\FlashMessage::NOTICE);
1175
+    }
1176
+
1177
+    /**
1178
+     * Add error message to the user interface.
1179
+     *
1180
+     * NOTE:
1181
+     * This method is basesd on TYPO3 4.3 or higher!
1182
+     *
1183
+     * @param string The message
1184
+     *
1185
+     * @access protected
1186
+     * @return void
1187
+     *
1188
+     * @author Michael Klapper <[email protected]>
1189
+     */
1190
+    protected function addErrorMessage($message) {
1191
+        $this->isErrorDetected = TRUE;
1192
+        $this->addMessage($message, \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
1193
+    }
1194
+
1195
+    /**
1196
+     * Add error message to the user interface.
1197
+     *
1198
+     * NOTE:
1199
+     * This method is basesd on TYPO3 4.3 or higher!
1200
+     *
1201
+     * @param string The message
1202
+     *
1203
+     * @access protected
1204
+     * @return void
1205
+     *
1206
+     * @author Michael Klapper <[email protected]>
1207
+     */
1208
+    protected function addWarningMessage($message) {
1209
+        $this->addMessage($message, \TYPO3\CMS\Core\Messaging\FlashMessage::WARNING);
1210
+    }
1211
+
1212
+    /**
1213
+     * Create selector box
1214
+     *
1215
+     * @param	array		Options key(value) => label pairs
1216
+     * @param	string		Selector box name
1217
+     * @param	string		Selector box value (array for multiple...)
1218
+     * @param	boolean		If set, will draw multiple box.
1219
+     * @return	string		HTML select element
1220
+     */
1221
+    function selectorBox($optArray, $name, $value, $multiple)	{
1222
+
1223
+        $options = array();
1224
+        foreach($optArray as $key => $val)	{
1225
+            $options[] = '
1226 1226
 				<option value="'.htmlspecialchars($key).'"'.((!$multiple && !strcmp($value,$key)) || ($multiple && in_array($key,(array)$value))?' selected="selected"':'').'>'.htmlspecialchars($val).'</option>';
1227
-		}
1228
-
1229
-		$output = '<select name="'.htmlspecialchars($name.($multiple?'[]':'')).'"'.($multiple ? ' multiple="multiple" size="'.count($options).'"' : '').'>'.implode('',$options).'</select>';
1230
-
1231
-		return $output;
1232
-	}
1233
-
1234
-	/**
1235
-	 * Activate hooks
1236
-	 *
1237
-	 * @return	void
1238
-	 */
1239
-	function runRefreshHooks() {
1240
-		$crawlerLib = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_crawler_lib');
1241
-		if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['crawler']['refresh_hooks'])) {
1242
-			foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['crawler']['refresh_hooks'] as $objRef) {
1243
-				$hookObj = &\TYPO3\CMS\Core\Utility\GeneralUtility::getUserObj($objRef);
1244
-				if (is_object($hookObj)) {
1245
-					$hookObj->crawler_init($crawlerLib);
1246
-				}
1247
-			}
1248
-		}
1227
+        }
1249 1228
 
1250
-	}
1229
+        $output = '<select name="'.htmlspecialchars($name.($multiple?'[]':'')).'"'.($multiple ? ' multiple="multiple" size="'.count($options).'"' : '').'>'.implode('',$options).'</select>';
1230
+
1231
+        return $output;
1232
+    }
1233
+
1234
+    /**
1235
+     * Activate hooks
1236
+     *
1237
+     * @return	void
1238
+     */
1239
+    function runRefreshHooks() {
1240
+        $crawlerLib = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tx_crawler_lib');
1241
+        if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['crawler']['refresh_hooks'])) {
1242
+            foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['crawler']['refresh_hooks'] as $objRef) {
1243
+                $hookObj = &\TYPO3\CMS\Core\Utility\GeneralUtility::getUserObj($objRef);
1244
+                if (is_object($hookObj)) {
1245
+                    $hookObj->crawler_init($crawlerLib);
1246
+                }
1247
+            }
1248
+        }
1251 1249
 
1252
-	/**
1253
-	 * Returns the URL to the current module, including $_GET['id'].
1254
-	 *
1255
-	 * @param array $urlParameters optional parameters to add to the URL
1256
-	 * @return string
1257
-	 */
1258
-	protected function getModuleUrl(array $urlParameters = array()) {
1259
-	    if ($this->pObj->id) {
1260
-	        $urlParameters = array_merge($urlParameters, array(
1250
+    }
1251
+
1252
+    /**
1253
+     * Returns the URL to the current module, including $_GET['id'].
1254
+     *
1255
+     * @param array $urlParameters optional parameters to add to the URL
1256
+     * @return string
1257
+     */
1258
+    protected function getModuleUrl(array $urlParameters = array()) {
1259
+        if ($this->pObj->id) {
1260
+            $urlParameters = array_merge($urlParameters, array(
1261 1261
                 'id' => $this->pObj->id
1262 1262
             ));
1263
-	    }
1263
+        }
1264 1264
         return \TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('M'), $urlParameters);
1265
-	}
1265
+    }
1266 1266
 }
1267 1267
 
1268 1268
 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/crawler/modfunc1/class.tx_crawler_modfunc1.php'])	{
1269
-	include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/crawler/modfunc1/class.tx_crawler_modfunc1.php']);
1269
+    include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/crawler/modfunc1/class.tx_crawler_modfunc1.php']);
1270 1270
 }
Please login to merge, or discard this patch.