|
|
@@ -492,19 +492,31 @@ class BxDolPage extends BxDolFactory implements iBxDolFactoryObject, iBxDolRepla
|
|
|
static public function getEmbedData ($sUrl)
|
|
|
{
|
|
|
$sUrl = urldecode($sUrl);
|
|
|
- $aUrl = parse_url($sUrl);
|
|
|
+ $aUrl = parse_url(str_replace(BX_DOL_URL_ROOT, '', $sUrl));
|
|
|
$aUri = explode('/', $aUrl['path']);
|
|
|
$aParams = [];
|
|
|
+ $sUri = $aUri[1];
|
|
|
+
|
|
|
+ if ('/' !== $aUrl['path'] && getParam('permalinks_seo_links')){
|
|
|
+ $sUri = $aUri[0];
|
|
|
+ $sPageName = BxDolPageQuery::getPageObjectNameByURI($sUri);
|
|
|
+ $aPage = $sPageName ? BxDolPageQuery::getPageObject($sPageName) : false;
|
|
|
+ if (!empty($aUri[1])) {
|
|
|
+ $r = BxDolPageQuery::getSeoLink($aPage['module'], $sUri, ['uri' => $aUri[1]]);
|
|
|
+ if ($r)
|
|
|
+ $aParams[$r['param_name']] = $r['param_value'];
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
if (isset($aUrl['query']))
|
|
|
parse_str($aUrl['query'], $aParams);
|
|
|
|
|
|
- if (!$aUri || empty($aUri[2]))
|
|
|
+ if (!$aUri || empty($sUri))
|
|
|
return [];
|
|
|
|
|
|
$sAuthorName = $sAuthorUrl = $sThumb = '';
|
|
|
if (isset($aParams['id'])){
|
|
|
- $sContentInfoObject = BxDolPageQuery::getContentInfoObjectNameByURI($aUri[2]);
|
|
|
+ $sContentInfoObject = BxDolPageQuery::getContentInfoObjectNameByURI($sUri);
|
|
|
$oContentInfo = BxDolContentInfo::getObjectInstance($sContentInfoObject);
|
|
|
|
|
|
$sTitle = $oContentInfo->getContentTitle($aParams['id']);
|
|
|
@@ -516,9 +528,9 @@ class BxDolPage extends BxDolFactory implements iBxDolFactoryObject, iBxDolRepla
|
|
|
|
|
|
}
|
|
|
else{
|
|
|
- $oPage = BxDolPage::getObjectInstanceByURI($aUri[2], false, true);
|
|
|
+ $oPage = BxDolPage::getObjectInstanceByURI($sUri, false, true);
|
|
|
$aPage = $oPage->getObject();
|
|
|
- $sTitle = _t($aPage['title']);
|
|
|
+ $sTitle = $oPage->_getPageTitle();
|
|
|
$sHtml = BxDolTemplate::getInstance()->parseHtmlByName('embed.html', [
|
|
|
'title' => $sTitle,
|
|
|
'url' => BX_DOL_URL_ROOT . 'page.php?a=embed&o=' . $oPage->getName()
|