Pull to refresh
9
0
Nikolay Stepanov @MaxZN

web developer

Send message
Помоему вам эти «наезды» причудились. Всего лишь отвечал на ваши вопросы чётко и по существу вот и всё, если чем то обидел прошу простить.

Еще раз повторюсь, это не в коей мере не обзор фримворка, а изложение субъективного опыта его использования.
Смысл в том, чтобы в шаблоне вызывать формирование правильного формата даты, обрезать данные из модели?
Зачем это делать, если формированием даты занимается более высокоуровневый обьект — модель, которой помогают настройки интернационализации? — помоему этого нет в Fuel, но если есть то да полностью с вами согласен.

Экранирование и фильтрация это тоже задача контроллера. Вьюха должна получать уже готовые данные. — ок я только за, как вы предлагаете решить с циклом ведь данные дергаются внутри foreach() Перенести цикл целиком в контроллер или как? Буду благодарен за дельные рекомендации.
А вот это уже вопрос) Рад. Держите —
<? foreach ($posts as $post) { ?>

<h1><? echo Html::anchor(
	\Fueltools\RepeateBlog::postLink($post), // Тут
	$post->title,
	array('title' => $post->title)
)?></h1>
<div class="row-fluid">

    <article>
        <p class="muted">
            <span class="label label-info"><? echo \Date::time_ago(strtotime($post->created_at)) ?></span>
        </p>

        <p><? echo \Str::truncate(strip_tags($post->content), 600) ?></p>
    </article>
</div>
<hr class="soften">

<? } ?>

\Fueltools\RepeateBlog::postLink($post) — формирует ссылку
Пусть статья не о чем по вашему мнению, но признайте, что благодяря ей вы открыли для себя Fuel и возможо даже попробуете его возможности в своей разработке.
Рад бы, но это не мой фримворк, не я его писал. Помоему вы блефуете и скорее всего нет у вас никакого коммерческого проекта.
Открыли для себя слово «компонент»? — В fuelphp так называется пакет о котором и писал.
Что есть для вас «логика»? — В данном контексте код отвечающий за процессы, прием и обработку данных с целью получения определенного результата.
Магистру Йоде привет) Не зря.
Вы капитан очевидность) Помоему и так видно, что орм тут нет. Вы просили пример контроллера, а не пример ОРМ. Остальные вопросы проигнорирую, с вашего позволения.
У себя спросите.
глупо говорить, что на нём «всё будет легко» — глупо было бы это не проверить на ближайшием «коммерческом проекте»
Обновлял за все время, а не за время написания данного приложения.
Похоже это вы не понимаете о чем пишите, откуда вы взяли — То что вам, за время написания простенького сайта пришлось несколько раз обновлять ядро фреймворка?
Прошу прощения.
2. Роутинг
<?php
return array(
	'_root_' => 'blog', // The default route
	'blog/(:num)' => 'blog/posts/$1', // The default route
	'blog/category/(:num)-(:num)-(:any)' => 'blog/category/$1/$2/$3', // The default route
	'_404_' => 'index/404', // The main 404 route
);


3.Для ОРМ использются модели, вот пример post модели
<?php
/**
 * Created by JetBrains PhpStorm.
 * Development: Max Znamensky
 * Date: 01.08.12
 * Time: 14:54
 * To change this template use File | Settings | File Templates.
 */


namespace Blog;


class Model_Post extends \Orm\Model
{

	protected static $_properties = array(

		'id',
		'title',
		'short_content',
		'content',
		'created_at',
		'author_id',
		'cat_id',
		'anchors',
		'youtube',

	);


	protected static $_belongs_to = array(
		'user' => array(
			'key_from' => 'author_id'
		),
		'categorie' => array(
			'key_from' => 'cat_id'
		)
	);

}
1. Пример кода самого интересного контроллера — вот Base контроллер от которого наследую остальные.
/**
 * Created by JetBrains PhpStorm.
 * Development: Max Znamensky
 * Date: 31.07.12
 * Time: 17:45
 * To change this template use File | Settings | File Templates.
 */

namespace Blog;

use Fuel\Core\View;
use Fueltools\Pagination;

class Controller_Base extends \Fuel\Core\Controller_Template
{
	public $template = 'index';
	public $site_name;
	public $catArr;
	public $postArr;

	public function before()
	{
		parent::before();

		//Инициализация постоянно используемых данных, таких как модели, массивы с данными
		$this->postArr = \Fuel\Core\DB::select('*')->from('posts')->cached(600)->execute()->as_array();
		$this->catArr = \Fuel\Core\DB::select('*')->from('categories')->cached(600)->execute()->as_array();

		$this->site_name = \Fueltools\StrConverter::upperFirst($_SERVER['HTTP_HOST']);

		//Назначает виджеты по умолчанию
		$this->widgetMenuLinks();
		$this->widgetMasthead();
		$this->widgetRndmLinks();
		$this->widgetRndmPosts();
		$this->widgetSearch();
		$this->setIndexVars();

		//$this->template->set_global('breadcrumbs', \Fueltools\Breadcrumb::create_links(), false);

	}


	protected function setIndexVars()
	{
		$this->template->site_name = $this->site_name;
	}

	/**
	 * Pagination
	 */
	protected function getPager($url, $total, $per_page, $segment)
	{
		$config = array(
			'pagination_url' => $url,
			'total_items' => $total,
			'per_page' => $per_page,
			'uri_segment' => $segment,
		);
		Pagination::set_config($config);
		$pagination = Pagination::create_links();

		$this->template->pager = $pagination;
	}

	/**
	 * Формирует виджет меню категорий в top menu
	 */
	protected function widgetMenuLinks()
	{
		$data = $this->catArr;
		$catMenu = \Fueltools\TreeToMenu::forge()->_buildTree($data);
		$this->template->catsmenu = $catMenu;
	}

	/**
	 * Формирует виджет с рандомными ссылками
	 */
	protected function widgetRndmLinks()
	{
		$data = $this->catArr;
		shuffle($data);
		$this->template->footerLinks = View::forge(
			'widgets/footer_random_links',
			array('links' => array_splice($data, 0, 5))
		);
	}

	/**
	 * Формирует виджет Masthead
	 */
	protected function widgetMasthead($data = array())
	{
		$catArr = $this->catArr;
		shuffle($catArr);
		$data['links'] = array_splice($catArr, 0, 40);
		$this->template->widget_masthead = View::forge('widgets/masthead', $data);
	}

	/**
	 * Формирует виджет правого блока на главной и в категориях
	 * @param $offset - кол-во выводимых статей
	 */
	protected function widgetRndmPosts($offset = 5)
	{
		$data = $this->postArr;
		//\Fueltools\FB::info($posts);
		shuffle($data);
		$this->template->widget_rndmposts = View::forge(
			'widgets/thumbnails',
			array('posts' => array_splice($data, 0, $offset))
		);
	}

	/**
	 * Виджет формы поиска
	 */
	protected function widgetSearch()
	{
		$this->template->search_form = View::forge('widgets/search/form');
	}


}

2. Роутинг
<?php return array( '_root_' => 'blog', // The default route 'blog/(:num)' => 'blog/posts/$1', // The default route 'blog/category/(:num)-(:num)-(:any)' => 'blog/category/$1/$2/$3', // The default route '_404_' => 'index/404', // The main 404 route );
3.Для ОРМ использются модели, вот пример post модели
<?php /** * Created by JetBrains PhpStorm. * Development: Max Znamensky * Date: 01.08.12 * Time: 14:54 * To change this template use File | Settings | File Templates. */ namespace Blog; class Model_Post extends \Orm\Model { protected static $_properties = array( 'id', 'title', 'short_content', 'content', 'created_at', 'author_id', 'cat_id', 'anchors', 'youtube', ); protected static $_belongs_to = array( 'user' => array( 'key_from' => 'author_id' ), 'categorie' => array( 'key_from' => 'cat_id' ) ); }
4. Извиняюсь не понял вопроса, уточните пожалуйста и если нужны примеры сообщите что именно нужно.
5. Генераторы кода есть в oil пример использоания есть тут, сам не пользуюсь.
Ну так поделитесь, что вы там угарного нашли, все и «поугараем»
Мастера Йоды вы ученик?
У меня нет перед вами дифицита доверия. Все что описал из личного опыта, вы можете повторить, то что я сделал и уверен это будет положительный опыт использования фримворка.
Повторюсь, тут описывается опыт использования, а не конкретное решение какой либо проблемы. Это не урок или презентация возможностей. Опять же повторюсь, если интересует конкретика, т.е. как именно я делал то-то и то-то, отпишите. Напишу отдельный пост с примерами или размещу пример в этом посте.
Вы спрашивали — Где хоть строчка кода? Вы это так просто спрашивали, чтобы потролить?
Вопросом на вопрос — Это по европейски.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity