Наследование: extends CWidget
Пример #1
0
    function run($row)
    {
        $row['slideshowGroup'] = GalleryWidget::$slideshowGroup;
        GalleryWidget::$slideshowGroup++;
        $row['files'] = array();
        if (is_numeric($row['tree'])) {
            $sql = '
				SELECT id FROM {{data}}
				WHERE tree=' . $row['tree'] . ' AND path=\'' . $row['path'] . '\' AND type=\'gallery\'
			';
            $dataId = DB::getOne($sql);
            if ($dataId) {
                $sql = '
					SELECT id2 FROM {{relations}}
					WHERE modul1=\'data\' AND modul2=\'files\' AND id1=' . $dataId . '
				';
                $fileId = DB::getAll($sql, 'id2');
                if (count($fileId) > 0) {
                    $sql = '
						SELECT * FROM {{files}}
						WHERE id IN (' . implode(',', $fileId) . ')
						ORDER BY num
					';
                    $temp = DB::getAll($sql);
                    foreach ($temp as $item) {
                        $item['file'] = Funcs::getFileInfo($item['path']);
                        $row['files'][$item['mime']][] = $item;
                    }
                }
            }
        }
        GalleryWidget::$files = $row['files'];
        return View::getWidget('galleryWidget', $row);
    }
Пример #2
0
    public static function getFieldsByTree($id, $option = '')
    {
        $gal = 0;
        $data = array();
        $return = array();
        $sql = 'SELECT * FROM {{data}} WHERE tree=' . $id . ' AND field=0 ORDER BY num';
        $additional = DB::getAll($sql);
        foreach ($additional as $item) {
            if ($item['type'] == 'editor' || $item['type'] == 'text') {
                if ($_SESSION['user']['panel']['edit'] == 'on') {
                    $item['value'] = $item['value_text'];
                    $item['field'] = 'value_text';
                    $data[$item['path']] = View::getRenderEmpty('../' . ONESSA_DIR . '/views/onessa/field', $item);
                } else {
                    $data[$item['path']] = $item['value_text'];
                }
            } elseif ($item['type'] == 'string') {
                if ($_SESSION['user']['panel']['edit'] == 'on') {
                    $item['value'] = $item['value_string'];
                    $item['field'] = 'value_string';
                    $data[$item['path']] = View::getRenderEmpty('../' . ONESSA_DIR . '/views/onessa/field', $item);
                } else {
                    $data[$item['path']] = $item['value_string'];
                }
            } elseif ($item['type'] == 'integer') {
                $data[$item['path']] = $item['value_int'];
            } elseif ($item['type'] == 'radio') {
                //$data[$item['path']]=$item['value_int'];
                $data[$item['path']] = $item['value_int'] == 1 ? 'Да' : 'Нет';
            } elseif ($item['type'] == 'float') {
                $data[$item['path']] = $item['value_float'];
            } elseif ($item['type'] == 'select') {
                $data[$item['path']] = $item['value_text'];
            } elseif ($item['type'] == 'gallery') {
                $galname = $item['path'];
                if ($option == 'gal') {
                    $gal++;
                    $galname = 'gal' . $gal;
                }
                if (class_exists(GalleryWidget)) {
                    $data[$galname] = GalleryWidget::run($item);
                    if ($option == 'wide' || $option == 'gal') {
                        $data['files_' . $galname] = GalleryWidget::$files;
                    }
                } else {
                    $sql = '
						SELECT id FROM {{data}}
						WHERE tree=' . $item['tree'] . ' AND path=\'' . $item['path'] . '\' AND type=\'gallery\'
					';
                    $dataId = DB::getOne($sql);
                    if ($dataId) {
                        $sql = '
							SELECT id2 FROM {{relations}}
							WHERE modul1=\'data\' AND modul2=\'files\' AND id1=' . $dataId . '
						';
                        $fileId = DB::getAll($sql, 'id2');
                        if (count($fileId) > 0) {
                            $sql = '
								SELECT * FROM {{files}}
								WHERE id IN (' . implode(',', $fileId) . ')
								ORDER BY num
							';
                            $temp = DB::getAll($sql);
                            foreach ($temp as $item) {
                                $item['file'] = Funcs::getFileInfo($item['path']);
                                $data['files_' . $galname][$item['mime']][] = $item;
                            }
                        }
                    }
                }
            } elseif ($item['type'] != 'multival' && $item['type'] != 'multiselect' && $item['type'] != 'treeselectval' && $item['type'] != 'treeselect' && $item['type'] != 'select' && $item['type'] != 'fstring' && $item['type'] != 'fnumber' && $item['type'] != 'fcheckbox' && $item['type'] != 'fgroup') {
                $data[$item['type']] = FormWidget::run($item['type']);
            }
        }
        if ($option != 'wide') {
            foreach ($data as $key => $item) {
                if (is_numeric($key)) {
                    $return['additional'] .= $item;
                } else {
                    $return[$key] = $item;
                }
            }
            return $return;
        } else {
            return $data;
        }
    }