private static function PrepareUrl($template, &$arElement)
 {
     if (!(IsModuleInstalled('iblock') && CModule::IncludeModule('iblock'))) {
         return '';
     }
     $template = strval($template);
     if ($template === '' || !is_array($arElement)) {
         return '';
     }
     $elementID = isset($arElement['ID']) ? intval($arElement['ID']) : 0;
     $elementName = isset($arElement['NAME']) ? $arElement['NAME'] : '';
     $authorID = isset($arElement['CREATED_BY']) ? intval($arElement['CREATED_BY']) : 0;
     $navChainKey = $arElement['IBLOCK_ID'] . '_' . $arElement['IBLOCK_SECTION_ID'];
     if (is_array(self::$IBLOCK_SECTION_NAV_CHAINS) && isset(self::$IBLOCK_SECTION_NAV_CHAINS[$navChainKey])) {
         $arSection = self::$IBLOCK_SECTION_NAV_CHAINS[$navChainKey];
     } else {
         if (self::$IBLOCK_SECTION_NAV_CHAINS === null) {
             self::$IBLOCK_SECTION_NAV_CHAINS = array();
         }
         $dbNav = CIBlockSection::GetNavChain($arElement['IBLOCK_ID'], $arElement['IBLOCK_SECTION_ID']);
         $arSection = self::$IBLOCK_SECTION_NAV_CHAINS[$navChainKey] = is_object($dbNav) ? $dbNav->Fetch() : null;
     }
     $socnetGroupID = is_array($arSection) && isset($arSection['SOCNET_GROUP_ID']) ? intval($arSection['SOCNET_GROUP_ID']) : 0;
     $url = $template;
     $url = str_replace(array('#ELEMENT_ID#', '#element_id#', '#ID#', '#id#'), $elementID, $url);
     $url = str_replace(array('#ELEMENT_NAME#', '#element_name#', '#NAME#', '#name#'), $elementName, $url);
     $url = str_replace(array('#SOCNET_USER_ID#', '#socnet_user_id#', '#USER_ID#', '#user_id#'), $authorID, $url);
     $url = str_replace(array('#SOCNET_GROUP_ID#', '#socnet_group_id#', '#GROUP_ID#', '#group_id#'), $socnetGroupID, $url);
     $url = str_replace(array('#SOCNET_OBJECT#', '#socnet_object#'), $socnetGroupID > 0 ? 'group' : 'user', $url);
     $url = str_replace(array('#SOCNET_OBJECT_ID#', '#socnet_object_id#'), $socnetGroupID > 0 ? $socnetGroupID : $authorID, $url);
     return str_replace(array("///", "//"), "/", $url);
 }