</form> </div> <?php if ($search_result) { for ($index = $pager->low; $index < $pager->high + 1; $index++) { if (isset($search_result[$index])) { $row = $search_result[$index]; $section = joosHTML::anchor(joosRoute::href('game_index'), 'Что-то'); $row->anons_image = JPATH_SITE_IMAGES . '/' . joosFile::make_file_location((int) $row->image_id) . '/image.png'; $row->view_href = joosRoute::href('opa_view', array('id' => $row->id, 'alias' => $row->game_slug)); ?> <div class="item"> <h2><?php echo $section . ' → '; echo joosHTML::anchor($row->view_href, $row->title); ?> </h2> <?php if ($row->anons_image) { ?> <a class="thumb" href="<?php echo $row->view_href; ?> "> <img src="<?php echo $row->anons_image; ?> " alt="<?php echo trim(strip_tags($row->title)); ?>
public static function dropdown($data, $options = NULL, $selected = NULL, $extra = '') { if (!is_array($data)) { $data = array('name' => $data); } else { if (isset($data['options'])) { // Use data options $options = $data['options']; } if (isset($data['selected'])) { // Use data selected $selected = $data['selected']; } } if (is_array($selected)) { // Multi-select box $data['multiple'] = 'multiple'; } else { // Single selection (but converted to an array) $selected = array($selected); } $input = '<select' . joosHTML::attributes($data, 'select') . ' ' . $extra . '>' . "\n"; foreach ((array) $options as $key => $val) { // Key should always be a string $key = (string) $key; if (is_array($val)) { $input .= '<optgroup label="' . $key . '">' . "\n"; foreach ($val as $inner_key => $inner_val) { // Inner key should always be a string $inner_key = (string) $inner_key; $sel = in_array($inner_key, $selected) ? ' selected="selected"' : ''; $input .= '<option value="' . $inner_key . '"' . $sel . '>' . $inner_val . '</option>' . "\n"; } $input .= '</optgroup>' . "\n"; } else { $sel = in_array($key, $selected) ? ' selected="selected"' : ''; $input .= '<option value="' . $key . '"' . $sel . '>' . $val . '</option>' . "\n"; } } $input .= '</select>'; return $input; }
public function get_model($table, $implode_models = false) { $table_fields = joosDatabase::instance()->get_utils()->get_table_fields($table); $tableName = str_replace(array('#__', '#_', joosDatabase::instance()->get_prefix()), '', $table); $className = str_replace(' ', '', ucwords(strtolower(str_replace('_', ' ', $tableName)))); $buffer_site = array(); $buffer_site[] = "\n/**"; $buffer_site[] = "\n * Модель сайта компонента {$className}"; $buffer_site[] = "\n * "; $buffer_site[] = "\n * @package Components\\{$className}"; $buffer_site[] = "\n * @subpackage Models\\Site"; $buffer_site[] = "\n * @author JoostinaTeam <*****@*****.**>"; $buffer_site[] = "\n * @copyright (C) 2007-2012 Joostina Team"; $buffer_site[] = "\n * @license MIT License http://www.opensource.org/licenses/mit-license.php"; $buffer_site[] = "\n * @created " . JCURRENT_SERVER_TIME; $buffer_site[] = "\n * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights"; $buffer_site[] = "\n * "; $buffer_site[] = "\n */"; $buffer_site[] = "\nclass model{$className} extends joosModel {"; foreach ($table_fields as $k => $v) { $buffer_site[] = "\n\t/**"; $buffer_site[] = "\n\t * @field {$v}"; $field_type = preg_replace('#[^A-Z]#i', '', $v); $field_type = str_replace('unsigned', '', $field_type); $field_type_name = self::get_type($field_type); $buffer_site[] = "\n\t * @type {$field_type_name}"; $buffer_site[] = "\n\t */"; $buffer_site[] = "\n\tpublic \${$k};"; } $buffer_site[] = "\n\n\t/*"; $buffer_site[] = "\n\t * Constructor"; $buffer_site[] = "\n\t *"; $buffer_site[] = "\n\t */"; $buffer_site[] = "\n\tpublic function __construct(){"; $buffer_site[] = "\n\t\tparent::__construct( '#__{$tableName}', 'id' );"; $buffer_site[] = "\n\t}"; $buffer_site[] = "\n\n\tpublic function check() {"; $buffer_site[] = "\n\t\t\$this->filter();"; $buffer_site[] = "\n\t\treturn true;"; $buffer_site[] = "\n\t}\n"; $buffer_site[] = "\n\n\tpublic function before_insert() {\n"; $buffer_site[] = "\t\treturn true;"; $buffer_site[] = "\n\t}\n"; $buffer_site[] = "\n\n\tpublic function after_insert() {\n"; $buffer_site[] = "\t\treturn true;"; $buffer_site[] = "\n\t}\n"; $buffer_site[] = "\n\n\tpublic function before_update() {\n"; $buffer_site[] = "\t\treturn true;"; $buffer_site[] = "\n\t}\n"; $buffer_site[] = "\n\n\tpublic function after_update() {\n"; $buffer_site[] = "\t\treturn true;"; $buffer_site[] = "\n\t}\n"; $buffer_site[] = "\n\n\tpublic function before_store() {\n"; $buffer_site[] = "\t\treturn true;"; $buffer_site[] = "\n\t}\n"; $buffer_site[] = "\n\n\tpublic function after_store() {\n"; $buffer_site[] = "\t\treturn true;"; $buffer_site[] = "\n\t}\n"; $buffer_site[] = "\n\n\tpublic function before_delete() {\n"; $buffer_site[] = "\t\treturn true;"; $buffer_site[] = "\n\t}\n"; $buffer_site[] = "\n}\n"; $buffer_admin[] = "\n/**"; $buffer_admin[] = "\n * Модель панели управления компонента {$className}"; $buffer_admin[] = "\n * "; $buffer_admin[] = "\n * @package Components\\{$className}"; $buffer_admin[] = "\n * @subpackage Models\\Admin"; $buffer_admin[] = "\n * @author JoostinaTeam <*****@*****.**>"; $buffer_admin[] = "\n * @copyright (C) 2007-2012 Joostina Team"; $buffer_admin[] = "\n * @license MIT License http://www.opensource.org/licenses/mit-license.php"; $buffer_admin[] = "\n * @created " . JCURRENT_SERVER_TIME; $buffer_admin[] = "\n * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights"; $buffer_admin[] = "\n * "; $buffer_admin[] = "\n */"; $buffer_admin[] = "\nclass modelAdmin{$className} extends model{$className} {"; $buffer_admin[] = "\n\n\tpublic function get_fieldinfo() {\n"; $buffer_admin[] = "\t\treturn array("; foreach ($table_fields as $k => $v) { $buffer_admin[] = "\n\t\t\t'{$k}' => array("; $buffer_admin[] = "\n\t\t\t\t'name' => '{$k}',"; $buffer_admin[] = "\n\t\t\t\t'editable' => true,"; $buffer_admin[] = "\n\t\t\t\t'in_admintable' => true,"; $buffer_admin[] = "\n\t\t\t\t'html_table_element' => 'value',"; $buffer_admin[] = "\n\t\t\t\t'html_table_element_param' => array(),"; $buffer_admin[] = "\n\t\t\t\t'html_edit_element' => 'edit',"; $buffer_admin[] = "\n\t\t\t\t'html_edit_element_param' => array(),"; $buffer_admin[] = "\n\t\t\t),"; } $buffer_admin[] = "\n\t\t);"; $buffer_admin[] = "\n\t}\n"; $buffer_admin[] = "\n\n\tpublic function get_tableinfo() {\n"; $buffer_admin[] = "\t\t\treturn array("; $buffer_admin[] = "\n\t\t\t\t'header_main' => '{$className}',"; $buffer_admin[] = "\n\t\t\t\t'header_list' => '{$className}',"; $buffer_admin[] = "\n\t\t\t\t'header_new' => 'Создание {$className}',"; $buffer_admin[] = "\n\t\t\t\t'header_edit' => 'Редактирование {$className}'"; $buffer_admin[] = "\n\t\t\t);"; $buffer_admin[] = "\n\t}\n"; $buffer_admin[] = "\n\n\tpublic function get_extrainfo() {\n"; $buffer_admin[] = "\t\t\treturn array("; $buffer_admin[] = "\n\t\t\t\t'search' => array(),"; $buffer_admin[] = "\n\t\t\t\t'filter' => array(),"; $buffer_admin[] = "\n\t\t\t\t'extrafilter' => array()"; $buffer_admin[] = "\n\t\t\t);"; $buffer_admin[] = "\n\t}\n"; $buffer_admin[] = "\n}\n"; $return = array(); $return['site'] = $implode_models ? implode('', $buffer_site) : joosHTML::textarea(array('name' => $tableName, 'value' => implode('', $buffer_site), 'rows' => '5', 'class' => 'coder_model_area')); $return['admin'] = $implode_models ? implode('', $buffer_admin) : joosHTML::textarea(array('name' => $tableName, 'value' => implode('', $buffer_site), 'rows' => '5', 'class' => 'coder_model_area')); return $return; }
public function table_select() { $table = joosRequest::post('table'); $types = modelAdminCoder_Faker::$data_types; $type_names = array(); array_walk($types, function ($v, $k) use(&$type_names) { $type_names[$k] = $v['name']; }); $table_fields = joosDatabase::instance()->get_utils()->get_table_fields($table); ob_start(); ?> <table class="table table-striped"> <thead> <tr> <th>#</th> <th>Поле</th> <th>Тип</th> <th>Чем заполнить</th> </tr> </thead> <tbody> <?php $i = 1; foreach ($table_fields as $key => $value) { ?> <?php $type = preg_replace('#[^A-Z]#i', '', $value); $type = str_replace('unsigned', '', $type); $active_option = null; array_walk($types, function ($v, $k) use($type, &$active_option) { $active_option = in_array($type, $v['types']) && $active_option === null ? $k : $active_option; }); $faker_selector = joosHTML::dropdown('type', $type_names, $active_option); ?> <tr> <td><?php echo $i; ?> </td> <td><?php echo $key; ?> </td> <td><?php echo $type; ?> </td> <td><?php echo $faker_selector; ?> </td> </tr> <?php ++$i; } ?> </tbody> </table> <?php $return = ob_get_contents(); ob_get_clean(); return $return; }