| Server IP : 31.214.178.114 / Your IP : 216.73.217.70 Web Server : Apache System : Linux hostingsrv84.dondominio.com 6.12.96+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.96-1 (2026-07-20) x86_64 User : ( 946130) PHP Version : 8.5.8 Disable Function : system,passthru,popen,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,exec,ini_alter,show_source,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,mail,eval MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /hosting/www/amppmadrid.es/public/sitepro/src/blog/ |
Upload File : |
<?php
class BlogModule {
/** @var stdClass */
public static $initData;
/** @var SiteInfo */
public static $siteInfo;
/** @var BlogNavigation */
public static $blogNav;
/** @var string */
public static $blogAnchor;
/** @var string */
public static $sessionKey;
public static function parseRequest($requestInfo) {
$request = self::handleBlogNav($requestInfo);
return '';
}
public static function init($data, SiteInfo $siteInfo) {
@setlocale(LC_CTYPE, 'C.UTF-8');
self::$initData = $data;
self::$siteInfo = $siteInfo;
self::$sessionKey = '__BLOG_DATA_'.$siteInfo->siteId.'__';
}
private static function handleBlogNav($reqInf) {
$forcedHome = false;
if (!$reqInf->page) {
foreach (self::$siteInfo->pages as $li) {
if ($li['id'] != self::$siteInfo->homePageId) continue;
$reqInf->page = $li;
$forcedHome = true;
break;
}
}
self::$blogNav = new BlogNavigation();
self::$blogNav->args = $reqInf->urlArgs;
self::$blogNav->lang = $reqInf->lang;
self::$blogNav->defLang = self::$siteInfo->defLang;
self::$blogNav->baseLang = self::$siteInfo->baseLang;
self::$blogNav->basePath = self::$siteInfo->baseDir;
self::$blogNav->baseUrl = preg_replace('#^[^\:]+\:\/\/[^\/]+(?:\/|$)#', '/', self::$siteInfo->baseUrl);
if (isset(self::$initData->defaultBlogPageId)) {
$defBlogPageId = is_array(self::$initData->defaultBlogPageId) ? (isset(self::$initData->defaultBlogPageId[self::$blogNav->lang]) ? self::$initData->defaultBlogPageId[self::$blogNav->lang] : self::$initData->defaultBlogPageId[""]) : self::$initData->defaultBlogPageId;
foreach (self::$siteInfo->pages as $li) {
if ($li['id'] != $defBlogPageId) continue;
self::$blogNav->defaultBlogPageRoute = ($li['id'] != self::$siteInfo->homePageId) ? tr_($li['alias']) : '';
break;
}
}
self::$blogNav->pageId = isset($reqInf->page['id']) ? $reqInf->page['id'] : null;
$defLang = self::$siteInfo->defLang ? self::$siteInfo->defLang : self::$siteInfo->baseLang;
self::$blogNav->pageBaseUrl = self::$blogNav->baseUrl
.(($reqInf->lang == $defLang || !$reqInf->lang) ? '' : ($reqInf->lang.'/'))
.(($reqInf->page && $reqInf->page['id'] != self::$siteInfo->homePageId) ? (tr_($reqInf->page['alias']).'/') : '');
$pageCtrls = (isset($reqInf->page['controllers']) && is_array($reqInf->page['controllers'])) ? $reqInf->page['controllers'] : array();
$categoryKey = (isset($reqInf->urlArgs[0]) && $reqInf->urlArgs[0]) ? $reqInf->urlArgs[0] : null;
if (in_array('blog', $pageCtrls)) {
// If current page is blog page use it as default blog page for current page.
if( isset(self::$initData->blogElementsLangsAndPages[self::$blogNav->getCurrLang()]) && in_array($reqInf->page['id'], self::$initData->blogElementsLangsAndPages[self::$blogNav->getCurrLang()]) )
self::$blogNav->defaultBlogPageRoute = ($reqInf->page['id'] != self::$siteInfo->homePageId) ? tr_($reqInf->page['alias']) : '';
$itemKey = (isset($reqInf->urlArgs[1]) && $reqInf->urlArgs[1]) ? $reqInf->urlArgs[1] : null;
self::$blogNav->category = self::resolveCategoryByRequest(self::$blogNav);
if (self::$blogNav->category) {
$forcedHome = false;
} else {
$categoryKey = null;
$itemKey = (isset($reqInf->urlArgs[0]) && $reqInf->urlArgs[0]) ? $reqInf->urlArgs[0] : null;
}
self::$blogNav->lastSelectedCategory = self::resolveLastSelectedCategory();
self::$blogNav->item = self::resolveItemByRequest(self::$blogNav, self::$blogNav->category);
if (self::$blogNav->item) {
if( !empty(self::$blogNav->item->seoTitle) )
$reqInf->title = (string)tr_(self::$blogNav->item->seoTitle);
if( !empty(self::$blogNav->item->seoDescription) )
$reqInf->description = (string)tr_(self::$blogNav->item->seoDescription);
if( !empty(self::$blogNav->item->seoKeywords) )
$reqInf->keywords = (string)tr_(self::$blogNav->item->seoKeywords);
if( !empty(self::$blogNav->item->thumbnail) ) {
if( is_string(self::$blogNav->item->thumbnail) )
$reqInf->image = self::$blogNav->item->thumbnail;
}
$forcedHome = false;
}
self::$blogNav->categoryKey = $categoryKey;
self::$blogNav->itemKey = $itemKey;
}
if ($forcedHome) $reqInf->page = null;
return self::$blogNav;
}
/**
* Translate blog module variable.
* @param string $key
* @return string
*/
public static function __($key) {
$langKey = (self::$blogNav && self::$blogNav->lang) ? self::$blogNav->lang : '-';
return SiteModule::__($key, $langKey);
}
/**
* Resolve last selected category.
* @return \Profis\SitePro\controller\BlogDataCategory|null
*/
private static function resolveLastSelectedCategory() {
if (isset($_SERVER['HTTP_REFERER'])) {
if (preg_match('#\/blog\-cat\-(\d+)#', $_SERVER['HTTP_REFERER'], $m)) {
return BlogData::getCategory($m[1]);
} else {
$refUrl = $_SERVER['HTTP_REFERER'];
$refDecUrl = urldecode($refUrl);
$categories = BlogData::getCategories();
for ($i = 0, $c = count($categories); $i < $c; $i++) {
$category = $categories[$i];
$lnAlias = tr_($categories[$i]->alias);
if ($lnAlias && (strpos($refUrl, $lnAlias) !== false || strpos($refDecUrl, $lnAlias) !== false)) {
return $category;
}
}
}
}
return null;
}
/**
* Resolve category by request.
* @param BlogNavigation $request
* @return \Profis\SitePro\controller\BlogDataCategory|null
*/
public static function resolveCategoryByRequest(BlogNavigation $request) {
$categoryKey = (isset($request->args[0]) && $request->args[0]) ? $request->args[0] : null;
if ($categoryKey != 'all') {
$categories = BlogData::getCategories();
for ($i = 0, $c = count($categories); $i < $c; $i++) {
if ('blog-cat-'.$categories[$i]->id != $categoryKey
&& (!trim(tr_($categories[$i]->alias), '/') || trim(tr_($categories[$i]->alias), '/') != $categoryKey)) continue;
return $categories[$i];
}
}
return null;
}
/**
* Resolve item by request.
* @param BlogNavigation $request
* @param BlogCategoryData|null $category
* @return \Profis\SitePro\controller\BlogDataItem|null
*/
public static function resolveItemByRequest(BlogNavigation $request, $category = null) {
if ($category) {
$itemKey = (isset($request->args[1]) && $request->args[1]) ? $request->args[1] : null;
} else {
$itemKey = (isset($request->args[0]) && $request->args[0]) ? $request->args[0] : null;
}
$items = BlogData::getItems();
for ($i = 0, $c = count($items); $i < $c; $i++) {
if ('blog-item-'.$items[$i]->id != $itemKey && (!trim(tr_($items[$i]->alias), '/') || trim(tr_($items[$i]->alias), '/') != $itemKey)) continue;
return $items[$i];
}
return null;
}
}