Хак functions.php | Ссылка на профиль по символу @

6.13K
.
ДоХтор
Версия JohnCMS - 6.2.0
>>>ПОСЛЕДНЯЯ ВЕРСИЯ<<<
Описание
Данный хак отображает ник пользователя в виде ссылки на его профиль, если этот ник зарегистрирован в базе. Для этого нужно перед ником пользователя дописать символ "@".

Примеры использования
@админ
или
Какой-то текст, и ссылка на профиль @админ
или
Какой-то текст, ссылка на профиль @админ и ещё какой-то текст

Установка
Распаковать архив в корневой каталог, при этом будет перезаписан файл functions.php. Для тех, у кого этот файл уже был изменён, публикую код* для установки вручную
* (+/-)
/**
     * Обработка текстов перед выводом на экран
     *
     * @param string $str
     * @param int $br   Параметр обработки переносов строк
     *                     0 - не обрабатывать (по умолчанию)
     *                     1 - обрабатывать
     *                     2 - вместо переносов строки вставляются пробелы
     * @param int $tags Параметр обработки тэгов
     *                     0 - не обрабатывать (по умолчанию)
     *                     1 - обрабатывать
     *                     2 - вырезать тэги
     *
     * @return string
     */
    public static function checkout($str, $br = 0, $tags = 0)
    {
        $str = htmlentities(trim($str), ENT_QUOTES, 'UTF-8');
        if ($br == 1) {
            // Вставляем переносы строк
            $str = nl2br($str);
        } elseif ($br == 2) {
            $str = str_replace("\r\n", ' ', $str);
        }
        if ($tags == 1) {
            $str = bbcode::tags($str);
        } elseif ($tags == 2) {
            $str = bbcode::notags($str);
        }
        return self::linkUser($str);
    }
    
    /**
    * Ссылка на профиль по символу @
    * 
    * @param string $str
    * 
    * @return string
    */
    public static function linkUser($str) {
        $arr = preg_replace_callback(
            '~(@(.*))~iu',
            function ($a) {
                $us = mysql_fetch_assoc(
                    mysql_query("
                        SELECT `id` FROM `users` 
                        WHERE `name` = '". mysql_real_escape_string($a[2]) ."'
                    ")
                );

                if (!empty($us['id'])) {
                    return '<a href="'. $home .'/users/profile.php?user='. 
                        $us['id'] .'">'. $a[1] .'</a>';
                } else {
                    return $a[0];
                }
            },
            explode(' ', $str)
        );
        return join(' ', $arr);
    }
Прикрепленные файлы:
.

Полезно, когда то нужно было такое

.

скрин пж в студию))

.
ValekS
Ей 25
# Serghei (30.01.2017 / 20:21)
скрин пж в студию))
Зачем? Все и так понятно:
Данный хак отображает ник пользователя в виде ссылки на его профиль

Вот так оно будет отображаться - профиль @Serghei
.
# Serghei (30.01.2017 / 20:21)
скрин пж в студию))
Скрин (хотя тут и так всё понятно)
Прикрепленные файлы:
.
# ValekS (30.01.2017 / 20:24)
Зачем? Все и так понятно:

Вот так оно будет отображаться - профиль @Serghei
+++
.
# ValekS (30.01.2017 / 20:24)
Зачем? Все и так понятно:

Вот так оно будет отображаться - профиль @Serghei
спс.
дошло.
я про другое подумал))
.
Serghei
# ДоХтор (30.01.2017 / 20:28)
Скрин (хотя тут и так всё понятно)
спс..
я непомню где чтото подобное видял :
например на форуме свой логин помечен "чёрным" цветом и бес сылки на него.
За основу твоего хака можно замутить чтоб ник был с сылкой на свой профиль.

Полезно иногда))
.
# Serghei (30.01.2017 / 20:36)
За основу твоего хака можно замутить чтоб ник был ссылкой на свой профиль.
Напиши свой ник после собаки, и будет ссылка на твой профиль. По этой же аналогии будет отображаться и чужой ник.
.
¯\_(ツ)_/¯

На 7 сделаешь? Скажу спасибо.

Всего: 88