Мар 10

Мой движок

Рубрики: Новости  Количество просмотров: 472

Помните я как-то писал, что собираюсь разработать собственное ядро, которое должно давать начало сайтам различной сложности: от сателлита до интернет магазина? Так вот: ядро уже месяца 2, как существует и уже работает на 5-ти моих новых сайтах под контекст, в новостном движке Maulnet/Tools, а так же новом проекте – интернет-магазине по продаже дорогой техники, который находится у меня в разработке. Функционал уже довольно большой, все чистенько, на классах, в стиле CI.

Вкратце о движке: CodeIgniter, модель MVC и мои базовые наработки.

Основные библиотеки, которые существуют на данный момент:

  • object. Базовый класс для работы со строками БД, его наследуют нижеперечисленные классы. Подробнее о его работе можно посмотреть тут: http://www.samborsky.com/news/1109/
  • u. Класс для работы с юзером: вход/выход/проверки/напоминание пароля/регистрация
  • c. Класс для работы с категориями (для статей). создание/изменение/удаление/поиск
  • p. Класс для работы с статьей. проверки/удаление/создание/пинг/изменение и много еще чего.
  • PageView. Класс для вывода статей.

Теперь приведу в качестве примера, главную страницу одного из моих сайтов:

Контроллер (Home.php)

<?php

	class Home extends Controller {

		function Home(){

			parent::Controller();
			$this->load->model("HomeModel");
		}

		function index(){

			$this->load->view("header",array(
				"title" 		=> "Главная страница",
				"keywords"		=> "ключевые слова для главной страницы",
				"description"	=> "описание к главной странице"
			));

			$data = array(
				"pages"		=> $this->HomeModel->pages(),
				"pagination"	=> $this->HomeModel->pagination()
			);
			$this->load->view("home",$data);

			$this->load->view("sidebar");
			$this->load->view("footer");
		}

	}

?>

Модель:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

	class HomeModel extends Model {

	    function __construct(){

	    	parent::Model();
	        $this->load->library('PageView');

	        $this->PageView->limit = 5;
	        $this->PageView->uri_segment = 2;
	        $this->PageView->base_url = '/pages/';
	    }

	    function pages(){

	    	return $this->PageView->get();
	    }

	    function pagination(){

	    	return $this->PageView->pagination();
	    } 

	}	  

?>

Отображение:

            <div class="news">
            	<?php if( !empty($pages) ) :? >

            		<?php foreach( $pages as $page ) : ?>
	            	<div class="block">
	                	<h2><a href="<?= site_url('page/' . $page->slug) ?>"><?= $page->title ?></a></h2>
	                    <div class="image"><img src="<?= $page->thumb_small_url ?>" alt="<?= $page->title ?>" width="219" height="132" /></div>
	                    <div class="text">
	                        <?= mb_substr(strip_tags($page->content),0,600,'utf-8') ?>...
	                        <a href="<?= site_url('page/' . $page->slug) ?>" class="arrow"><img src="/i/news_arrow.gif" alt="" width="8" height="7" /></a>

	                        <div class="links">
	                            <a href="<?= site_url('page/' . $page->slug) ?>" class="read_next">Читайте далее</a><br />
	                        </div>
	                    </div>
	                </div>
                	<?php endforeach; ?>
				<?php else: ?>
					<br /><br />
					<p>Статей нет</p>
        		<?php endif; ?>
            </div>

            <div class="pages">
            	<?= $pagination ?>
            </div>

Само собой есть админка, которую легко расширять для нового функционала:

Написание статьи

Привязка фотки к статье

Планы по развитию? Как минимум сделать движок шопа, форум, древовидные каменты, фотоальбом. В паблик не вижу смысла выкладывать. Начнутся запросы, типа сделайте рейтинг постов или еще что-нибудь. Нет, этот движок будет использоваться в моих личных проектах, и проектах моих клиентов.

Учитывая, что мне вечно заказывают что-то нестандартное и сложное, то движок будет пополняться новыми библиотеками.

———-
Стройматериалы: цемент одесса.
новогодние автобусные туры в Европу.
коммерческая недвижимость по выгодным антикризисным ценам.

Другие статьи автора

Комментарии

  1. Цитировать vvs

    Да, жаль, что не GLP :( похрен на попрошаек… Если только о них думать и только из-за них делать такие выводы… :( ((((((((((((

    Но в любом случае спасибо! Ты и так немало полезных вещей написал :)

Добавить комментарий