Идеи по моддингу

volkodav2000

Пользователь
Как на счет ЧПУ advanced?
Что-то типа такого:
SQL
Код:
ALTER TABLE `bb_topics` ADD `slug` VARCHAR( 50 ) NOT NULL
functions.php
PHP:
function generateSlug($str)
{
$extended_chars='αάβγδεέξηήθιίϊκλμνξοόπρσςτυύϋφχψωώΑΆΒΓΔΕΈΖΗΉΘΙΊΪΚΛΜΝΞΟΌΠΡΣΤΥΎΫΦΧΨΩΏ';
    $replace = '-';
    $trans = array(
        '&\#\d+?;'                            => '',
        '&\S+?;'                            => '',
        '\s+'                                => $replace,
        '[^a-z0-9'.$extended_chars.'\-\._]'    => '',
        $replace.'+'                        => $replace,
        $replace.'$'                        => $replace,
        '^'.$replace                        => $replace,
        '\.+$'                                => ''
    );
    $str = strip_tags($str);
    foreach ($trans as $key => $val)
    {
        $str = preg_replace("#".$key."#i", $val, $str);
    }
    if (function_exists('mb_strtolower'))
    {
        $str = mb_strtolower($str, 'UTF-8');
    } else {
        $str = strtolower($str);
    }
    return trim(stripslashes($str));
}
functons_post.php
PHP:
    if ($mode == 'newtopic' || ($mode == 'editpost' && $post_data['first_post']))
    {
        $topic_vote = (!empty($poll_title) && count($poll_options) >= 2) ? 1 : 0;

        $topic_dl_type = (isset($_POST['topic_dl_type']) && ($post_info['allow_reg_tracker'] || $post_info['allow_dl_topic'] || $is_auth['auth_mod'])) ? TOPIC_DL_TYPE_DL : TOPIC_DL_TYPE_NORMAL;

        $topic_slug = generateSlug($post_subject);

        $sql  = ($mode != "editpost") ? "INSERT INTO " . BB_TOPICS . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_dl_type, topic_vote) VALUES ('$post_subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_dl_type, $topic_vote)" : "UPDATE " . BB_TOPICS . " SET topic_title = '$post_subject', topic_type = $topic_type, topic_dl_type = $topic_dl_type " . ((@$post_data['edit_vote'] || !empty($poll_title)) ? ", topic_vote = " . $topic_vote : "") . ",slug = '$topic_slug-$topic_id' WHERE topic_id = $topic_id";

        if (!DB()->sql_query($sql))
        {
            message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
        }
        }

        if ($mode == 'newtopic')
        {
            $topic_id = DB()->sql_nextid();
            $sql_slug = "UPDATE " . BB_TOPICS . " SET slug = '$topic_slug-$topic_id'  WHERE topic_id = $topic_id";
            DB()->sql_query($sql_slug);
        }
    }
.htaccess
Код:
RewriteRule -t([0-9*])(.*) viewtopic.php?t=$1$2 [L]

урл получаються типа

Please Login or Register to view hidden text.


Тоже самое с форумами.
Но поменять все линки на форуме не осилил...

Для SEO это было бы весомо

PS $extended_chars='αάβγδεέξηήθιίϊκλμνξοόπρσςτυύϋφχψωώΑΆΒΓΔΕΈΖΗΉΘΙΊΪΚΛΜΝΞΟΌΠΡΣΤΥΎΫΦΧΨΩΏ';
Делал для греческого сайта
 

Kex

Пользователь
Добавить бы поле "подтверждение email", с проверкой по аяксу соответствует ли набронное в первом поле email, тому что во втором. Может тогда ошибок ввода имэйл адресов при регистрации меньше станет. Если есть возможность, реализуйте кто-нибудь.
 

Nightmare

Пользователь
Зачем так усложнять регистрацию добавив еще одно поле для e-mail, уже лучше тогда кнопочку сделать "проверить email" и отсылать письмо на ящик
 

Kex

Пользователь
Зачем так усложнять регистрацию добавив еще одно поле для e-mail, уже лучше тогда кнопочку сделать "проверить email" и отсылать письмо на ящик
На мой взгляд это усложнит жизнь пользователям, им придется делать намного больше телодвижений, которые они делать не захотят по любому, поэтому кнопочка так и останется бестолковой кнопочкой, да и на других сайтах всегда второе поле для подтверждения, а не кнопочка, наверно так не спроста сделано.
 

KomarovAlex

Пользователь
Я не думаю что это сильно усложнит регистрацию, зато удобнее. Человек может ошибиться на одну букву. Можно конечно заново зарегиться, но логин уже будет занят. А лишние отправки сообщений это лишнее да и долго все это. Так что предложение хорошее.
 

Kex

Пользователь
frank, проверка на существование и так есть, активация через почту же, а вот второе поле для проверки правильности ввода имэйл очень бы не помешало.
 
F

frank

Гость
где она есть? я говорю о проверке на существование домена почты. допустим юзер не сможет опечататся в yandrex.ru и т.д. и т.п.
нагрузку можно убрать за счёт кэширования..
 
Сверху