Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

.\aplication\classes\model\regcode.php




.. \aplication\classes\model\regcode. php

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

// валидация параметра -код-

class Model_Regcode extends ORM

{

// protected $_table_name = 'users'

public function rules()

{

   return array(

    'code' => array(

   array('not_empty'),

   array(array($this, 'bad_code')),

      ),

   );

}

public function bad_code($code)

{

   $regcodetemp = ORM:: factory('regcode', array('code'=> $code));

   // создание временной переменной регкодетемп хранящий введенное значение и сверка тождественности с параметром регкод который зависит от таблицы с кодами

   if($regcodetemp-> loaded())

   {

       if($regcodetemp-> user_id == NULL)

       // если код не занят еще ни 1 пользователем то вернуть функции тру если занят вернуть фолс.

       {

           return TRUE;

       }

       else

       {

           return FALSE;

       }

   }

   else

   {

       return FALSE;

   }

}

public function disactive_code($code, $user_id)

{

   $regcodetemp = ORM:: factory('regcode', array('code'=> $code));

   $regcodetemp-> user_id = $user_id;

   $regcodetemp-> save();     

}

}

.. \aplication\classes\model\searchuser. php

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

class Model_Searchuser

{  

public function find($SearchUsername)

    {

            $query = DB:: select('username')

           -> from('users')

           -> where('username', 'like', ('%'. Security:: xss_clean($SearchUsername)). '%');  

           $result = $query-> execute()-> as_array();

           return $result;

    }

public function usercount()

    {

            $result = DB:: select('id')

           -> from('users')

           -> execute();

           return count($result);

    }

public function admincount()

    {

            $result = DB:: select('role_id')

           -> where('role_id', '=', '2')

           -> from('roles_users')

           -> execute();

           return count($result);

    }   

}

.. \aplication\classes\model\sendtomail. php

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

class Model_Sendtomail

{

public function sendemail($to, $from, $subject, $message, $html)

{

   try

   {

       $count = Email:: send($to, $from, $subject, $message, $html);

       return TRUE;

   }

   catch (Exception $e)

   {

       echo $e-> getMessage();

       return false;

   }

}    

}

 

 

.. \aplication\classes\model\tag. php

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

class Model_Tag extends ORM

{

       protected $_has_many = array( // связь -многие ко многим-

                   'material' => array(

                              'model' => 'material',

                              'through' => 'tags_materials', //обязательный параметр для этой связи // связь между таблицей -materials- и -tags- будет осуществлятся через таблицу -tags_materials-

                              'foreign_key' => 'tag_id', // ключевое поле текущей таблицы

                              'far_key' => 'material_id', // ключевое поле к таблице которой привязываем

                   ),

       );

public function tagadd($matid, $name)

{

       $url=$_SERVER[" HTTP_ORIGIN" ]; // определяем доменное имя сайта до первого слеша(http: //hello. ru)

       $this-> name = Security:: xss_clean($name);    // в таблицу tags поле name записываем тег

       // проверим заодно введенные теги, чтоб были без скриптов и др гадостей

       $this-> url = '';           // ссылка тега изначальна как пустая, поскольку у него еще нету идентификатора

       $this-> save();               // записываем в таблицу и получаем идентификатор

       $tagid=$this-> id;   // берем данный идентификатор в переменную tagid

       $TagsMaterial = new Model_Tagsmaterial; // объявляем класс для работы с бд(нужно для таблицы tags_materials)

       $TagsMaterial-> tag_id=$tagid;   // записываем в таблицу tags_materials идентификтаор нашего тега

       $TagsMaterial-> material_id = $matid; // записываем в эту же таблицу идентификатор тега к этому материалу

       $TagsMaterial-> save();              // сохраняем в таблицу

       $tags = ORM:: factory('tag', array('id'=> $tagid));   // находим записанную строчку у таблицы tags

       $this-> url = " $url/materials/showcontent/$tagid";   // теперь заполним нашу пустую ссылку ссылкой на идентификтаор материала

       $this-> save();              // произведем сохранение записи

       return;

}

       public function tagInfoByUrl($url)

       {

                   $tree = ORM:: factory('tag', array('url'=> $url));

   // создания класса работы с бд и поиск в поле url нашего введенного url

                   if($tree-> loaded()) // если загружена хоть 1 строчка

                   {

                              $result['id'] = $tree-> id; // присвоить массиву result с полем ид и name найденный идентификатор и имя

                              $result['name'] = $tree-> name;

                              return $result; // в результатае функция вернет массив result

                   }

                   else

                   {

                              return FALSE;

                   }

       }

       public function contentTagById($id) // пришел ид набранного тега

       {

                   $tag = ORM:: factory('tag', array('id'=> $id)); // ищем есть ли он в таблице tag в поле id

                   if($tag-> loaded()) // если есть

                   {

                              $result = array(); // создаем пустой массив

                              $res = $tag-> material-> find_all(); // создание дополнительного поля material и

                               // поиск всех материалов рлдходящих к тегу с имеющимся идентификатором

                              foreach($res as $item) // заполнение массива result поматериально с каждым шагом цикла

                              {

                                          $result[] = array('id' => $item-> id, 'content' => $item-> content, 'name' => $item-> name);

                              }

                              return $result; // функция вернет массив result

                   }

                   else

                   {

                              return FALSE;

                   }

       }

}

.. \aplication\classes\model\tagsmaterial. php

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

class Model_Tagsmaterial extends ORM

{

       protected $_table_name = 'tags_materials';

}

.. \aplication\classes\model\tree. php

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

class Model_Tree extends ORM

{

       protected $_table_name = 'tree';

       protected $_has_many = array( // метод связи -один ко многим-

                   'materials' => array( // какое доп. свойство хотите

                              'model'  => 'material', // с какой моделью хотим соединится

                                        // (модель соостветственно должна расширятся от орм)

                              'foreign_key' => 'category_id', // название связываемого поля

                   ),

       );

       public function categoryInfoByUrl($url)

       {

                   $tree = ORM:: factory('tree', array('nametrans'=> $url)); // создается экземпляр класса orm для работы с бд

   // из таблицы tree достается строчка в которой поле nametrans совпадает со значением переменной $url

                   if($tree-> loaded()) // проверка загруженной строки

                   {

                              $result['id'] = $tree-> id; // если строка найдена и загружена то

                              $result['name'] = $tree-> name; // присвоем массиву result идентификтаор и имя категории

                              return $result; // все успешно метод возвращает массив с полями ид и имя категории

                   }

                   else // если строк ане загруженна функция вернет false

                   {

                              return FALSE;

                   }

       }

       public function contentСategoryById($id)

       {

                   $tree = ORM:: factory('tree', array('id'=> $id)); // создается экземпляр класса orm для работы с бд

   // из таблицы tree достается строчка в которой поле url совпадает со значением переменной $url

                   if($tree-> loaded())// есть ли такой идентификатор в таблице

                   {

                              $result = array(); // пустой массив $result

                              $res = $tree-> materials-> find_all(); // загрузка всех материалов данной категории в массив $res

       foreach($res as $item) // прокрутка материалов и понумерованная запись в массив $result

                              {

                                          $result[] = array('id' => $item-> id, 'content' => $item-> content, 'name' => $item-> name);

                              }

                              return $result;

                   }

                   else

                   {

                              return FALSE; }}}

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...