rudementary photo albums. going to /username/photos displays all the images username has attached.

This commit is contained in:
Ian Denhardt 2010-08-03 13:21:11 -04:00
parent eebc37604a
commit fe5f55cc24
2 changed files with 33 additions and 2 deletions

View File

@ -53,7 +53,7 @@ class GNUsocialPhotosPlugin extends Plugin
function onRouterInitialized($m)
{
$m->connect('main/photos', array('action' => 'photos'));
$m->connect(':nickname/photos', array('action' => 'photos'));
common_log(LOG_INFO, "init'd!");
return true;
}

View File

@ -67,7 +67,38 @@ class PhotosAction extends Action
// TODO: should just redirect to the login page.
$this->element('p', array(), 'You are not logged in');
} else {
$this->element('p', array(), common_config('site', 'path'));
common_log(LOG_INFO, 'fileroot : ' . $_SERVER['DOCUMENT_ROOT'] . '/file/');
$dir = opendir($_SERVER['DOCUMENT_ROOT'] . '/file/');
if ($dir === false) {
$err = error_get_last();
common_log(LOG_INFO, 'Error opening dir : ' . $err['message']);
return;
}
$args = $this->returnToArgs();
foreach (array_keys($args) as $key) {
common_log(LOG_INFO, $key . ' => ' . $args[$key]);
if (is_array($args[$key])) {
foreach (array_keys($args[$key]) as $skey) {
common_log(LOG_INFO, ' ' . $skey . ' => ' . $args[$key][$skey]);
}
}
}
$pathparts = explode('/', $args[1]['nickname']);
$username = $pathparts[0];
while (false !== ($file = readdir($dir))) {
$fparts = explode('-', $file);
if ($fparts[0] == $username // uploaded by this user
&& ((substr($file, -4) == '.png')
|| (substr($file, -4) == '.jpg') // XXX: is this needed? status.net seems to save jpgs as .jpeg
|| (substr($file, -5) == '.jpeg')
|| (substr($file, -4) == '.gif')
|| (substr($file, -4) == '.svg'))) { // and it's an image
common_log(LOG_INFO, 'file : ' . $file);
$this->elementStart('p');
$this->element('a', array('href' => 'http://' . common_config('site', 'server') . '/file/' . $file), $file);
$this->elementEnd('p');
}
}
}
}
}