Идеи по оптимизации

G

Gemini_13

Гость
Вообщем предложение для универсальности. Наверняка все заметили, что фича для сео, которую Димка написал (респект ему за неё :) ), работает только на название скрипта, а не на ссылку. Предлагаю это изменить и тем самым сделать детект ссылки в меню и для пункта Правила, который обычно ведет на простую тему.

functions.php
Найти:
PHP:
function seo_link_header($str){
    /**
    * Функция обработки url. Сверяет url с переданным выражением.
    */
    global $bb_cfg;
 
    $regexp = "/{$str}\.php/";
    $return = ($bb_cfg['seo_link_home_page']) ? ((preg_match($regexp, $_SERVER['SCRIPT_NAME'])) ? false : true) : true;
 
    return $return;
}
Заменить на:
PHP:
function seo_link_header($str){
    /**
    * Функция обработки url. Сверяет url с переданным выражением.
    */
    global $bb_cfg;
 
    $return = ($bb_cfg['seo_link_home_page']) ? ((preg_match("/{$str}/", $_SERVER['REQUEST_URI'])) ? false : true) : true;
 
    return $return;
}

page_header.php
Найти:
PHP:
// FOR SEO
$template->assign_vars(array(
        'SEO_LINK_INDEX_PAGE'                  =>      seo_link_header('index'),
        'SEO_LINK_TRACKER_PAGE'                =>      seo_link_header('tracker'),
        'SEO_LINK_GALLERY_PAGE'                =>      seo_link_header('gallery'),
        'SEO_LINK_SEARCH_PAGE'                  =>      seo_link_header('search'),
        'SEO_LINK_FAQ_PAGE'                    =>      seo_link_header('faq'),
        'SEO_LINK_GROUP_PAGE'                  =>      seo_link_header('groupcp'),
        'SEO_LINK_MEMEBERLIST_PAGE'    =>      seo_link_header('memberlist'),
));

Заменить на:
PHP:
// FOR SEO
$template->assign_vars(array(
    'SEO_LINK_INDEX_PAGE'            =>    seo_link_header('index.php'),
    'SEO_LINK_TRACKER_PAGE'        =>    seo_link_header('tracker.php'),
    'SEO_LINK_GALLERY_PAGE'        =>    seo_link_header('gallery.php'),
    'SEO_LINK_SEARCH_PAGE'            =>    seo_link_header('search.php'),
    'SEO_LINK_FAQ_PAGE'            =>    seo_link_header('faq.php'),
    'SEO_LINK_GROUP_PAGE'            =>    seo_link_header('groupcp.php'),
    'SEO_LINK_MEMEBERLIST_PAGE'    =>    seo_link_header('memberlist.php'),
    'SEO_LINK_TERMS_PAGE'            =>    seo_link_header('viewtopic.php\?t=1723'), // спецсимволы экранируем
));

page_header.tpl
Найти:
HTML:
<a href="{U_TERMS}"><b>{L_TERMS}</b></a><span style="color:#CDCDCD;">|</span>
Заменить на:
HTML:
<!-- IF SEO_LINK_TERMS_PAGE --><a href="{U_TERMS}"><!-- ENDIF --><b>{L_TERMS}</b><!-- IF SEO_LINK_TERMS_PAGE --></a><!-- ENDIF --><span style="color:#CDCDCD;">|</span>
 
G

Gemini_13

Гость
Чтобы идея не умерла, как многие другие напишу и тут.
Предлагаю отказатся от ДР юзера в зашифрованом виде. Предлагаю переделать в обычный формат даты в MySQL.
1. Избавимся от лишней обработки даты фуньками realdate() и mkrealdate()
2. Выборка юзеров (включая именинников) и проверка даты юзера будет требовать меньших ресурсов. Сейчас чтобы найти юзера с какой-то датой ДР нужно лопатить всю базу и преобразовывать дату фунькой.
3. Да и вообще не вижу смысла шифровать эти данные... ничего в них секретного нету, а экономия мизерная.

На правах ИМХО
 

Basilevs

Пользователь
delete

PHP:
function meta_refresh($url, $time = 5)
{
    global $template;
 
    $template->assign_var(
        'META' , '<meta http-equiv="refresh" content="' . $time . ';url=' . $url . '" />'
    );
}

Замена всех отдельных
PHP:
'<br /><br />'. sprintf($lang['CLICK_RETURN_TOPIC'], '<a href="viewtopic.php?'. POST_POST_URL .'='. $post_id .'#'. $post_id .'">', '</a>') .'<br /><br />'. sprintf($lang['CLICK_RETURN_FORUM'], '<a href="viewforum.php?'. POST_FORUM_URL .'='. $forum_id .'">', '</a>

на вызов

PHP:
 set_die_append_msg();
 

Exile

Администратор
Я же написал, вместо неё использование
Есть ли разница в автоматическом редиректе на указанную страницу через указанное число секунд и в ручном редиректе на три заранее заданные шаблонные ссылки? Функция meta_refresh используется если пользователя надо через указанное число секунд отправить на некую указанную страницу. В качестве примера - пользователь что-то нажал и его форум переадресовывает после показа сообщения "Ты няша" в течении 10 секунд на страницу создания новой темы.
 

Basilevs

Пользователь
Exile, в плане + нагрузки разница будет видна только на большом кол-ве коннектов. Так как редирект будет строго по вызову. Но есть ещё чисто функциональный пример. Не нужно дублировать в коде ссылки редиректа которые там щас. Это добавит нужные возвратные ссылки там где их нет или там где нужны дополнительные, например в modcp.php
 

Exile

Администратор
в плане + нагрузки разница будет видна только на большом кол-ве коннектов. Так как редирект будет строго по вызову
Для чего писать о "нагрузке", если повторюсь нет понимания того, для чего код собственно нужен? Если администратору ресурса надо переадресовать пользователя на указанную страницу через указанное время - значит ему так надо и он понимает все "минусы" этого решения. Вот только когда я переадресовывал тысячу пользователей находящихся онлайн на ресурсе со всех страниц которые у них были открыты в одну тему - не замечал ничего "особенного" в плане мифической "нагрузки", разве что процессов чуть больше становилось из-за таких финтов ушами. Вот только в моем случае 1000 пользователей * кол-во открытых у них страниц, а не простейшая функция использующая стандартные мета-теги браузера, которая мало того вызывается только при определенном условии когда этого хочет администратор ресурса.
 

Basilevs

Пользователь
Если администратору ресурса надо переадресовать пользователя на указанную страницу через указанное время - значит ему так надо и он понимает все "минусы" этого решения.

Так по крайней мере у пользователя есть выбор куда ему вернуться. Сам вопрос (надо или нет) и не стоял. Это фактические реалии движка сейчас. Ну ладно. Мне было надо, я сделал. Что даёт вызов одной функции вместо кучи не нужного дублирующегося - написал, кому надо чуть подправят и поставят.
 
Сверху