Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 05 июл 2025, 23:37

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 61 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Re: Модуль Pagination
СообщениеДобавлено: 02 май 2012, 17:51 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Цитата:
я так понял вы за эту строчку
->offset($pagination->offset)
(если честно пока не вьехал что то крутится типо ->offset(limit*items_per_page)


Угу. Она.
Ну попробуйте в ней написать
Код:
->offset(($offset - 1) * $pagination->items_per_page)


Только над $users = ORM::factory('user')
добавьте
Код:
$offset = ($this->request->param('id'))? $this->request->param('id') : 1;


Цитата:
а где надо указать этот лимит, что бы на страницу выдавалось ну скажем 15 пользователей

В конфиге
Код:
'items_per_page'    => 10,

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль Pagination
СообщениеДобавлено: 02 май 2012, 17:53 
Не в сети
Бывалый

Зарегистрирован: 01 май 2012, 23:50
Сообщения: 72
хм...не что то не вьезжаю...прошу вас подскажите, что нужно сделать, а то я себе уже весь мозг выел, а не пойму как это сделать(

====
а не заметил..сейчас попробую
==========

Код:
      $user = ORM::factory('user');
      
      $data['users'] = $user->getUserList($filter);
      $data['notes'] = $user->getDistinctNotes();
      $data['filter'] = $filter;
      
      // получаем общее количество пользователей
      $count = ORM::factory('user')->count_all();

      // передаем значение количества пользователей в модуль pagination и формируем ссылки
      $pagination = Pagination::factory(array('total_items' => $count))->route_params
      (array('controller' => Request::current()->controller(), 'action' => Request::current()->action(),));

      //получаем пользователей с указанной позиции ($pagination->offset)
      //и указанное количество на страницу ($pagination->items_per_page)
      $offset = ($this->request->param('id'))? $this->request->param('id') : 1;
      $users = ORM::factory('user')
      ->limit($pagination->items_per_page)
      ->offset(($offset - 1) * $pagination->items_per_page)
      ->find_all();
      
      $data['pagination'] = $pagination;
      
      $this->tpl->content =  View::factory('admin/userlist', $data);


не вышло(

может в вашей строчке место вопроса нужно написать что-то другое просто я если честно вопрос в строчках кода впервые вижу

=================
стоп у меня две строчки
$users = ORM::factory('user')

я добавил над второй..может первая вообще не надо? и ее убрать?

_________________
iReznik.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль Pagination
СообщениеДобавлено: 02 май 2012, 18:19 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Вторая строчка откуда взялась ?

Смотрите в чем смысл. Вот у вас таблица с пользователями. Вам надо допустим выводить по 10 пользователей на страницу. В конфиге пагинатора это забито
Код:
'items_per_page'    => 10,


Также нам надо выводить этих 10 пользователей не с самого начала таблицы, а в зависимости от страницы. Т.е. на первой странице это будет с нулевого по десятый. А на третьей уже с 20-го по 30-й. Т.е. если вспомнить SQL что-то типа LIMIT 20, 10
где первая цифра-с какой записи выводить, а вторая - сколько записей выводить.
Номер нашей текущей страницы мы знаем, он хранится в $this->request->param('id'). Сколько записей выводить тоже знаем - 10.
Получается, что с какой записи выводить считается по формуле
(Текущая страница - 1) * количество записей.
Для первой: (1-1) * 10 = 0, т.е. с нулевой по 10-ю
Для третьей: (3-1) * 10 = 20, т.е. с 20-й по 30-ю

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль Pagination
СообщениеДобавлено: 02 май 2012, 18:21 
Не в сети
Бывалый

Зарегистрирован: 01 май 2012, 23:50
Сообщения: 72
первая строчка была в этом екшене изначально....
а вторую я добавил из строчек которые нашел в инете

ну я примерно понял, что вы написали но на практике пока не выходит
вот посмотрите весь код екшена

Код:
public function action_list()
   {
      $data = array();
      $filter = Session::instance()->get('userlistFilter', array());
      
      $user = ORM::factory('user');
      
      if ($this->isPressed('btnFilter'))
      {
         $filter['FIO']      = trim(Arr::get($_POST, 'FIO'));
         $filter['role']     = trim(Arr::get($_POST, 'role'));
         $filter['isActive'] = trim(Arr::get($_POST, 'isActive'));
         $filter['note']     = trim(Arr::get($_POST, 'note'));
         
         foreach ($filter as $key => $value)
         {
            if ($value == '')
               unset($filter[$key]);
         }
         
         Session::instance()->set('userlistFilter', $filter);
      }
      
      if ($this->isPressed('btnDelete'))
      {
         $idList = Arr::get($_POST, 'cb', array());
         foreach ($idList as $id => $value)
         {
            $user = ORM::factory('user', $id);
            $user->delete();
         }
      }
      
      $user = ORM::factory('user');
      
      $data['users'] = $user->getUserList($filter);
      $data['notes'] = $user->getDistinctNotes();
      $data['filter'] = $filter;
      
      // получаем общее количество пользователей
      $count = ORM::factory('user')->count_all();

      // передаем значение количества пользователей в модуль pagination и формируем ссылки
      $pagination = Pagination::factory(array('total_items' => $count))->route_params
      (array('controller' => Request::current()->controller(), 'action' => Request::current()->action(),));

      //получаем пользователей с указанной позиции ($pagination->offset)
      //и указанное количество на страницу ($pagination->items_per_page)
      $offset = ($this->request->param('id'))? $this->request->param('id') : 1;
      $users = ORM::factory('user')
      ->limit($pagination->items_per_page)
      ->offset(($offset - 1) * $pagination->items_per_page)
      ->find_all();
      
      $data['pagination'] = $pagination;
      
      $this->tpl->content =  View::factory('admin/userlist', $data);
   }


1)какую строчку убрать?
2)если убирать первую строчку, то без результатно

_________________
iReznik.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль Pagination
СообщениеДобавлено: 02 май 2012, 18:29 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Попробуйте вместо
Код:
      $user = ORM::factory('user');
     
      $data['users'] = $user->getUserList($filter);
      $data['notes'] = $user->getDistinctNotes();
      $data['filter'] = $filter;
     
      // получаем общее количество пользователей
      $count = ORM::factory('user')->count_all();

      // передаем значение количества пользователей в модуль pagination и формируем ссылки
      $pagination = Pagination::factory(array('total_items' => $count))->route_params
      (array('controller' => Request::current()->controller(), 'action' => Request::current()->action(),));

      //получаем пользователей с указанной позиции ($pagination->offset)
      //и указанное количество на страницу ($pagination->items_per_page)
      $offset = ($this->request->param('id'))? $this->request->param('id') : 1;
      $users = ORM::factory('user')
      ->limit($pagination->items_per_page)
      ->offset(($offset - 1) * $pagination->items_per_page)
      ->find_all();

      $data['pagination'] = $pagination;



написать

Код:

      // получаем общее количество пользователей
      $count = ORM::factory('user')->count_all();

      // передаем значение количества пользователей в модуль pagination и формируем ссылки
      $pagination = Pagination::factory(array('total_items' => $count))->route_params
      (array('controller' => Request::current()->controller(), 'action' => Request::current()->action(),));

      //получаем пользователей с указанной позиции ($pagination->offset)
      //и указанное количество на страницу ($pagination->items_per_page)
      $offset = ($this->request->param('id'))? $this->request->param('id') : 1;
      $user = ORM::factory('user')
      ->limit($pagination->items_per_page)
      ->offset(($offset - 1) * $pagination->items_per_page)
      ->find_all();

      $data['users'] = $user->getUserList($filter);
      $data['notes'] = $user->getDistinctNotes();
      $data['filter'] = $filter;
      $data['pagination'] = $pagination;


_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль Pagination
СообщениеДобавлено: 02 май 2012, 18:36 
Не в сети
Бывалый

Зарегистрирован: 01 май 2012, 23:50
Сообщения: 72
ErrorException [ Fatal Error ]: Call to undefined method Database_MySQL_Result::getUserList()

вот в этой строчке
$data['users'] = $user->getUserList($filter);

_________________
iReznik.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль Pagination
СообщениеДобавлено: 02 май 2012, 19:32 
Не в сети
Бывалый

Зарегистрирован: 01 май 2012, 23:50
Сообщения: 72
спасибо вам большое)
друг появился в сети и помог решить данную проблему)

_________________
iReznik.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль Pagination
СообщениеДобавлено: 02 май 2012, 20:18 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Ок. Правили метод getUserList из Модели ? Он похоже и достает юзеров, в нем надо было лимиты указать

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль Pagination
СообщениеДобавлено: 02 май 2012, 20:54 
Не в сети
Бывалый

Зарегистрирован: 01 май 2012, 23:50
Сообщения: 72
да именно он)
сейчас сам пытаюсь прикрутить к материалам..если что надеюсь вы подскажите)
а то друг уехал(

======================================
хотел бы уточнить один нюанс
смотрите вот всего у меня пользователей на 2 стр
если фильровать к примеру по студентам то выдается на 1 стр, но почему то внизу показывает вторую, жму на вторую стр а там пусто
из-за чего так?
=======================================

все таки нужна ваша помощь...думал легко сделаю, так же но есть нюансы

вот смотрите файл материалс (контроллер)


Код:
<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Materials extends Basecontroller
{
   protected $layout = 'layouts/main';
   
   public function init()
   {
      $this->checkRole('teacher');
   }
   
   public function action_index()
   {
      $data = array();
      $filter = Session::instance()->get('materialsFilter', array());
      
      $user = Auth::instance()->get_user();
      
      if ($this->isPressed('btnFilter'))
      {
         $filter['FIO'] = Arr::get($_POST, 'FIO');
         
         Session::instance()->set('materialsFilter', $filter);
      }
      
      $material = ORM::factory('material');
      
      if ($user->isAdmin())
      {
         $data['materials'] = $material->getMaterialsByTeacher(NULL, NULL, $filter);
      }
      else
      {
         $data['materials'] = $material->getMaterialsByTeacher($user->id);
      }
      
      $data['isAdmin'] = $user->isAdmin();
      $data['filter'] = $filter;
      
      // получаем общее количество материалов
      $count = ORM::factory('material')->count_all();

      // передаем значение количества материала в модуль pagination и формируем ссылки
      $pagination = Pagination::factory(array('total_items' => $count))->route_params
      (array('controller' => Request::current()->controller(), 'action' => Request::current()->action(),));
      
      //получаем пользователей с указанной позиции ($pagination->offset)
      //и указанное количество на страницу ($pagination->items_per_page)
      $material->limit($pagination->items_per_page)
        ->offset($pagination->offset)->find_all();
      
      $data['pagination'] = $pagination;
      
      $this->tpl->content = View::factory('materials/index', $data);
   }
   
   public function action_stats()
   {
      $data = array();
      $errors = array();
      $filter = Session::instance()->get('statFilter', array());
      
      if ($this->isPressed('btnFilter'))
      {
         $filter['FIO']      = Arr::get($_POST, 'FIO');
         $filter['dateFrom'] = Arr::get($_POST, 'dateFrom');
         $filter['dateTo']   = Arr::get($_POST, 'dateTo');
         
         Session::instance()->set('statFilter', $filter);
         
         if (($filter['dateFrom'] != '') && !Valid::mydate($filter['dateFrom']))
            $errors['dateFrom'] = 'Дата должна быть в формате dd.mm.yyyy';
         
         if (($filter['dateTo'] != '') && !Valid::mydate($filter['dateTo']))
            $errors['dateTo'] = 'Дата должна быть в формате dd.mm.yyyy';
      }
      
      $material_id = $this->request->param('id', NULL);
      
      $material = ORM::factory('material', $material_id);
      
      $data['materialName'] = $material->materialName;
      $data['stats'] = $material->getStats($material_id, $filter);
      $data['count'] = count($data['stats']);
      $data['filter'] = $filter;
      $data['errors'] = $errors;
      
      $this->tpl->content = View::factory('materials/stats', $data);
   }
   
   public function action_add()
   {
      $this->edit(NULL, 'add');
   }
   
   public function action_edit()
   {
      $id = $this->request->param('id', NULL);
      $this->edit($id, 'edit');
   }
   
   public function edit($id, $mode)
   {
      $data = array();
      $data['errors'] = array();
      $data['mode'] = $mode;
      
      $material = ORM::factory('material', $id);
      $user = ORM::factory('user');
      
      $isAdmin = $user->isAdmin();
      $data['isAdmin'] = $isAdmin;
      
      if ($this->isPressed('btnSubmit'))
      {
         $file = Validation::factory($_FILES);
//         $file->rule('materialFile', 'Upload::not_empty'));
         $file->rule('materialFile', 'Upload::valid');
         $file->rule('materialFile', 'Upload::type', array(':value', array(
            'jpg', 'gif', 'png', 'tif', 'tiff',
            'pdf', 'djv', 'djvu', 'txt', 'doc', 'docx', 'xls', 'xlsx', 'odt', 'ods', 'odp', 'odg', 'odm',
            '7z', 'arj', 'rar', 'zip',
            'mp3', 'avi', 'mkv', 'mp4', 'flv',
         )));
         $file->rule('materialFile', 'Upload::size', array(':value', '50M'));
         
         if (!$isAdmin)
         {
            $_POST['teacher_id'] = Auth::instance()->get_user()->id;
         }
         $material->values($_POST);
         
         $materialError = $fileError = FALSE;
         try {
            $material->check();
         } catch (ORM_Validation_Exception $e) {
            $materialError = TRUE;
            $data['errors'] = $e->errors('validation', FALSE);
         }
         
         if (!$file->check())
         {
            $fileError = TRUE;
            $data['errors'] = Arr::merge($data['errors'], $file->errors('upload', FALSE));
         }
         
         if (!$materialError && !$fileError)
         {
            $material->save();
            
            // Если файл был загружен, то обработать его
            if (!empty($_FILES['materialFile']['tmp_name']))
            {
               // удаляем старый файл, если имеется
               $material->deleteFile();
               
               //определяем имя файла, под которым будет записан материал
               $path_parts = pathinfo($_FILES['materialFile']['name']);
               $filename = $material->getFileName($path_parts['extension']);
               $material->filename = $filename;
               $material->url = ''; // если мы загружаем файл, то ссылка на сторонний ресурс бессмысленна
               
               $savedfilename = Upload::save($file['materialFile'], $filename, 'files');
               
               if ($savedfilename === FALSE)
                  throw new Exception('Unable to save uploaded file!');
            }
            
            // если не было загрузки файла а был установлен URL, то удалить файл, если таковой имеется
            if ($material->url != '')
               $material->deleteFile();
            
            $material->save();
            
            Request::initial()->redirect('materials.html');
         }
      }
      
      $data['values'] = $material->as_array();
      
      $cat = new Model_Category;
      $data['tree'] = $cat->getTree();
      $data['teachers'] = $user->getTeachers();
      
      $this->tpl->content = View::factory('materials/edit', $data);
   }
   
   public function action_delete()
   {
      $material_id = $this->request->param('id', NULL);
      
      $material = ORM::factory('material', $material_id);
      
      $material->delete();
      
      Request::initial()->redirect('materials.html');
   }
   
}


я попытался вставить в екшен индекс,
так же вывел через вид и на нужной странице ничего нет..впрошлый раз надо было покопатся еще в модели, но там сейчас по моему ничего нет
ну если что вот сама модель

Код:
<?php defined('SYSPATH') or die('No direct script access.');

class Model_Material extends ORM
{
   protected $filesDirectory = 'files/';
   
   public function __construct($id = NULL)
   {
      $this->add_empty_rule('checkMaterialExists');
      
      parent::__construct($id);
   }
   
   protected $_created_column = array(
      'column' => 'ctime',
      'format' => TRUE,
   );
   protected $_updated_column = array(
      'column' => 'mtime',
      'format' => TRUE
   );
   
   public function rules()
   {
      return array(
         'node_id' => array(
            array('not_empty'),
            array('digit'),
            array('check_id', array(':value', 'tree')),
         ),
         'teacher_id' => array(
            array('not_empty'),
            array('digit'),
            array('check_id', array(':value', 'users')),
         ),
         'subjectName' => array(
            array('not_empty'),
            array('max_length', array(':value', 250)),
         ),
         'materialName' => array(
            array('not_empty'),
            array('max_length', array(':value', 1000)),
         ),
         'access' => array(
            array('not_empty'),
            array('regex', array(':value', '/^(all|auth)$/')),
         ),
         'filename' => array(
            array('max_length', array(':value', 50)),
         ),
         'url' => array(
//            array('not_empty'),
            array('url'),
            array('max_length', array(':value', 250)),
            array(array($this, 'checkMaterialExists'), array(':value', 'materialFile')),
         ),
      );
   }
   
   public function checkMaterialExists($value, $uploadedFileField)
   {
      // если url не пустой, то ок
      if ($value != '') return TRUE;
      
      // если файл уже был загружен ранее а сейчас нет, то ок
      if (is_file($this->filesDirectory.$this->filename))
         return TRUE;
      
      // далее проверяем, был ли загружен файл
      if (!isset($_FILES[$uploadedFileField]['name']))
         return FALSE;
      
      if ($_FILES[$uploadedFileField]['name'] != '')
         return TRUE;
      
      return FALSE;
   }
   
   // Возвращает список материалов по указанному преподавателю
   public function getMaterialsByTeacher($teacher_id=NULL, $node_id=NULL, $filter=NULL)
   {
      $cat = new Model_Category;
      
      $qry = DB::select('materials.*',
         array('users.name', 'name')
      )
         ->join('users', 'left')->on('users.id', '=', 'materials.teacher_id')
         ->from('materials');
      
      if ($teacher_id)
      {
         $qry->where('teacher_id', '=', $teacher_id);
      }
      
      if ($node_id)
      {
         $qry->where('node_id', '=', $node_id);
      }
      
      if (isset($filter['FIO']) && ($filter['FIO'] != ''))
      {
         $qry->where('name', 'like', '%'.$filter['FIO'].'%');
      }
      
      if (!$teacher_id)
      {
         $qry->order_by('users.name', 'asc');
      }
      
      $data =   $qry->order_by('subjectName', 'asc')
         ->order_by('ctime', 'asc')
         ->execute()
         ->as_array();
      
      foreach ($data as $key => $item)
      {
         $data[$key]['path']   = $cat->getPath($item['node_id']);
         $data[$key]['isLeaf'] = $cat->isLeaf($item['node_id']);
         $data[$key]['link'] = $this->getLink($item);
      }
      
      return $data;
   }
   
   // Возвращает список преподавателей, сгруппированных по идентификатору ноды для вывода в дереве материалов
   public function getTeachersGropupByNode()
   {
      $data = DB::select('materials.*',
         array('users.name', 'name')
      )
         ->from('materials')
         ->join('users', 'left')->on('users.id', '=', 'materials.teacher_id')
         ->group_by('materials.node_id')
         ->group_by('materials.teacher_id')
         ->order_by('users.name', 'asc')
         ->execute();
//         ->as_array();
      
      $result = array();
      foreach ($data as $item)
      {
         $idx = $item['node_id'];
         
         if (!isset($result[$idx]))
         {
            $result[$idx] = array();
         }
         
         $result[$idx][] = $item;
      }
      
      return $result;
   }
   
   public function getLink($item)
   {
      if ($item['filename'] != '')
      {
         return $this->filesDirectory.$item['filename'];
      }
      else
      {
         return $item['url'];
      }
   }
   
   // метод засчитывает загрузку материала и добавляет запись в таблицу статистики загрузки
   public function countDownload()
   {
      $auth = Auth::instance();
      
      if (!$auth->logged_in()) return;
      
      $user_id = $auth->get_user()->id;
      
      $stat = ORM::factory('download');
      
      $stat->material_id = $this->id;
      $stat->user_id = $user_id;
      $stat->ctime = time();
      
      $stat->save();
   }
   
   protected function mydateToUnixTime($mydate)
   {
      // вычисляем ctime из cdate
      $mydate = str_replace(array(',', '/', '-'), '.', $mydate);
      $parts = explode('.', $mydate);
      
      if (count($parts) != 3)
         throw new Exception('Invalid $mydate');
      
      $unixTime = mktime(0, 0, 0, (int) $parts[1], (int) $parts[0], (int) $parts[2]);
      
      if ($unixTime === FALSE)
         throw new Exception('Invalid $mydate');
      
      return $unixTime;
   }
   
   public function getStats($id, $filter=array())
   {
      $fltDateFrom = trim(Arr::get($filter, 'dateFrom', ''));
      $fltDateTo   = trim(Arr::get($filter, 'dateTo', ''));
      $fltFIO      = trim(Arr::get($filter, 'FIO', ''));
      
      if ($fltDateFrom)
         try {
            $fltDateFrom = $this->mydateToUnixTime($fltDateFrom);
         } catch (Exception $e) {
            $fltDateFrom = '';
         }
         
      if ($fltDateTo)
         try {
            $fltDateTo = $this->mydateToUnixTime($fltDateTo);
         } catch (Exception $e) {
            $fltDateTo = '';
         }
      
      $stats = ORM::factory('download');
      
      $stats->join('users', 'LEFT')->on('users.id', '=', 'download.user_id');
      $stats->where('material_id', '=', $id);
      
      if ($fltDateFrom)
         $stats->where('ctime', '>', $fltDateFrom);
      
      if ($fltDateTo)
         $stats->where('ctime', '<', $fltDateTo+86400);
      
      if ($fltFIO)
         $stats->where('name', 'like', '%'.$fltFIO.'%');
      
      $stats->order_by('ctime', 'desc');
      $result = $stats->find_all();
      
      return $result;
   }
   
   public function deleteFile() // really public ???
   {
      if (!$this->loaded())
         throw new Exception('Cannot delete file because model is not loaded.');
      
      if ($this->filename != '')
         @unlink($this->filesDirectory.$this->filename);
      
      $this->filename = '';
   }
   
   public function getFileName($extension) // really public ???
   {
      if (!$this->loaded())
         throw new Exception('Cannot ctreate filename because model is not loaded.');
      
      return $this->id.'.'.$extension;
   }
   
   public function delete()
   {
      $this->deleteFile();
      
      parent::delete();
   }
   
}

_________________
iReznik.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль Pagination
СообщениеДобавлено: 02 май 2012, 21:55 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Цитата:
хотел бы уточнить один нюанс
смотрите вот всего у меня пользователей на 2 стр
если фильровать к примеру по студентам то выдается на 1 стр, но почему то внизу показывает вторую, жму на вторую стр а там пусто
из-за чего так?


Из-за того, что счетчик количества пользователей
Код:
$count = ORM::factory('user')->count_all();

считает всех пользователей без учета фильтра.

Я в орм не очень.

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 61 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group