public function actionBirthdays() { $model = new People(); if (isset($_POST['period'])) { header("Content-Type: application/vnd.ms-excel; charset=utf-8"); header("Content-Disposition: inline; filename=\"birthdays-report.xls\""); $dt = $_POST['People']['dob']; $dt = date('Y-m-d', CDateTimeParser::parse($dt, Yii::app()->locale->getDateFormat('short'))); $period = $_POST['period']; $nxt_bday = "MAKEDATE(YEAR('{$dt}')+IF(DAYOFYEAR(t.dob)<DAYOFYEAR('{$dt}'),1,0),DAYOFYEAR(t.dob))"; $cond = "{$nxt_bday} BETWEEN '{$dt}' AND '{$dt}' + INTERVAL 1 {$period} ORDER BY {$nxt_bday}"; Yii::trace("R.birthdays dt={$dt}, period={$period}, cond={$cond}", 'application.controllers.ReportController'); $crit = new CDbCriteria(); $crit->addCondition($cond); $dataProvider = new CActiveDataProvider('People', array('criteria' => $crit)); $dataProvider->pagination = false; $fields = array('id', 'fname', 'lname', 'dob', 'mobile'); $labels = $model->attributeLabels(); $fval = array(); foreach ($fields as $field) { array_push($fval, $labels[$field]); } echo implode("\t", $fval) . "\n"; foreach ($dataProvider->data as $data) { $fval = array(); foreach ($fields as $field) { array_push($fval, $data->{$field}); } echo implode("\t", $fval) . "\n"; } Yii::app()->end(); return; } $this->render('birthdays', array('model' => $model)); }
/** * Manages all models. */ public function actionAdmin() { $model = new People('search'); $model->unsetAttributes(); // clear any default values if (isset($_GET['People'])) { $model->attributes = $_GET['People']; } if (isset($_GET['export'])) { header("Content-Type: application/vnd.ms-excel; charset=utf-8"); header("Content-Disposition: inline; filename=\"people-report.xls\""); $dataProvider = $model->search(); $dataProvider->pagination = false; $fields = array('id', 'fname', 'lname', 'dob', 'mobile'); $labels = $model->attributeLabels(); $fval = array(); foreach ($fields as $field) { array_push($fval, $labels[$field]); } echo implode("\t", $fval) . "\n"; foreach ($dataProvider->data as $data) { $fval = array(); foreach ($fields as $field) { array_push($fval, $data->{$field}); } echo implode("\t", $fval) . "\n"; } Yii::app()->end(); } $ac = People::getAutoCompleteFields(); $this->render('admin', array('model' => $model, 'ac' => $ac)); }