/** * Given QTextStyle-generated HTML content, this will return the same content, with any wiki-based links * reconciled against actual data in the wiki database. * @param string $strContent * @return string */ public static function DisplayWithWikiLinks($strContent) { // Fix up for images $intCount = preg_match_all('/<wikiImage position="(Left|Right)" path="([a-z0-9\\_\\/]*)"\\/>/', $strContent, $arrMatches); for ($intMatch = 0; $intMatch < $intCount; $intMatch++) { $strTagToReplace = $arrMatches[0][$intMatch]; $strPosition = $arrMatches[1][$intMatch]; $strPath = $arrMatches[2][$intMatch]; $objWikiItem = WikiItem::LoadByPathWikiItemTypeId($strPath, WikiItemType::Image); if ($objWikiItem && $objWikiItem->CurrentWikiVersion && $objWikiItem->CurrentWikiVersion->WikiImage) { $strReplacement = sprintf('<div class="wikiThumb wikiThumb%s"><a href="/wiki/image:%s" title="View This Image"><img src="%s"/></a></div>', $strPosition, substr($strPath, 1), $objWikiItem->CurrentWikiVersion->WikiImage->GetThumbPath()); } else { if ($objWikiItem) { $strReplacement = sprintf('<div class="wikiThumb wikiThumb%s"><a href="/wiki/image:%s" title="Create This Image"><img src="/images/no_image.png"/></a></div>', $strPosition, substr($strPath, 1)); } else { $strReplacement = sprintf('<div class="wikiThumb wikiThumb%s"><a href="/wiki/edit.php/image:%s" title="Create This Image"><img src="/images/no_image.png"/></a></div>', $strPosition, substr($strPath, 1)); } } $strContent = str_replace($strTagToReplace, $strReplacement, $strContent); } // Fix up for files $intCount = preg_match_all('/<wikiFile path="([a-z0-9\\_\\/]*)"\\/>/', $strContent, $arrMatches); for ($intMatch = 0; $intMatch < $intCount; $intMatch++) { $strTagToReplace = $arrMatches[0][$intMatch]; $strPath = $arrMatches[1][$intMatch]; $objWikiItem = WikiItem::LoadByPathWikiItemTypeId($strPath, WikiItemType::File); if ($objWikiItem && $objWikiItem->CurrentWikiVersion && $objWikiItem->CurrentWikiVersion->WikiFile) { $strContent = str_replace($strTagToReplace, $objWikiItem->CurrentWikiVersion->WikiFile->DisplayDownloadLink(true), $strContent); } else { $strContent = str_replace($strTagToReplace, WikiFile::DisplayUploadNewLinkForPath($strPath), $strContent); } } return $strContent; }