Fixing internal links in code reader
This commit is contained in:
@@ -245,11 +245,20 @@ class ToolBox
|
||||
{
|
||||
$sServerPath = substr(str_replace(array('http://', 'https://'), '', $_GET['serv_name']), 0, -1);
|
||||
|
||||
//building all replacements possibilities
|
||||
foreach(Databap::$TYPES as $sType=>$asTypeInfo)
|
||||
{
|
||||
$sPage = Databap::$HASH_TO_PAGE[$sType];
|
||||
$asHashes = array_keys(Databap::$HASH_TO_PAGE, $sPage);
|
||||
foreach($asHashes as $sHash) $asReplacements[preg_quote($sHash)] = $sPage;
|
||||
$asReplacements[preg_quote(Databap::$PAGE_TITLES[$sPage])] = $sPage;
|
||||
}
|
||||
|
||||
//Phase 1 : Identify internal links : merge cases /#code-1 and code 1, destroy link.
|
||||
$asPatterns = array();
|
||||
foreach(Databap::$HASH_TO_PAGE as $sAlt=>$sPage)
|
||||
foreach($asReplacements as $sHash=>$sPage)
|
||||
{
|
||||
$asPatterns['`(^|\ )(https?://|)'.$sServerPath.'/?\#'.$sAlt.'\-([\d]+)`sui'] = '$1$4'.$sPage.' $3';
|
||||
$asPatterns['`(^|\ )(https?://|)'.$sServerPath.'/?\#'.$sHash.'\-([\d]+)`sui'] = '$1$4'.$sPage.' $3';
|
||||
}
|
||||
$sText = preg_replace(array_keys($asPatterns), array_values($asPatterns), $sText);
|
||||
|
||||
@@ -260,19 +269,21 @@ class ToolBox
|
||||
|
||||
//Phase 3: rebuild link
|
||||
$asPatterns = array();
|
||||
foreach(Databap::$HASH_TO_PAGE as $sAlt=>$sPage)
|
||||
foreach($asReplacements as $sHash=>$sPage)
|
||||
{
|
||||
if(mb_strlen($sAlt)>1)
|
||||
if(mb_strlen($sHash)>1)
|
||||
{
|
||||
$sTitle = Databap::$PAGE_TITLES[$sPage];
|
||||
$asPatterns['`(^|\ )'.$sAlt.'\ ([\d]+)(\ |$)`sui'] = '$1<a href="#'.$sPage.'-$2" target="_blank" class="internal_link round"><i class="fa fa-inline fa-c-'.$sPage.'"></i>'.$sTitle.' n°$2</a>$3';
|
||||
if($sPage=='table') $asPatterns['`(^|\ )'.$sAlt.'\ ([_A-Z0-9]+)(\ |$)`su'] = '$1<a href="#'.$sPage.'-$2" target="_blank" class="internal_link round"><i class="fa fa-inline fa-c-'.$sPage.'"></i>'.$sTitle.' $2</a>$3';
|
||||
|
||||
//Type + phrase
|
||||
if($sPage=='table') $asPatterns['`(^|\ |\*)(?i)'.$sHash.'(?-i)\ ([_A-Z0-9]+)(\ |$)`su'] = '$1<a href="#'.$sPage.'-$2" target="_blank" class="internal_link round"><i class="fa fa-inline fa-c-'.$sPage.'"></i><span class="type">'.$sTitle.'</span> <span class="item">$2</span></a>$3';
|
||||
|
||||
//Type + id
|
||||
$asPatterns['`(^|\ |\*)'.$sHash.'\ ([\d]+)(\ |$)`sui'] = '$1<a href="#'.$sPage.'-$2" target="_blank" class="internal_link round"><i class="fa fa-inline fa-c-'.$sPage.'"></i><span class="type">'.$sTitle.'</span> n°<span class="item">$2</span></a>$3';
|
||||
}
|
||||
}
|
||||
$sText = preg_replace(array_keys($asPatterns), array_values($asPatterns), $sText);
|
||||
|
||||
//@file_put_contents('log.html', "\n\n".date('r')."\n".$test, FILE_APPEND);
|
||||
|
||||
return $sText;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user