8 ch_import(
'ChTemplSearchResultSharedMedia');
14 parent::__construct(
'ChPhotosModule');
15 $this->aConstants[
'linksTempl'] = array(
17 'file' =>
'view/{uri}',
18 'category' =>
'browse/category/{uri}',
19 'browseAll' =>
'browse/',
20 'browseUserAll' =>
'albums/browse/owner/{uri}',
21 'browseAllTop' =>
'browse/top',
22 'tag' =>
'browse/tag/{uri}',
23 'album' =>
'browse/album/{uri}',
24 'add' =>
'browse/my/add',
25 'manageProfilePhoto' =>
'albums/my/manage_profile_photos/{uri}',
28 'name' =>
'ch_photos',
29 'title' =>
'_ch_photos',
30 'table' =>
'ch_photos_main'
32 $this->aCurrent = array_merge($aMain, $this->aCurrent);
33 $this->aCurrent[
'ownFields'] = array(
'ID',
'Title',
'Uri',
'Date',
'Size',
'Views',
'Rate',
'RateCount',
'Hash');
34 $this->aCurrent[
'searchFields'] = array(
'Title',
'Tags',
'Desc',
'Categories');
35 $this->aCurrent[
'rss'][
'title'] =
_t(
'_ch_photos');
36 $this->aCurrent[
'rss'][
'fields'][
'Image'] =
'Hash';
39 $this->aAddPartsConfig[
'favorite'][
'table'] =
'ch_photos_favorites';
40 $this->aAddPartsConfig[
'favorite'][
'mainField'] =
'ID';
42 $this->oTemplate = &$this->oModule->_oTemplate;
43 $this->aConstants[
'filesUrl'] = $this->oModule->_oConfig->getFilesUrl();
44 $this->aConstants[
'filesDir'] = $this->oModule->_oConfig->getFilesPath();
45 $this->aConstants[
'filesInAlbumCover'] = 17;
46 $this->aConstants[
'filesInEmptyAlbumCover'] = 1;
47 $this->aConstants[
'picPostfix'] = $this->oModule->_oConfig->aFilePostfix;
49 $this->aCurrent[
'restriction'][
'albumType'][
'value'] = $this->aCurrent[
'name'];
53 $this->aCurrent[
'restriction'][
'calendar-min'] = array(
'value' =>
"UNIX_TIMESTAMP('{$sParamValue}-{$sParamValue1}-{$sParamValue2} 00:00:00')",
'field' =>
'Date',
'operator' =>
'>=',
'no_quote_value' =>
true);
54 $this->aCurrent[
'restriction'][
'calendar-max'] = array(
'value' =>
"UNIX_TIMESTAMP('{$sParamValue}-{$sParamValue1}-{$sParamValue2} 23:59:59')",
'field' =>
'Date',
'operator' =>
'<=',
'no_quote_value' =>
true);
55 $this->aCurrent[
'title'] =
_t(
'_ch_photos_caption_browse_by_day') . sprintf(
"%04u-%02u-%02u",
$sParamValue, $sParamValue1, $sParamValue2);
58 $this->aCurrent[
'sorting'] =
'top';
61 $this->aCurrent[
'sorting'] =
'popular';
64 $this->aCurrent[
'restriction'][
'featured'] = array(
65 'value'=>
'1',
'field'=>
'Featured',
'operator'=>
'=',
'paramName'=>
'ch_photos_mode'
69 if (isset($this->aAddPartsConfig[
'favorite']) && !
empty($this->aAddPartsConfig[
'favorite']) &&
getLoggedId() != 0) {
70 $this->aCurrent[
'join'][
'favorite'] = $this->aAddPartsConfig[
'favorite'];
71 $this->aCurrent[
'restriction'][
'fav'] = array(
73 'field' => $this->aAddPartsConfig[
'favorite'][
'userField'],
75 'table' => $this->aAddPartsConfig[
'favorite'][
'table']
80 $this->aCurrent[
'sorting'] =
'album_order';
81 $this->aCurrent[
'restriction'][
'album'] = array(
82 'value'=>
'',
'field'=>
'Uri',
'operator'=>
'=',
'paramName'=>
'albumUri',
'table'=>
'sys_albums'
84 $this->aCurrent[
'restriction'][
'albumType'] = array(
85 'value'=>$this->aCurrent[
'name'],
'field'=>
'Type',
'operator'=>
'=',
'paramName'=>
'albumType',
'table'=>
'sys_albums'
87 if ($sParamValue1 ==
'owner' && strlen($sParamValue2) > 0) {
88 $this->aCurrent[
'restriction'][
'owner'] = array(
89 'value'=>$sParamValue2,
'field'=>
'NickName',
'operator'=>
'=',
'paramName'=>
'ownerName',
'table' =>
'Profiles'
98 if (!$this->bCustomParts) {
99 $this->bCustomParts =
true;
100 $this->oModule->_oTemplate->addCss(array(
'search.css'));
107 $sResult .= $this->oTemplate->addCss(array(
116 $iAlbumId = (int)$iAlbumId;
117 $iLimit = isset($aParams[
'filesInAlbumCover']) ? (int)$aParams[
'filesInAlbumCover'] :
null;
118 $aPics = $this->oModule->oAlbums->getAlbumCoverFiles($iAlbumId, array(
'table'=>$this->aCurrent[
'table'],
'field'=>
'ID',
'fields_list'=>array(
'Uri',
'Hash')), array(array(
'field'=>
'Status',
'value'=>
'approved')), $iLimit);
122 function getAlbumsBlock ($aSectionParams = array(), $aAlbumParams = array(), $aCustom = array())
124 $aCustom[
'unit_css_class'] =
'.sys_album_unit_wrp';
126 $aResult = parent::getAlbumsBlock($aSectionParams, $aAlbumParams, $aCustom);
130 $aResult[0] = $this->oTemplate->parseHtmlByName(
'default_margin_thd.html', array(
140 return $this->
getImgUrl($aIdent[
'Hash'],
'browse');
145 $sContent = parent::displayAlbumUnit($aData, $bCheckPrivacy);
146 return $this->oTemplate->parseHtmlByContent(
$sContent, array(
147 'ch_if:show_activation' => array(
148 'condition' => (
int)$aData[
'ObjCount'] > 1,
157 $aResult[
'ch_if:exist'][
'content'][
'url'] =
'';
160 if(
empty($aPicture)){
162 $aResult[
'ch_if:not-exist'][
'condition'] =
true;
163 $aResult[
'ch_if:not-exist'][
'content'][
'class'] =
' sys-ai-empty';
166 $aResult[
'ch_if:not-exist'][
'condition'] =
false;
171 $sClass =
'sys-ai-front';
174 $sClass =
'sys-ai-middle';
177 $sClass =
'sys-ai-back';
180 $sClass =
'sys-ai-out';
182 $aResult[
'ch_if:exist'][
'content'][
'class'] =
' ' . $sClass;
184 if(!
empty($aPicture[
'Uri']))
185 $aResult[
'ch_if:exist'][
'content'][
'url'] = $this->
getCurrentUrl(
'file', $aPicture[
'id_object'], $aPicture[
'Uri']);
187 $aResult[
'ch_if:exist'][
'content'][
'url'] = $aParams[
'album_url'];
195 return CH_WSB_URL_ROOT . $this->oModule->_oConfig->getBaseUri() .
'get_image/' . $sImgType .
'/' . $sHash .
'.jpg';
205 $aParams[
'DisplayPagination'] = 0;
206 $aParams[
'DisplayWhenAgo'] = 1;
207 $aParams[
'DisplayViews'] = 0;
208 $aParams[
'DisplayLink'] = 1;
209 $aParams[
'DisplayProfile'] = 1;
211 if (isset($this->aCurrent[
'restriction'][
'owner'][
'value']) && (
int)$this->aCurrent[
'restriction'][
'owner'][
'value'] != 0)
212 $aParams[
'PID'] = $this->aCurrent[
'restriction'][
'owner'][
'value'];
214 if (isset($this->aCurrent[
'restriction'][
'category'][
'value']) && strlen($this->aCurrent[
'restriction'][
'category'][
'value']) > 0)
215 $aParams[
'Category'] = $this->aCurrent[
'restriction'][
'category'][
'value'];
217 if (isset($this->aCurrent[
'restriction'][
'tag'][
'value']) && strlen($this->aCurrent[
'restriction'][
'tag'][
'value']) > 0)
218 $aParams[
'Tag'] = $this->aCurrent[
'restriction'][
'tag'][
'value'];
220 return '<div class="latestFile">'.$this->servicePhotoBlock($aParams).
'</div>';
231 $iPicID = (int)$aImageInfo[
'Avatar'];
233 if (strlen($aImg[
'file']) > 0) {
234 $sFileName = $aImg[
'file'];
237 return array(
'file' => $sFileName,
'title' => $aImg[
'title'],
'width' => $aImg[
'width'],
'height' => $aImg[
'height'],
'no_image'=>$isNoImage);
243 return empty($aImageInfo[
'file']) ? array() : $aImageInfo;
260 $iWidth = (int)$this->oModule->_oConfig->getGlParam(
$sType .
'_width');
261 $iHeight = (int)$this->oModule->_oConfig->getGlParam(
$sType .
'_height');
263 $iWidth = $iWidth == 0 ? $this->oModule->_oConfig->aFilesConfig[
$sType][
'size_def'] : $iWidth;
264 $iHeight = $iHeight == 0 ? $this->oModule->_oConfig->aFilesConfig[
$sType][
'size_def'] : $iHeight;
266 $sImagePath = $sImageUrl = $sBrowseUrl =
'';
267 if(is_array($aImageInfo) && !
empty($aImageInfo)) {
269 $sImagePath = $this->oModule->_oConfig->getFilesPath() . $aImageInfo[
'id'] . $this->aConstants[
'picPostfix'][
$sType];
274 'file' => $sImageUrl,
275 'file_path' => $sImagePath,
276 'path' => $sImagePath,
277 'title' => $aImageInfo[
'title'],
278 'owner' => $aImageInfo[
'owner'],
279 'description' => $aImageInfo[
'description'],
280 'width' => $iWidth + 2 * 2,
281 'height' => $iHeight + 2 * 2,
282 'url' => $sBrowseUrl,
283 'date' => $aImageInfo[
'date'],
284 'rate' => $aImageInfo[
'rate'],
285 'rate_count' => $aImageInfo[
'rate_count'],
286 'comments_count' => $aImageInfo[
'comments_count'],
287 'views_count' => $aImageInfo[
'views_count'],
288 'status' => $aImageInfo[
'status'],
289 'album_id' => $aImageInfo[
'album_id']
296 $sqlQuery =
"SELECT a.`ID` as `id`,
298 a.`Title` as `title`,
299 a.`Desc` as `description`,
301 a.`Owner` as `owner`,
304 a.`RateCount` as `rate_count`,
305 a.`CommentsCount` as `comments_count`,
306 a.`Views` as `views_count`,
308 a.`Status` AS `status`,
309 b.`id_album` as `album_id`
310 FROM `ch_photos_main` as a
311 LEFT JOIN `sys_albums_objects` as b ON b.`id_object` = a.`ID`
312 LEFT JOIN `sys_albums` as c ON c.`ID`=b.`id_album`
313 WHERE a.`ID`='" .
$iId .
"' AND c.`Type`='ch_photos'";
314 $aImageInfo = (
$iId) ?
db_arr($sqlQuery) :
null;
321 $sName = $aImageInfo[
'id'] . $this->aConstants[
'picPostfix'][
$sType];
322 $sName = str_replace(
'{ext}', $aImageInfo[
'ext'],
$sName);
336 'ownerId' =>
'Owner',
337 'ownerName' =>
'NickName',
338 'voteTime' =>
'gal_date'
348 $aAlbum = $oAlbum->getAlbumInfo(array(
'fileUri' => $sUri,
'owner' =>
$iProfileId));
349 if((
int)$aAlbum[
'ObjCount'] <= 0)
352 $aAlbum[
'show_as_list'] =
true;
353 $aAlbum[
'enable_center'] =
true;
364 if(!isset($aParams[
'PID']) ||
empty($aParams[
'PID']))
368 $sCaption = str_replace(
'{nickname}', $sOwner, $this->oModule->_oConfig->getGlParam(
'profile_album_name'));
373 $aParams[
'DisplayRate'] = 0;
374 $aParams[
'DisplayPagination'] = 0;
375 $aParams[
'DisplayLink'] = 0;
376 $aParams[
'Limit'] = 1;
385 'album' =>
'profile_album_name',
387 'return_type' => $sReturnType
395 'album' =>
'profile_cover_album_name',
397 'return_type' => $sReturnType
403 if(!isset($aParams[
'PID']) ||
empty($aParams[
'PID']))
406 $aParams[
'DisplayScroller'] = 1;
407 $aParams[
'DisplayPagination'] = 1;
408 $aParams[
'DisplayLink'] = 1;
416 foreach ($aFiles
as $k => $aRow) {
417 $aFiles[$k][
'icon'] = $this->
getImgUrl($aRow[
'Hash'],
'icon');
418 $aFiles[$k][
'thumb'] = $this->
getImgUrl($aRow[
'Hash'],
'thumb');
419 $aFiles[$k][
'file'] = $this->
getImgUrl($aRow[
'Hash'],
'file');
427 $iViewer = $this->oModule->_iProfileId;
428 if ($isCheckPrivacy && !$this->oModule->oAlbumPrivacy->check(
'album_view', (
int)$iAlbumId, $iViewer))
431 foreach ($aFiles
as $k => $aRow) {
432 $aFiles[$k][
'icon'] = $this->
getImgUrl($aRow[
'Hash'],
'icon');
433 $aFiles[$k][
'thumb'] = $this->
getImgUrl($aRow[
'Hash'],
'thumb');
434 $aFiles[$k][
'file'] = $this->
getImgUrl($aRow[
'Hash'],
'file');
442 foreach ($aFiles
as $k => $aRow) {
443 foreach ($this->oModule->_oConfig->aFilesConfig
as $sType => $aFileConfig) {
444 if (isset($aFileConfig[
'size_def']))
456 return $this->oModule->getWallPost($aEvent,
'picture-o');
464 return $this->oModule->getWallPostOutline($aEvent,
'picture-o');
469 $sCaption = str_replace(
'{nickname}',
getUsername($aParams[
'PID']), $this->oModule->_oConfig->getGlParam(
'profile_album_name'));
472 $aAlbumInfo = $oAlbum->getAlbumInfo(array(
'fileUri' => $sUri,
'owner' => $aParams[
'PID']), array(
'ID'));
473 if(
empty($aAlbumInfo) && $this->oModule->_iProfileId == (
int)$aParams[
'PID']) {
476 'owner' => $this->oModule->_iProfileId,
477 'AllowAlbumView' => $this->oModule->oAlbumPrivacy->_oDb->getDefaultValueModule(
'photos',
'album_view'),
479 $aAlbumInfo[
'ID'] = $oAlbum->addAlbum($aData,
false);
482 if(!$this->oModule->oAlbumPrivacy->check(
'album_view', $aAlbumInfo[
'ID'], $this->oModule->_iProfileId))
485 $this->aCurrent[
'sorting'] =
'album_order';
486 $this->aCurrent[
'restriction'][
'album'] = array(
487 'value' => $sUri,
'field' =>
'Uri',
'operator' =>
'=',
'paramName' =>
'albumUri',
'table' =>
'sys_albums'
495 $iProfileId = !
empty($aParams[
'profile_id']) ? (int)$aParams[
'profile_id'] : 0;
496 $sAlbum = !
empty($aParams[
'album']) ? $aParams[
'album'] :
'profile_album_name';
497 $sType = !
empty($aParams[
'type']) ? $aParams[
'type'] :
'icon';
498 $sReturnType = !
empty($aParams[
'return_type']) ? $aParams[
'return_type'] :
'link';
500 $aDefaultAlbums = $this->oModule->_oConfig->getDefaultAlbums();
501 if(!
empty($sAlbum) && in_array($sAlbum, $aDefaultAlbums)) {
507 $aAlbumInfo = $oAlbum->getAlbumInfo(array(
'fileUri' => $sAlbum,
'owner' =>
$iProfileId), array(
'ID'));
508 if (!$this->oModule->oAlbumPrivacy->check(
'album_view', $aAlbumInfo[
'ID'],
getLoggedId()))
511 $sKeywordGet = $sKeywordPost =
null;
513 if (isset(
$_GET[
'keyword']))
515 $sKeywordGet =
$_GET[
'keyword'];
516 unset(
$_GET[
'keyword']);
518 elseif(isset($_POST[
'keyword']))
520 $sKeywordPost = $_POST[
'keyword'];
521 unset($_POST[
'keyword']);
524 $aSavePaginate = array();
526 $aSavePaginate = array(
$_GET[
'page'],
$_GET[
'per_page']);
528 unset(
$_GET[
'page']);
529 unset(
$_GET[
'per_page']);
531 $this->aCurrent[
'paginate'][
'perPage'] = 1;
532 $this->aCurrent[
'paginate'][
'page'] = 1;
533 $this->aCurrent[
'restriction'][
'owner'][
'value'] =
$iProfileId;
534 $this->aCurrent[
'sorting'] =
'album_order';
535 $this->aCurrent[
'restriction'][
'album'] = array(
536 'value' => $sAlbum,
'field' =>
'Uri',
'operator' =>
'=',
'paramName' =>
'albumUri',
'table' =>
'sys_albums'
541 if(!
empty($aSavePaginate))
542 list(
$_GET[
'page'],
$_GET[
'per_page']) = $aSavePaginate;
544 if (!is_null($sKeywordGet))
546 elseif(!is_null($sKeywordPost))
547 $_POST[
'keyword'] =
clear_xss($sKeywordPost);
549 if (!$this->aCurrent[
'paginate'][
'totalNum'])
552 $aFile = array_pop($aFilesList);
554 $aFile[
'view_url'] = CH_WSB_URL_ROOT . $this->oModule->_oConfig->getBaseUri() .
'view/' . $aFile[
'uri'];
556 if($sReturnType ==
'full')
559 return $aFile[
'file_url'];
564 $this->aCurrent[
'paginate'][
'perPage'] = 20;
565 $aShowParams = array(
'showScroller' => 0,
'showRate' => 1,
'showPaginate' => 0,
'showViews' => 0,
'showDate' => 0,
'showLink' => 0,
'showFrom' => 0);
567 if(count($aParams) > 0) {
568 foreach( $aParams
as $sKeyName => $sKeyValue ) {
571 $this->aCurrent[
'restriction'][
'owner'][
'value'] = (int)$sKeyValue;
574 $this->aCurrent[
'restriction'][
'category'][
'value'] = strip_tags($sKeyValue);
577 $this->aCurrent[
'restriction'][
'tag'][
'value'] = strip_tags($sKeyValue);
580 $this->aCurrent[
'paginate'][
'perPage'] = (int)$sKeyValue;
582 case 'DisplayScroller':
583 $aShowParams[
'showScroller'] = $sKeyValue == 1 ? 1 : 0;
586 $aShowParams[
'showRate'] = $sKeyValue == 1 ? 1 : 0;
588 case 'DisplayPagination':
589 $aShowParams[
'showPaginate'] = $sKeyValue == 1 ? 1 : 0;
592 $aShowParams[
'showViews'] = $sKeyValue == 1 ? 1 : 0;
594 case 'DisplayWhenAgo':
595 $aShowParams[
'showDate'] = $sKeyValue == 1 ? 1 : 0;
598 $aShowParams[
'showLink'] = $sKeyValue == 1 ? 1 : 0;
600 case 'DisplayProfile':
601 $aShowParams[
'showFrom'] = $sKeyValue == 1 ? 1 : 0;
604 $aShowParams[
'linkUnitTo'] = $sKeyValue;
611 $iCnt = $this->aCurrent[
'paginate'][
'totalNum'];
616 if (defined(
'CH_PROFILE_PAGE') || defined(
'CH_MEMBER_PAGE')) {
618 $sImgWidth =
'style="width:' . $iPhotoWidth .
'px;"';
620 $iPhotoWidth = (int)$this->oModule->_oConfig->getGlParam(
'file_width');
621 $iPhotoWidth = ($iPhotoWidth > 1) ? $iPhotoWidth : 600;
625 foreach ($aFilesList
as $iKey => $aData) {
626 $sPicUrl = $this->
getImgUrl($aData[
'Hash'],
'icon');
628 'imageId' => $iKey + 1,
631 $sPicLinkElements .=
'aPicLink['.($iKey + 1).
'] = '.$aData[
'id'].
';';
633 $aAdd = array(
'switchWidth' => ($iPhotoWidth + 2),
'imgWidth' => $sImgWidth);
638 $aUnit[
'moduleUrl'] = CH_WSB_URL_ROOT . $this->oModule->_oConfig->getBaseUri();
640 $aUnit[
'picWidth'] = $iPhotoWidth;
641 $aUnit[
'picBoxWidth'] =
$aUnit[
'switchWidth'] = $iPhotoWidth + 2;
643 $aUnit[
'ch_if:show_scroller'] = array(
644 'condition' =>
false,
648 if((
int)$aShowParams[
'showScroller'] == 1) {
650 $iContainerWidth = $iContentWidth = $iCnt * 40;
651 if($iContentWidth >
$aUnit[
'picWidth']) {
653 $iContainerWidth =
$aUnit[
'picBoxWidth'] - 72;
656 $aUnit[
'ch_if:show_scroller'] = array(
659 'switchWidthOut' =>
$aUnit[
'switchWidthOut'],
660 'containerWidth' => $iContainerWidth,
661 'contWidth' => $iContentWidth,
662 'ch_if:scrollerBack' => array(
663 'condition' => $bScroller,
664 'content' => array(1)
666 'ch_repeat:iconBlock' => $aUnits,
667 'ch_if:scrollerNext' => array(
668 'condition' => $bScroller,
669 'content' => array(1),
675 $aUnit[
'picLinkElements'] = $sPicLinkElements;
676 if ($aShowParams[
'showPaginate'] == 1) {
679 'page_url' =>
$aUnit[
'changeUrl'],
683 'page' => $this->aCurrent[
'paginate'][
'page'],
684 'on_change_page' =>
'getCurrentImage({page})',
686 $aUnit[
'paginate'] = $oPaginate->getPaginate();
690 $this->oTemplate->addCss(
'search.css');
691 return $this->oTemplate->parseHtmlByName(
'photo_switcher.html',
$aUnit);
692 } elseif ($this->oModule->_iProfileId != 0 && $this->oModule->_iProfileId == (
int)$this->aCurrent[
'restriction'][
'owner'][
'value']) {
695 <div
class=
"paginate ch-def-padding-sec-left ch-def-padding-sec-right">
696 <div
class=
"view_all">
697 <
a href=
"__lnk_url__" title=
"__lnk_title__">__lnk_content__</
a>
706 $sLinkTitle =
_t(
'_ch_photos_add');
707 return MsgBox(
_t(
'_Empty')) . $this->oTemplate->parseHtmlByContent(
$sCode, array(
708 'lnk_url' => $this->oModule->_oConfig->getBaseUri() .
'albums/my/add_objects/' .
$sCaption .
'/owner/' .
getUsername($this->oModule->_iProfileId),
709 'lnk_title' => $sLinkTitle,
710 'lnk_content' => $sLinkTitle
718 if (!is_array($aData))
721 $iPhotoWidth = (int)$this->oModule->_oConfig->getGlParam(
'file_width') ? (int)$this->oModule->_oConfig->getGlParam(
'file_width') : 602;
722 $iWidth = (int)$aAddElems[
'switchWidth'] > 0 ? (
int)$aAddElems[
'switchWidth'] : $iPhotoWidth;
723 $sImgUrl = $this->
getCurrentUrl(
'file', $aData[
'id'], $aData[
'uri']);
725 'switchWidth' => $iWidth,
726 'imgWidth' => !
empty($aAddElems[
'imgWidth']) ? $aAddElems[
'imgWidth']:
'',
727 'picUrl' => $this->
getImgUrl($aData[
'Hash'],
'file'),
728 'href' => isset($aShowParams[
'linkUnitTo']) && !
empty($aShowParams[
'linkUnitTo']) ? $aShowParams[
'linkUnitTo'] : $sImgUrl,
729 'ch_if:href' => array(
730 'condition' => (
int)$aShowParams[
'showLink'] != 0,
733 'title' => $aData[
'title']
736 'ch_if:rate' => array(
737 'condition' => (
int)$aShowParams[
'showRate'] != 0,
739 'rate' => $this->oRate && $this->oRate->isEnabled() ? $this->oRate->getJustVotingElement(1, $aData[
'id'], $aData[
'Rate']) : $this->oRate->getJustVotingElement(0, 0, $aData[
'Rate'])
742 'ch_if:date' => array(
743 'condition' => (
int)$aShowParams[
'showDate'] != 0,
748 'ch_if:from' => array(
749 'condition' => (
int)$aShowParams[
'showFrom'] != 0,
756 return $this->oTemplate->parseHtmlByName(
'switcher_unit.html',
$aUnit);
761 return 'cheetah/photos';