Вход Регистрация
Файл: upload/core/functions/seo.php
Строк: 635
<?php
function generateBreadcrumbs(array $paths)
{
    
// Готовим HTML
    
$htmlOutput '<nav aria-label="Хлебные крошки"><ol class="breadcrumb-list">';
    
$count count($paths);
    for (
$i 0$i $count$i++) {
        
$path $paths[$i][0];
        
$label $paths[$i][1];

        if (
$path === '#') {
            
$htmlOutput .= "<li class='breadcrumb-item'><span class='breadcrumb-active'>$label</span></li>";
        } else {
            
$htmlOutput .= "<li class='breadcrumb-item'><a href='$path' class='breadcrumb-link'>$label</a></li>";
        }

        
// Добавляем разделитель, кроме последнего элемента
        
if ($i $count 1) {
            
$htmlOutput .= "<span class='breadcrumb-separator'> › </span>";
        }
    }
    
$htmlOutput .= '</ol></nav>';

    
// Формируем JSON-LD
    
$listItems = [];
    foreach (
$paths as $pos => $data) {
        
$path $data[0];
        
$label $data[1];

        
$listItems[] = [
            
'@type' => 'ListItem',
            
'position' => $pos 1,
            
'name' => $label,
            
'item' => ($path !== '#' $path '')
        ];
    }

    
$jsonLdData = [
        
'@context' => 'https://schema.org',
        
'@type' => 'BreadcrumbList',
        
'itemListElement' => $listItems
    
];

    return [
        
'html' => $htmlOutput,
        
'json_ld' => json_encode($jsonLdDataJSON_PRETTY_PRINT),
    ];
}

function 
metaInfo()
{
    
$id abs((int)($_GET['id'] ?? 0));
    
$section FetchAssoc(dbquery("SELECT * FROM `section` WHERE `id` = ?", [$id]));
    
$profile FetchAssoc(dbquery("SELECT * FROM `users` WHERE `id` = ?", [$id]));
    
$in_work FetchAssoc(dbquery("SELECT * FROM `works` WHERE `id` = ?", [$id]));
    
$category FetchAssoc(dbquery("SELECT * FROM `category` WHERE `id` = ?", [$id]));
    
$subcategory FetchAssoc(dbquery("SELECT * FROM `subcategory` WHERE `id` = ?", [$id]));
    
$question FetchAssoc(dbquery("SELECT * FROM `solutions_question` WHERE `id` = ?", [$id]));
    
$site_inf FetchAssoc(dbquery("SELECT * FROM `site_info` WHERE `id` = '1'"));

    
$pagesData = [
    
'/'                          => ['title' => $site_inf['name'] . ' - ' $site_inf['min_desc'], 'description' => $site_inf['description'], 'keywords' => 'фриланс, главная, площадка''noindex' => false],
    
'/login'                     => ['title' => 'Авторизация - ' $site_inf['name'], 'description' => 'Войдите в свою учетную запись, чтобы начать работу.''keywords' => 'вход, авторизация, аккаунт''noindex' => false],
    
'/register'                  => ['title' => 'Регистрация - ' $site_inf['name'], 'description' => 'Создайте профиль и приступайте к поиску заказов.''keywords' => 'регистрация, создание аккаунта, фриланс''noindex' => false],
    
'/exit'                      => ['title' => 'Выход - ' $site_inf['name'], 'description' => 'Завершите сеанс и выйдете из своей учетной записи.''keywords' => 'выход, завершение сеанса, выход из аккаунта''noindex' => true],
    
'/rules'                     => ['title' => 'Правила площадки - ' $site_inf['name'], 'description' => 'Ознакомьтесь с правилами пользования площадкой.''keywords' => 'правила, условия использования, соглашение''noindex' => false],
    
'/project-info'              => ['title' => 'Информация о проекте - ' $site_inf['name'], 'description' => 'Подробнее о наших услугах и возможностях.''keywords' => 'проект, информация, услуги''noindex' => false],
    
'/users'                     => ['title' => 'Пользователи - ' $site_inf['name'], 'description' => 'Каталог исполнителей и фрилансеров.''keywords' => 'исполнители, каталог, фриланс''noindex' => false],
    
'/new-works'                 => ['title' => 'Новые вакансии - ' $site_inf['name'], 'description' => 'Посмотрите свежие вакансии и заказы.''keywords' => 'новые вакансии, заказы, фриланс''noindex' => false],
    
'/cart'                      => ['title' => 'Корзина - ' $site_inf['name'], 'description' => 'Просмотр текущих выбранных работ.''keywords' => 'корзина, покупки, выбор работ''noindex' => false],
    
'/sales'                     => ['title' => 'Продажи - ' $site_inf['name'], 'description' => 'История ваших продаж.''keywords' => 'продажи, статистика, отчёты''noindex' => false],
    
'/buys'                      => ['title' => 'Заказы - ' $site_inf['name'], 'description' => 'История выполненных вами заказов.''keywords' => 'заказы, выполненные работы, статистика''noindex' => false],
    
'/mes'                       => ['title' => 'Сообщения - ' $site_inf['name'], 'description' => 'Ваш почтовый ящик сообщений.''keywords' => 'сообщения, почта, общение''noindex' => false],
    
'/search'                    => ['title' => 'Поиск - ' $site_inf['name'], 'description' => 'Найдите нужную услугу.''keywords' => 'поиск, исполнители, услуги''noindex' => false],
    
'/tickets'                   => ['title' => 'Тикеты поддержки - ' $site_inf['name'], 'description' => 'Ваши обращения в поддержку.''keywords' => 'тикеты, поддержка''noindex' => false],
    
'/offer'                     => ['title' => 'Пользовательское соглашение - ' $site_inf['name'], 'description' => 'Ознакомьтесь с офертой.''keywords' => 'оферта, соглашение''noindex' => false],
    
'/privacy'                   => ['title' => 'Политика конфиденциальности - ' $site_inf['name'], 'description' => 'Политика обработки персональных данных.''keywords' => 'конфиденциальность, персональные данные''noindex' => false],
    
'/orders'                    => ['title' => 'Услуги - ' $site_inf['name'], 'description' => 'Политика пердоставления услуг.''keywords' => 'заказы, покупки''noindex' => false],
    
'/account'                   => ['title' => 'Аккаунт - ' $site_inf['name'], 'description' => 'Редактирование своего профиля.''keywords' => 'редактирование профиля, аккаунт, редактирование''noindex' => false],
    
'/account/design-profile'    => ['title' => 'Оформление профиля - ' $site_inf['name'], 'description' => 'Настройте оформление своего профиля.''keywords' => 'оформление профиля, дизайн, настройка''noindex' => false],
    
'/account/sequrity'          => ['title' => 'Безопасность - ' $site_inf['name'], 'description' => 'Измените пароль и настройте защиту.''keywords' => 'безопасность, защита, смена пароля''noindex' => false],
    
'/account/requisites'        => ['title' => 'Реквизиты - ' $site_inf['name'], 'description' => 'Управляйте своими реквизитами.''keywords' => 'реквизиты, оплата, банковские реквизиты''noindex' => false],
    
'/load-file/avatar'          => ['title' => 'Загрузка аватара - ' $site_inf['name'], 'description' => 'Загрузка аватара пользователя.''keywords' => 'аватар, загрузка''noindex' => true],
    
'/load-file/header'          => ['title' => 'Загрузка шапки профиля - ' $site_inf['name'], 'description' => 'Загрузка изображения шапки.''keywords' => 'шапка, загрузка''noindex' => true],
    
'/load-file/background'      => ['title' => 'Загрузка фона профиля - ' $site_inf['name'], 'description' => 'Загрузка фонового изображения.''keywords' => 'фон, загрузка''noindex' => true],
    
'/recover-pass'              => ['title' => 'Восстановление пароля - ' $site_inf['name'], 'description' => 'Забыл пароль?''keywords' => 'забыл пароль, восстановление пароля''noindex' => false],
    
'/check-recover-code'        => ['title' => 'Проверка кода - ' $site_inf['name'], 'description' => 'Проверьте полученный код для сброса пароля.''keywords' => 'код, проверка, сброс пароля''noindex' => false],
    
'/change-recover-pass'       => ['title' => 'Изменение пароля - ' $site_inf['name'], 'description' => 'Задайте новый пароль.''keywords' => 'смена пароля, восстановление доступа''noindex' => false],
    
'/mes/' $id                => ['title' => 'Диалог с ' . ($profile['login'] ?? '') . ' - ' $site_inf['name'], 'description' => 'Открыть сообщение.''keywords' => 'просмотреть сообщение, письмо, ' . ($profile['login'] ?? ''), 'noindex' => true],
    
'/new-work'                  => ['title' => 'Новое обьявление - ' $site_inf['name'], 'description' => 'Опубликуйте новое задание.''keywords' => 'создание заказа, новая работа, публикация задания''noindex' => false],
    
'/balance'                   => ['title' => 'Баланс - ' $site_inf['name'], 'description' => 'Пополнение баланса.''keywords' => 'баланс, пополнение счета, финансы''noindex' => false],
    
'/balance/payment-requests'  => ['title' => 'Заявки на вывод - ' $site_inf['name'], 'description' => 'Ваши заявки на вывод средств.''keywords' => 'вывод средств, заявки''noindex' => true],
    
'/work' $id                => ['title' => ($in_work['name_work'] ?? '') . ' - ' $site_inf['name'], 'description' => ($in_work['desc_work'] ?? ''), 'keywords' => 'работа, просмотр заказа, проект, ' . ($in_work['name_work'] ?? ''), 'noindex' => false],
    
'/work-edit' $id           => ['title' => 'Редактирование работы - ' $site_inf['name'], 'description' => 'Редактирование опубликованной работы.''keywords' => 'работа, редактирование''noindex' => true],
    
'/feedback' $id            => ['title' => 'Отзыв о работе - ' $site_inf['name'], 'description' => 'Добавление отзыва о работе.''keywords' => 'отзывы, рейтинг, оценка''noindex' => true],
    
'/feedback/edit' $id       => ['title' => 'Редактирование отзыва - ' $site_inf['name'], 'description' => 'Измените отзыв.''keywords' => 'редактирование отзыва, отзывы, исправления''noindex' => true],
    
'/deal' $id                => ['title' => 'Информация о сделке №' $id ' - ' $site_inf['name'], 'description' => 'Информация о выполнении работы.''keywords' => 'заказ, покупка, услуга''noindex' => true],
    
'/id' $id                  => ['title' => 'Профиль пользователя ' . ($profile['login'] ?? '') . ' - ' $site_inf['name'], 'description' => 'Просмотр профиля пользователя ' . ($profile['login'] ?? ''), 'keywords' => 'профиль пользователя, исполнитель, заказчик, ' . ($profile['login'] ?? ''), 'noindex' => false],
    
'/category' $id            => ['title' => ($category['name'] ?? '') . ' - ' $site_inf['name'], 'description' => ($category['description'] ?? ''), 'keywords' => 'категория, типы заданий, фильтры, ' . ($category['name'] ?? ''), 'noindex' => false],
    
'/section' $id             => ['title' => ($section['name'] ?? '') . ' - ' $site_inf['name'], 'description' => 'Просмотр раздела ' . ($section['name'] ?? ''), 'keywords' => 'раздел, рубрика, фильтрация, ' . ($section['name'] ?? ''), 'noindex' => false],
    
'/subcategory' $id         => ['title' => ($subcategory['name'] ?? '') . ' - ' $site_inf['name'], 'description' => 'Просмотр подраздела ' . ($subcategory['name'] ?? ''), 'keywords' => 'подраздел, фильтр, сортировка, ' . ($subcategory['name'] ?? ''), 'noindex' => false],
    
'/solutions'                 => ['title' => 'Решения - ' $site_inf['name'], 'description' => 'Готовые решения и ответы.''keywords' => 'решения, ответы, помощь''noindex' => false],
    
'/solutions/question' $id  => ['title' => ($question['question'] ?? '') . ' - ' $site_inf['name'], 'description' => ($question['solution'] ?? ''), 'keywords' => 'вопрос, решение, ' . ($question['question'] ?? ''), 'noindex' => false],

    
// ===== ADMIN =====

    
'/admin'                               => ['title' => 'Админ-панель - ' $site_inf['name'], 'description' => 'Управление платформой.''keywords' => 'админ, панель управления''noindex' => true],
    
'/admin/arbitrage-disp'                => ['title' => 'Арбитраж: споры - ' $site_inf['name'], 'description' => 'Список арбитражных споров.''keywords' => 'арбитраж, диспуты''noindex' => true],
    
'/admin/arbitrage-tickets'             => ['title' => 'Арбитраж: тикеты - ' $site_inf['name'], 'description' => 'Список арбитражных тикетов.''keywords' => 'арбитраж, тикеты''noindex' => true],
    
'/admin/payment-requests'              => ['title' => 'Заявки на вывод - ' $site_inf['name'], 'description' => 'Обработка заявок на вывод средств.''keywords' => 'вывод средств, заявки''noindex' => true],
    
'/admin/search-info'                   => ['title' => 'Поиск информации - ' $site_inf['name'], 'description' => 'Поиск данных по платформе.''keywords' => 'поиск, админ''noindex' => true],
    
'/admin/project-profit'                => ['title' => 'Прибыль проекта - ' $site_inf['name'], 'description' => 'Статистика доходов проекта.''keywords' => 'прибыль, статистика''noindex' => true],
    
'/admin/platform-parameters'           => ['title' => 'Параметры платформы - ' $site_inf['name'], 'description' => 'Настройки платформы.''keywords' => 'настройки, параметры''noindex' => true],
    
'/admin/tickets'                       => ['title' => 'Тикеты пользователей - ' $site_inf['name'], 'description' => 'Управление тикетами.''keywords' => 'тикеты, поддержка''noindex' => true],
    
'/admin/operator-details'              => ['title' => 'Операторы поддержки - ' $site_inf['name'], 'description' => 'Информация об операторах.''keywords' => 'операторы, поддержка''noindex' => true],
    
'/admin/nodes'                         => ['title' => 'Узлы категорий - ' $site_inf['name'], 'description' => 'Управление категориями и разделами.''keywords' => 'категории, узлы''noindex' => true],
    
'/admin/nodes/new-category'            => ['title' => 'Новая категория - ' $site_inf['name'], 'description' => 'Создание новой категории.''keywords' => 'категория, создание''noindex' => true],
    
'/admin/nodes/del-section'             => ['title' => 'Удаление раздела - ' $site_inf['name'], 'description' => 'Удаление раздела.''keywords' => 'раздел, удаление''noindex' => true],
    
'/admin/nodes/del-subcategory'         => ['title' => 'Удаление подкатегории - ' $site_inf['name'], 'description' => 'Удаление подкатегории.''keywords' => 'подкатегория, удаление''noindex' => true],
    
'/admin/nodes/del-category'            => ['title' => 'Удаление категории - ' $site_inf['name'], 'description' => 'Удаление категории.''keywords' => 'категория, удаление''noindex' => true],
    
'/admin/nodes/new-subcategory' $id   => ['title' => 'Новая подкатегория - ' $site_inf['name'], 'description' => 'Создание подкатегории.''keywords' => 'подкатегория, создание''noindex' => true],
    
'/admin/nodes/new-section' $id       => ['title' => 'Новый раздел - ' $site_inf['name'], 'description' => 'Создание раздела.''keywords' => 'раздел, создание''noindex' => true],
    
'/admin/nodes/edit-category' $id     => ['title' => 'Редактирование категории - ' $site_inf['name'], 'description' => 'Редактирование категории.''keywords' => 'категория, редактирование''noindex' => true],
    
'/admin/nodes/edit-subcategory' $id  => ['title' => 'Редактирование подкатегории - ' $site_inf['name'], 'description' => 'Редактирование подкатегории.''keywords' => 'подкатегория, редактирование''noindex' => true],
    
'/admin/nodes/edit-section' $id      => ['title' => 'Редактирование раздела - ' $site_inf['name'], 'description' => 'Редактирование раздела.''keywords' => 'раздел, редактирование''noindex' => true],
    
'/admin/solutions'                     => ['title' => 'Решения (админ) - ' $site_inf['name'], 'description' => 'Управление решениями.''keywords' => 'решения, админ''noindex' => true],
    
'/admin/solutions/del-solution'        => ['title' => 'Удаление решения - ' $site_inf['name'], 'description' => 'Удаление решения.''keywords' => 'решение, удаление''noindex' => true],
    
'/admin/solutions/new-category'        => ['title' => 'Новая категория решений - ' $site_inf['name'], 'description' => 'Создание категории решений.''keywords' => 'решения, категория''noindex' => true],
    
'/admin/solutions/del-section'         => ['title' => 'Удаление раздела решений - ' $site_inf['name'], 'description' => 'Удаление раздела.''keywords' => 'решения, раздел, удаление''noindex' => true],
    
'/admin/solutions/del-category'        => ['title' => 'Удаление категории решений - ' $site_inf['name'], 'description' => 'Удаление категории.''keywords' => 'решения, категория, удаление''noindex' => true],
    
'/admin/solutions/new-solution' $id  => ['title' => 'Новое решение - ' $site_inf['name'], 'description' => 'Создание решения.''keywords' => 'решение, создание''noindex' => true],
    
'/admin/solutions/edit-solution' $id => ['title' => 'Редактирование решения - ' $site_inf['name'], 'description' => 'Редактирование решения.''keywords' => 'решение, редактирование''noindex' => true],
    
'/admin/solutions/new-section' $id   => ['title' => 'Новый раздел решений - ' $site_inf['name'], 'description' => 'Создание раздела.''keywords' => 'решения, раздел, создание''noindex' => true],
    
'/admin/solutions/edit-category' $id => ['title' => 'Редактирование категории решений - ' $site_inf['name'], 'description' => 'Редактирование категории.''keywords' => 'решения, категория, редактирование''noindex' => true],
    
'/admin/solutions/edit-section' $id  => ['title' => 'Редактирование раздела решений - ' $site_inf['name'], 'description' => 'Редактирование раздела.''keywords' => 'решения, раздел, редактирование''noindex' => true],
    
'/admin/users'                         => ['title'  => 'Пользователи (админ) - ' $site_inf['name'], 'description' => 'Управление пользователями.''keywords' => 'пользователи, админ''noindex' => true],
    
'/admin/users/search-users'            => ['title' => 'Поиск пользователей (админ) - ' $site_inf['name'], 'description' => 'Поиск по базе пользователей.''keywords' => 'пользователи, поиск, админ''noindex' => true],
    
'/admin/users/edit-user' $id         => ['title' => 'Редактирование пользователя - ' $site_inf['name'], 'description' => 'Редактирование данных пользователя.''keywords' => 'пользователь, редактирование''noindex' => true],
    
'/admin/groups'                        => ['title' => 'Группы пользователей - ' $site_inf['name'], 'description' => 'Управление группами.''keywords' => 'группы, роли''noindex' => true],
    
'/admin/groups/new-group'              => ['title' => 'Новая группа - ' $site_inf['name'], 'description' => 'Создание группы.''keywords' => 'группа, создание''noindex' => true],
    
'/admin/groups/edit-group' $id       => ['title' => 'Редактирование группы - ' $site_inf['name'], 'description' => 'Редактирование группы.''keywords' => 'группа, редактирование''noindex' => true],
    
'/admin/groups/del-group'              => ['title' => 'Удаление группы - ' $site_inf['name'], 'description' => 'Удаление группы.''keywords' => 'группа, удаление''noindex' => true],
    
'/admin/plugins'                       => ['title' => 'Плагины - ' $site_inf['name'], 'description' => 'Управление плагинами.''keywords' => 'плагины, модули''noindex' => true],
    
'/admin/plugins/payments'              => ['title' => 'Платёжные модули - ' $site_inf['name'], 'description' => 'Управление платёжными модулями.''keywords' => 'платежи, модули''noindex' => true],
    
'/admin/plugins/oauth'                 => ['title' => 'OAuth модули - ' $site_inf['name'], 'description' => 'Управление OAuth модулями.''keywords' => 'oauth, модули''noindex' => true],
    
'/admin/plugins/captcha'               => ['title' => 'Captcha модули - ' $site_inf['name'], 'description' => 'Управление captcha модулями.''keywords' => 'captcha, модули''noindex' => true],
];

    
// Текущая страница
    
$currentPage parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

    
// Если страница есть в массиве
    
if (isset($pagesData[$currentPage])) {
        
$p $pagesData[$currentPage];

        
$html  "<title>" chars($p['title']) . "</title>n";
        
$html .= "<meta name='description' content='" chars($p['description']) . "' />n";

        if (!empty(
$p['keywords'])) {
            
$html .= "<meta name='keywords' content='" chars($p['keywords']) . "' />n";
        }

        if (!empty(
$p['noindex'])) {
            
$html .= "<meta name='robots' content='noindex, nofollow'>n";
        }

        
$html .= "<meta property='og:type' content='website' />n";
        
$html .= "<meta property='og:url' content='" homeLink() . $currentPage "' />n";
        
$html .= "<meta property='og:title' content='" chars($p['title']) . "' />n";
        
$html .= "<meta property='og:description' content='" chars($p['description']) . "' />n";
        
$html .= "<meta property='og:image' content='" StyleLink() . "/images/seo/og/og-image.png' />n";

        return 
$html;
    }

    
// Если страница не найдена
    
return "<title>{$site_inf['name']}</title>n<meta name='description' content='{$site_inf['description']}' />";
}
?>
Онлайн: 0
Реклама