Joostina CMS / CMF v2.* API
  • Docs
  • Package
  • Class
  • Tree
  • Todo
Overview

Packages

  • Components
    • Acls
      • Models
        • Admin
        • Site
    • BlogCategory
      • Models
        • Admin
        • Site
    • Blogs
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • Coder
      • Controllers
        • Admin
      • Models
        • Admin
    • Comments
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • CommentsCounter
      • Models
        • Admin
        • Site
    • Mainpage
      • Controllers
        • Site
    • News
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • Pages
      • Controllers
        • Admin
        • Site
      • Models
        • Site
    • Search
      • Controllers
        • Site
    • Site
      • Controllers
        • Admin
        • Site
    • Sitemap
      • Controllers
        • Admin
        • Site
      • Models
        • Admin
        • Site
    • Test
      • Controllers
        • Site
    • Torrents
      • Controllers
        • Site
    • Users
      • Controllers
        • Admin
        • Site
      • Models
        • Admin
        • Site
  • Compression
  • Core
    • Libraries
      • Arhive
      • Array
      • Attached
      • Autoadmin
      • Autoloader
      • Benchmark
      • Breadcrumbs
      • Cache
      • Config
      • Cookie
      • Csrf
      • Database
        • Drivers
          • Interfaces
      • Datetime
      • Debug
      • Editor
      • Events
      • File
      • Filter
      • Flashmessage
      • Folder
      • Hit
      • Html
      • Image
      • Inflector
      • Inputfilter
      • Libraries
      • Mail
      • Module
      • Nestedset
      • Pager
      • Pages
      • Params
      • Randomizer
      • Request
      • RobotLoader
      • Route
      • Security
      • Session
      • Static
      • String
      • Text
      • Trash
      • Validate
  • Email
  • Extra
    • Libraries
      • Basket
  • Joostina
    • Controller
    • Core
    • Document
  • JSMin
  • Libraries
    • Extra
      • Basket
        • Models
          • Site
  • None
  • Plugins
    • Autoadmin
    • Editor
    • Sitemap
  • SimpleMail
  • Vendors
    • Libraries
      • Email

Classes

  • modelAdminCoder
  1: <?php defined('_JOOS_CORE') or exit();
  2: 
  3: /**
  4:  * Модель компонента управляемой генерации расширений системы
  5:  * Модель панели управления
  6:  *
  7:  * @version    1.0
  8:  * @package    Components\Coder
  9:  * @subpackage Models\Admin
 10:  * @author     Joostina Team <info@joostina.ru>
 11:  * @copyright  (C) 2007-2012 Joostina Team
 12:  * @license    MIT License http://www.opensource.org/licenses/mit-license.php
 13:  * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights
 14:  *
 15:  * */
 16: class modelAdminCoder
 17: {
 18:     public function get_tableinfo()
 19:     {
 20:         return array(
 21:             'header_main'=>'Кодер'
 22:         );
 23:     }
 24: 
 25:     public static function get_model($table, $implode_models = false)
 26:     {
 27:         $table_fields = joosDatabase::instance()->get_utils()->get_table_fields($table);
 28:         $tableName = str_replace(array('#__', '#_', joosDatabase::instance()->get_prefix()), '', $table);
 29: 
 30:         $className = str_replace(' ', '', ucwords(strtolower(str_replace('_', ' ', $tableName))));
 31: 
 32:         $buffer_site = array();
 33:         $buffer_site[] = "\n/**";
 34:         $buffer_site[] = "\n * Модель сайта компонента $className";
 35:         $buffer_site[] = "\n * ";
 36:         $buffer_site[] = "\n * @package Components\\$className";
 37:         $buffer_site[] = "\n * @subpackage Models\Site";
 38:         $buffer_site[] = "\n * @author JoostinaTeam <info@joostina.ru>";
 39:         $buffer_site[] = "\n * @copyright (C) 2007-2012 Joostina Team";
 40:         $buffer_site[] = "\n * @license MIT License http://www.opensource.org/licenses/mit-license.php";
 41:         $buffer_site[] = "\n * @created " . JCURRENT_SERVER_TIME;
 42:         $buffer_site[] = "\n * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights";
 43:         $buffer_site[] = "\n * ";
 44:         $buffer_site[] = "\n */";
 45: 
 46:         $buffer_site[] = "\nclass model$className extends joosModel {";
 47:         foreach ($table_fields as $k => $v) {
 48:             $buffer_site[] = "\n    /**";
 49:             $buffer_site[] = "\n     * @field $v";
 50:             $field_type = preg_replace('#[^A-Z]#i', '', $v);
 51:             $field_type = str_replace('unsigned', '', $field_type);
 52:             $field_type_name = self::get_type($field_type);
 53:             $buffer_site[] = "\n     * @type $field_type_name";
 54:             $buffer_site[] = "\n     */";
 55:             $buffer_site[] = "\n    public \$$k;";
 56:         }
 57:         $buffer_site[] = "\n\n  /*";
 58:         $buffer_site[] = "\n     * Constructor";
 59:         $buffer_site[] = "\n     *";
 60:         $buffer_site[] = "\n     */";
 61:         $buffer_site[] = "\n    function __construct(){";
 62:         $buffer_site[] = "\n        parent::__construct( '#__$tableName', 'id' );";
 63:         $buffer_site[] = "\n    }";
 64: 
 65:         $buffer_site[] = "\n\n  public function check() {";
 66:         $buffer_site[] = "\n        \$this->filter();";
 67:         $buffer_site[] = "\n        return true;";
 68:         $buffer_site[] = "\n    }\n";
 69: 
 70:         $buffer_site[] = "\n\n  public function before_insert() {\n";
 71:         $buffer_site[] = "      return true;";
 72:         $buffer_site[] = "\n    }\n";
 73: 
 74:         $buffer_site[] = "\n\n  public function after_insert() {\n";
 75:         $buffer_site[] = "      return true;";
 76:         $buffer_site[] = "\n    }\n";
 77: 
 78:         $buffer_site[] = "\n\n  public function before_update() {\n";
 79:         $buffer_site[] = "      return true;";
 80:         $buffer_site[] = "\n    }\n";
 81: 
 82:         $buffer_site[] = "\n\n  public function after_update() {\n";
 83:         $buffer_site[] = "      return true;";
 84:         $buffer_site[] = "\n    }\n";
 85: 
 86:         $buffer_site[] = "\n\n  public function before_store() {\n";
 87:         $buffer_site[] = "      return true;";
 88:         $buffer_site[] = "\n    }\n";
 89: 
 90:         $buffer_site[] = "\n\n  public function after_store() {\n";
 91:         $buffer_site[] = "      return true;";
 92:         $buffer_site[] = "\n    }\n";
 93: 
 94:         $buffer_site[] = "\n\n  public function before_delete() {\n";
 95:         $buffer_site[] = "      return true;";
 96:         $buffer_site[] = "\n    }\n";
 97: 
 98:         $buffer_site[] = "\n}\n";
 99: 
100:         $buffer_admin[] = "\n/**";
101:         $buffer_admin[] = "\n * Модель панели управления компонента $className";
102:         $buffer_admin[] = "\n * ";
103:         $buffer_admin[] = "\n * @package Components\\$className";
104:         $buffer_admin[] = "\n * @subpackage Models\Admin";
105:         $buffer_admin[] = "\n * @author JoostinaTeam <info@joostina.ru>";
106:         $buffer_admin[] = "\n * @copyright (C) 2007-2012 Joostina Team";
107:         $buffer_admin[] = "\n * @license MIT License http://www.opensource.org/licenses/mit-license.php";
108:         $buffer_admin[] = "\n * @created " . JCURRENT_SERVER_TIME;
109:         $buffer_admin[] = "\n * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights";
110:         $buffer_admin[] = "\n * ";
111:         $buffer_admin[] = "\n */";
112: 
113:         $buffer_admin[] = "\nclass modelAdmin$className extends model$className {";
114: 
115:         $buffer_admin[] = "\n\n public function get_fieldinfo() {\n";
116:         $buffer_admin[] = "     return array(";
117:         foreach ($table_fields as $k => $v) {
118:             $buffer_admin[] = "\n           '$k' => array(";
119:             $buffer_admin[] = "\n               'name' => '$k',";
120:             $buffer_admin[] = "\n               'editable' => true,";
121:             $buffer_admin[] = "\n               'in_admintable' => true,";
122:             $buffer_admin[] = "\n               'html_table_element' => 'value',";
123:             $buffer_admin[] = "\n               'html_table_element_param' => array(),";
124:             $buffer_admin[] = "\n               'html_edit_element' => 'edit',";
125:             $buffer_admin[] = "\n               'html_edit_element_param' => array(),";
126:             $buffer_admin[] = "\n           ),";
127:         }
128:         $buffer_admin[] = "\n       );";
129:         $buffer_admin[] = "\n   }\n";
130: 
131:         $buffer_admin[] = "\n\n public function get_tableinfo() {\n";
132:         $buffer_admin[] = "         return array(";
133:         $buffer_admin[] = "\n               'header_main' => '$className',";
134:         $buffer_admin[] = "\n               'header_list' => '$className',";
135:         $buffer_admin[] = "\n               'header_new' => 'Создание $className',";
136:         $buffer_admin[] = "\n               'header_edit' => 'Редактирование $className'";
137:         $buffer_admin[] = "\n           );";
138:         $buffer_admin[] = "\n   }\n";
139: 
140:         $buffer_admin[] = "\n\n public function get_extrainfo() {\n";
141:         $buffer_admin[] = "         return array(";
142:         $buffer_admin[] = "\n               'search' => array(),";
143:         $buffer_admin[] = "\n               'filter' => array(),";
144:         $buffer_admin[] = "\n               'extrafilter' => array()";
145:         $buffer_admin[] = "\n           );";
146:         $buffer_admin[] = "\n   }\n";
147: 
148:         $buffer_admin[] = "\n}\n";
149: 
150:         $return = array();
151: 
152:         $return['site'] = $implode_models ? implode('', $buffer_site) : joosHTML::textarea(
153:             array('name' => $tableName,
154:                 'value' => implode('', $buffer_site),
155:                 'rows' => '5',
156:                 'class' => 'coder_model_area'
157:             )
158:         );
159: 
160:         $return['admin'] = $implode_models ? implode('', $buffer_admin) : joosHTML::textarea(
161:             array('name' => $tableName,
162:                 'value' => implode('', $buffer_site),
163:                 'rows' => '5',
164:                 'class' => 'coder_model_area'
165:             )
166:         );
167: 
168:         return $return;
169:     }
170: 
171:     /**
172:      * Формирование общего представления переменной по типу поля
173:      *
174:      * @param  string $ident_string
175:      * @return string
176:      */
177:     private static function get_type($ident_string)
178:     {
179:         $ident_string = strtolower($ident_string);
180: 
181:         switch ($ident_string) {
182:             case 'tinyint':
183:             case 'smallint':
184:             case 'mediumint':
185:             case 'int':
186:             case 'bigint':
187:             case 'decimal':
188:             case 'double':
189:             case 'real':
190:             case 'bit':
191:             case 'serial':
192: 
193:                 $type = 'int';
194:                 break;
195: 
196:             case 'char':
197:             case 'varchar':
198:             case 'tinytext';
199:             case 'text';
200:             case 'mediumtext';
201:             case 'longtext';
202:             case 'binary':
203:             case 'varbinary':
204:             case 'tinyblob':
205:             case 'mediumblob':
206:             case 'blob':
207:             case 'longblob':
208:             case 'enum':
209:             case 'set':
210: 
211:                 $type = 'string';
212:                 break;
213: 
214:             case 'date':
215:             case 'datetime':
216:             case 'timestamp':
217:             case 'time':
218:             case 'year':
219: 
220:                 $type = 'datetime';
221:                 break;
222: 
223:             case 'boolean':
224: 
225:                 $type = 'boolean';
226:                 break;
227: 
228:             case 'float':
229: 
230:                 $type = 'float';
231:                 break;
232: 
233:             default:
234:                 $type = 'unknown';
235:                 break;
236:         }
237: 
238:         return $type;
239:     }
240: 
241: }
242: 
243: class modelAdminCoder_Faker
244: {
245:     public static $data_types = array('text' => array('name' => 'Текст',
246:         'types' => array('text', 'tinytext', 'mediumtext', 'longtext', 'blob', 'tinyblob', 'mediumblob', 'longblob'),),
247:         'text_small' => array('name' => 'Заголовок',
248:             'types' => array('varchar'),),
249:         'text_name' => array('name' => 'Имя',
250:             'types' => array('varchar'),),
251:         'href' => array('name' => 'Ссылка',
252:             'types' => array('varchar'),),
253:         'integer' => array('name' => 'Число',
254:             'types' => array('tinyint', 'smallint', 'int'),),
255:         'integer_range' => array('name' => 'Числа из диапазона',
256:             'types' => array('tinyint', 'smallint', 'int'),),
257:         'date' => array('name' => 'Дата',
258:             'types' => array('date'),),
259:         'time' => array('name' => 'Время',
260:             'types' => array('time'),),
261:         'date_time' => array('name' => 'Дата и время',
262:             'types' => array('datetime'),));
263:     public static $types_mapping = array(
264:     );
265: 
266: }
267: 
Joostina CMS / CMF v2.* API API documentation generated by ApiGen 2.6.1 – Template adapted by @olvlv and Joostina Team