403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/HostingSpaces/admin/chatme24.com/wwwroot/_include/current/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/HostingSpaces/admin/chatme24.com/wwwroot/_include/current//templateedge.class.php
<?php
/* (C) Websplosion LLC, 2001-2021

IMPORTANT: This is a commercial software product
and any kind of using it must agree to the Websplosion's license agreement.
It can be found at http://www.chameleonsocial.com/license.doc

This notice may not be removed from the source code. */

Class TemplateEdge {

    static $listUserGroupUid = 0;
    static $listUserGroupId = 0;
    static $nameUser = '';
    static $isProfileTabs = false;
    static $listUsersMainPage = false;

    static function headerParseBlock(&$html)
    {
        global $g;
        global $p;
        global $g_user;

        $guid = guid();

        $uid = User::getParamUid();
        $html->setvar('header_uid', $uid);
        $uidParam = User::getParamUid(0);
        $html->setvar('header_param_uid', $uidParam);

        $groupId = Groups::getParamId();
        $html->setvar('header_group_id', $groupId);
        $noAccessGroup = 0;
        if ($groupId){
            $isPageGroup = Groups::isPage();
            $html->setvar('header_group_view', $isPageGroup ? 'group_page' : 'group');
            $html->setvar('header_group_is_page', intval($isPageGroup));

            $groupUserId = Groups::getInfoBasic($groupId, 'user_id');
            $html->setvar('header_group_user_id', $groupUserId);

            $noAccessGroup = Groups::isAccessGroup();
            if ($noAccessGroup !== 'no_group' && !$noAccessGroup) {
                $noAccessGroup = 1;
            } else {
                $noAccessGroup = 0;
            }
        }
        $html->setvar('header_group_no_access', $noAccessGroup);
        $html->setvar('header_group_view_list', get_param('view_list'));

        $cmd = get_param('cmd');
        $isMobile = Common::isMobile(false);
        $isAppAndroid = Common::isAppAndroid();
        $typeUsers = 'member';
        $varsHeader = array();
        $varsFooter = array();
        $isHeader = $html->blockExists('header_visitor');
        $isFooter = $html->blockExists('footer_visitor');

        if (IS_DEMO){
            $html->parse('check_demo_iframe', false);
            $html->parse('check_demo_iframe_body', false);
        }

        if ($guid) {
            if ($isHeader) {
                $maxFileSize = Common::getOption('photo_size');
                $maxVideoSize = Common::getOption('video_size');
                $maxSongSize = Common::getOption('music_mp3_file_size_limit_mbs');
                $varsHeader = array(
                    'user_photo_m' => User::getPhotoDefault($guid, 'm'),//Group replace
                    'photo_file_size_limit' => $maxFileSize,
                    'max_photo_file_size_limit' => lSetVars('max_file_size', array('size' => $maxFileSize), 'toJsL'),
                    'song_file_size_limit' => $maxSongSize,
                    'max_song_file_size_limit' => lSetVars('max_file_size', array('size' => $maxSongSize), 'toJsL'),
                    'video_file_size_limit' => $maxVideoSize,
                    'max_video_file_size_limit' => lSetVars('max_file_size', array('size' => $maxVideoSize), 'toJsL'),
                    'auto_play_video' => Common::isOptionActive('video_autoplay')?'autoplay':'',
                    'body_class' => '',
                    'number_comments_frm_show' => Common::getOptionTemplateInt('gallery_number_comments_to_show_bottom_frm'),
                    'gallery_preload_data_number' => Common::getOptionTemplateInt('gallery_preload_data'),
                    'edge_general_settings_list_photos_number_items' => Common::getOptionInt('list_photos_number_items', 'edge_general_settings'),
                    'crop_min_width' => intval(trim(Common::getOption('min_photo_width_urban', 'image'))),
                    'crop_min_height' => intval(trim(Common::getOption('min_photo_height_urban', 'image'))),
					'live_price' => Pay::getServicePrice('live_stream', 'credits'),
                );
                if ($p == 'videochat.php' || $p == 'live_streaming.php') {
                    $varsHeader['body_class'] = 'body_video_chat';
                } elseif ($p == 'audiochat.php') {
                    $varsHeader['body_class'] = 'body_audio_chat';
                } elseif ($p == 'email_not_confirmed.php') {
                    $varsHeader['body_class'] = 'email_not_confirmed';
                }

                if (!self::isTemplateColums()) {
                    if (isset($varsHeader['body_class'])) {
                        $varsHeader['body_class'] .= ' body_no_colums';
                    } else {
                        $varsHeader['body_class'] = 'body_no_colums';
                    }
                }

                $galleryImageHeight = Common::getOptionInt('gallery_image_height_mobile', 'edge_gallery_settings');
                if ($galleryImageHeight <= 0 || $galleryImageHeight < 20) {
                    $galleryImageHeight = 20;
                } elseif ($galleryImageHeight > 100) {
                    $galleryImageHeight = 100;
                }
                $varsHeader['gallery_image_height_mobile'] = intval($galleryImageHeight);

                $isMobile = CityBase::isMobile();
                $html->setvar('city_class', $isMobile ? 'city_mobile' : 'city_desktop');

                $counter = CIm::getCountNewMessages();
                $html->setvar('number_messages', $counter);

                if ($guid != $uid) {
                    $html->setvar('is_profile_blocked', User::isEntryBlocked($guid, $uid));
                }

                if ($uid != $guid) {
                    $html->setvar('user_status_online', intval(User::isOnline($uid)));
                    $html->setvar('real_status_online', intval(User::isOnline($uid, null, true)));
            }
            }
            if ($isFooter) {

                $cmd = get_param('cmd');
                $type = get_param('type');
                if ($cmd == 'payment_thank' && !$type && $html->blockexists('payment_thank')) {
                    $html->parse('payment_thank');
                }

                $arrayKeys = array('comment_current', 'comment', 'comments_reply_item');
                $userData = User::getDataUserOrGroup($guid, $groupId, $g_user);
                $varsGallery = array(
                    'user_id'    => $guid,
                    'group_id'   => $userData['group_id'],
                    'like_title' => l('like'),
                    'like'       => 1,
                    'user_photo' => $userData['photo'],
                    'user_url'   => $userData['url'],
                    'user_name'  => $userData['name']
                );


                /*if ($groupId) {
                    $groupInfo = Groups::getInfoBasic($groupId);
                    $varsGallery['user_photo'] = GroupsPhoto::getPhotoDefault($guid, $groupId, 'r');
                    $varsGallery['user_url'] = Groups::url($groupId, $groupInfo);
                    $varsGallery['user_name'] = $groupInfo['title'];
                } else {
                    $varsGallery['user_photo'] = User::getPhotoDefault($guid, 'r');
                    $varsGallery['user_url'] = User::url($guid);
                    $varsGallery['user_name'] = guser('name');
                }*/

                foreach ($arrayKeys as $key => $value) {
                    $html->assign($value, $varsGallery);
                }
                $html->parse('comments_reply_item_likes_hide', false);
                $html->parse('comments_reply_item_delete', false);
                $html->parse('comments_reply_item', false);
                $html->parse('comments_reply_list', false);
                $html->parse('comment_likes_hide', false);
                $html->parse('comment_delete', false);

                $show = get_param('show');
                if ($show) {
                    $isParse = in_array($show, array('friend_request'));
                    if ($show == 'message') {
                        $uidSender = get_param_int('uid_sender');
                        if ($uidSender) {
                            $isParse = true;
                            $groupIdSender = get_param_int('group_id_sender');
                            if ($groupIdSender) {
                                $groupUserIdSender = Groups::getInfoBasic($groupIdSender, 'user_id');
                                if ($groupUserIdSender) {
                                    $html->setvar('show_message_group_user_id_sender', $groupUserIdSender);
                                    $html->setvar('show_message_group_id_sender', $groupIdSender);
                                }
                            }
                            $html->setvar('show_message_uid_sender', $uidSender);
                        }
                    }
                    if ($isParse) {
                        $html->parse("show_{$show}_js", false);
                    }
                }

				/* Response payment system */
				$type = get_param('type');
				$blockPaymentShow = 'payment_pop_show_' . $type;
				if ($html->blockExists($blockPaymentShow)) {
					$param = explode('-', base64_decode(get_param('custom')));
					$isErrorPayment = false;
					if (count($param) && isset($param[5])) {
						if ($param[5] == 'payment_error') {
							$isErrorPayment = true;
							if ($p != 'upgrade.php') {
								$html->parse('system_payment_error', false);
							}
						}
					}
					if (!$isErrorPayment && $cmd == 'payment_thank') {
						$html->parse($blockPaymentShow, false);
					}
				}
				/* Response payment system */

				/* Gallery list friends */
				$blockFriend = 'gallery_friend';
				if ($html->blockExists($blockFriend) && Common::isOptionActive('gallery_photo_face_detection', 'edge_gallery_settings')) {
					$friends = User::getListFriends($guid);

					$friendMy = array(array('user_id' => $guid, 'name' => $g_user['name']));
					$friends = array_merge($friendMy, $friends);
					foreach ($friends as $friend) {
						$fid = $friend['user_id'];
						$info = array(
							'user_id' => $fid,
							'name'    => toAttr($friend['name']),
							'name_title'   => toAttr($friend['name']),
							'photo'   => User::getPhotoDefault($fid, 's')
						);
						$html->assign($blockFriend, $info);
						$html->parse("{$blockFriend}_item", true);
					}
					if (count($friends)) {
						$html->parse("{$blockFriend}_ul", false);
					}
					$html->parse($blockFriend, false);
				}
				/* Gallery list friends */

				if (Common::isOptionActive('im_audio_messages')) {
					$html->parse('pl_message_recorder_player');
				}

                Common::parseDrawerBlock($html, 'media_comment_top_drawer');
                Common::parseDrawerBlock($html, 'media_comment_bottom_drawer');                
            }

            self::parseNavbarMenuShort($html, 'menu_short_md');
            ListBlocksOrder::parseMenu($html, 'member_header_menu', 'member_header_menu', 4, 'header_menu_desktop');
            //ListBlocksOrder::parseMenu($html, 'member_header_menu', 'member_header_menu', 7, 'header_menu_mobile');
            self::parseCustomHeader($html);
            if ($p == 'city.php' && $html->blockExists('body_city')) {
				$html->parse('body_city', false);
			}

            if ($p == 'live_streaming.php' && $guid == $uid) {
                $html->parse('pp_presenter_start', false);
            }

            Common::parseErrorAccessingUser($html);
        } else {
            $loginPage = $p == 'join.php' && $cmd == 'please_login';
            $typeUsers = 'visitor';
            $blHeaderParseCustom = 'header_visitor_inner';
            if ($p == 'index.php') {
                $blockInfoHeader = 'info_block_header_visitor';
                if ($html->blockExists($blockInfoHeader)) {
					$isHeaderShort = Common::isOptionActive('header_short_show', 'edge_main_page_settings');
					if ($isHeaderShort) {
						$html->parse('header_short', false);
					} else {
						$blockInfoHeaderLeayout = Common::getOption('info_block_leayout', 'edge_main_page_settings');
						$html->parse($blockInfoHeaderLeayout, false);

                        self::parseFeaturedUsersOnMainPage($html);

						if (Common::isOptionActive('info_block_header_show', 'edge_main_page_settings')) {
                            $html->setvar('info_block_header_visitor_title', l(self::isModeLms() ? 'mode_lms_info_block_header_visitor_title' : 'are_you_social_enough'));
                            $html->setvar('info_block_header_visitor_description', l(self::isModeLms() ? 'mode_lms_info_block_header_visitor_description' : 'the_social_network_you_were_dreaming_about_all_your_life'));
							$html->parse($blockInfoHeader, false);
						}
					}
                }
                $blHeaderParseCustom = 'header_visitor_main_page';
                $html->parse('body_main_page', false);
            }

            $settingsModule = 'edge_color_scheme_visitor';
            $mainPageBackgroundType = Common::getOption('main_page_background_type', $settingsModule);
            if($isHeader) {

                $mainPageVideoCode = '';

                if($mainPageBackgroundType == 'video') {

                    $mainPageVideoCode = Common::getOption('main_page_video_code', $settingsModule);

                    if ($mainPageVideoCode) {
                        $html->setvar('main_page_video_mute', intval(Common::isOptionActive('main_page_video_mute', $settingsModule)));
                        $html->setvar('main_page_video_volume', intval(Common::getOption('main_page_video_volume', $settingsModule)));
                        $html->setvar('main_page_video_show_video_once', intval(Common::isOptionActive('main_page_video_show_video_once', $settingsModule)));
                        $html->setvar('main_page_video_play_disabled', intval($p != 'index.php'));
                        $html->setvar('main_page_video_background_head_js_is_index_page', intval($p == 'index.php'));

                        if(Common::isOptionActive('main_page_image_darken', $settingsModule)) {
                            $html->setvar('main_page_video_background_darken', 'main_page_video_background_darken');
                        }

                        $html->parse('main_page_video_background_head_js', false);
                        $html->parse('main_page_video_background_js', false);
                        $html->parse('main_page_video_background', false);
                    }

                }

                if($mainPageVideoCode == '') {
                    $mainPageVideoCode = '{}';
                }
                $html->setvar('user_profile_bg_video', $mainPageVideoCode);
            }

            $prf = $p == 'index.php' ? '' : '_inner';

            if(!isset($mainPageBackgroundType) || $mainPageBackgroundType != 'video') {
                Common::parseBackgroundImage($html, 'edge_color_scheme_visitor', $prf);
            }

            if ($html->blockExists('popup_forgot_password')) {
                $html->parse('popup_forgot_password', false);
            }


            if (!$isMobile && !$loginPage) {
                if ($p == 'index.php') {
                    Social::parse($html);
                }
                $blHeaderNavbar = 'header_visitor_navbar';
                if ($html->blockExists($blHeaderNavbar)) {
                    $html->parse($blHeaderNavbar, false);
                }
            }

            if ($html->blockExists($blHeaderParseCustom)) {
                $html->parse($blHeaderParseCustom, false);
            }

            Common::parseErrorForNotLoginUserNotExist($html);
        }

        $isCheckMobileDevice = Common::isMobile(false, true, true);
        if ($isHeader) {
            $varsHeader['url_site_subfolder'] = Common::urlSiteSubfolders();
            $varsHeader['is_app_android'] = intval($isAppAndroid);
            if ($isAppAndroid && $html->blockExists('app_android_style')) {
                if (Common::getOption('lang_loaded_rtl', 'main')) {
                    $html->parse('app_android_style_rtl', false);
                }
                $html->parse('app_android_style', false);
            }

            if ($html->blockExists('app_ios_style') && Common::isAppIos()) {
                $html->parse('app_ios_style', false);
            }

            $varsHeader['user_allowed_feature'] = User::accessСheckFeatureSuperPowersGetList();

            $isPlayerNative = $isCheckMobileDevice || Common::getOption('video_player_type') == 'player_native';
            $varsHeader['is_player_native_site'] = intval($isPlayerNative);

            $html->assign('', $varsHeader);
            if ($p != 'city.php' || ($p == 'city.php' && get_param('view') != 'mobile')) {
                if ($isCheckMobileDevice) {
                    $html->parse('meta_viewport_device_dpi', false);
                }
                $html->parse('meta_viewport', false);
            }
        }

        if ($isFooter) {
            if ($varsFooter) {
                $html->assign('', $varsFooter);
            }

            if($guid) {
                $verifiedSystemsUser = User::getProfileVerificationData(User::getInfoBasic($guid));
                $verificationSystemsData = $verifiedSystemsUser['data'];
                if($verificationSystemsData) {
                    $html->setvar('footer_verification_system_options', h_options($verificationSystemsData, ''));
                }

                /*if (Common::isAppIos() && Common::getAppIosApiVersion() >= 48) {
                    $html->setvar('app_ios_auth_key', User::urlAddAutologin('', $g_user));
                    $html->parse('app_ios_image_editor');
                    //$html->parse('app_ios_video_editor');
                }*/
                if (!$isCheckMobileDevice) {
                    $html->parse('sound_silence_activate', false);
                }
            }
        }

        if ($p != 'city.php') {
            CustomPage::parseMenu($html, 'bottom');

            Social::parseLinks($html);

            $blockFooterAbout = 'footer_about';
            if ($html->blockExists($blockFooterAbout)) {
                $id = CustomPage::getIdFromAlias('menu_bottom_about_us', 'bottom');
                if ($id) {
                    CustomPage::parsePage($html, $id, 'footer_about', 90);
                    if (Common::isOptionActive('contact')) {
                        $html->parse("{$blockFooterAbout}_contact", false);
                    }
                    $html->parse($blockFooterAbout, false);
                }
            }

            if ($isFooter) {
                CBanner::getBlock($html, 'footer');

                if (!$guid && ($p == 'index.php' || $p == 'join.php')) {
                    $html->assign('terms', PageInfo::getInfo('term_cond'));
                    $html->assign('priv', PageInfo::getInfo('priv_policy'));
                    $html->parse('page_info', false);
                }
            }
        }

        $parseBlocks = array('header_js' => "header_{$typeUsers}_js",
                             'header' => "header_{$typeUsers}",
                             'color_scheme_general' => 'color_scheme_general',
                             'color_scheme' => "color_scheme_{$typeUsers}",
                             'events_color_scheme' => 'events_settings',
                             'wall_color_scheme' => 'wall_settings',
                             'live_color_scheme' => 'live_settings',
							 'stickers_settings' => 'stickers_scheme',
                             'footer' => "footer_{$typeUsers}");

        foreach ($parseBlocks as $key => $block) {
            if ($html->blockExists($block)) {
                if ($key == 'color_scheme' || $key == 'color_scheme_general' ||
                    $key == 'events_color_scheme' || $key == 'wall_color_scheme'
                    || $key == 'live_color_scheme' || $key == 'stickers_settings') {
                    $colorSchemeOptions = $g["edge_{$block}"];
					if ($key == 'stickers_settings') {
						$stickerOptionsCheck = array('sticker_block_background',
													 'comment_sticker_block_background',
													 'comment_reply_sticker_block_background'
											   );
						foreach ($stickerOptionsCheck as $k => $v) {
							$vT = $v . '_transparent';
							if ($colorSchemeOptions[$vT] == 'Y') {
								$colorSchemeOptions[$v] = 'transparent';
							}
							unset($colorSchemeOptions[$vT]);
						}
					} elseif ($key == 'events_color_scheme' || $key == 'wall_color_scheme' ||
                        $key == 'live_color_scheme') {
                        foreach ($colorSchemeOptions as $k => $v) {
                            if(mb_strpos($k, '_color', 0, 'UTF-8') === false){
                                unset($colorSchemeOptions[$k]);
                            }
                        }
                    }
                    if ($block == 'color_scheme_visitor') {
                        $headerBackgroundColor = self::getHeaderBackgroundColor();
                        $colorSchemeOptions['main_page_header_background_color_inner'] = $headerBackgroundColor;
                        $value = Common::getBackgroundColorSheme('main_page_header_background', '', 'edge_color_scheme_visitor');
                        $colorSchemeOptions['main_page_header_background_color'] = $value;
                        $colorSchemeOptions['meta_theme_color'] = $headerBackgroundColor;
                        $colorSchemeOptions['list_people_featured_border_color'] = Common::getOption('list_people_featured_border_color', 'edge_main_page_settings');
                        $colorSchemeOptions['list_people_featured_border_style'] = ($colorSchemeOptions['list_people_featured_border_color'] === 'transparent' ? 'none' : 'solid');
                    } elseif ($block == 'color_scheme_general') {
                        $colorSchemeOptions['color_online_user'] = getHex2Rgba(Common::getOption('color_1', 'edge_color_scheme_general'), Common::getOption('label_online_opacity', 'edge_color_scheme_general'));

                        $rgba = array('footer_title_orig_color', 'footer_menu_color',
                                      'footer_menu_color_hover', 'footer_text_color',
                                      'footer_btn_border_color', 'footer_btn_border_color_hover');
                        foreach ($rgba as $value) {
                            $colorSchemeOptions[$value] = getHex2Rgba(Common::getOption($value, 'edge_color_scheme_general'), Common::getOption("{$value}_opacity", 'edge_color_scheme_general'));
                        }
                    } elseif ($block == 'color_scheme_member') {
                        $colorSchemeOptions['meta_theme_color'] = $colorSchemeOptions['member_navbar_background_color'];
					}

					if ($html->blockExists("{$block}_css")) {
						$html->parse("{$block}_css", false);
					}

                    $html->assign('', $colorSchemeOptions);
                }
                $html->parse($block, false);
            }
        }

        if ($isHeader) {

            $htmlBackgroundColor = '';

            if($p == 'index.php') {
                $htmlBackgroundColor = self::getHeaderBackgroundColor();
            } elseif($p == 'city.php') {
                $htmlBackgroundColor = Common::getOption('3dcity_background_color', 'edge_color_scheme_general');
            } else {
                $htmlBackgroundColor = Common::getOption('page_content_background_color', 'edge_color_scheme_general');
            }

            $html->setvar('html_background_color', $htmlBackgroundColor);

            PWA::parseHeader($html);
        }
    }

    static function getHeaderBackgroundColor()
    {
        $mainPageHeaderBackgroundType = Common::getOption('main_page_header_background_type', 'edge_color_scheme_visitor');

        if($mainPageHeaderBackgroundType == 'color') {
            $headerBackgroundColor = Common::getOption('main_page_header_background_color', 'edge_color_scheme_visitor');
        } else {
            $gradientDirection = Common::getOption('main_page_header_background_color_direction', 'edge_color_scheme_visitor');
            if($gradientDirection == 'top' || $gradientDirection == 'left') {
                $headerBackgroundColor = Common::getOption('main_page_header_background_color_lower', 'edge_color_scheme_visitor');
            } else {
                $headerBackgroundColor = Common::getOption('main_page_header_background_color_upper', 'edge_color_scheme_visitor');
            }
        }

        return $headerBackgroundColor;
    }

    static function getUserName($row, $groupId = 0)
    {
        $vars = array('name_1' => $row['name'], 'name_2' => '', 'age' => $row['age']);
        if (!$groupId) {
            $name = preg_replace('/(\s)+/u', ' ', $row['name']);
            if ($name) {
                $name = User::nameOneLetterFull($row['name']);
                $parts = explode(' ', $name);
                $numParts = count($parts);
                if ($numParts > 1) {
                    $vars['name_2'] = $parts[$numParts - 1];
                    $vars['name_1'] = str_replace($vars['name_2'], '', $name);
                }
            }
        }
        self::$nameUser = $vars['name_1'] . $vars['name_2'];
        if ($groupId) {
            $userName = lSetVars('edge_profile_user_name', $vars);
        } else {
            if (User::isShowAge($row)) {
                $userName = lSetVars('edge_profile_user_name_and_age', $vars);
            } else {
                $userName = lSetVars('edge_profile_user_name', $vars);
            }
        }
        return $userName;
    }

    static function getOptionCustomHeader()
    {
        global $p;

        if ($p == 'city.php') {
            return 'header_custom_only_navbar';
        }

        $guid = guid();
        $option = 'header_page_inner';

        $pageChecked = array(
            'profile_view.php',
            'search_results.php'
        );

        $groupId = Groups::getParamId();
        $paramGetUid = User::getParamUid(0);
        $key = 'member_profile_tabs';
        $optionTab = 'set_default_profile_tab';
        if ($groupId) {
            $key = 'member_groups_tabs';
            $optionTab = 'set_default_groups_tab';
        }

        if ($paramGetUid || $groupId) {
            $pageProfileList = ListBlocksOrder::getOrderItemsList($key);
            $defaultProfileTab = Common::getOption($optionTab, 'edge');

            if (isset($pageProfileList[$defaultProfileTab]['url_page'])) {
                $pageChecked = array($pageProfileList[$defaultProfileTab]['url_page']);
            }
        }
        if (in_array($p, $pageChecked)) {
            $display = get_param('display');
            if ($p == 'profile_view.php') {
                $option = 'header_profile_my';
            }elseif (($p == 'search_results.php' && $display == 'profile')
                        || $p != 'search_results.php') {

                if ($guid == $paramGetUid) {
                    if ($groupId) {
                        $option = 'header_groups';
                    } else {
                        $option = 'header_profile_my';
                    }
                } else {
                    $option = 'header_profile_someones';
                }
            }
        }

        if ($option == 'header_profile_my') {
            self::$isProfileTabs = true;
        }

        return $option;
    }

    static function parseCustomHeader(&$html, $uid = null)
    {
        global $g;
        global $p;

        if (!$html->blockExists('header_custom_big')) {
            return;
        }

        if (in_array($p, array('videochat.php', 'audiochat.php', 'email_not_confirmed.php', 'live_streaming.php'))) {
           return;
        }

        $groupsTypeContent = Groups::getTypeContentList();
        Groups::setTypeContentList(false);

        $guid = guid();
        $groupId = Groups::getParamId();

        $option = self::getOptionCustomHeader();

        if ($groupId && $option == 'header_groups') {
            $blockHeader = Common::getOption($option, 'edge_groups_settings');
        } else {
            $blockHeader = Common::getOption($option, 'edge_member_settings');
        }

        if ($blockHeader == 'header_custom_only_navbar') {
            return;
        }

        $html->setvar('type_custom_header', $blockHeader);

        if ($uid === null) {
            $uid = User::getRequestUserId('uid', $guid);
        }


        $groupInfo = array();
        if ($groupId) {
            $groupInfo = Groups::getInfoBasic($groupId);
        }

        $row = User::getInfoBasic($uid);

        $blockHeaderCustom = 'header_custom';
        $sizePhotoMain = Common::getOption('profile_photo_main_size', 'template_options');
        if ($groupId) {
            $infoName = array('name' => $groupInfo['title'], 'age' => '');
			$nameShort = User::nameShort($groupInfo['title']);
            $infoBlock = array('name' => self::getUserName($infoName, $groupId),
                               'user_name' => $nameShort,
							   'user_name_attr' => toAttr($nameShort),
                               'user_name_title' => toAttr($groupInfo['title']),
                               'visible_name_short' => intval(self::$nameUser != $groupInfo['title']),
                               'url' => Groups::url($uid, $groupInfo)
                         );
            $photoMain = User::getPhotoDefault($row['user_id'], $sizePhotoMain, false, '', DB_MAX_INDEX, false, false, false, false, $groupId);
            $photoMainR = User::getPhotoDefault($row['user_id'], 'r', false, '', DB_MAX_INDEX, false, false, false, false, $groupId);
            $photoMainId = User::getPhotoDefault($row['user_id'], $sizePhotoMain, true, '', DB_MAX_INDEX, false, false, false, false, $groupId);
        } else {
			$nameShort = User::nameShort($row['name']);
            $infoBlock = array('name' => self::getUserName($row),
                               'user_name' => $nameShort,
							   'user_name_attr' => toAttr($nameShort),
                               'user_name_title' => toAttr($row['name']),
                               'visible_name_short' => intval(self::$nameUser != $row['name']),
                               'url' => User::url($uid, $row),
                         );
            $photoMain = User::getPhotoDefault($row['user_id'], $sizePhotoMain, false, $row['gender']);
            $photoMainR = User::getPhotoDefault($row['user_id'], 'r', false, $row['gender']);
            $photoMainId = User::getPhotoDefault($row['user_id'], $sizePhotoMain, true);
        }
        $infoBlock['photo'] = $photoMain;
        $infoBlock['photo_r'] = $photoMainR;
        $infoBlock['photo_id'] = $photoMainId;
        $infoBlock['uid'] = $uid;

        $html->assign($blockHeaderCustom, $infoBlock);

        if ($option == 'header_profile_someones' && $guid != $uid) {
            if (User::isOnline($uid, $row)) {
                $html->parse('status_online_profile', false);
            }
            if (!$groupId && Common::isOptionActive('contact_blocking')) {
                $isEntryBlocked = intval(User::isEntryBlocked($guid, $uid));
                $blockProfileBlocked = 'profile_user_blocked_bl';
                if ($isEntryBlocked) {
                    $html->parse("{$blockProfileBlocked}_show", false);
                }
                $html->parse($blockProfileBlocked, false);
            }
        }

		$blockPhotosGrid = "{$blockHeader}_grid";
		$isParseProfileCover = false;
		if (User::parseProfileBgCover($html, $row['user_id'], $groupId, $blockPhotosGrid)) {
			$isParseProfileCover = true;
		}

        if ($blockHeader == 'header_custom_big') {
            if (!$groupId) {
               User::parseProfileVerification($html, $row, 'profile_verification_verified_from_big_header');
            }

            //$photoMainId = User::getPhotoDefault($row['user_id'], $sizePhotoMain, true);
            $blockCustom = 'header_custom';
			if ($guid == $uid) {
				if (!$photoMainId) {
					$html->parse("{$blockCustom}_empty_photo", false);
					$html->parse("{$blockCustom}_empty_photo_title", false);
				}

                if(!$photoMainId || (isset(CProfilePhoto::$allPhotoInfo[$photoMainId]['gif']) && !Common::isImageEditorEnabled(CProfilePhoto::$allPhotoInfo[$photoMainId]['gif'] ? 'gif' : ''))) {
                    $html->parse("{$blockCustom}_upload_profile_photo_editor_hide", false);
                }

				$html->parse("{$blockCustom}_upload_profile_cover", false);
				$html->parse("{$blockCustom}_upload_profile_photo", false);
			} else {
                $html->parse("{$blockCustom}_profile_view_button", false);
            }
            $blockAdditionMenu = 'mn_circle';
            $numberItem = 6;
        } else {
            $blockAdditionMenu = 'mn_circle_small';
            $numberItem = 3;
        }

        if ($groupId) {
            $module = 'member_groups_additional_menu';
            if ($guid != $uid) {
                $module = 'member_groups_visited_additional_menu';
                if ($blockHeader != 'header_custom_big') {
                    $module = 'member_groups_visited_additional_menu_inner';
                }
            }
        } else {
            $module = 'member_user_additional_menu';
            if ($guid != $uid) {
                $module = 'member_visited_additional_menu';
                if ($blockHeader != 'header_custom_big') {
                    $module = 'member_visited_additional_menu_inner';
                }
            }
        }
        ListBlocksOrder::parseAdditionMenu($html, $module, $blockAdditionMenu, $numberItem);

		if (!$isParseProfileCover) {
			/* Grid Photos */
			$numberPhoto = 26;

			$whereSql = ' AND `hide_header` = 0';
			$profilePhoto = CProfilePhoto::preparePhotoList($row['user_id'], null, $whereSql, 26, false, false, false, $groupId);
			$profileVideo = CProfileVideo::getVideosList('', 26, $row['user_id'], false, true, 0, $whereSql, $groupId);

			$i = 0;
			$profilePhoto = array_merge($profilePhoto, $profileVideo);
			shuffle($profilePhoto);

			$blockPhotosGridItem = "{$blockPhotosGrid}_item";
			$varPhotosGridItemId = "{$blockPhotosGridItem}_id";
			$varPhotosGridItemDesc = "{$blockPhotosGridItem}_desc";
			$varPhotosGridItemUrl = "{$blockPhotosGridItem}_url";
			$profilePhotoDisplay = array();
			$noPrivatePhoto = Common::isOptionActiveTemplate('no_private_photos');
			$showPrivatePhoto = false;
			if ($noPrivatePhoto) {
				$showPrivatePhoto = true;
			}
			$field = 'default';
			if ($groupId) {
				$field = 'default_group';
			}
			foreach ($profilePhoto as $id => $photo) {
				if ($photo[$field] === 'Y' || ($photo['private'] === 'Y' && !$showPrivatePhoto) || $photo['visible'] !== 'Y') {
					continue;
				}
				$isVideo = isset($photo['video_id']);
				if ($isVideo) {
					$urlPhoto = $g['path']['url_files'] . $photo['src_src'];
				} else {
					$urlPhoto = $g['path']['url_files'] . $photo['src_b'];
				}
				$vars = array('id'          => $photo['photo_id'],
                          'url'         => $urlPhoto,
                          'description' => $photo['description'],
						  'description_attr' => toAttr($photo['description']),
                          'info'        => json_encode($photo),
                          'video'       => intval($isVideo));
				$profilePhotoDisplay[] = $vars;
				$html->assign($blockPhotosGridItem, $vars);
				$html->parse($blockPhotosGridItem, true);
				if ($i++ == ($numberPhoto - 1)) {
					break;
				}
			}
			if ($i < $numberPhoto) {//&& false
				if ($profilePhotoDisplay) {
					$numberPhoto = 10;
					$d = $numberPhoto - count($profilePhotoDisplay);
					$j = 0;
					for ($i = 1; $i <= $d; $i++) {
						if (!isset($profilePhotoDisplay[$j])) {
							$j = 0;
						}
						$html->assign($blockPhotosGridItem, $profilePhotoDisplay[$j]);
						$html->parse($blockPhotosGridItem, true);
						$j++;
					}
				} else {
					for ($i = 1; $i <= $numberPhoto; $i++) {
						$html->setvar("{$blockPhotosGridItem}_class", $guid == $uid ? 'photo_upload' : '');
						$html->setvar("{$blockPhotosGridItem}_info", json_encode(array()));
						$html->setvar($varPhotosGridItemId, 'empty_photo');
						$html->setvar($varPhotosGridItemDesc, l('upload_photo_link'));
						$html->setvar($varPhotosGridItemUrl, $g['tmpl']['url_tmpl_main'] . 'images/photo_camera.png');
						$html->parse($blockPhotosGridItem, true);
					}
				}
			}
		}
		/* Grid Photos */

        if ($blockHeader == 'header_custom_small') {
            $option = $groupId ? 'member_groups_inner_tabs' : 'member_profile_inner_tabs';
        } else {
            $option = $groupId ? 'member_groups_tabs' : 'member_profile_tabs';
        }

        if ($blockHeader == 'header_custom_small') {
            ListBlocksOrder::parseMenu($html, $option, 'profile_menu_inner_small');
        } else {
            ListBlocksOrder::parseMenu($html, $option, 'profile_menu_inner_big', ListBlocksOrder::$numberItemProfileMenuBig);
        }

        $html->parse($blockHeader, false);

        Groups::setTypeContentList($groupsTypeContent);
    }

    static function isTemplateColums($showAlways = false)
    {
        global $p;

        $guid = guid();
        if ($guid) {
            $header = self::getOptionCustomHeader();
            if ($header == 'header_profile_my' || $header == 'header_profile_someones' || $header == 'header_groups') {
                $showAlways = true;
            }
            /*$paramUid = get_param_int('uid');
            $display = get_param('display');
            if ($p == 'search_results.php' && $display == 'profile' && $guid == $paramUid){
                $guid = 1;
            }*/
        }

        return $guid && Common::isAllowedModuleTemplate('profile_column')
               && (Common::isOptionActive('show_columns_inner_pages', 'edge_member_settings')  || $showAlways)
               && !in_array($p, Common::getOptionTemplate('pages_one_column'));
    }

    static function parseColumnListImg(&$html, $uid, $type, $numColumn, $typeOrder, $blockColumnType, $groupId = 0)
    {
        global $g;

        if (!$numColumn) {
            $numColumn = 9;
        }
        $isPhotos = in_array($type, array('photos', 'photos_list_1', 'photos_list_2'));
        //$isBlogs = in_array($type, array('photos', 'photos_list_1', 'photos_list_2'));
        if ($isPhotos) {
            $list = CProfilePhoto::getPhotosList($typeOrder, false, '0, ' . $numColumn, $uid, $groupId);
            $count = CProfilePhoto::getTotalPhotos($uid, false, $groupId);
        } else {
            $list = CProfileVideo::getVideosList($typeOrder, '0, ' . $numColumn, $uid, false, true, 0, '', $groupId);
            $count = CProfileVideo::getTotalVideos($uid, $groupId);
        }

        $guid = guid();
        $isParseColumn = false;
        $blockColumn = "{$blockColumnType}_{$type}";
        $blockColumnItem = "{$blockColumn}_item";

        $groupsPhotoList = Groups::getParamTypeContentList();
        $isPagesPhotosList = $groupsPhotoList == 'group_page';

        if (in_array($type, array('photos_list_1', 'photos_list_2', 'videos_list_1', 'videos_list_2'))) {
            $typeKey = str_replace(array('_1', '_2'), '', $type);
            $lTitle = "edge_column_{$typeKey}_{$typeOrder}_title";
            $html->setvar("{$blockColumn}_title", l($lTitle));
        } else {

            $vars = array('count' => $count);
            $keyType = $type;
            $url = '';
            if ($groupId) {
                $keyType = (Groups::isPage() ? 'page_' : 'group_') . $keyType;
                if ($type == 'photos') {
                    $url = Common::pageUrl('group_photos_list', $groupId);
                } elseif($type == 'videos') {
                    $url = Common::pageUrl('group_vids_list', $groupId);
                }
            } else {
                if ($groupsPhotoList && $uid == $guid) {
                    if ($type == 'photos') {
                        $url = $isPagesPhotosList ? Common::pageUrl('user_my_pages_photos_list', $guid) : Common::pageUrl('user_my_groups_photos_list', $guid);
                    } elseif($type == 'videos') {
                        $url = $isPagesPhotosList ? Common::pageUrl('user_my_pages_vids_list', $guid) : Common::pageUrl('user_my_groups_vids_list', $guid);
                    }
                } else {
                    if ($type == 'photos') {
                        $url = Common::pageUrl('user_photos_list');
                    } elseif($type == 'videos') {
                        $url = Common::pageUrl('user_vids_list');
                    }
                }
            }

            $lTitle = "edge_column_{$keyType}_title";
            if (in_array($type, array('photos', 'videos')) && guid() != $uid) {
                $lTitle = "edge_column_{$keyType}_title_other_user";
            }

            $html->setvar("{$blockColumn}_url", $url);
            $html->setvar("{$blockColumn}_title", lSetVars($lTitle, $vars));
        }
        $html->setvar("{$blockColumn}_type_order", $typeOrder);

        foreach ($list as $id => $item) {
            /*if ($type == 'photos'
                    && (($item['private'] == 'Y') || ($uid == guid() && $item['default'] == 'Y') && $count > $numColumn)) {
                    continue;
            }*/
            if ($numColumn) {
                $isParseColumn = true;
                $id = $isPhotos ? $item['photo_id'] : $item['video_id'];
                $html->setvar("{$blockColumnItem}_id", $id);
                $html->setvar("{$blockColumnItem}_info", json_encode($item));
                $html->setvar("{$blockColumnItem}_user_id", $item['user_id']);
				$html->setvar("{$blockColumnItem}_desc_attr", toAttr($item['description']));
                $html->setvar("{$blockColumnItem}_desc", $item['description']);
                $urlPhoto = $g['path']['url_files'] . $item['src_s'];
                $html->setvar("{$blockColumnItem}_url", $urlPhoto);
                $html->parse($blockColumnItem, true);
            } else {
                break;
            }
            $numColumn--;
        }
        return $isParseColumn;
    }

    static function parseColumnListGroups(&$html, $uid, $type, $blockColumnType)
    {
        global $g;

        $numColumn = Common::getOptionInt("number_{$type}_left_column", 'edge_member_settings');
        $typeOrder = Common::getOption("list_{$type}_type_order", 'edge_general_settings');

        $isPage = intval($type == 'pages');

		$whereCustomUser = '';
		$listSubscribers = Groups::getUserGroupsSubscribers($uid);
		if ($listSubscribers) {
			$whereCustomUser = ' OR `group_id` IN(' . to_sql($listSubscribers, 'Plain') . ')';
		}
        $list = GroupsList::getListGroups($numColumn, $typeOrder, $uid, $isPage, $whereCustomUser);
        $count = GroupsList::getTotalGroups($uid, $isPage, $whereCustomUser);

        $isParseColumn = false;
        $blockColumn = "{$blockColumnType}_{$type}";
        $blockColumnItem = "{$blockColumn}_item";

        $vars = array('count' => $count);
        $url = $isPage ? Common::pageUrl('user_pages_list') : Common::pageUrl('user_groups_list');
        $lTitle = "edge_column_{$type}_title";
        if (guid() != $uid) {
            $lTitle = "edge_column_{$type}_title_other_user";
        }

        $html->setvar("{$blockColumn}_url", $url);
        $html->setvar("{$blockColumn}_title", lSetVars($lTitle, $vars));

        $html->setvar("{$blockColumn}_type_order", $typeOrder);

        foreach ($list as $id => $item) {
            if ($numColumn) {
                $isParseColumn = true;
                $html->setvar("{$blockColumnItem}_id", $item['group_id']);
                $html->setvar("{$blockColumnItem}_user_id", $item['user_id']);
                $html->setvar("{$blockColumnItem}_title", $item['title']);
				$html->setvar("{$blockColumnItem}_title_attr", toAttr($item['title']));
                $html->setvar("{$blockColumnItem}_url", Groups::url($item['group_id']));
                $urlPhoto = GroupsPhoto::getPhotoDefault($item['user_id'], $item['group_id'], 's');
                $html->setvar("{$blockColumnItem}_photo_url", $g['path']['url_files'] . $urlPhoto);

                $html->parse($blockColumnItem, true);
            } else {
                break;
            }
            $numColumn--;
        }
        return $isParseColumn;
    }


    static function parseColumnListBlogs(&$html, $uid, $type, $blockColumnType, $numColumn, $typeOrder, $parseTitle = true)
    {
        global $g;

        $list = Blogs::getList($typeOrder, $numColumn, $uid);
        $count = Blogs::getTotalBlogs($uid);

        $isParseColumn = false;
        $blockColumn = "{$blockColumnType}_{$type}";
        $blockColumnItem = "{$blockColumn}_item";

        $url = Common::pageUrl('user_blogs_list');
        $html->setvar("{$blockColumn}_url", $url);

        if ($parseTitle) {
            $vars = array('count' => $count);
            $lTitle = "edge_column_{$type}_title";
            if (guid() != $uid) {
                $lTitle = "edge_column_{$type}_title_other_user";
            }
            $html->setvar("{$blockColumn}_title", lSetVars($lTitle, $vars));
        }

        $html->setvar("{$blockColumn}_type_order", $typeOrder);

        foreach ($list as $id => $item) {
            if ($numColumn) {
                $isParseColumn = true;
                $html->setvar("{$blockColumnItem}_id", $item['id']);
                $html->setvar("{$blockColumnItem}_user_id", $item['user_id']);
                $html->setvar("{$blockColumnItem}_url", Blogs::url($item['id']));
                $html->setvar("{$blockColumnItem}_title", toAttr($item['subject']));
                $image = explode('|', $item['images']);
                if ($image) {
                    $image = CBlogsTools::getImg($item['id'], $image[0], 't');
                }
                if ($image) {
                    $urlPhoto = $image;
                } else {
                    $urlPhoto = $g['path']['url_files'] . 'blog_t.png';
                }
                $html->setvar("{$blockColumnItem}_photo_url", $urlPhoto);

                $html->parse($blockColumnItem, true);
            } else {
                break;
            }
            $numColumn--;
        }
        return $isParseColumn;
    }

    static function parseColumnListSongs(&$html, $uid, $type, $numColumn, $typeOrder, $blockColumnType, $groupId = 0)
    {
        global $g;

        if (!$numColumn) {
            $numColumn = 9;
        }

        $showAllMySongs = true;
        $list = Songs::getList($typeOrder, '0,' . $numColumn, $uid, $groupId, $showAllMySongs);
        $count = Songs::getTotal($uid, $groupId);

        $guid = guid();
        $isParseColumn = false;
        $blockColumn = "{$blockColumnType}_{$type}";
        $blockColumnItem = "{$blockColumn}_item";

        $groupsSongsList = Groups::getParamTypeContentList();
        $isPagesPhotosList = $groupsSongsList == 'group_page';

        if (in_array($type, array('songs_list_1', 'songs_list_2'))) {
            $typeKey = str_replace(array('_1', '_2'), '', $type);
            $lTitle = "edge_column_{$typeKey}_{$typeOrder}_title";
            $html->setvar("{$blockColumn}_title", l($lTitle));
        } else {
            $vars = array('count' => $count);
            $keyType = $type;
            $url = '';
            if ($groupId) {
                $keyType = (Groups::isPage() ? 'page_' : 'group_') . $keyType;
                $url = Common::pageUrl('group_songs_list', $groupId);
            } else {
                if ($groupsSongsList && $uid == $guid) {
                    $url = $isPagesPhotosList ? Common::pageUrl('user_my_pages_songs_list', $guid) : Common::pageUrl('user_my_groups_songs_list', $guid);
                } else {
                    $url = Common::pageUrl('user_songs_list');
                }
            }

            $lTitle = "edge_column_{$keyType}_title";
            if (guid() != $uid) {
                $lTitle = "edge_column_{$keyType}_title_other_user";
            }

            $html->setvar("{$blockColumn}_url", $url);
            $html->setvar("{$blockColumn}_title", lSetVars($lTitle, $vars));
        }
        $html->setvar("{$blockColumn}_type_order", $typeOrder);

        foreach ($list as $id => $item) {
            if ($numColumn) {
                $isParseColumn = true;
				$item['song_title'] = strip_tags($item['song_title']);//Fix old template
                $html->setvar("{$blockColumnItem}_id", $item['song_id']);
                $html->setvar("{$blockColumnItem}_user_id", $item['user_id']);
                $html->setvar("{$blockColumnItem}_desc", toAttr($item['song_title']));

                $urlPhoto = Songs::getImageDefault($item['song_id']);
                $html->setvar("{$blockColumnItem}_url", $urlPhoto);

                $html->setvar("{$blockColumnItem}_mp3", toJs(Songs::getFile($item['song_id'])));
                $html->setvar("{$blockColumnItem}_mp3_title", toJs($item['song_title']));

                $html->parse($blockColumnItem, true);
            } else {
                break;
            }
            $numColumn--;
        }
        return $isParseColumn;
    }

    static function parseColumn(&$html, $uid = null, $row = null, $showAlways = false)
    {
        global $g, $p;

        if (!self::isTemplateColums($showAlways)) {
            $pOneColumn = Common::getOptionTemplate('pages_parse_block_one_column');
            if (!is_array($pOneColumn)) {
                $pOneColumn = array();
            }
            if (in_array($p, $pOneColumn)) {
                $html->parse('one_column', false);
            }
            return;
        }

        $guid = guid();
        $blockColumnLeft = 'left_column';

        if ($uid === null) {
            $uid = $guid;
        }
        $groupId = Groups::getParamId();
        $isPageGroup = Groups::isPage();

        $parseBlockPhotos = true;
        if($groupId && !$isPageGroup){
            $isAccessGroup = Groups::isAccessGroup();
            if (!$isAccessGroup) {
                $parseBlockPhotos = false;
            }
        }

        $html->setvar('profile_column_user_id', $uid);
        /*$param = $uid == guid() ? '' : 'uid=' . $uid;
        if ($param) {
            $param1 = $param2 = '?' . $param;
            $html->setvar('profile_column_page_param_1', $param1);
            if (!Common::isOptionActive('seo_friendly_urls')) {
                $param2 = '&' . $param;
            }
            $html->setvar('profile_column_page_param_2', $param2);
        }*/

        $isPageVids = Common::isPage('vids_list');
        $isPagePhotos = Common::isPage('photos_list');
        $isPageSongs = Common::isPage('songs_list');

        $isPagePages = ($p == 'groups_list.php' && $isPageGroup) || Common::isPage('page_add');
        $isPageGroups = $p == 'groups_list.php' || Common::isPage('group_add');
        $isPageBlogs = $p == 'blogs_list.php' || Common::isPage('blogs_add') ;

        $isPhotosListGroups = Common::isPage('pages_photos_list') || Common::isPage('groups_photos_list');
        $isVideosListGroups = Common::isPage('pages_vids_list') || Common::isPage('groups_vids_list');
        $isSongsListGroups = Common::isPage('pages_songs_list') || Common::isPage('groups_songs_list');
        /* Left */
        $keyLeftColumn = $groupId ? 'member_groups_column_left_order' : 'member_column_left_order';

        $blocksColumnLeft = ListBlocksOrder::getOrderItemsList($keyLeftColumn);
        $blockColumnLeftItem = "{$blockColumnLeft}_item";
        $blockItem = '';
        if ($isPageVids || $isPagePhotos) {
            unset($blocksColumnLeft['songs']);
            unset($blocksColumnLeft['blogs']);
            unset($blocksColumnLeft['pages']);
            unset($blocksColumnLeft['groups']);

            if ($isPageVids) {
                unset($blocksColumnLeft['photos']);
            } else {
                unset($blocksColumnLeft['videos']);
            }
        } elseif ($isPagePages || $isPageGroups) {
            unset($blocksColumnLeft['songs']);
            unset($blocksColumnLeft['blogs']);

            unset($blocksColumnLeft['photos']);
            unset($blocksColumnLeft['videos']);
            if ($isPagePages) {
                unset($blocksColumnLeft['groups']);
            } else {
                unset($blocksColumnLeft['pages']);
            }
        } elseif ($isPageBlogs) {
            unset($blocksColumnLeft['songs']);
            unset($blocksColumnLeft['pages']);
            unset($blocksColumnLeft['groups']);
            unset($blocksColumnLeft['photos']);
            unset($blocksColumnLeft['videos']);
        } elseif ($isPageSongs) {
            unset($blocksColumnLeft['blogs']);
            unset($blocksColumnLeft['pages']);
            unset($blocksColumnLeft['groups']);
            unset($blocksColumnLeft['photos']);
            unset($blocksColumnLeft['videos']);
        }

        if ($groupId || $isPhotosListGroups || $isVideosListGroups || $isSongsListGroups) {
            unset($blocksColumnLeft['blogs']);
        }

        foreach ($blocksColumnLeft as $type => $value) {
            if ($blockItem) {
                $html->clean($blockItem);
            }
            $blockItem = '';
            if (($type == 'photos' || $type == 'videos') && $parseBlockPhotos) {
                $numColumn = Common::getOptionInt("number_{$type}_left_column", self::getOptionsSettingsKey($groupId));
                $typeOrder = Common::getOption("list_{$type}_type_order", 'edge_general_settings');
                $blockColumn = "{$blockColumnLeft}_{$type}";

                $isParse = self::parseColumnListImg($html, $uid, $type, $numColumn, $typeOrder, $blockColumnLeft, $groupId);
                if (!$isParse && $uid == $guid) {
                    $html->parse("{$blockColumn}_hide", false);
                    $isParse = true;
                }
                if ($isParse) {
                    $blockItem = $blockColumn;
                }

            } elseif ($type == 'blogs') {

                $numColumn = Common::getOptionInt('number_blogs_left_column', 'edge_member_settings');
                $typeOrder = Common::getOption('list_blog_posts_type_order', 'edge_general_settings');

                $isParse = self::parseColumnListBlogs($html, $uid, $type, $blockColumnLeft, $numColumn, $typeOrder);

                $blockColumn = "{$blockColumnLeft}_{$type}";
                if (!$isParse && $uid == $guid) {
                    $html->parse("{$blockColumn}_hide", false);
                    $isParse = true;
                }
                if ($isParse) {
                    $blockItem = $blockColumn;
                }
            } elseif ($type == 'songs') {

                $numColumn = Common::getOptionInt('number_songs_left_column', 'edge_member_settings');
                $typeOrder = Common::getOption('list_songs_type_order', 'edge_general_settings');

                $isParse = self::parseColumnListSongs($html, $uid, $type, $numColumn, $typeOrder, $blockColumnLeft, $groupId);

                $blockColumn = "{$blockColumnLeft}_{$type}";
                if (!$isParse && $uid == $guid) {
                    $html->parse("{$blockColumn}_hide", false);
                    $isParse = true;
                }
                if ($isParse) {
                    $blockItem = $blockColumn;
                }
            } elseif ($type == 'pages' || $type == 'groups') {
                $isParse = self::parseColumnListGroups($html, $uid, $type, $blockColumnLeft);

                $blockColumn = "{$blockColumnLeft}_{$type}";
                if (!$isParse && $uid == $guid) {
                    $html->parse("{$blockColumn}_hide", false);
                    $isParse = true;
                }
                if ($isParse) {
                    $blockItem = $blockColumn;
                }
            } elseif ($type == 'banner') {
                $blockItem = 'left_banner';
                CBanner::getBlock($html, 'left_column');
            } elseif ($type == 'custom_menu') {
                $blockItem = 'left_menu';
                CustomPage::parseMenu($html, 'left_column');
            }
            if ($blockItem) {
                $html->parse($blockItem, false);
                $html->parse($blockColumnLeftItem, true);
            }
        }
        if ($blocksColumnLeft) {
            $html->parse($blockColumnLeft, false);
        }
        /* Left */
        /* Right */
        $blogId = Blogs::getParamId();
        if ($blogId) {
            $keyColumnRight = 'blogs_column_right_order';
        } else {
            $keyColumnRight = $groupId ? 'member_groups_column_right_order' : 'member_column_right_order';
        }

        $blocksColumnRight = ListBlocksOrder::getOrderItemsList($keyColumnRight);
        $blockColumnRight = 'right_column';
        $blockColumnRightItem = "{$blockColumnRight}_item";
        $blockItem = '';

        $infoColumn = array();

        if ($groupId) {
            $row = Groups::getInfoBasic($groupId);
            $infoColumn = array(
                'name'  => trim($row['title']),
                'birth' => $row['date'],
                'about' => trim($row['description']),
                'gender' => '',
                'orientation' => '',
                'city'   => $row['city']
            );
            $userNameShort = $infoColumn['name'];
        } else {
            if ($row === null) {
                $row = User::getInfoFull($uid);
            }
            $orientation = User::getOrientationInfo($row['orientation']);
            $orientationTitle = '';
            if ($orientation) {
                $orientationTitle = l($orientation['title']);
            }

            if(self::isModeLms()) {
                $lmsUserType = LMS::getUserTypeInfo($row['lms_user_type']);
                if ($lmsUserType) {
                    $orientationTitle = l($lmsUserType['title']);
                }
            }

            $infoColumn = array(
                'name'  => $row['name'],
                'birth' => $row['birth'],
                'about' => trim(isset($row['about_me']) ? trim($row['about_me']) : ''),
                'gender' => $row['gender'],
                'orientation' => $orientationTitle,
                'city'   => $row['city']
            );
            $userNameShort = User::nameShort($infoColumn['name']);

            if ($blogId) {
                $infoColumn['city'] = '';
                $infoColumn['gender'] = '';
                $infoColumn['orientation'] = '';
                $blogCreated = Blogs::getInfo($blogId, 'dt');
                $infoColumn['birth'] = $blogCreated;
            }
        }

        $html->setvar('profile_column_user_name', $userNameShort);

        if (!self::$isProfileTabs) {
            unset($blocksColumnRight['blogs_list_last']);
        }

        $parseTypeList = array('videos_list_1', 'videos_list_2', 'photos_list_1', 'photos_list_2');
        $isBlogsList = Common::isPage('blogs_list');
        if ($isBlogsList) {
            unset($blocksColumnRight['friends']);
            unset($blocksColumnRight['friends_online']);
            unset($blocksColumnRight['profile_info']);
        } else {
            unset($blocksColumnRight['blogs_list_1']);
            unset($blocksColumnRight['blogs_list_2']);
        }

        if ($isPageSongs) {
            unset($blocksColumnRight['friends']);
            unset($blocksColumnRight['friends_online']);
            unset($blocksColumnRight['profile_info']);
        } else {
            unset($blocksColumnRight['songs_list_1']);
            unset($blocksColumnRight['songs_list_2']);
        }

        if ($isPageVids || $isPagePhotos
                || $isVideosListGroups || $isPhotosListGroups) {
            unset($blocksColumnRight['friends']);
            unset($blocksColumnRight['friends_online']);
            unset($blocksColumnRight['profile_info']);
            if ($isPageVids || $isVideosListGroups) {
                unset($blocksColumnRight['photos_list_1']);
                unset($blocksColumnRight['photos_list_2']);
            } else {
                unset($blocksColumnRight['videos_list_1']);
                unset($blocksColumnRight['videos_list_2']);
            }
        } else {
            unset($blocksColumnRight['photos_list_1']);
            unset($blocksColumnRight['photos_list_2']);
            unset($blocksColumnRight['videos_list_1']);
            unset($blocksColumnRight['videos_list_2']);
        }

        foreach ($blocksColumnRight as $type => $value) {
            if ($blockItem) {
                $html->clean($blockItem);
            }
            $blockItem = '';

            if ($type == 'subscribers_group' || $type == 'subscribers_group_online') {
                $blockItem = "{$blockColumnRight}_friend";
                $uidCur = $uid;
                $vars = array();
                $keyL = $isPageGroup ? 'page_' : 'group_';
                if ($type == 'subscribers_group_online') {
                    $blockItem .= '_online';
                    $maxNumberFriends = Common::getOptionInt('number_subscribers_online_right_column', 'edge_groups_settings');
                    $uidCur = guid();
                    $lTitle = "edge_column_{$keyL}subscribers_online_title";
                    $urlPage = 'group_page_liked';
                } else {
                    $maxNumberFriends = Common::getOptionInt('number_subscribers_right_column', 'edge_groups_settings');
                    $lTitle = "edge_column_{$keyL}subscribers_title";
                    if ($isPageGroup) {
                        $urlPage = 'group_page_liked';
                    } else {
                        $urlPage = 'group_subscribers';
                    }
                }

                $friends = Groups::getListSubscribers($groupId, $type == 'subscribers_group_online', $maxNumberFriends);
                $blockFriendItem = "{$blockItem}_item";
                $count = 0;
                if ($friends) {
                    if ($type == 'subscribers_group_online') {
                        $count = Groups::getNumberSubscribersOnline($groupId);
                    } else {
                        $count = Groups::getNumberSubscribers($groupId);
                    }
                    foreach ($friends as $key => $friend) {
                        $html->setvar("{$blockFriendItem}_user_id", $friend['user_id']);
                        $title = $friend['name'];
                        if (User::isShowAge($friend)) {
                            $title .= ', ' .  getAge($friend['birth']);
                        }
                        $html->setvar("{$blockFriendItem}_name", $title);
                        $photo = $g['path']['url_files'] .  User::getPhotoDefault($friend['user_id'], 's', false, $friend['gender']);
                        $html->setvar("{$blockFriendItem}_photo", $photo);
                        $html->setvar("{$blockFriendItem}_url", User::url($friend['user_id']));
                        if ($type == 'subscribers_group' && $uidCur == $guid) {
                            //$html->parse("{$blockFriendItem}_link_im", false);
                        }

                        $html->parse($blockFriendItem, true);
                    }
                    if ($type == 'subscribers_group_online') {
                        if ($count <= $maxNumberFriends) {
                            $html->parse("{$blockItem}_more_hide", false);
                        }
                    }
                    $html->parse("{$blockItem}_show", false);
                }
                $vars['count'] = $count;
                $html->setvar("{$blockItem}_title", lSetVars($lTitle, $vars));
                $html->setvar("{$blockItem}_url", Common::pageUrl($urlPage, $groupId));
            } elseif (($type == 'friends' || $type == 'friends_online') && Common::isOptionActive('friends_enabled')) {
                $blockItem = "{$blockColumnRight}_friend";
                $uidCur = $uid;
                $vars = array();
                if ($type == 'friends_online') {
                    $blockItem .= '_online';
                    $maxNumberFriends = Common::getOptionInt('number_friends_online_right_column', 'edge_member_settings');
                    $uidCur = guid();
                    $lTitle = 'edge_column_friends_online_title';
                    $urlPage = 'my_friends_online';
                } else {
                    $maxNumberFriends = Common::getOptionInt('number_friends_right_column', 'edge_member_settings');
                    $lTitle = 'edge_column_friends_title';
                    if (guid() != $uid) {
                        $lTitle .= '_other_user';
                    }
                    $urlPage = 'user_friends_list';
                }

                $friends = User::getListFriends($uidCur, $type == 'friends_online', $maxNumberFriends);
                $blockFriendItem = "{$blockItem}_item";
                $count = 0;
                if ($friends) {
                    if ($type == 'friends_online') {
                        $count = User::getNumberFriendsOnline();
                    } else {
                        $count = User::getNumberFriends($uid);
                    }
                    foreach ($friends as $key => $friend) {
                        $html->setvar("{$blockFriendItem}_user_id", $friend['user_id']);
                        $title = $friend['name'];
                        if (User::isShowAge($friend)) {
                            $title .= ', ' .  getAge($friend['birth']);
                        }
                        $html->setvar("{$blockFriendItem}_name", $title);
                        $photo = $g['path']['url_files'] .  User::getPhotoDefault($friend['user_id'], 's', false, $friend['gender']);
                        $html->setvar("{$blockFriendItem}_photo", $photo);
                        $html->setvar("{$blockFriendItem}_url", User::url($friend['user_id']));
                        if ($type == 'friends' && $uidCur == $guid) {
                            $html->parse("{$blockFriendItem}_link_im", false);
                        }
                        if ($type == 'friends_online') {
                            $userLiveNowId = LiveStreaming::getUserLiveNowId($friend['user_id']);
                            if ($userLiveNowId) {
                                $liveNowUrl = Common::pageUrl('live_id', $friend['user_id'], $userLiveNowId);
                                $html->setvar("{$blockFriendItem}_live_now_url", $liveNowUrl);
                                $html->parse("{$blockFriendItem}_live_now", false);
                            } else {
                                $html->clean("{$blockFriendItem}_live_now");
                            }
                        }

                        $html->parse($blockFriendItem, true);
                    }
                    if ($type == 'friends_online') {
                        if ($count <= $maxNumberFriends) {
                            $html->parse("{$blockItem}_more_hide", false);
                        }
                    }
                    $html->parse("{$blockItem}_show", false);
                }
                $vars['count'] = $count;
                $html->setvar("{$blockItem}_title", lSetVars($lTitle, $vars));
                $html->setvar("{$blockItem}_url", Common::pageUrl($urlPage));

            } elseif (in_array($type, array('blogs_list_1', 'blogs_list_2', 'blogs_list_last'))) {
                if ($type == 'blogs_list_last') {
                    $typeOrder = 'order_new_blogs';
                    $typeOrderKey = 'last_user';
                    $uidList = $uid;
                    $html->setvar("{$blockColumnRight}_{$type}_url", Common::pageUrl('user_blogs_list', $uid));
                } else {
                    $uidList = 0;
                    $typeOrder = Common::getOption("{$type}_type_order", 'edge_member_settings');
                    $typeOrderKey = $typeOrder;
                }
                $numColumn = Common::getOptionInt("number_{$type}_right_column", 'edge_member_settings');

                $typeKey = str_replace(array('_1', '_2', '_last'), '', $type);
                $lTitle = "edge_column_{$typeKey}_{$typeOrderKey}_title";

                $html->setvar("{$blockColumnRight}_{$type}_title", l($lTitle));

                $blockColumn = "{$blockColumnRight}_{$type}";
                if (self::parseColumnListBlogs($html, $uidList, $type, $blockColumnRight, $numColumn, $typeOrder, false)) {
                    $blockItem = $blockColumn;
                }

            } elseif (in_array($type, array('songs_list_1', 'songs_list_2'))) {
                $typeOrder = Common::getOption("{$type}_type_order", 'edge_member_settings');
                $numColumn = Common::getOptionInt("number_{$type}_right_column", 'edge_member_settings');

                $blockColumn = "{$blockColumnRight}_{$type}";
                if (self::parseColumnListSongs($html, 0, $type, $numColumn, $typeOrder, $blockColumnRight)) {
                    $blockItem = $blockColumn;
                }

            } elseif (in_array($type, $parseTypeList)) {
                $numColumn = Common::getOptionInt("number_{$type}_right_column", 'edge_member_settings');
                $typeOrder = Common::getOption("{$type}_type_order", 'edge_member_settings');
                $blockColumn = "{$blockColumnRight}_{$type}";
                if (self::parseColumnListImg($html, 0, $type, $numColumn, $typeOrder, $blockColumnRight)) {
                    $blockItem = $blockColumn;
                }
            } elseif ($type == 'profile_info') {
                $blockItem = "{$blockColumnRight}_profile_info";

                $aboutMe = $infoColumn['about'];
                if (IS_DEMO && $aboutMe) {
                    preg_match_all("/.*?[.?!](?:\s|$)/s", $aboutMe, $matches);
                    if ($matches && isset($matches[0][0])) {
                        $aboutMe = $matches[0][0];
                    }
                }

                if ($groupId || $blogId) {
                    $lKeyBirthTitle = 'edge_column_create_group';
                    $optionDate = 'group_create_full';
                    $birthIcon = 'fa-calendar';
                    $html->parse("{$blockItem}_bl_group", false);
                    $isUserBirthday = true;
                } else {
                    $lKeyBirthTitle = 'edge_column_birth_' . strtolower($infoColumn['gender']);
                    $optionDate = 'profile_birth_edge';
                    if (User::isShowAge($row)) {
                        $optionDate = 'profile_birth_full_edge';
                    }
                    $birthIcon = 'fa-birthday-cake';
                    $isUserBirthday = !User::isDisabledBirthday();
                }

                $info = array('city' => $infoColumn['city'] ? l($infoColumn['city']) : '',
                              'birth_title' => l($lKeyBirthTitle),
                              'birth' => Common::dateFormat($infoColumn['birth'], $optionDate, false, false, false, true),
                              'birth_icon' => $birthIcon,
                              'about_me' => $aboutMe);

                $html->assign($blockItem, $info);

                if ($isUserBirthday) {
                    $html->parse("{$blockItem}_birthday", false);
                }

                if (Common::isOptionActive('location_enabled', 'edge_join_page_settings')) {

                    if (!$info['city']) {
                        $html->parse("{$blockItem}_location_hide", false);
                    }
                    $html->parse("{$blockItem}_location", false);
                }

                if ($groupId || $blogId) {
                    $tags = array();
                    if ($groupId) {
                        $tags = Groups::getTagsView($groupId, false);
                    } else {
                        $blogWordCount = Blogs::getWordCount($blogId);

                        $min = round($blogWordCount/130,1);
                        $html->setvar("{$blockItem}_blog_read_time", lSetVars('read_time_value', array('min' => $min)));
                        $html->setvar("{$blockItem}_blog_word_count", $blogWordCount);
                        $html->parse("{$blockItem}_blog_word_count", false);

                        $tags = Blogs::getTagsView($blogId, false);
                    }
                    if ($tags) {
                        $html->setvar("{$blockItem}_tags", $tags);
                        $html->parse("{$blockItem}_tags", false);
                    }
                } else {
                    if (UserFields::isActive('orientation')) {
                        $html->setvar("{$blockItem}_orientation", $infoColumn['orientation']);
                        $html->parse("{$blockItem}_orientation", false);
                    }
                }

                if (!$blogId && ($groupId || UserFields::isActiveAboutMe())) {
                    if ($aboutMe) {
                        $html->parse("{$blockItem}_about_me_show", false);
                    }
                }

				if(!$blogId && $groupId) {
					$html->parse('group_description');
				}

                if($uid && !$groupId && !$blogId) {
                    $list = new CUsersProfile('', null, true, '');
                    $list->onItem($html, $row, 0, 0);
                }

            } elseif ($type == 'banner') {
                $blockItem = 'right_banner';
                CBanner::getBlock($html, 'right_column');
            } elseif ($type == 'send_message' && $uid != $guid) {
                $blockItem = "{$blockColumnRight}_send_message";
            } elseif ($type == 'friend_add' && $uid != $guid) {
                $blockItem = "{$blockColumnRight}_friend_add";
                $icon = 'fa-user-times';
                $title = l('unfriend');
                $cmd = 'remove';
                $uidReqiest = 0;
                $isHideBtn = User::isFriend($uid, $guid);
                if (!$isHideBtn) {
                    $title = l('add_to_friends');
                    $icon = 'fa-user-plus';
                    $cmd = 'request';
                    $uidReqiest = User::isFriendRequestExists($uid, $guid);
                    if ($uidReqiest) {
                        $icon = 'fa-user-times';
                        $title = l('approve_request');
                        $cmd = 'approve';
                        if ($uidReqiest == $guid) {
                            $icon = 'fa-user-times';
                            $title = l('remove_request');
                            $cmd = 'remove';
                            $isHideBtn = true;
                        }
                    }
                }
                $vars = array('user_id'   => $uid,
                              'user_name' => $userNameShort,
                              'icon'      => $icon,
                              'title'     => $title,
                              'cmd'       => $cmd,
                              'param'     => $uidReqiest
                );
                $html->assign($blockItem, $vars);
                if ($isHideBtn) {
                    $html->parse("{$blockItem}_hide", false);
                }
            } elseif ($type == 'user_menu' && ($uid != $guid || $groupId || $blogId)) {
                $blockItem = '';
                $keyOptionMenu = 'member_visited_right_column_menu';
                if ($groupId) {
                    $keyOptionMenu = 'member_groups_visited_right_column_menu';
                } elseif ($blogId) {
                    $keyOptionMenu = 'blogs_visited_right_column_menu';
                }
                $isParseMenu = ListBlocksOrder::parseMenu($html, $keyOptionMenu, 'right_column_user_menu');
                if ($isParseMenu) {
                    $blockItem = "{$blockColumnRight}_user_menu";
                }
            } elseif ($type == 'custom_menu') {
                $blockItem = 'right_menu';
                CustomPage::parseMenu($html, 'right_column');
            } elseif ($type == 'profile_verification') {
                $blockItem = "{$blockColumnRight}_profile_verification";
            } elseif ($type == 'group_add') {
                $blockItem = "{$blockColumnRight}_group_add";
            } elseif ($type == 'blog_add') {
                $blockItem = "{$blockColumnRight}_blog_add";
            } elseif ($type == 'page_add') {
                $blockItem = "{$blockColumnRight}_page_add";
            } elseif ($type == 'request_subscribe_group') {
                $isSubscribers = Groups::isSubscribeUser($guid, $groupId);
                if ($isPageGroup) {
                    $btnName = $isSubscribers  ? l('menu_groups_liked_edge') : l('menu_groups_like_edge');
                    $btnIcon = $isSubscribers  ? 'fa-thumbs-up' : 'fa-thumbs-o-up';
                    $action = $isSubscribers  ? 'remove' : 'request';
                } else {
                    $action = 'request';
                    if ($isSubscribers) {
                        $btnName = l('menu_groups_unjoin_edge');
                        $btnIcon = 'fa-user-times';
                        $action = 'remove';
                    } else {
                        $subscribeRequestInfo = Groups::getSubscribeRequestInfo($guid, $groupId);
                        if ($subscribeRequestInfo && !$subscribeRequestInfo['accepted']) {
                            $btnName = l('remove_request');
                            $btnIcon = 'fa-user-times';
                            $action = 'remove_request';
                        } else {
                            $btnName = l('menu_groups_join_edge');
                            $btnIcon = 'fa-user-plus';
                        }
                    }
                }

                $vars = array('btn_action' => $action,
                              'btn_group_id' => $groupId,
                              'btn_name'   => $btnName,
                              'btn_icon'   => $btnIcon
                );

                $blockItem = "{$blockColumnRight}_like_page";
                if ($isSubscribers) {
                    $html->parse("{$blockItem}_hide", false);
                }

                $html->assign($blockItem, $vars);
            }
            if ($blockItem) {
                $html->parse($blockItem, false);
                $html->parse($blockColumnRightItem, true);
            }
        }
        if ($blocksColumnRight) {
            $html->parse($blockColumnRight, false);
        }
        /* Right */
    }

    static function indexParseBlock(&$html)
    {
        global $g;

        $mainPageBlock = 'main_page';
        $mainPageBlocks = ListBlocksOrder::getOrderItemsList('main_page_block_order');
        $blockItems = '';
        foreach($mainPageBlocks as $k => $active){
            if ($blockItems) {
                $html->clean($blockItems);
            }
            $blockItems = "{$mainPageBlock}_{$k}";
            $blockItem = "{$blockItems}_item";
            if ($k == 'list_people') {
                $blockItems = self::parseListUsersMainPage($html);
            } elseif ($k == 'list_blog_posts') {
                $blockItems = self::parseListBlogsMainPage($html);
            } elseif ($k == 'list_videos') {
                $blockItems = self::parseListVideosMainPage($html);
            } elseif ($k == 'list_songs') {
                $blockItems = self::parseListSongsMainPage($html);
            } elseif ($k == 'list_live') {
                $blockItems = self::parseListLiveMainPage($html);
            }  elseif ($k == 'list_photos') {
                $blockItems = self::parseListPhotosMainPage($html);
            }  elseif ($k == 'list_groups') {
                $blockItems = self::parseListGroupMainPage($html);
            }  elseif ($k == 'list_pages') {
                $blockItems = self::parseListGroupMainPage($html, true);

            } elseif ($k == 'log_in') {
                Social::parse($html, 'log_in_social');
            } elseif ($k == 'register_now') {
                $registerFrm = new CJoinForm('register_frm', null, false, false, true);
                $registerFrm->parseBlock($html);
            } elseif ($k == 'our_app') {
                $blockBtn = 'btn_download_app_bottom';
                $isParse = Common::parseMobileBtnDownloadApp($html, "{$blockBtn}_item");
                if ($isParse){
                    $html->parse($blockBtn, false);
                } else {
                    $isParse = Common::parseBtnDownloadApp($html, 'bottom', array('ios' => 'apple'));
                }
                if (!$isParse) {
                    $blockItems = '';
                }
            } elseif ($k == 'info_block') {
                $id = CustomPage::getIdFromAlias('social_network_info', 'not_in_menu');
                if ($id) {
                    CustomPage::parsePage($html, $id);
                } else {
                    $blockItems = '';
                }
            }
            if ($blockItems) {
                $isBrowseBtn = Common::isOptionActive("{$k}_browse_btn", 'edge_main_page_settings');
                if ($isBrowseBtn) {
                    $html->parse("{$blockItems}_browse_btn", false);
                }
                $html->parse($blockItems, false);
            }

            $html->parse("{$mainPageBlock}_items", true);
        }
        if ($mainPageBlocks) {
            $html->parse($mainPageBlock, false);
        }
    }

    static function parseListBlogsMainPage(&$html)
    {
        $numberPosts = Common::getOptionInt('list_blog_posts_number_items', 'edge_main_page_settings');
        $limit = '0,' . $numberPosts;
        $typeOrder = Common::getOption('list_blog_posts_type_order', 'edge_main_page_settings');
        return self::parseListBlogs($html, $typeOrder, $limit, 'main_page_list_blog_posts');
    }

    static function getOptionList($param)
    {
        global $p;

        $module = 'edge_general_settings';
        if ($p == 'index.php') {
            $module = 'edge_main_page_settings';
        }

        return Common::getOption($param, $module);
    }

    static function parseListBlogs(&$html, $typeOrder, $limit, $blockItems)
    {
        global $p;

        //$postDisplayType = self::getOptionList('list_blog_posts_display_type');
        //$numberRow = intval(self::getOptionList('list_blog_posts_number_row'));

        if ($p == 'index.php') {
            $postDisplayType = Common::getOption('list_blog_posts_display_type', 'edge_main_page_settings');
            $numberRow = intval(Common::getOption('list_blog_posts_number_row', 'edge_main_page_settings'));
        } else {
            $postDisplayType = Common::getOption('list_blog_posts_display_type', 'edge_general_settings');
            $numberRow = intval(Common::getOption('list_blog_posts_number_row', 'edge_general_settings'));
            $uid = User::getParamUid(0);
            $guid = guid();
            if ($uid) {
                if ($uid == $guid) {
                    $postDisplayType = Common::getOption('list_blog_my_posts_display_type', 'edge_blogs_settings');
                    $numberRow = intval(Common::getOption('list_blog_my_posts_number_row', 'edge_blogs_settings'));
                } else {
                    $postDisplayType = Common::getOption('list_blog_someones_posts_display_type', 'edge_blogs_settings');
                    $numberRow = intval(Common::getOption('list_blog_someones_posts_number_row', 'edge_blogs_settings'));
                }
            }
        }

        $rows = Blogs::getList($typeOrder, $limit);

        if ($rows) {
            $i = 1;
            foreach ($rows as $row) {
                self::parseBlogPost($html, $row, $numberRow, $postDisplayType, $i);
                $i++;
            }
            $html->parse("list_blogs_{$postDisplayType}");
        } else {
            $blockItems = '';
        }

        return $blockItems;
    }


    static function parseBlogPost(&$html, $row, $numberRow, $postDisplayType, $i)
    {
        $blockItem = 'list_blog_posts_item';
        $blockItemType = "{$blockItem}_{$postDisplayType}";
        if ($html->blockExists($blockItemType)) {
            global $g;

            $image = explode('|', $row['images']);
            if ($image) {
                $image = CBlogsTools::getImg($row['id'], $image[0], 'bm');
            }
            if ($image) {
                $html->clean("{$blockItemType}_image_placeholder");
            } else {
                $image = $g['path']['url_files'] . 'blog_bm.png';
                //$image = $g['tmpl']['url_tmpl_main'] . 'images/blogs_placeholder.svg';
                $html->parse("{$blockItemType}_image_placeholder", false);
            }
            $uid = $row['user_id'];
            $subject = trim($row['subject']);
            if (!$subject) {
                $subject = neat_trim($row['text_short'], 55, '');
            }

            $userUrl = User::getParamUid(0) ? User::url($uid, $row['user_info']) : Common::pageUrl('user_blogs_list', $uid);
            $info = array('number_row'     => $numberRow,
                          'id'             => $row['id'],
                          'url'            => Blogs::url($row['id']),
                          'user_name'      => User::nameOneLetterFull($row['name']),
                          'user_url'       => $userUrl,
                          'user_city'      => $row['city'] ? l($row['city']) : l($row['country']),
                          'image'          => $image,
                          'subject'        => $subject,
                          'count_comments' => $row['count_comments'],
                          'text'           => $row['text_short'],
                          'time_ago'       => timeAgo($row['dt'], 'now', 'string', 60, 'second'),
                          'date'           => Common::dateFormat($row['dt'], 'list_blogs_info_plain_edge')
                    );

            $html->assign($blockItem, $info);
            if (get_param('ajax')) {
                $html->parse("{$blockItemType}_hide", false);
            }
            if ($postDisplayType == 'info') {
                $html->subcond(User::isOnline($uid), "{$blockItemType}_online");
            } elseif ($postDisplayType == 'info_big') {
                $html->subcond($i%2 == 0, "{$blockItemType}_right");
            }
            $html->parse($blockItemType);
        }
    }

    static function countPostsByUser($uid)
	{
        return DB::count('blogs_post', 'user_id=' . to_sql($uid));
    }

    static function parseListVideosMainPage(&$html)
    {
        $numberPosts = Common::getOptionInt('list_videos_number_items', 'edge_main_page_settings');
        $limit = '0,' . $numberPosts;
        $typeOrder = Common::getOption('list_videos_type_order', 'edge_main_page_settings');
        return self::parseListVideos($html, $typeOrder, $limit, 'main_page_list_videos');
    }

    static function parseListVideos(&$html, $typeOrder, $limit, $blockItems, $groupId = 0, $showAllMyVideo = false)
    {
        global $p;

        $postDisplayType = 'info';

        $rows = CProfileVideo::getVideosList($typeOrder, $limit, null, guid(), true, 0, '', $groupId, $showAllMyVideo);
        $numberRow = intval(self::getOptionList('list_videos_number_row'));
        $html->parse("list_video_{$postDisplayType}");

        if ($rows) {
            foreach ($rows as $row) {
                self::parseVideo($html, $row, $numberRow, $postDisplayType);
            }
        } else {
            $blockItems = '';
        }

        return $blockItems;
    }


    static function parseVideo(&$html, $row, $numberRow, $postDisplayType)
    {
        $blockItem = 'list_video_item';
        $blockItemType = "{$blockItem}_{$postDisplayType}";
        if ($html->blockExists($blockItemType)) {
            global $g;
            $uidParam = User::getParamUid(0);
            $uid = $row['user_id'];
            $guid = guid();
            $info = array('number_row'     => $numberRow,
                          'id'             => $row['video_id'],
                          'video_id'       => 'v_' . $row['video_id'],
                          'user_id'        => $row['user_id'],
                          'user_name'      => User::nameOneLetterFull($row['name']),
                          'user_url'       => User::url($uid, $row['user_info']),
                          'user_city'      => $row['city'] ? l($row['city']) : l($row['country']),
                          'image'          => $g['path']['url_files'] . $row['src_src'],
                          'src'            => $g['path']['url_files'] . $row['src_v'],
                          'subject'        => $row['subject'],
                          'subject_attr'  => toAttr($row['subject']),
                          'subject_short' => neat_trim($row['subject'], 100, ''),
                          'count_comments' => $row['count_comments'],
                          'text'           => $row['description'],
                          'time_ago'       => $row['time_ago'],
                          'info'           => json_encode($row),
                          'tags'           => $row['tags_html'],
                          'hide_header'     => $row['hide_header'] ? l('picture_add_in_header') : l('picture_remove_from_header'),
                          'hide_header_icon'=> $row['hide_header'] ? 'fa-plus-square' : 'fa-minus-square'
                    );
            $html->assign($blockItem, $info);
            if (guid()) {
                $html->parse('set_video_data', false);
            }
            $html->subcond($row['tags_html'], "{$blockItemType}_tags");

            $html->subcond(CProfilePhoto::isVideoOnVerification(0, $row['visible']), "{$blockItemType}_not_checked");

            if (!$uidParam) {
                $html->subcond(User::isOnline($uid), "{$blockItemType}_online");
                $html->subcond(!$uidParam, "{$blockItemType}_name");
            }
            $html->subcond($row['subject'], "{$blockItemType}_description");

            if($uidParam == $guid && Common::isAppIos() && Common::getAppIosApiVersion() >= 48) {
                //$html->parse('app_ios_video_editor', false);
            }

            if ($uidParam && $uidParam == $guid && $row['user_id'] == $guid) {
                if (Common::isOptionActive('gallery_show_download_original', 'edge_gallery_settings')) {
                    $html->parse("{$blockItemType}_link_download", false);
                }
                $html->parse("{$blockItemType}_menu", false);
            } else {
                $html->clean("{$blockItemType}_menu");
            }

            //$html->subcond($uidParam && $uidParam == $guid && $uid == $guid, "{$blockItemType}_menu");

            if (get_param('ajax')) {
                $html->parse("{$blockItemType}_hide", false);
            }
            $html->parse($blockItemType);
        }
    }

    static function getUsersListMainPage()
    {
        if(self::$listUsersMainPage === false) {
            $typeOrder = Common::getOption('list_people_type_order', 'edge_main_page_settings');
            $profileDisplayType = Common::getOption('list_people_display_type', 'edge_main_page_settings');
            $numberUsers = Common::getOptionInt('list_people_number_users', 'edge_main_page_settings');
            $numberFeaturedUsers = self::getFeaturesUsersOnMainPageCount();
            $numberUsersAll = $numberUsers + $numberFeaturedUsers;

            self::$listUsersMainPage = User::listUsers($typeOrder, $numberUsersAll);
        }

        return self::$listUsersMainPage;
    }

    static function parseListUsersMainPage(&$html, $blockItems = 'main_page_list_people')
    {
        $profileDisplayType = Common::getOption('list_people_display_type', 'edge_main_page_settings');
        $numberUsers = Common::getOptionInt('list_people_number_users', 'edge_main_page_settings');
        $numberRow = Common::getOptionInt('list_people_number_row', 'edge_main_page_settings');
        $rows = self::getUsersListMainPage();
        if ($rows) {
            foreach ($rows as $row) {
                self::parseUser($html, $row, $numberRow, $profileDisplayType);
                $html->parse('users_list_item');
            }
            $html->parse("{$blockItems}_{$profileDisplayType}");
        } else {
            $blockItems = '';
        }

        return $blockItems;
    }

    static function parseUser(&$html, $row, $numberRow, $profileDisplayType, $blockItem = 'users_list_item')
    {
        if ($html->blockExists($blockItem)) {
            global $p, $g;

            $guid = guid();
            $blockItemDisplay = "{$blockItem}_{$profileDisplayType}";
            $display = get_param('display');
            $paramsLink = array();
            if ($p == 'search_results.php' && !$display) {
                $paramsLink = array('ref' => 'people_nearby',
                                    'ref_offset' => get_param('offset', 1));
            }

            $infoProfile = '';
            $delimiter = '';

            $isGroup = false;
            if (self::$listUserGroupId && self::$listUserGroupUid && self::$listUserGroupUid == $row['user_id']) {
                $isGroup = true;
                $photoUrl = $g['path']['url_files'] . GroupsPhoto::getPhotoDefault($row['user_id'], self::$listUserGroupId, 'bm');
                $groupInfo = Groups::getInfoBasic(self::$listUserGroupId);
                $row['name'] = $groupInfo['title'];
                $aboutTitle = $groupInfo['description'];
                $urlProfile = Groups::url(self::$listUserGroupId, $groupInfo);
            } else {
                if (Common::isOptionActive('location_enabled', 'edge_join_page_settings')) {
                    $infoProfile .= $row['city'] ? l($row['city']) : '';
                    $delimiter = ', ';
                }
                if (User::isShowAge($row)) {
                    $infoProfile .= $delimiter .  $row['age'];
                }
                $photoUrl = ubmphoto($row['user_id']);
                $urlProfile = User::url($row['user_id'], $row);
            }
            $info = array('number_row'  => $numberRow,
                          'user_id'     => $row['user_id'],
                          'url_profile' => $urlProfile,
                          'url_profile_params' => http_build_query($paramsLink),
                          'name'         => User::nameOneLetterFull($row['name']),
                          //'age'        => $age,
                          //'city'       => l($row['city']),
                          'photo'        => $photoUrl,
                          'info_profile' => $infoProfile,
                          'group_id'     => 0
                    );

            if (isset($row['last_visit_date'])) {
                $row['last_visit'] = $row['last_visit_date'];
            }
            if (isset($row['group_id'])) {
                $info['group_id'] = $row['group_id'];
            }

            $isOnline = User::isOnline($row['user_id'], $row);

            if ($profileDisplayType == 'info') {
                $lastVisitTitle = l('online_now');
                if (!$isOnline) {
                    $lastVisitTitle = timeAgo($row['last_visit'], 'now', 'string', 60, 'second');
                }
                $info['last_visit'] = $lastVisitTitle;
                if (UserFields::isActiveAboutMe()) {
                    if (!$isGroup) {
                        $rowInfo = User::getInfoFull($row['user_id'], DB_MAX_INDEX);
                        $aboutTitle = $rowInfo['about_me'];
                    }
                    $info['about_title'] = neat_trim($aboutTitle,100);
                }
            }
            $html->assign($blockItem, $info);

            if ($profileDisplayType == 'info') {
                if (isset($info['about_title'])) {
                    $html->parse("{$blockItem}_about", false);
                }
            } else {
                if ($isOnline) {
                    $html->parse("{$blockItem}_online", false);
                } else {
                    $html->clean("{$blockItem}_online");
                }
            }

            $pageParseMenu = array('groups_social_block_list.php');
            if ($p == 'groups_social_subscribers.php' && isset($row['group_user_id']) && $row['group_user_id'] == guid()) {
                $pageParseMenu[] = 'groups_social_subscribers.php';
            }
            if (in_array($p, $pageParseMenu)) {
                $isParseMenu = true;
                $blockItemMenu = "{$blockItemDisplay}_menu";
                if ($p == 'groups_social_block_list.php') {
                    $html->parse("{$blockItemMenu}_groups_unblocked", false);
                } elseif ($p == 'groups_social_subscribers.php') {
                    if (Common::isOptionActive('contact_blocking')) {
                        $html->subcond($row['group_user_id'] != $row['user_id'], "{$blockItemMenu}_groups_blocked");
                    }
                    $html->setvar('menu_groups_unjoin_title', $row['page'] ? l('menu_page_remove_like_edge') : l('menu_groups_unjoin_edge'));
                    if (!$row['page']) {
                        if ($row['group_user_id'] != $row['user_id']) {
                            $html->parse("{$blockItemMenu}_groups_unjoin", false);
                        } else {
                            $isParseMenu = false;
                            $html->clean("{$blockItemMenu}_groups_unjoin");
                        }
                    }
                }
                if ($isParseMenu) {
                    $html->parse($blockItemMenu, false);
                } else {
                    $html->clean($blockItemMenu);
                }
            } elseif($p != 'user_block_list.php') {
                $blockItemChat = "{$blockItemDisplay}_chat";
                $html->subcond($guid != $row['user_id'], $blockItemChat);

                if (!isset($row['group_user_id']) || !$row['group_user_id']) {
                    $blockItemLive = "{$blockItemDisplay}_live_now";
                    $userLiveNowId = LiveStreaming::getUserLiveNowId($row['user_id']);
                    if ($userLiveNowId) {
                        $urlLive = Common::pageUrl('live_id', $row['user_id'], $userLiveNowId);
                        $html->setvar($blockItemLive . '_url', $urlLive);
                        $html->parse($blockItemLive . '_bl', false);
                        $html->parse($blockItemLive, false);
                    } else {
                        $html->clean($blockItemLive . '_bl');
                        $html->clean($blockItemLive);
                    }
                }
            }

            $html->parse($blockItemDisplay, false);
        }
    }

    static function parseListPhotosMainPage(&$html, $blockItems = 'main_page_list_photos')
    {
        $typeOrder = Common::getOption('list_photos_type_order', 'edge_main_page_settings');
        $layoutType = str_replace('layout_photos_', '', Common::getOption('list_photos_display_type', 'edge_main_page_settings'));
        $numberRow = Common::getOptionInt('list_photos_number_row', 'edge_main_page_settings');
        $numberItems = Common::getOptionInt('list_photos_number_items', 'edge_main_page_settings');
        if ($layoutType == 'small') {
            $numberItems = 4;
        }
        $limit = '0,' . $numberItems;
        $rows = CProfilePhoto::getPhotosList($typeOrder, true, $limit);
        if ($layoutType == 'small' && count($rows) < 4) {
            $layoutType = 'default';
        }
        if ($rows) {
            if ($layoutType == 'small') {
                global $g;
                $blockItem = '';
                $i = 0;
                foreach ($rows as $row) {
                    if ($blockItem) {
                        $html->clean($blockItem);
                    }
                    $info = array('photo_id'  => $row['photo_id'],
                                  'src'       => $g['path']['url_files'] . $row['src_bm'],
                                  'user_name' => User::nameOneLetterFull($row['user_name']),
                                  'user_url'  => User::url($row['user_id'])
                    );

                    $blockItem = 'list_photos_item_' . $i;
                    $html->assign($blockItem, $info);
                    $html->subcond(User::isOnline($row['user_id']), "{$blockItem}_online");

                    $i++;
                    if ($i == 4) {
                        break;
                    }
                }
                $html->parse('list_photos_item_small', false);
            } else {
                foreach ($rows as $row) {
                    self::parsePhoto($html, $row, $numberRow, $layoutType);
                }
            }
            $html->parse("list_photos_{$layoutType}", false);
        } else {
            $blockItems = '';
        }

        return $blockItems;
    }

    static function parseListPhotos(&$html, $typeOrder, $limit, $groupId = 0, $showAllMyPhoto = false)
    {
        $layoutType = 'default';
        $rows = CProfilePhoto::getPhotosList($typeOrder, false, $limit, null, $groupId, $showAllMyPhoto);
        $numberRow = intval(self::getOptionList('list_photos_number_row'));
        if ($rows) {
            foreach ($rows as $row) {
                self::parsePhoto($html, $row, $numberRow, $layoutType);
            }
        }
        $html->parse('list_photos_default');

        return $rows;
    }

    static function parsePhoto(&$html, $row, $numberRow, $layoutType)
    {
        global $g;

        $blockItem = 'list_photos_item';
        $blockItemType = "{$blockItem}_{$layoutType}";
        if ($html->blockExists($blockItemType)) {
            global $g;
            $guid = guid();
            $uidParam = User::getParamUid(0);
            $info = array('number_row' => $numberRow,
                          'photo_id'   => $row['photo_id'],
                          'src'        => $g['path']['url_files'] . $row['src_bm'],
                          'user_id'    => $row['user_id'],
                          'user_name'  => User::nameOneLetterFull($row['user_name']),
                          'user_url'   => $row['user_url'],
                          'info'       => json_encode($row),
                          'time_ago'   => $row['time_ago'], //timeAgo($row['date'], 'now', 'string', 60, 'second'),
                          'comments_count'    => $row['comments_count'],
                          'tags'              => $row['tags_html'],
                          'description'       => $row['description'],
                          'description_attr'  => toAttr($row['description']),
                          'description_short' => neat_trim($row['description'], 100, ''),
                          'hide_header'       => $row['hide_header'] ? l('picture_add_in_header') : l('picture_remove_from_header'),
                          'hide_header_icon'  => $row['hide_header'] ? 'fa-plus-square' : 'fa-minus-square'
                    );
            $html->assign($blockItem, $info);
            if (guid()) {
                $html->parse('set_photo_data', false);
            }
            $html->subcond($row['tags_html'], "{$blockItemType}_tags");

            $html->subcond(CProfilePhoto::isPhotoOnVerification($row['visible']), "{$blockItemType}_not_checked");

            if (!$uidParam) {
                $html->subcond(User::isOnline($row['user_id']), "{$blockItemType}_online");
                $html->subcond(!$uidParam, "{$blockItemType}_name");
            }
            $html->subcond($row['description'], "{$blockItemType}_description");

            if ($uidParam == $guid && Common::isAppIos() && Common::getAppIosApiVersion() >= 48) {
                global $g_user;
                $html->setvar('app_ios_auth_key', User::urlAddAutologin('', $g_user));
                $html->parse('app_ios_image_editor', false);
            }

            $isImageEditorEnabed = Common::isImageEditorEnabled($row['gif'] ? 'gif' : '');

            $editorHideClass = '';
            if(!$isImageEditorEnabed) {
                $editorHideClass = 'hide';
            }
            $html->setvar('editor_hide_class', $editorHideClass);

            if ($uidParam && $uidParam == $guid && $row['user_id'] == $guid) {
                if (Common::isOptionActive('gallery_show_download_original', 'edge_gallery_settings')) {
                    $html->parse("{$blockItemType}_link_download", false);
                }
                $keyDefault = $row['group_id'] ? 'default_group' : 'default';
                $html->subcond($row[$keyDefault] == 'Y', "{$blockItemType}_profile_pic");

				$html->subcond($isImageEditorEnabed, "{$blockItemType}_editor");

                $html->parse("{$blockItemType}_menu", false);
            } else {
                $html->clean("{$blockItemType}_menu");
            }

            //$html->subcond($uidParam && $uidParam == $guid && $row['user_id'] == $guid, "{$blockItemType}_menu");

            if (get_param('ajax')) {
                $html->parse("{$blockItemType}_hide", false);
            }
            $html->parse($blockItemType);
        }
    }

    /* Groups */
    static function parseListGroupMainPage(&$html, $isPage = false)
    {
        $numberPosts = GroupsList::getOptionGroup('number_items', $isPage, 'edge_main_page_settings');
        $limit = '0,' . $numberPosts;
        $typeOrder = GroupsList::getOptionGroup('type_order', $isPage, 'edge_main_page_settings');
        $block = $isPage ? 'main_page_list_pages' : 'main_page_list_groups';

        $blockItem = $isPage ? 'list_page_item' : 'list_group_item';

        return self::parseListGroups($html, $typeOrder, $limit, $block, $isPage, $blockItem);
    }

    static function parseListGroups(&$html, $typeOrder, $limit, $blockItems, $isPage = null, $blockItem = 'list_group_item')
    {
        global $p;
        $postDisplayType = GroupsList::getDisplayType($isPage);
        $numberRow = GroupsList::getNumberRow($isPage);
        $rows = GroupsList::getListGroups($limit, $typeOrder, null, $isPage);

        if ($p == 'index.php') {
            $block = $isPage ? "list_pages_display_{$postDisplayType}" : "list_groups_display_{$postDisplayType}";
        } else {
            $block = "list_groups_{$postDisplayType}";
        }
        $html->parse($block);

        if ($rows) {
            $i = 1;
            foreach ($rows as $row) {
                self::parseGroup($html, $row, $numberRow, $postDisplayType, $i, $blockItem);
                $i++;
            }
        } else {
            $blockItems = '';
        }

        return $blockItems;
    }


    static function parseGroup(&$html, $row, $numberRow, $postDisplayType, $i, $blockItem = 'list_group_item')
    {
        $blockItemType = "{$blockItem}_{$postDisplayType}";
        if ($html->blockExists($blockItemType)) {
            $guid = guid();
            $uidParam = User::getParamUid(0);
            $uid = $row['user_id'];
            $isPage = $row['page'];
            $info = array('number_row'     => $numberRow,
                          'id'             => $row['group_id'],
                          'page'           => $row['page'],
                          //'user_name'      => User::nameOneLetterFull($row['name']),
                          'url'            => $row['url'],
                          'user_city'      => $row['city'] ? l($row['city']) : l($row['country']),
                          'image'          => GroupsPhoto::getPhotoDefault($row['user_id'], $row['group_id'], 'b'),
                          'image_no_photo' => GroupsPhoto::getPhotoDefault($row['user_id'], $row['group_id'], 'b', true) ? '' : 'nophoto',
                          'title'          => $row['title'],
                          'title_attr'     => toAttr($row['title']),
                          'title_short'    => neat_trim($row['title'], 100, ''),
                          'description'    => $row['description'],
                          'time_ago'       => timeAgo($row['date'], 'now', 'string', 60, 'second'),
                          'date'           => Common::dateFormat($row['date'], 'list_blogs_info_plain_edge'),
                          'number_post'    => Groups::getCountPosts($row['user_id'], $row['group_id'])
                    );
            $html->assign($blockItem, $info);
            if (get_param('ajax')) {
                $html->parse("{$blockItemType}_hide", false);
            }
            if ($uidParam && $uidParam == $guid && $row['user_id'] == $guid) {
                $html->setvar("{$blockItem}_url_edit", Common::pageUrl($isPage ? 'page_edit' : 'group_edit', $row['group_id']));
                $html->parse("{$blockItemType}_menu", false);
            } else {
                $html->clean("{$blockItemType}_menu");
            }

            if ($postDisplayType == 'info_big') {
                $html->subcond($i%2 == 0, "{$blockItemType}_right");
            }
            $html->parse($blockItemType);
        }
    }
    /* Groups */

    /* Live */
    static function parseListLiveMainPage(&$html)
    {
        $numberPosts = Common::getOptionInt('list_live_number_items', 'edge_main_page_settings');
        $limit = '0,' . $numberPosts;
        $typeOrder = Common::getOption('list_live_type_order', 'edge_main_page_settings');

        $online = Common::isOptionActive('list_live_show_not_ended', 'edge_main_page_settings');
        return self::parseListLive($html, $typeOrder, $limit, 'main_page_list_live', $online);
    }

    static function parseListLive(&$html, $typeOrder, $limit, $blockItems, $online = true)
    {
        global $p;

        $postDisplayType = 'info';

        $rows = LiveStreaming::getLists($limit, $typeOrder, $online);

        $numberRow = intval(self::getOptionList('list_live_number_row'));
        $html->parse("list_live_{$postDisplayType}");

        if ($rows) {
            foreach ($rows as $row) {
                self::parseLive($html, $row, $numberRow, $postDisplayType, $online);
            }
        } else {
            $blockItems = '';
        }

        return $blockItems;
    }


    static function parseLive(&$html, $row, $numberRow, $postDisplayType, $online = true)
    {
        $blockItem = 'list_live_item';
        $blockItemType = "{$blockItem}_{$postDisplayType}";
        if ($html->blockExists($blockItemType)) {
            global $g;
            $uidParam = User::getParamUid(0);
            $uid = $row['user_id'];
            $guid = guid();
            $info = array('number_row'     => $numberRow,
                          'id'             => $row['id'],
                          'url'            => $row['url'],
                          'user_id'        => $row['user_id'],
                          'user_name'      => User::nameOneLetterFull($row['name']),
                          'user_url'       => $row['user_url'],
                          'user_city'      => $row['city'] ? l($row['city']) : l($row['country']),

                          'count_comments' => $row['count_comments'],
                          'time_ago'       => $row['time_ago'],
                          'image'          => $g['path']['url_files'] . $row['src_bm'],
                          'tags'           => $row['tags_html'],
                          'subject'        => $row['subject'],
						  'subject_attr'   => toAttr($row['subject']),
                    );
            $html->assign($blockItem, $info);

            $html->subcond($row['subject'], "{$blockItemType}_description");
            //$html->subcond($row['tags_html'], "{$blockItemType}_tags");

            if (!$uidParam) {
                if (User::isOnline($uid) || !$online) {
                    $html->parse("{$blockItemType}_online_top", false);
                    $html->parse("{$blockItemType}_online", false);
                } else {
                    $html->clean("{$blockItemType}_online_top");
                    $html->clean("{$blockItemType}_online");
                }

                $html->subcond(!$uidParam, "{$blockItemType}_name");
            }

             if (get_param('ajax')) {
                $html->parse("{$blockItemType}_hide", false);
            }
            $html->parse($blockItemType);
        }
    }
    /* Live */

    /* Songs */
    static function parseListSongsMainPage(&$html)
    {
        $numberSongs = Common::getOptionInt('list_songs_number_items', 'edge_main_page_settings');
        $limit = '0,' . $numberSongs;
        $typeOrder = Common::getOption('list_songs_type_order', 'edge_main_page_settings');

        return self::parseListSongs($html, $typeOrder, $limit, 'main_page_list_songs');
    }

    static function parseListSongs(&$html, $typeOrder, $limit, $blockItems, $groupId = 0, $showAllMySongs = false)
    {
        global $p;

        $layoutType = 'default';

        $rows = Songs::getList($typeOrder, $limit, null, $groupId, $showAllMySongs, false);
        $numberRow = intval(self::getOptionList('list_songs_number_row'));
        $numberRow = 4;
        $html->parse("list_songs_{$layoutType}");

        if ($rows) {
            $i = 0;
            foreach ($rows as $row) {
                self::parseSong($html, $row, $numberRow, $layoutType, $i);
                $i++;
            }
        } else {
            $blockItems = '';
        }

        return $blockItems;
    }

    static function parseSong(&$html, $row, $numberRow, $layoutType, $i)
    {
        global $g;

        $blockItem = 'list_songs_item';
        $blockItemType = "{$blockItem}_{$layoutType}";
        if ($html->blockExists($blockItemType)) {
            global $g;
            $guid = guid();
            $uidParam = User::getParamUid(0);

            $row['song_title'] = trim(strip_tags($row['song_title']));//Fix old template

            $isShortTimeAgo = Common::isOptionActiveTemplate('song_time_ago_short');
            $timeAgo = timeAgo($row['updated_at'], 'now', 'string', 60, 'second', $isShortTimeAgo);

            $info = array('number_row'  => $numberRow,
                          'song_id'     => $row['song_id'],
                          'user_id'     => $row['user_id'],

                          'time_ago'    => $timeAgo,
                          'description' => $row['song_title'],
                          'description_attr'  => toAttr($row['song_title']),
                          'description_short' => neat_trim($row['song_title'], 100, ''),

                          'image'       => Songs::getImageDefault($row['song_id']),
                          'mp3'         => toJs(Songs::getFile($row['song_id'])),
                          'mp3_index'   => $i,
                          'mp3_title'   => toJs($row['song_title']),

                          'user_name'   => User::nameOneLetterFull($row['name']),
                          'user_url'    => User::url($row['user_id']),
                    );
            $html->assign($blockItem, $info);

            if (!$uidParam) {
                $html->subcond(User::isOnline($row['user_id']), "{$blockItemType}_online");
                $html->parse("{$blockItemType}_status_online", false);
                $html->subcond(!$uidParam, "{$blockItemType}_name");
            }
            $html->subcond($row['song_title'], "{$blockItemType}_description");

            if ($uidParam && $uidParam == $guid && $row['user_id'] == $guid) {
                if (Common::isOptionActive('gallery_show_download_original', 'edge_gallery_settings')) {
                    $html->parse("{$blockItemType}_link_download", false);
                }
                $html->parse("{$blockItemType}_menu", false);
            } else {
                $html->clean("{$blockItemType}_menu");
            }

            if (get_param('ajax')) {
                $html->parse("{$blockItemType}_hide", false);
            }
            $html->parse($blockItemType);
        }
    }
    /* Songs */

    static function getNumberFriendsAndSubscribersPending($uid = null)
    {
        if ($uid === null) {
            $uid = guid();
        }

        $sql = "SELECT
                    (SELECT COUNT(*) as cnt
                       FROM `friends_requests`
                      WHERE `friend_id` = " . to_sql($uid) . "
                        AND `accepted` = 0)
                    +
                    (SELECT COUNT(*) as cnt
                       FROM `groups_social_subscribers`
                      WHERE `group_user_id` = " . to_sql($uid) . "
                        AND `group_private` = 'Y'
                        AND `accepted` = 0)
                    ";
		return DB::result($sql);
    }

    static function getFriendsPending($where = '', $order = 'DESC',  $ajax = false)
    {
        global $g;

        $guid = guid();
        $sql = "(SELECT FR.user_id, IF(true, 0, 0) AS group_id, IF(true, '', '') AS group_title, FR.created_at,
                        CU.name, CU.name_seo
                  FROM `friends_requests` AS FR
                  LEFT JOIN `user` AS CU ON CU.user_id = FR.user_id
                 WHERE FR.friend_id = " . to_sql($guid) .
                 " AND FR.accepted = 0 " . $where . ")

                UNION

               (SELECT FR.user_id, FR.group_id, GR.title AS group_title, FR.created_at,
                       CU.name, CU.name_seo
                  FROM `groups_social_subscribers` AS FR
                  LEFT JOIN `user` AS CU ON CU.user_id = FR.user_id
                  LEFT JOIN `groups_social` AS GR ON GR.group_id = FR.group_id
                 WHERE FR.group_user_id = " . to_sql($guid) .
                 " AND FR.group_private = 'Y'
                   AND FR.accepted = 0 " . $where .
                ") ORDER BY created_at {$order}";


        $result = DB::rows($sql);

        $friendsPending = array();
        foreach ($result as $key => $item) {
            $urlUserPending = User::url($item['user_id'], array('name' => $item['name'], 'name_seo' => $item['name_seo']));
            $vars = array('name' => User::nameOneLetterFull($item['name']),
                          'url'  => $urlUserPending
            );
            $lKey = 'wants_to_add_you_to_friends';
            if ($item['group_id']) {
                $vars['group_title'] = $item['group_title'];
                $lKey = 'wants_to_join_the_group_page_group_profile';
                $btnApprove = l('group_approve_join');
                $btnReject  = l('group_reject_join');
            } else {
                $btnApprove = l('add_friend');
                $btnReject  = l('ignore');
            }
            $title = Common::lSetLink($lKey, $vars);
            $friendsPending[] = array(
                'user_id'  => $item['user_id'],
                'user_id_sel'  => $item['user_id'] . ($item['group_id'] ? '_' . $item['group_id'] : ''),
                'group_id' => $item['group_id'],
                'title'    => $title,
                'created'  => $item['created_at'],
                'url'      => $urlUserPending,
                'photo'    => $g['path']['url_files'] . User::getPhotoDefault($item['user_id']),
                'btn_approve' => $btnApprove,
                'btn_reject'  => $btnReject,
            );
        }
        return $friendsPending;
    }

    static function getListFriends($uid = null, $online = false, $groupId = null, $isLiveUserCheck = false)
    {
        if ($uid === null) {
            $uid = guid();
        }

        if ($groupId === null) {
            $groupId = Groups::getParamId();
        }

        if ($groupId) {
            $isPageGroup = Groups::getInfoBasic($groupId, 'page');
            $keyL = $isPageGroup ? 'page_' : 'group_';
            if ($online) {//Not used - we have no subscribers online
                $count = Groups::getNumberSubscribersOnline($groupId);
                $maxNumberFriends = Common::getOptionInt('number_subscribers_online_right_column', 'edge_groups_settings');//Not admin settings
                $lTitle = "edge_column_{$keyL}subscribers_online_title";
            } else {
                $count = Groups::getNumberSubscribers($groupId);
                $maxNumberFriends = Common::getOptionInt('number_subscribers_right_column', 'edge_groups_settings');
                $lTitle = "edge_column_{$keyL}subscribers_title";
            }
            if ($online) {
                $list = array();
            } else {
                $list = Groups::getListSubscribers($groupId, $online, $maxNumberFriends, true);
            }
        } else {
            if ($online) {
                $count = User::getNumberFriendsOnline($uid);
                $maxNumberFriends = Common::getOptionInt('number_friends_online_right_column', 'edge_member_settings');
                $lTitle = 'edge_column_friends_online_title';
            } else {
                $count = User::getNumberFriends($uid);
                $maxNumberFriends = Common::getOptionInt('number_friends_right_column', 'edge_member_settings');
                $lTitle = 'edge_column_friends_title';
                if (guid() != $uid) {
                    $lTitle .= '_other_user';
                }
            }
            $list = User::getListFriends($uid, $online, $maxNumberFriends, true, $isLiveUserCheck);
        }
        $countList = count($list);
        if ($countList < $maxNumberFriends && $count > $countList) {
            $count = $countList;
        }
        $result = array('count' => $count,
                        'count_title' => lSetVars($lTitle, array('count' => $count)),
                        'max_number' => $maxNumberFriends,
                        'list' => $list);
        return $result;
    }

    static function parseNavbarMenuShort(&$html, $block)
    {
        global $g;

        if (!$html->blockExists($block)) {
            return;
        }

        $key = 'member_header_menu_short';
        $groupId = 0;
        $groupIdEvent = 0;
        $isMyGroup = Groups::isMyGroup();
        if ($isMyGroup) {
            $groupId = Groups::getParamId();
            $groupIdEvent = $groupId;
            $key = 'member_groups_header_menu_short';
        }

        $orderItemsList = ListBlocksOrder::getOrderItemsList($key);
        if (!$orderItemsList) {
            return;
        }

        $guid = guid();
        $blockItem = "{$block}_item";
        $blockItemClean = '';
        foreach($orderItemsList as $k => $v){
            if ($blockItemClean) {
                $html->clean($blockItemClean);
            }
            $blockItemClean = "{$blockItem}_{$k}";
            $count = 0;
            $disabled = 0;
            if ($k == 'friends_pending') {
                if (!Common::isOptionActive('friends_enabled')) {
                    continue;
                }
                $count = self::getNumberFriendsAndSubscribersPending();
                $disabled = $count;
                $blockFriendsPending = 'notif_friends_pending';
                if ($count) {
                    $friendsPending = self::getFriendsPending();
                    $blockFriendsPendingItem = "{$blockFriendsPending}_item";
                    foreach ($friendsPending as $key => $item) {
                        $html->assign($blockFriendsPendingItem, $item);
                        $html->parse($blockFriendsPendingItem, true);
                    }
                }
                $html->parse($blockFriendsPending, false);
            } elseif ($k == 'subscribers_pending') {
                $count = Groups::getNumberRequestsToSubscribePending($groupId);
                $disabled = $count;
                $blockFriendsPending = 'notif_friends_pending';
                if ($count) {
                    $friendsPending = Groups::getSubscribePending($groupId);
                    $blockFriendsPendingItem = "{$blockFriendsPending}_item";
                    foreach ($friendsPending as $key => $item) {
                        $html->assign($blockFriendsPendingItem, $item);
                        $html->parse($blockFriendsPendingItem, true);
                    }
                }
                $html->parse($blockFriendsPending, false);
            } elseif ($k == 'new_message') {
                $count = CIm::getCountNewMessages();
                $disabled = CIm::getCountAllMsgIm();
            } elseif ($k == 'new_tasks') {
                $html->setvar("{$k}_url", Common::pageUrl('user_calendar', $guid));
                $count = TaskCalendar::getCountOpenTasksByCurrentDay($guid);
                $newTasksTitle = TaskCalendar::getNotifTitle($count);
                $html->setvar('new_tasks_title', toAttr($newTasksTitle));
                $disabled = $count;
            } elseif ($k == 'new_events') {
                $blockEvents = 'notif_events';
                $blockEventsItem = "{$blockEvents}_item";

                $count = 0;

                $events = User::getListGlobalEvents(null, 'DESC', $groupIdEvent);
                $eventsCount = count($events);
                $eventsCountAll = 0;
                if ($eventsCount) {
                    $eventsCountAll = User::getNumberGlobalEvents(true, $groupIdEvent);
                    $count = User::getNumberGlobalEvents(false, $groupIdEvent);
                }
                $disabled = $eventsCount;
                $rank = 0;
                foreach ($events as $key => $item) {
                    $html->assign($blockEventsItem, $item);
                    $html->subcond($item['new'], "{$blockEventsItem}_new");
                    //$html->subcond($item['new'], "{$blockEventsItem}_menu_mark_see");
                    $html->parse($blockEventsItem, true);

                    $rank = $item['rank'];
                }
                $html->setvar("{$blockEvents}_rank", $rank);
                if ($eventsCountAll == $eventsCount) {
                    $html->parse("{$blockEvents}_hide_more", false);
                }
                $html->parse($blockEvents, false);
            }

            $html->setvar("{$k}_count", intval($count));
            $html->subcond($count, "{$blockItemClean}_count_show");
            $html->subcond(!$disabled, "{$blockItemClean}_disabled");

            $html->parse($blockItemClean, false);
            $html->parse($blockItem, true);
        }
        $html->parse($block, true);
    }

    static function updateListFriends($uid = null)
    {
        if ($uid === null) {
            $uid = guid();
        }
        $script = '<script>';
        $script .= 'clFriends.updateFriends(' . json_encode(self::getListFriends(null, true)) . ',true);';
        $script .= 'clFriends.updateFriends(' . json_encode(self::getListFriends($uid)) . ');';
        $script .= '</script>';
        return $script;
    }

    static function getOptionsSettingsKey($groupId)
    {
        $optionsKey = 'edge_member_settings';
        if ($groupId) {
            $optionsKey = 'edge_groups_settings';
        }
        return $optionsKey;
    }

    static function getMode()
    {
        return 'default';
        return 'mode_lms';
    }

    static function isModeLms()
    {
        return (self::getMode() === 'mode_lms');
    }

    static function isModeDefault()
    {
        return (self::getMode() === 'default');
    }

    static function setModeLmsLanguageWords()
    {
        global $l;

        $modifyLanguageValues = array(
            'all' => array(
                'man',
                'woman',
                'edge_filter_orientation_man',
                'edge_filter_orientation_woman',
                'menu_people_edge',
                'gender',
            ),
            'search_results.php' => array('page_title'),
        );
        foreach($modifyLanguageValues as $modifyLanguageValuesSection => $modifyLanguageValuesKeys) {
            foreach($modifyLanguageValuesKeys as $modifyLanguageValuesKey) {
                if(isset($l[$modifyLanguageValuesSection]['mode_lms_' . $modifyLanguageValuesKey])) {
                    $l[$modifyLanguageValuesSection][$modifyLanguageValuesKey] = $l[$modifyLanguageValuesSection]['mode_lms_' . $modifyLanguageValuesKey];
                }
            }
        }
    }

    static function getProfileInfoModule()
    {
        global $g;

        $templateEdgeProfileInfo = new TemplateEdgeProfileInfo('', $g['tmpl']['dir_tmpl_main'] . '_profile_column_right.html');
        $templateEdgeProfileInfo->init();
        $tmp = null;
        return $templateEdgeProfileInfo->parse($tmp, true);
    }

    static function parseFeaturedUsersOnMainPage(&$html)
    {
        if(!self::isFeaturedUsersOnMainPageActive()) {
            return;
        }

        $type = Common::getOption('list_people_featured_style', 'edge_main_page_settings');
        $usersLimit = self::getFeaturesUsersOnMainPageCount();

        $block = 'info_block_header_visitor_featured_users';

        if($usersLimit && $html->blockExists($block)) {

            $rows = self::getUsersListMainPage();
            if ($rows) {

                if(!Common::isOptionActive('info_block_header_show', 'edge_main_page_settings')) {
                    $html->setvar($block . '_width', 'main-page-profiles-full-page');
                }

                $usersForModule = self::getFeaturesUsersOnMainPageCount();

                $blockProfile = $block . '_profile';
                $profileNumber = 0;
                foreach ($rows as $row) {
                    $profileNumber++;
                    $html->setvar($blockProfile . '_type', $type);
                    $html->setvar($blockProfile . '_number', $profileNumber);
                    $html->setvar($blockProfile . '_url', User::url($row['user_id'], $row));
                    $html->setvar($blockProfile . '_name', toAttr(User::getInfoBasic($row['user_id'], 'name')));
                    $html->setvar($blockProfile . '_photo', uphoto($row['user_id'], $type === 'circle' ? 'b' : 'm'));
                    $html->parse($blockProfile);

                    array_shift(self::$listUsersMainPage);

                    if($profileNumber >= $usersLimit) {
                        break;
                    }
                }
                $html->parse($block);
            }
        }
    }

    static function getFeaturesUsersOnMainPageCount()
    {
        $usersCount = 0;

        if(self::isFeaturedUsersOnMainPageActive()) {
            if(Common::getOption('list_people_featured_style', 'edge_main_page_settings') === 'circle') {
                $usersCount = 5;
            } else {
                $usersCount = intval(trim(Common::getOptionInt('list_people_featured_number', 'edge_main_page_settings')));
            }
        }

        return $usersCount;
    }

    static function isFeaturedUsersOnMainPageActive()
    {
        return (Common::isOptionActive('list_people_featured', 'edge_main_page_settings')) && (Common::getOption('info_block_leayout', 'edge_main_page_settings') === 'info_block_right');
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit