2010-07-03 03:37:43 +02:00
< ? php
2010-07-10 09:45:18 +02:00
function directory_init ( & $a ) {
$a -> set_pager_itemspage ( 60 );
}
2010-07-03 03:37:43 +02:00
function directory_content ( & $a ) {
2010-07-10 09:45:18 +02:00
dbg ( 2 );
2010-07-10 07:47:32 +02:00
$search = (( x ( $_GET , 'search' )) ? notags ( trim ( $_GET [ 'search' ])) : '' );
2010-07-03 03:37:43 +02:00
2010-07-09 12:10:28 +02:00
$tpl .= file_get_contents ( 'view/directory_header.tpl' );
2010-07-03 03:37:43 +02:00
2010-07-09 12:10:28 +02:00
$o .= replace_macros ( $tpl , array (
2010-07-10 07:47:32 +02:00
'$search' => $search
2010-07-03 03:37:43 +02:00
2010-07-09 12:10:28 +02:00
));
2010-07-10 07:47:32 +02:00
if ( $search )
$search = dbesc ( $search );
$sql_extra = (( strlen ( $search )) ? " AND MATCH (`profile`.`name`, `user`.`nickname`, `locality`,`region`,`country-name`,`gender`,`marital`,`sexual`,`about`,`romance`,`employer`,`school`) AGAINST (' $search ' IN BOOLEAN MODE) " : " " );
2010-07-10 09:45:18 +02:00
$r = q ( " SELECT COUNT(*) AS `total` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 AND `publish` = 1 AND `user`.`blocked` = 0 $sql_extra " );
if ( count ( $r ))
$a -> set_pager_total ( $r [ 0 ][ 'total' ]);
$r = q ( " SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 AND `publish` = 1 AND `user`.`blocked` = 0 $sql_extra ORDER BY `name` ASC LIMIT %d , %d " ,
intval ( $a -> pager [ 'start' ]),
intval ( $a -> pager [ 'itemspage' ])
);
2010-07-03 03:37:43 +02:00
if ( count ( $r )) {
2010-07-09 10:17:20 +02:00
$tpl = file_get_contents ( 'view/directory_item.tpl' );
2010-07-03 03:37:43 +02:00
2010-07-10 02:39:55 +02:00
if ( in_array ( 'small' , $a -> argv ))
$photo = 'thumb' ;
else
$photo = 'photo' ;
2010-07-03 03:37:43 +02:00
foreach ( $r as $rr ) {
2010-07-10 02:39:55 +02:00
$profile_link = $a -> get_baseurl () . '/profile/' . (( strlen ( $rr [ 'nickname' ])) ? $rr [ 'nickname' ] : $rr [ 'profile_uid' ]);
$details = '' ;
if ( strlen ( $rr [ 'locality' ]))
$details .= $rr [ 'locality' ];
if ( strlen ( $rr [ 'region' ])) {
if ( strlen ( $rr [ 'locality' ]))
$details .= ', ' ;
$details .= $rr [ 'region' ];
}
if ( strlen ( $rr [ 'country-name' ])) {
if ( strlen ( $details ))
$details .= ', ' ;
$details .= $rr [ 'country-name' ];
}
2010-07-10 07:47:32 +02:00
if ( strlen ( $rr [ 'dob' ])) {
if (( $years = age ( $rr [ 'dob' ], $rr [ 'timezone' ], '' )) != 0 )
$details .= " <br />Age: $years " ;
}
2010-07-10 02:39:55 +02:00
if ( strlen ( $rr [ 'gender' ]))
$details .= '<br />Gender: ' . $rr [ 'gender' ];
2010-07-09 10:17:20 +02:00
2010-07-09 12:10:28 +02:00
$o .= replace_macros ( $tpl , array (
'$id' => $rr [ 'id' ],
'$profile-link' => $profile_link ,
2010-07-10 02:39:55 +02:00
'$photo' => $rr [ $photo ],
2010-07-09 12:10:28 +02:00
'$alt-text' => $rr [ 'name' ],
'$name' => $rr [ 'name' ],
2010-07-10 02:39:55 +02:00
'$details' => $details
2010-07-09 10:17:20 +02:00
));
2010-07-03 03:37:43 +02:00
}
2010-07-09 12:10:28 +02:00
$o .= " <div class= \" directory-end \" ></div> \r \n " ;
2010-07-10 09:45:18 +02:00
$o .= paginate ( $a );
2010-07-03 03:37:43 +02:00
}
else
notice ( " No entries (some entries may be hidden). " );
2010-07-09 12:10:28 +02:00
return $o ;
2010-07-03 03:37:43 +02:00
}