Разработка шаблона для доски объявлений на Osclass

Интересные разработки

Osclass — это популярная система для создания досок объявлений с открытым исходным кодом. Разработка собственного шаблона позволяет создать уникальный дизайн и функционал для вашего сайта. В этой статье я расскажу, как разработать шаблон для Osclass с нуля.

Подготовка к разработке

  1. Установка Osclass

    • Скачайте последнюю версию с нашего сайта

    • Установите на локальный сервер или хостинг

  2. Структура шаблонов

    • Шаблоны находятся в папке /oc-content/themes/

    • Изучите структуру стандартных шаблонов (modern, bender)

Создание базовой структуры шаблона

  1. Создайте новую папку для вашего шаблона, например /oc-content/themes/my_theme/

  2. Создайте обязательные файлы:

    • index.php — главная страница

    • header.php — шапка сайта

    • footer.php — подвал сайта

    • functions.php — пользовательские функции

    • main.css — основные стили

    • info.php — информация о шаблоне

Файл info.php (не обязательно)

Этот файл содержит мета-информацию о вашем шаблоне:

<?php
    return array(
        'name'        => 'My Custom Theme',
        'version'     => '1.0',
        'description' => 'Описание вашего шаблона',
        'author_name' => 'Ваше имя',
        'author_url'  => 'https://вашсайт.ru',
        'locations'   => array('header', 'footer')
    );
?>

Основные файлы шаблона

header.php

<!DOCTYPE html>
<html lang="<?php echo str_replace('_', '-', osc_current_user_locale()); ?>">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php echo osc_page_title(); ?></title>
    <?php osc_meta_keywords(); ?>
    <?php osc_run_hook('header'); ?>
    <link rel="stylesheet" href="<?php echo osc_current_web_theme_url('main.css'); ?>">
</head>
<body>
    <header>
        <div class="logo">
            <a href="<?php echo osc_base_url(); ?>"><?php echo osc_page_title(); ?></a>
        </div>
        <nav>
            <?php osc_goto_first_category(); ?>
            <?php while ( osc_has_categories() ) { ?>
                <a href="<?php echo osc_search_category_url(); ?>"><?php echo osc_category_name(); ?></a>
            <?php } ?>
        </nav>
    </header>
    <main>
    </main>
    <footer>
        <p>&copy; <?php echo date('Y'); ?> <?php echo osc_page_title(); ?></p>
        <?php osc_run_hook('footer'); ?>
    </footer>
</body>
</html>

index.php

<?php osc_current_web_theme_path('header.php'); ?>

<h1><?php echo osc_page_title(); ?></h1>

<?php if( osc_count_latest_items() == 0) { ?>
    <p>Нет объявлений</p>
<?php } else { ?>
    <div class="items">
        <?php while ( osc_has_latest_items() ) { ?>
            <div class="item">
                <h3><a href="<?php echo osc_item_url(); ?>"><?php echo osc_item_title(); ?></a></h3>
                <p><?php echo osc_item_description(); ?></p>
                <p>Цена: <?php echo osc_item_formated_price(); ?></p>
                <p>Категория: <a href="<?php echo osc_item_category_url(); ?>"><?php echo osc_item_category_name(); ?></a></p>
            </div>
        <?php } ?>
    </div>
<?php } ?>

<?php osc_current_web_theme_path('footer.php'); ?>

Добавление пользовательских функций (functions.php)

<?php
// Пример пользовательской функции для вывода списка категорий
function my_theme_categories_list() {
    echo '<ul class="categories">';
    osc_goto_first_category();
    while ( osc_has_categories() ) {
        echo '<li><a href="'.osc_search_category_url().'">'.osc_category_name().'</a></li>';
    }
    echo '</ul>';
}

// Добавление поддержки миниатюр
function my_theme_thumbnail() {
    if( osc_images_enabled_at_items() ) {
        if( osc_count_item_resources() > 0 ) {
            echo '<img src="'.osc_resource_thumbnail_url().'" alt="'.osc_item_title().'">';
        } else {
            echo '<img src="'.osc_current_web_theme_url('images/no_photo.gif').'" alt="Разработка шаблона для доски объявлений на Osclass">';
        }
    }
}
?>

Создание CSS стилей (main.css)

/* Основные стили */
body {
    font-family: Arial, sans-serif;
    line-height: 1.6;
    margin: 0;
    padding: 0;
    color: #333;
}

header {
    background: #f8f8f8;
    padding: 20px;
    border-bottom: 1px solid #eee;
}

.logo a {
    font-size: 24px;
    font-weight: bold;
    text-decoration: none;
    color: #333;
}

nav a {
    margin-right: 15px;
    text-decoration: none;
    color: #555;
}

.items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
    padding: 20px;
}

.item {
    border: 1px solid #ddd;
    padding: 15px;
    border-radius: 5px;
}

footer {
    text-align: center;
    padding: 20px;
    background: #f8f8f8;
    border-top: 1px solid #eee;
}

Дополнительные возможности

  1. Поддержка плагинов

    • Добавьте в шаблон хуки для плагинов с помощью osc_run_hook()

  2. Адаптивный дизайн

    • Используйте медиа-запросы в CSS для мобильных устройств

  3. Кастомизация страниц

    • Создайте отдельные файлы для разных страниц:

      • item.php — страница объявления

      • search.php — страница поиска

      • contact.php — страница контактов

  4. Поддержка языков

    • Добавьте переводы в папку languages/ вашего шаблона

Тестирование и публикация

  1. Протестируйте шаблон на разных устройствах и браузерах

  2. Проверьте совместимость с популярными плагинами Osclass

  3. Упакуйте шаблон в zip-архив для распространения

Заключение

Создание собственного шаблона для Osclass требует знаний HTML, CSS, PHP и понимания структуры системы. Начните с простого шаблона, постепенно добавляя новые функции. Изучайте стандартные шаблоны Osclass и документацию для более глубокого понимания возможностей системы.

Готовый шаблон можно опубликовать на нашем сайте или использовать для своих проектов.

Свободен!

Оцените автора
( Пока оценок нет )
Osclass
Добавить комментарий