Проблема совместимости pdf_generator2 и RealURL в Typo3

При использовании обеих расширений обнаружилась проблема. При создании PDF-файлов ссылкой /another_page/print.pdf в полученном файле вместо содержимого странички появлялось содержимое первой страницы сайта. Анализ кода показал, что причиной оказалась функция в pdf_generator2, отвечающая за перехват альтернативных форматов вызова PDF-генератора, в том числе по расширению .pdf.

Ну а так как этим расширением уже занимается RealURL, то PDF-генератору в этой альтернативной функции остаются только «рожки да ножки». ID страницы заменяется словом «print», а позже превращается в Integer. А PHP, как известно, из всех символьных значений при смене типа в Integer делает ноль. То есть из ID=»print» получается ID=0. А на ID = 0 у меня ссылка на главную страницу. Вот и вся проблема.

Чтобы не долго не философствовать по-Чернышевскому, я несколько модифицировал проблемную функцию tslib_fe_checkAlternativeIdMethods, отключив в ней «самоуправство»
Получилось вот что:

function tslib_fe_checkAlternativeIdMethods($params, $ref)	{
		$debug = FALSE;
		$useOriginalCode = FALSE;

		$pObj = &$params['pObj'];

		if (t3lib_div::int_from_ver($GLOBALS["TYPO_VERSION"])>= 3007000) {
			$siteScript = t3lib_div::getIndpEnv('TYPO3_SITE_SCRIPT');
		} else {
			$siteScript = $GLOBALS["HTTP_SERVER_VARS"]["REQUEST_URI"];
		}
		if ($siteScript && substr($siteScript,0,9)!='index.php')	{		// If there has been a redirect (basically; we arrived here otherwise than via "index.php" in the URL) this can happend either due to a CGI-script or because of reWrite rule. Earlier we used $_SERVER['REDIRECT_URL'] to check but
			$uParts = parse_url($siteScript);	// Parse the path:
			$requestFilename = trim(ereg_replace('.*\/','',$uParts['path']));		// This is the filename of the script/simulated pdf-file.
			$parts = explode('.',ereg_replace('.*\/','',$requestFilename));
			$pCount = count($parts);

			$debugArray = array(
				'$siteScript' => $siteScript,
				'parse_url($siteScript)' => parse_url($siteScript),
				'$requestFilename' => $requestFilename,
				'$parts of $requestFilename' => var_export($parts,true),
				'count($parts)' => count($parts),
				'$pObj->type (not modificated)' => $pObj->type,
				'$pObj->id (not modificated)' => $pObj->id
			);

			$NewType = 'Not modified';
			$NewId = 'Not modified';

			$debugArray['$parts[$pCount-1] = '] = $parts[$pCount-1];
			$debugArray['$pCount = '] = $pCount;

			if ($parts[$pCount-1]=='pdf')	{
				if ($pCount>2)	{
					$NewType = intval($parts[$pCount-2]);
					$NewId	 = $parts[$pCount-3];
				} else {
					$NewType = $GLOBALS['pdf_generator2_parameters']['typeNum'];
					$NewId	 = $parts[0];
				}
				if ($useOriginalCode) {
					$pObj->type = $NewType;
					$pObj->id = $NewId;
				}
			}

			$debugArray['$pObj->type (modificated)'] = $NewType;
			$debugArray['$pObj->id (modificated)'] = $NewId;

			if ($debug) {
				$fd=fopen('typo3temp/html2ps_UrlParameters.html', 'wb');
				fwrite($fd,t3lib_div::view_array($debugArray));
				fclose($fd);
			}
		}
	}

Теперь всё работает как надо.