/** * 处理上传图片和上传文件 * @param string $field * @param \Lite\DB\Model $model_instance * @return string */ public static function displayField($field, Model $model_instance) { $value = $model_instance->{$field}; $define = $model_instance->getPropertiesDefine($field); if ($define['rel'] == 'upload-image') { $value = $value ?: Config::get('app/default_image'); //todo merge params return '<span class="image-thumb">' . self::getImg(Config::get('upload/url') . $value) . '</span>'; } else { if ($define['rel'] == 'upload-file') { $value = $value ?: Config::get('app/default_image'); return '<a href="' . Config::get('upload/url') . $value . '" target="_blank" title="' . h($value) . '">下载</a>'; } else { return parent::displayField($field, $model_instance); } } }
/** * 获取状态变更按钮 * 如果是最后一个状态,则不扭转 * @param \Lite\DB\Model $model 数据模型 * @param null $field 状态字段名 * @param array $state_options 状态扭转选项(缺省读取options) * @return string * @throws \Lite\Exception\Exception */ public static function getNextStateBtn(Model $model, $field = null, $state_options = array()) { if (!$field && $model instanceof ModelInterface) { $field = $model->getStateKey(); } if (!$field) { throw new Exception('next state field not found'); } $options = $state_options ?: $model->getPropertiesDefine($field)['options']; $val = $model->{$field}; $pk = $model->getPrimaryKey(); $matched = false; foreach ($options as $k => $opt_name) { if ($val == $k) { $matched = true; } else { if ($matched) { return '<a href="' . self::getUrl(self::getController() . '/state', array($field => $k, $pk => $model->{$pk})) . '" rel="async" class="state-changer btn">' . $opt_name . '</a>'; } } } return ''; }