public static function info($class) { if (is_object($class)) { if ($class instanceof \stdClass) { return $class; } $class = get_class($class); } else { if (strpos($class, '\\') === false) { $parts = preg_split('/[_\\/]/', $class); if (!isset(self::$_map[$parts[0]])) { throw new Exception("Class '{$class}' does not belong to a registered module"); } $nspace = self::$_map[array_shift($parts)]; $parts = array_map('ucfirst', $parts); $class = "{$nspace}" . (count($parts) ? '\\' . implode('\\', $parts) : null); } } if (false !== ($pos = strpos($class, '\\__CG__\\'))) { $class = substr($class, $pos + 8); } if (isset(self::$_classes[$class])) { return self::$_classes[$class]; } $module = null; foreach (self::$_map as $alias => $nspace) { if (preg_match("/^" . preg_quote($nspace) . "(?:\\\\|\$)/", $class, $match)) { $module = [$alias, $nspace]; break; } } if (!isset($module)) { throw new Exception("Class '{$class}' does not belong to a registered module"); } $alias = [$alias]; $nspace = explode('\\', $nspace); $local = array_slice(explode('\\', $class), count($nspace)); $entity = array_merge($alias, $local); $aliasLcFirst = array_map('lcfirst', $alias); $aliasLcSplit = array_map(function ($value) { return strtolower(\Coast\str_camel_split($value, '-')); }, $alias); $localLcFirst = array_map('lcfirst', $local); $localLcSplit = array_map(function ($value) { return strtolower(\Coast\str_camel_split($value, '-')); }, $local); $entityLcFirst = array_map('lcfirst', $entity); $entityLcSplit = array_map(function ($value) { return strtolower(\Coast\str_camel_split($value, '-')); }, $entity); return self::$_classes[$class] = \Coast\array_object_smart(['class' => $class, 'name' => implode('_', $entityLcFirst), 'path' => implode('/', $entityLcSplit), 'module' => ['class' => implode('\\', $nspace), 'name' => implode('_', $aliasLcFirst), 'path' => implode('/', $aliasLcSplit)], 'local' => ['class' => implode('\\', $local), 'name' => implode('_', $localLcFirst), 'path' => implode('/', $localLcSplit)], 'singular' => class_exists($class) && isset($class::$chalkSingular) ? $class::$chalkSingular : implode('_', $entityLcFirst), 'plural' => class_exists($class) && isset($class::$chalkPlural) ? $class::$chalkPlural : implode('_', $entityLcFirst), 'group' => class_exists($class) && isset($class::$chalkGroup) ? $class::$chalkGroup : null, 'icon' => class_exists($class) && isset($class::$chalkIcon) ? $class::$chalkIcon : null]); }
?> <?php $this->start(); ?> <div class="form-group form-group-vertical"> <?php if ($stackable) { ?> <?php echo $this->render('input_text', ['name' => "{$name}[{$i}][name]", 'id' => "{$id}[{$i}][name]", 'placeholder' => 'Name', 'value' => $item['name'], 'disabled' => isset($disabled) ? $disabled : null, 'readOnly' => isset($readOnly) ? $readOnly : null]); ?> <?php } else { ?> <?php echo $this->render('input_pseudo', ['name' => "{$name}[{$i}][name]", 'value' => ucwords(\Coast\str_camel_split($item['name'])), 'disabled' => true]); ?> <?php echo $this->render('input_hidden', ['name' => "{$name}[{$i}][name]", 'id' => "{$id}[{$i}][name]", 'value' => $item['name']]); ?> <?php } ?> <?php echo $this->render('textarea', ['name' => "{$name}[{$i}][value]", 'id' => "{$id}[{$i}][value]", 'value' => $item['value'], 'class' => isset($class) ? $class : null, 'rows' => isset($rows) ? $rows : null, 'cols' => isset($cols) ? $cols : null, 'disabled' => isset($disabled) ? $disabled : null, 'readOnly' => isset($readOnly) ? $readOnly : null]); ?> </div> <?php $items[] = $this->end(); } if (isset($stackable) ? $stackable : true) {