Exemple #1
0
 /**
  * функция получения результатов поиска с полным совпадением по всем поисковым словам
  * @param string $searchString
  * @return array массив, содержащий id найденных записей
  */
 static function getComplitMatch($keywords)
 {
     $keywords = explode(' ', $keywords);
     $results = [];
     $flag = FALSE;
     foreach ($keywords as $keyword) {
         $results2 = [];
         $records = Relatives::find()->orderBy('sname', 'fname', 'mname')->andWhere(['like', 'sname', $keyword])->orWhere(['like', 'descr', $keyword])->orWhere(['like', 'mname', $keyword])->orWhere(['like', 'rod', $keyword])->orWhere(['like', 'second_sname', $keyword])->orWhere(['like', 'fname', $keyword])->all();
         if (!$flag) {
             foreach ($records as $record) {
                 $results[] = $record->id;
             }
             $flag = true;
         } else {
             foreach ($records as $record) {
                 $results2[] = $record->id;
             }
             $results = array_intersect($results2, $results);
         }
     }
     $result = Relatives::findAll($results);
     return $result;
 }
Exemple #2
0
 public function hasChildren()
 {
     if ($this->gender) {
         $field = 'mother_id';
     } else {
         $field = 'father_id';
     }
     //$result = count(Relatives::find()->where([$field => $this->id])->all());
     $result = count(Relatives::findAll([$field => $this->id]));
     return $result;
 }
Exemple #3
0
function renderRelativesTable($children, $level, &$common)
{
    $nextLevelChildren = [];
    $count = 0;
    if ($level == 1) {
        $title = $level . ' Дети';
    } elseif ($level == 2) {
        $title = $level . ' Внуки';
    } elseif ($level == 3) {
        $title = $level . ' Правнуки';
    } else {
        $title = $level . ' уровень';
    }
    echo Html::beginTag('table', ['class' => 'table table-striped table-bordered detail-view']);
    echo Html::beginTag('tr', ['class' => 'info']);
    echo Html::tag('th', $title, ['colspan' => COL_SPAN]);
    echo Html::endTag('tr');
    foreach ($children as $child) {
        echo Relatives::renderRow($child->id);
        $count++;
        if ($child->gender) {
            $field = 'mother_id';
        } else {
            $field = 'father_id';
        }
        $nextChildren = Relatives::findAll([$field => $child->id]);
        if (count($nextChildren) > 0) {
            foreach ($nextChildren as $nextChild) {
                $nextLevelChildren[] = $nextChild;
            }
        }
    }
    echo Html::beginTag('tr', ['class' => 'info']);
    echo Html::tag('th', 'Итого: ' . $count, ['colspan' => COL_SPAN]);
    echo Html::endTag('tr');
    echo Html::endTag('table');
    $common += $count;
    if (count($nextLevelChildren) > 0) {
        renderRelativesTable($nextLevelChildren, ++$level, $common);
    }
}
Exemple #4
0
    </p>
    <div class="row">
        <div style="float: left" class="col-xs-6">

        <div class="panel panel-info">
            <div class="panel-heading">
                <h3 class="panel-title">Данные</h3>
            </div>
            <div class="panel-body">
        <?php 
echo DetailView::widget(['model' => $model, 'attributes' => ['id', 'title:ntext', 'description:ntext', 'latitude', 'longitude', ['attribute' => 'created_at', 'value' => date('d-m-Y H:i:s', $model->created_at)], ['attribute' => 'updated_at', 'value' => date('d-m-Y H:i:s', $model->updated_at)]]]);
?>
            </div>
        </div>
        <?php 
$relatives = Relatives::findAll(['cemetery_id' => $model->id]);
if (count($relatives)) {
    ?>
            <div class="panel panel-default panel-info">
                <div class="panel-heading">
                    <h3 class="panel-title">Список захороненых</h3>
                </div>
                <div class="panel-body">
                    <table class="table table-striped table-bordered detail-view">
                        <?php 
    foreach ($relatives as $relative) {
        echo Relatives::renderRow($relative->id);
    }
    ?>
                    </table>
                </div>