<?php
/**
* Lea
*
* GNU General Public License
*
* Copyright © 2010 - 2025, Yohann Schwan. All rights reserved.
*/
namespace Lea\Controller {
class DataIndex extends \Lys\Controller
{
/**
* @trait \Lea\DataHelper
*/
use DataHelper;
/**
* @var bool
*/
protected $cache = true;
/**
* @var string
*/
protected $sortBy = '';
/**
* @args void
* @return bool
*/
function populate()
{
if(parent::populate())
{
$prefix = $this['route']['prefix_name'];
$attr = array();
$tags = array();
$rows = array();
if($key = $this->sortBy)
{
$key = $prefix . '_' . $key;
}
foreach($data = $this->data->rows() as $i => $row)
{
if($row = $this->clear($row))
{
foreach($_REQUEST as $k => $v)
{
if($w = array_value($k, $row))
{
if(empty($tags[$k][$w]))
{
$tags[$k][$w] = 1;
}
else {
$tags[$k][$w]++;
}
}
if($v)
{
if($v == $w)
{
# Keep
}
else {
$row = null;
break;
}
}
}
}
if($row)
{
if($key)
{
$rows[$row[$key] . '.' . $i] = $row;
}
else {
$rows[] = $row;
}
}
}
if($key)
{
krsort($rows);
}
if($this->cache)
{
cache_save($prefix . '_index', $data);
}
/*
foreach($tags as $k => $tags)
{
$L = array();
#
foreach($tags as $m => $i)
{
if($i > 1)
{
$L[$m] = $m;
if($v = $this->L($k . '.' . $m))
{
# Ok !
}
else {
$v = '#' . $m;
}
$attr[strtoupper('L_' . $k . '.' . $m)] = $v . '<small>(' . $i . ')</small>';
}
}
if(empty($L))
{
# Useless
}
else {
$this[$k . '_list'] = $L;
}
}
*/
$this->assign($attr);
$this->append($prefix, $rows, true);
return true;
}
}
}
}