2020-09-09 06:39:51 +00:00
< ? php
namespace Zotlabs\Widget ;
2022-02-12 20:43:29 +00:00
use Zotlabs\Render\Theme ;
2021-12-02 23:02:31 +00:00
class Site_projects
{
public function widget ( $args )
{
$r = q ( " select site_project, site_type, count(site_project) as total from site where site_project != '' and site_flags != 256 and site_dead = 0 group by site_project order by site_project desc " );
$results = [];
usort ( $r , [ 'self' , 'site_sort' ]);
if ( $r ) {
foreach ( $r as $rv ) {
$result = [];
$result [ 'name' ] = $rv [ 'site_project' ];
$result [ 'type' ] = $rv [ 'site_type' ];
$result [ 'cname' ] = ucfirst ( $result [ 'name' ]);
if ( $rv [ 'site_project' ] === $_REQUEST [ 'project' ]) {
$result [ 'selected' ] = true ;
}
$result [ 'total' ] = $rv [ 'total' ];
$results [] = $result ;
}
2022-02-12 20:43:29 +00:00
$o = replace_macros ( Theme :: get_template ( 'site_projects.tpl' ), [
2021-12-02 23:02:31 +00:00
'$title' => t ( 'Projects' ),
'$desc' => '' ,
'$all' => t ( 'All projects' ),
'base' => z_root () . '/sites' ,
'$sel_all' => (( $_REQUEST [ 'project' ]) ? false : true ),
'$terms' => $results
]);
return $o ;
}
}
public static function site_sort ( $a , $b )
{
if ( $a [ 'site_type' ] === $b [ 'site_type' ]) {
return strcasecmp ( $b [ 'site_project' ], $a [ 'site_project' ]);
}
return (( $a [ 'site_type' ] < $b [ 'site_type' ]) ? - 1 : 1 );
}
2020-09-09 06:39:51 +00:00
}