aCurrent['table'])
searchFields - fields which using for full text key search
join - array of join tables
join array (
'type' - type of join
'table' - join table
'mainField' - field from main table for 'on' condition
'onField' - field from joining table for 'on' condition
'joinFields' - array of fields from joining table
)
*/
$this->aCurrent = array(
'ownFields' => array('ID', 'Title', 'Uri', 'Date', 'Time', 'Rate', 'RateCount'),
'searchFields' => array('Title', 'Tags', 'Description', 'Categories'),
'join' => array(
'profile' => array(
'type' => 'left',
'table' => 'Profiles',
'mainField' => 'Owner',
'onField' => 'ID',
'joinFields' => array('NickName')
),
'albumsObjects' => array(
'type' => 'left',
'table' => 'sys_albums_objects',
'mainField' => 'ID',
'onField' => 'id_object',
'joinFields' => ''
),
'albums' => array(
'type' => 'left',
'table' => 'sys_albums',
'mainField' => 'id_album',
'onField' => 'ID',
'joinFields' => array('AllowAlbumView'),
'mainTable' => 'sys_albums_objects'
)
),
'restriction' => array(
'activeStatus' => array('value'=>'approved', 'field'=>'Status', 'operator'=>'=', 'paramName'=>'status'),
'owner' => array('value'=>'', 'field'=>'Owner', 'operator'=>'=', 'paramName'=>'userID'),
'ownerStatus' => array('value'=>array('Rejected', 'Suspended'), 'operator'=>'not in', 'paramName'=>'ownerStatus', 'table'=>'Profiles', 'field'=>'Status'),
'tag' => array('value'=>'', 'field'=>'Tags', 'operator'=>'against', 'paramName'=>'tag'),
'category'=> array('value'=>'', 'field'=>'Categories', 'operator'=>'against', 'paramName'=>'categoryUri'),
'id' => array('value'=>'', 'field'=>'ID', 'operator'=>'in'),
'allow_view' => array('value'=>'', 'field'=>'AllowAlbumView', 'operator'=>'in', 'table'=> 'sys_albums'),
'not_allow_view' => array('value'=>'', 'field'=>'AllowAlbumView', 'operator'=>'not in', 'table'=> 'sys_albums'),
'album_status' => array('value'=>'active', 'field'=>'Status', 'operator'=>'=', 'table'=> 'sys_albums'),
'albumType' => array('value'=>'', 'field'=>'Type', 'operator'=>'=', 'paramName'=>'albumType', 'table'=>'sys_albums'),
),
'paginate' => array('perPage' => 10, 'page' => 1, 'totalNum' => 10, 'totalPages' => 1),
'sorting' => 'last',
'view' => 'full',
'rss' => array(
'title' => '',
'link' => '',
'image' => '',
'profile' => 0,
'fields' => array (
'Link' => '',
'Title' => 'title',
'DateTimeUTS' => 'date',
'Desc' => 'desc',
'Photo' => '',
),
),
);
// favorite config, basic for all media modules
$this->aAddPartsConfig['favorite'] = array(
'type' => 'inner',
'table' => '',
'mainField' => 'ID',
'onField' => 'ID',
'userField' => 'Profile',
'joinFields' => ''
);
$this->aPseud = $this->_getPseud();
parent::BxBaseSearchResult();
$this->sModuleClass = $sModuleClass;
$this->oModule = BxDolModule::getInstance($this->sModuleClass);
$this->oTemplate = $GLOBALS['oSysTemplate'];
$sClassName = $this->oModule->_oConfig->getClassPrefix() . 'Privacy';
bx_import('Privacy', $this->oModule->_aModule);
$this->oPrivacy = new $sClassName('sys_albums', 'ID', 'Owner');
$this->sTemplUnit = 'browse_unit';
}
function getCurrentUrl ($sType, $iId = 0, $sUri = '')
{
$sLink = $this->aConstants['linksTempl'][$sType];
return BX_DOL_URL_ROOT . $this->oModule->_oConfig->getBaseUri() . str_replace('{uri}', $sUri, $sLink);
}
function displaySearchUnit ($aData)
{
$bFull = isset($this->aCurrent['view']) && $this->aCurrent['view'] == 'short' ? false : true;
if ($this->oModule->isAdmin($this->oModule->_iProfileId) || is_array($this->aCurrent['restriction']['allow_view']['value']))
$bVis = true;
elseif ($this->oPrivacy->check('album_view', $aData['id_album'], $this->oModule->_iProfileId))
$bVis = true;
else
$bVis = false;
if (!$bVis) {
$aUnit = array(
'bx_if:show_title' => array(
'condition' => $bFull,
'content' => array(1)
)
);
$sCode = $this->oTemplate->parseHtmlByName('browse_unit_private.html', $aUnit);
} else
$sCode = $bShort ? $this->getSearchUnitShort($aData) : $this->getSearchUnit($aData);
return $sCode;
}
function getSearchUnitShort ($aData)
{
$sCode = '
{pic}
';
$aUnit['id'] = $aData['id'];
$sFileLink = $this->getCurrentUrl('file', $aData['id'], $aData['uri']);
// pic
$aUnit['pic'] = $this->_getSharedThumb($aData['id'], $sFileLink, $aData['Hash']);
return $this->_transformData($aUnit, $sCode, $this->sCssPref);
}
function getSearchUnit ($aData)
{
$aUnit = array();
$aUnit['main_prefix'] = $this->oModule->_oConfig->getMainPrefix();
$aUnit['id'] = $aData['id'];
$sFileLink = $this->getCurrentUrl('file', $aData['id'], $aData['uri']);
// pic
$aUnit['pic'] = $this->_getSharedThumb($aData['id'], $sFileLink, $aData['Hash']);
// rate
$aUnit['rate'] = '';
if (!is_null($this->oRate) && $this->oRate->isEnabled()) {
if ($this->sTemplUnit == 'browse_unit')
$aUnit['rate'] = $this->oRate->getSmallVoting(0, $aData['Rate']);
else {
$oRate = new BxTemplVotingView($this->aCurrent['name'], $aData['id']);
$aUnit['rate'] = $oRate->getSmallVoting(0);
}
}
// size
$aUnit['size'] = isset($aData['size']) ? $this->getLength($aData['size']) : '';
// title
$aUnit['titleLink'] = $sFileLink;
$aUnit['title'] = stripslashes($aData['title']);
// when
$aUnit['when'] = defineTimeInterval($aData['date']);
// from
$aUnit['fromLink'] = getProfileLink($aData['ownerId']);
$aUnit['from'] = getNickName($aData['ownerId']);
// view
$aUnit['view'] = $aData['view'];
return $this->oTemplate->parseHtmlByName($this->sTemplUnit . '.html', $aUnit, array('{', '}'));
}
function getCurrentAlbum ($sAlbumUri)
{
$this->sCurrentAlbum = strip_tags($sAlbumUri);
}
function getLength ($iTime)
{
$iTime = (int)round($iTime/1000);
if ($iTime < 60) {
$aLength[1] = '0';
$aLength[0] = $iTime;
} elseif ($iTime < 3600) {
$aLength[1] = (int)($iTime/60);
$aLength[0] = $iTime%60;
} else {
$aLength[2] = (int)($iTime/3600);
$iOther = $iTime - $aLength[2]*3600;
$aLength[1] = (int)($iOther/60);
$aLength[0] = $iOther%60;
}
$sCode = '';
for ($i = count($aLength)-1; $i >= 0; $i--) {
$sCode .= strlen($aLength[$i]) < 2 ? '0' . $aLength[$i] : $aLength[$i];
$sCode .= ':';
}
return trim($sCode, ':');
}
function displayMenu ()
{
$aDBTopMenu = $this->getTopMenu(array($this->aCurrent['name'] . '_mode'));
$aDBBottomMenu = $this->getBottomMenu();
return array( $aDBTopMenu, $aDBBottomMenu );
}
function getAlterOrder()
{
$aSql = array();
switch ($this->aCurrent['sorting']) {
case 'popular':
$aSql['order'] = " ORDER BY `{$this->aCurrent['table']}`.`Views` DESC";
break;
case 'album_order':
$aSql['order'] = " ORDER BY `obj_order` ASC, `id_object` DESC";
break;
default:
}
return $aSql;
}
function getTopMenu ($aExclude = array())
{
$aDBTopMenu = array();
$aLinkAddon = $this->getLinkAddByPrams($aExclude);
foreach (array('last', 'top') as $sMyMode) {
switch ($sMyMode) {
case 'last':
$sModeTitle = '_Latest';
break;
case 'top':
$sModeTitle = '_Top';
break;
}
if (basename( $_SERVER['PHP_SELF'] ) == 'rewrite_name.php' || basename( $_SERVER['PHP_SELF'] ) == 'profile.php')
$sLink = BX_DOL_URL_ROOT . "profile.php?ID={$this->aCurrent['restriction']['owner']['value']}&";
else
$sLink = bx_html_attribute($_SERVER['PHP_SELF']) . "?";
$sLink .= $this->aCurrent['name'] . "_mode=$sMyMode" . $aLinkAddon['params'] . $aLinkAddon['paginate'] . $aLinkAddon['type'];
$aDBTopMenu[$sModeTitle] = array('href' => $sLink, 'dynamic' => true, 'active' => ($sMyMode == $this->aCurrent['sorting']));
}
return $aDBTopMenu;
}
function getBrowseBlock ($aParams, $aCustom = array(), $sMainUrl = '', $bClearJoins = true)
{
if(!isset($aCustom['sorting']))
$aCustom['sorting'] = 'album_order';
return parent::getBrowseBlock($aParams, $aCustom, $sMainUrl, $bClearJoins);
}
function getLatestFile ()
{
$aWhere[] = "1";
foreach( $this->aCurrent['restriction'] as $sKey => $aValue ) {
if (isset($aValue['value'])) {
switch ($sKey) {
case 'featured':
case 'owner':
if ((int)$aValue['value'] != 0)
$aWhere[] = "`{$this->aCurrent['table']}`.`{$aValue['field']}` = '" . (int)$aValue['value'] . "'";
break;
case 'category':
case 'tag':
if (strlen($aValue['value']) > 0)
$aWhere[] = "MATCH(`{$this->aCurrent['table']}`.`{$aValue['field']}`) AGAINST ('" . trim(process_db_input($aValue['value'], BX_TAGS_STRIP)) . "')";
break;
case 'allow_view':
if (is_array($aValue['value'])) {
$sqlJoin = "LEFT JOIN `sys_albums_objects` ON `sys_albums_objects`.`id_object`=`{$this->aCurrent['table']}`.`{$this->aCurrent['ident']}`
LEFT JOIN `sys_albums` ON `sys_albums_objects`.`id_album`=`sys_albums`.`ID`
";
$sqlCode = "`AllowAlbumView` IN(";
foreach ($aValue['value'] as $sValue)
$sqlCode .= "$sValue, ";
$aWhere[] = rtrim($sqlCode, ", ") . ')';
}
break;
}
}
}
$sqlWhere = "WHERE " . implode( ' AND ', $aWhere ) . " AND `{$this->aCurrent['table']}`.`Status`= 'approved'";
$sqlQuery = "SELECT `{$this->aCurrent['table']}`.`{$this->aCurrent['ident']}` as `{$this->aCurrent['ident']}` FROM `{$this->aCurrent['table']}` $sqlJoin $sqlWhere ORDER BY `{$this->aCurrent['ident']}` DESC LIMIT 1";
$iFileId = db_value($sqlQuery);
$sCode = '';
if ($iFileId != 0) {
$this->oTemplate->addCss('view.css');
$oRate = new BxTemplVotingView($this->aCurrent['name'], $aInfo['medID']);
$aInfo = $this->oModule->_oDb->getFileInfo(array('fileId' => $iFileId));
$aDraw = array(
'file' => $this->oTemplate->getFileConcept($aInfo['medID'], array('ext'=>$aInfo['medExt'], 'source'=>$aInfo['medSource'])),
'file_url' => $this->getCurrentUrl('file', $aInfo['medID'], $aInfo['medUri']),
'title' => $aInfo['medTitle'],
'rate' => $oRate->getSmallVoting(0),
'date' => defineTimeInterval($aInfo['medDate']),
'owner_url' => getProfileLink($aInfo['medProfId']),
'owner_nick' => getNickName($aInfo['medProfId'])
);
$sCode = $this->oTemplate->parseHtmlByName('latest_file.html', $aDraw);
}
return $sCode;
}
function _getSharedThumb ($iId, $sFileLink, $sHash = '')
{
$sIdent = strlen($sHash) > 0 ? $sHash : $iId;
$aUnit = array(
'imgUrl' => $this->getImgUrl($sIdent),
'spacer' => getTemplateIcon('spacer.gif'),
'fileLink' => $sFileLink,
'bx_if:admin' => array(
'condition' => $this->bAdminMode,
'content' => array('id' => $iId)
)
);
return $this->oModule->_oTemplate->parseHtmlByName('thumb.html', $aUnit);
}
function displaySearchBox ($sCode, $sPaginate = '', $bAdminBox = false)
{
$sCode = $GLOBALS['oFunctions']->centerContent($sCode, '.sys_file_search_unit') . '';
$sTitle = _t($this->aCurrent['title']);
$sFunc = !$bAdminBox ? 'Content' : 'Admin';
$sCode = call_user_func('DesignBox' . $sFunc, $sTitle, '' . $sCode . '
' .$sPaginate, 1);
if (!isset($_GET['searchMode']))
$sCode = '' . $sCode . '
';
return $sCode;
}
function getImgUrl ($iId, $sImgType = 'browse')
{
$iId = (int)$iId;
$sPostFix = isset($this->aConstants['picPostfix'][$sImgType]) ? $this->aConstants['picPostfix'][$sImgType] : $this->aConstants['picPostfix']['browse'];
return $this->aConstants['filesUrl'] . $iId . $sPostFix;
}
function getFilesInCatArray ($iId, $sCategory = '')
{
$this->clearFilters();
$this->aCurrent['restriction']['owner']['value'] = $iId;
$this->aCurrent['paginate']['perPage'] = 1000;
$this->aCurrent['join']['category'] = array(
'type' => 'left',
'table' => 'sys_categories',
'mainField' => $this->aCurrent['ident'],
'onField' => 'ID',
'joinFields' => array('Category')
);
$this->aCurrent['restriction']['category'] = array(
'value' => $sCategory,
'field' => 'Category',
'operator' => '=',
'table' => 'sys_categories'
);
$this->aCurrent['restriction']['type'] = array(
'value' => $this->aCurrent['name'],
'field' => 'Type',
'operator' => '=',
'table' => 'sys_categories'
);
$aFiles = $this->getSearchData();
if (!$aFiles)
$aFiles = array();
return $aFiles;
}
function getFilesInAlbumArray ($iAlbumId, $aLimits = array())
{
$iAlbumId = (int)$iAlbumId;
if (!$iAlbumId)
return array();
$this->clearFilters(array('activeStatus'));
$this->aCurrent['join']['albumsObjects'] = array(
'type' => 'left',
'table' => 'sys_albums_objects',
'mainField' => 'ID',
'onField' => 'id_object',
'joinFields' => array('obj_order')
);
$this->aCurrent['sorting'] = 'album_order';
if ($aLimits['page'])
$this->aCurrent['paginate']['page'] = (int)$aLimits['page'];
if (isset($aLimits['per_page']) && $aLimits['per_page'] !== false)
$this->aCurrent['paginate']['perPage'] = (int)$aLimits['per_page'];
$this->aCurrent['restriction']['album'] = array(
'value'=>$iAlbumId, 'field'=>'id_album', 'operator'=>'=', 'paramName'=>'albumId', 'table'=>'sys_albums_objects'
);
$aFiles = $this->getSearchData();
if (!$aFiles)
$aFiles = array();
return $aFiles;
}
function getProfileFiles ($iProfId, $aLimits = array())
{
$this->clearFilters();
if ($aLimits['page'])
$this->aCurrent['paginate']['page'] = (int)$aLimits['page'];
if ($aLimits['per_page'])
$this->aCurrent['paginate']['perPage'] = $aLimits['per_page'];
$this->aCurrent['restriction']['activeStatus']['value'] = 'approved';
$this->aCurrent['restriction']['owner']['value'] = (int)$iProfId;
$aFiles = $this->getSearchData();
if (!$aFiles)
$aFiles = array();
return $aFiles;
}
// browse functions
function addCustomParts ()
{
if (!$this->bCustomParts) {
$this->bCustomParts = true;
$sModulePart = $this->getModuleFolder() . '/';
$this->oTemplate->addLocation($this->aCurrent['name'], BX_DIRECTORY_PATH_MODULES . $sModulePart, BX_DOL_URL_MODULES . $sModulePart);
$this->oTemplate->addCss(array('search.css'));
//$this->oTemplate->removeLocation($this->aCurrent['name']);
return '';
}
}
function getModuleFolder ()
{
return 'boonex/'.$this->aCurrent['name'];
}
function getAlbumList ($iPage = 1, $iPerPage = 10, $aCond = array())
{
$oSet = new BxDolAlbums($this->aCurrent['name']);
foreach ($this->aCurrent['restriction'] as $sKey => $aParam) {
if (!empty($aParam['value']))
$aData[$sKey] = $aParam['value'];
}
$aData = array_merge($aData, $aCond);
$iAlbumCount = $oSet->getAlbumCount($aData);
$this->aCurrent['paginate']['totalAlbumNum'] = $iAlbumCount;
if ($iAlbumCount > 0) {
$sCode = $this->addCustomParts();
$aList = $oSet->getAlbumList($aData, (int)$iPage, (int)$iPerPage);
$bCheckPrivacy = isset($aData['allow_view']) ? false : true;
foreach ($aList as $aData)
$sCode .= $this->displayAlbumUnit($aData, $bCheckPrivacy);
} else
$sCode = MsgBox(_t('_Empty'));
return $sCode;
}
function getAlbumsBlock ($aSectionParams = array(), $aAlbumParams = array(), $aCustom = array())
{
$aCustomTmpl = array(
'caption' => _t('_' . $this->oModule->_oConfig->getMainPrefix() .'_albums'),
'enable_center' => true,
'unit_css_class' => '.sys_album_unit',
'page' => isset($_GET['page']) ? (int)$_GET['page'] : 1,
'per_page' => isset($_GET['per_page']) ? (int)$_GET['per_page']: (int)$this->oModule->_oConfig->getGlParam('number_albums_home'),
'simple_paginate' => true,
'menu_top' => '',
'menu_bottom' => '',
'paginate_url' => '',
'simple_paginate_url' => BX_DOL_URL_ROOT . $this->oModule->_oConfig->getUri() . '/albums/browse',
'simple_paginate_view_all' => true
);
$aCustom = array_merge($aCustomTmpl, $aCustom);
$this->aCurrent['paginate']['perPage'] = $aCustom['per_page'];
$this->aCurrent['paginate']['page'] = $aCustom['page'];
$this->fillFilters($aSectionParams);
$sCode = $this->getAlbumList($this->aCurrent['paginate']['page'], $this->aCurrent['paginate']['perPage'], $aAlbumParams);
if ($this->aCurrent['paginate']['totalAlbumNum'] > 0) {
if ($aCustom['enable_center'])
$sCode = $GLOBALS['oFunctions']->centerContent($sCode, $aCustom['unit_css_class']);
if (empty($aCustom['menu_bottom'])) {
$aLinkAddon = $this->getLinkAddByPrams(array('r'));
$oPaginate = new BxDolPaginate(array(
'page_url' => $aCustom['paginate_url'],
'count' => $this->aCurrent['paginate']['totalAlbumNum'],
'per_page' => $this->aCurrent['paginate']['perPage'],
'page' => $this->aCurrent['paginate']['page'],
'per_page_changer' => true,
'page_reloader' => true,
'on_change_page' => 'return !loadDynamicBlock({id}, \'' . $aCustom['paginate_url'] . $aLinkAddon['params'] .'&page={page}&per_page={per_page}\');',
));
$aCode['menu_bottom'] = $aCustom['simple_paginate'] ? $oPaginate->getSimplePaginate($aCustom['simple_paginate_url'], -1, -1, $aCustom['simple_paginate_view_all']) : $oPaginate->getPaginate();
} else
$aCode['menu_bottom'] = $aCustom['menu_bottom'];
$aCode['code'] = DesignBoxContent($aCustom['caption'], $sCode);
}
$aCode['menu_top'] = $aCustom['menu_top'];
return array($aCode['code'], $aCode['menu_top'], $aCode['menu_bottom'], (!empty($aCode['code']) ? false : ''));
}
function getAlbumCovers ($iAlbumId, $aParams = array())
{
$iAlbumId = (int)$iAlbumId;
$iLimit = isset($aParams['filesInAlbumCover']) ? (int)$aParams['filesInAlbumCover'] : null;
return $this->oModule->oAlbums->getAlbumCoverFiles($iAlbumId, array('table'=>$this->aCurrent['table'], 'field'=> 'ID'), array(array('field'=>'Status', 'value'=>'approved')), $iLimit);
}
function getAlbumCoverUrl (&$aIdent)
{
return $this->getImgUrl($aIdent['id_object'], 'thumb');
}
function displayAlbumUnit ($aData, $bCheckPrivacy = true)
{
if(!$this->bAdminMode && $bCheckPrivacy) {
if(!$this->oPrivacy->check('album_view', $aData['ID'], $this->oModule->_iProfileId)) {
$aUnit = array(
'type' => $this->aCurrent['name']
);
return $this->oTemplate->parseHtmlByName('album_unit_private.html', $aUnit);
}
}
$sLink = $this->getCurrentUrl('album', $aData['ID'], $aData['Uri']) . '/owner/' . getUsername($aData['Owner']);
$aUnit = array(
'type' => $aData['Type'],
'bx_if:editMode' => array(
'condition' => $this->bAdminMode,
'content' => array(
'id' => $aData['ID'],
'checked' => $this->sCurrentAlbum == $aData['Uri'] ? 'checked="checked"' : ''
)
),
'albumUrl' => $sLink,
'bx_repeat:units' => array(),
'title' => $aData['Caption'],
'titleLink' => stripcslashes($sLink),
'from' => getNickName($aData['Owner']),
'fromLink' => getProfileLink($aData['Owner']),
'view' => isset($aData['ObjCount']) ? $aData['ObjCount'] . ' ' . _t($this->aCurrent['title']): '',
'when' => defineTimeInterval($aData['Date'])
);
$iPics = isset($this->aConstants['filesInAlbumCover']) ? (int)$this->aConstants['filesInAlbumCover'] : 15;
$aPics = $this->getAlbumCovers($aData['ID'], array('filesInAlbumCover' => $iPics));
if((!is_array($aPics) || count($aPics) == 0) && $this->oModule->_iProfileId != $aData['Owner']) {
$this->aCurrent['paginate']['totalAlbumNum']--;
return '';
}
for($i = 0; $i < $iPics; $i++) {
$aPic = array_shift($aPics);
$bPic = isset($aPic['id_object']) && (int)$aPic['id_object'] > 0;
$aUnits[] = array(
'bx_if:exist' => array(
'condition' => $bPic,
'content' => array(
'unit' => $bPic ? $this->getAlbumCoverUrl($aPic) : '',
)
),
'bx_if:not-exist' => array(
'condition' => !$bPic,
'content' => array()
)
);
}
$aUnit['bx_repeat:units'] = $aUnits;
return $this->oTemplate->parseHtmlByName('album_unit.html', $aUnit, array('{','}'));
}
function serviceGetLength ($iTime)
{
return $this->getLength ($iTime);
}
function serviceGetFilesInCat ($iId, $sCategory = '')
{
}
function serviceGetFilesInAlbum ($iAlbum)
{
}
function serviceGetAlbumPrivacy ($iAlbumId, $iViewer = 0)
{
if (!$iViewer)
$iViewer = $this->oModule->_iProfileId;
return $this->oModule->oAlbumPrivacy->check('album_view', (int)$iAlbumId, $iViewer);
}
function serviceGetProfileAlbumsBlock ($iProfileId, $sSpecUrl = '')
{
$iProfileId = (int)$iProfileId;
$sNickName = getUsername($iProfileId);
$sSimpleUrl = BX_DOL_URL_ROOT . $this->oModule->_oConfig->getBaseUri() . 'albums/browse/owner/' . $sNickName;
$sPaginateUrl = mb_strlen($sSpecUrl) > 0 ? strip_tags($sSpecUrl) : getProfileLink($iProfileId);
return $this->getAlbumsBlock(array(), array('owner' => $iProfileId, 'hide_default' => TRUE), array('enable_center' => false, 'paginate_url' => $sPaginateUrl, 'simple_paginate_url' => $sSimpleUrl));
}
function serviceGetProfileAlbumFiles ($iProfileId)
{
$iProfileId = (int)$iProfileId;
$sNickKey = '{nickname}';
$sNickName = getUsername($iProfileId);
$sDefAlbumName = $this->oModule->_oConfig->getGlParam('profile_album_name');
if (strpos($sDefAlbumName, $sNickKey) !== false)
$sCaption = str_replace($sNickKey, $sNickName, $sDefAlbumName);
else {
$sCaption = $sDefAlbumName;
$this->aCurrent['restriction']['album_owner'] = array(
'value'=>$iProfileId, 'field'=>'Owner', 'operator'=>'=', 'paramName'=>'albumOwner', 'table'=>'sys_albums'
);
}
$sUri = uriFilter($sCaption);
$this->aCurrent['sorting'] = 'album_order';
$this->aCurrent['restriction']['album'] = array(
'value'=>$sUri, 'field'=>'Uri', 'operator'=>'=', 'paramName'=>'albumUri', 'table'=>'sys_albums'
);
$aFiles = $this->getSearchData();
if (is_array($aFiles)) {
foreach ($aFiles as $iKey => $aData)
$aFiles[$iKey]['file'] = $this->getImgUrl($aData['id'], 'icon');
} else
$aFiles = array();
return $aFiles;
}
function checkMemAction ($iFileOwner, $sAction = 'view')
{
$iFileOwner = (int)$iFileOwner;
$sAction = clear_xss($sAction);
if ($this->oModule->isAdmin($this->oModule->_iProfileId) || $iFileOwner == $this->oModule->_iProfileId) return true;
$this->oModule->_defineActions();
$aCheck = checkAction($this->oModule->_iProfileId, $this->oModule->_defineActionName($sAction));
if ($aCheck[CHECK_ACTION_RESULT] != CHECK_ACTION_RESULT_ALLOWED)
return false;
return true;
}
function getRssUnitLink (&$a)
{
return BX_DOL_URL_ROOT . $this->oModule->_oConfig->getBaseUri() . 'view/' . $a['uri'];
}
function serviceGetWallPostComment($aEvent)
{
$iId = (int)$aEvent['object_id'];
$iOwner = (int)$aEvent['owner_id'];
$sOwner = getUsername($iOwner);
$aItem = $this->serviceGetEntry($iId, 'browse');
if(empty($aItem) || !is_array($aItem))
return array('perform_delete' => true);
$aContent = unserialize($aEvent['content']);
if(empty($aContent) || !isset($aContent['comment_id']))
return '';
bx_import('BxTemplCmtsView');
$oCmts = new BxTemplCmtsView($this->oModule->_oConfig->getMainPrefix(), $iId);
if(!$oCmts->isEnabled())
return '';
$aComment = $oCmts->getCommentRow((int)$aContent['comment_id']);
$sCss = '';
$sUri = $this->oModule->_oConfig->getUri();
if($aEvent['js_mode'])
$sCss = $this->oModule->_oTemplate->addCss('wall_post.css', true);
else
$this->oModule->_oTemplate->addCss('wall_post.css');
$sTextAddedNew = _t('_bx_' . $sUri . '_wall_added_new_comment');
$sTextWallObject = _t('_bx_' . $sUri . '_wall_object');
$aTmplVars = array(
'cpt_user_name' => $sOwner,
'cpt_added_new' => $sTextAddedNew,
'cpt_object' => $sTextWallObject,
'cpt_item_url' => $aItem['url'],
'cnt_comment_text' => $aComment['cmt_text'],
'cnt_item_page' => $aItem['url'],
'cnt_item_icon' => $aItem['file'],
'cnt_item_title' => $aItem['title'],
'cnt_item_description' => $aItem['description'],
'post_id' => $aEvent['id'],
);
return array(
'title' => $sOwner . ' ' . $sTextAddedNew . ' ' . $sTextWallObject,
'description' => $aComment['cmt_text'],
'content' => $sCss . $this->oModule->_oTemplate->parseHtmlByName('wall_post_comment.html', $aTmplVars)
);
}
}