Version 4.7.13
This commit is contained in:
1 parent
fd22d99e69
commit
7124a02564
954 files changed
+29277
-59308
No files matched your search
@@ -45,6 +45,27 @@ class _settings extends \IPS\Dispatcher\Controller
|
||||
* @return void
|
||||
*/
|
||||
protected function manage()
|
||||
{
|
||||
$form = $this->_getForm();
|
||||
|
||||
if ( $values = $form->values() )
|
||||
{
|
||||
$this->_saveSettingsForm( $form, $values );
|
||||
|
||||
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=gallery&module=gallery&controller=settings' ), 'saved' );
|
||||
}
|
||||
|
||||
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('settings');
|
||||
\IPS\Output::i()->output = $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build and return the settings form
|
||||
*
|
||||
* @note Abstracted to allow third party devs to extend easier
|
||||
* @return \IPS\Helpers\Form
|
||||
*/
|
||||
protected function _getForm()
|
||||
{
|
||||
$form = new \IPS\Helpers\Form;
|
||||
|
||||
@@ -52,6 +73,7 @@ class _settings extends \IPS\Dispatcher\Controller
|
||||
$form->attributes['data-controller'] = 'gallery.admin.settings.settings';
|
||||
$form->hiddenValues['rebuildWatermarkScreenshots'] = \IPS\Request::i()->rebuildWatermarkScreenshots ?: 0;
|
||||
|
||||
$form->addTab( 'basic_settings' );
|
||||
$form->addHeader( 'gallery_images' );
|
||||
$form->addMessage( \IPS\Member::loggedIn()->language()->addToStack('gallery_dims_explanation'), '', FALSE );
|
||||
$large = ( isset( \IPS\Settings::i()->gallery_large_dims ) ) ? explode( 'x', \IPS\Settings::i()->gallery_large_dims ) : array( 1600, 1200 );
|
||||
@@ -88,32 +110,70 @@ class _settings extends \IPS\Dispatcher\Controller
|
||||
|
||||
$form->add( new \IPS\Helpers\Form\YesNo( 'gallery_nsfw', \IPS\Settings::i()->gallery_nsfw ) );
|
||||
|
||||
$form->addTab( 'gallery_overview_settings' );
|
||||
$form->addHeader( 'gallery_featured_images' );
|
||||
$form->add( new \IPS\Helpers\Form\YesNo( 'gallery_overview_show_carousel', \IPS\Settings::i()->gallery_overview_show_carousel, FALSE, array( 'togglesOn' => array( 'gallery_overview_carousel_count', 'gallery_overview_carousel_type' ) ) ) );
|
||||
$options = array(
|
||||
'featured' => 'gallery_overview_carousel_featured',
|
||||
'new' => 'gallery_overview_carousel_new'
|
||||
);
|
||||
$form->add( new \IPS\Helpers\Form\Radio( 'gallery_overview_carousel_type', \IPS\Settings::i()->gallery_overview_carousel_type, TRUE, array( 'options' => $options ), NULL, NULL, NULL, 'gallery_overview_carousel_type' ) );
|
||||
$form->add( new \IPS\Helpers\Form\Number( 'gallery_overview_carousel_count', \IPS\Settings::i()->gallery_overview_carousel_count, FALSE, array(), NULL, NULL, NULL, 'gallery_overview_carousel_count' ) );
|
||||
|
||||
if ( $values = $form->values() )
|
||||
$form->addHeader( 'gallery_overview_recent_comments' );
|
||||
$form->add( new \IPS\Helpers\Form\YesNo( 'gallery_show_recent_comments', \IPS\Settings::i()->gallery_show_recent_comments, FALSE, array() ) );
|
||||
|
||||
$form->addHeader('gallery_overview_categories');
|
||||
$form->add( new \IPS\Helpers\Form\YesNo( 'gallery_overview_show_categories', \IPS\Settings::i()->gallery_overview_show_categories, FALSE, array() ) );
|
||||
|
||||
$form->addHeader( 'gallery_overview_recent_updated_albums' );
|
||||
$form->add( new \IPS\Helpers\Form\YesNo( 'gallery_show_recent_updated_albums', \IPS\Settings::i()->gallery_show_recent_updated_albums, FALSE, array( 'togglesOn' => array( 'gallery_recent_updated_albums_count' ) ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Number( 'gallery_recent_updated_albums_count', \IPS\Settings::i()->gallery_recent_updated_albums_count, FALSE, array(), NULL, NULL, NULL, 'gallery_recent_updated_albums_count' ) );
|
||||
|
||||
$form->addHeader( 'gallery_overview_new_images' );
|
||||
$form->add( new \IPS\Helpers\Form\YesNo( 'gallery_show_new_images', \IPS\Settings::i()->gallery_show_new_images, FALSE, array( 'togglesOn' => array( 'gallery_new_images_count' ) ) ) );
|
||||
$form->add( new \IPS\Helpers\Form\Number( 'gallery_new_images_count', \IPS\Settings::i()->gallery_new_images_count, FALSE, array(), NULL, NULL, NULL, 'gallery_new_images_count' ) );
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the settings form
|
||||
*
|
||||
* @param \IPS\Helpers\Form $form The Form Object
|
||||
* @param array $values Values
|
||||
*/
|
||||
protected function _saveSettingsForm( \IPS\Helpers\Form $form, array $values )
|
||||
{
|
||||
$form->saveAsSettings( array(
|
||||
'gallery_large_dims' => implode( 'x', $values['gallery_large_dims'] ),
|
||||
'gallery_small_dims' => implode( 'x', $values['gallery_small_dims'] ),
|
||||
'gallery_use_square_thumbnails' => $values['gallery_use_square_thumbnails'],
|
||||
'gallery_watermark_path' => (string) $values['gallery_watermark_path'],
|
||||
'gallery_detailed_bandwidth' => $values['gallery_detailed_bandwidth'],
|
||||
'gallery_bandwidth_period' => $values['gallery_bandwidth_period'],
|
||||
'gallery_rss_enabled' => $values['gallery_rss_enabled'],
|
||||
'gallery_watermark_images' => implode( ',', $values['gallery_watermark_images'] ),
|
||||
'gallery_use_watermarks' => $values['gallery_use_watermarks'],
|
||||
'gallery_maps_default' => $values['gallery_maps_default'] ?? 0,
|
||||
'gallery_nsfw' => $values['gallery_nsfw'],
|
||||
'gallery_overview_show_carousel' => $values['gallery_overview_show_carousel'],
|
||||
'gallery_overview_carousel_type' => $values['gallery_overview_carousel_type'],
|
||||
'gallery_overview_carousel_count' => $values['gallery_overview_carousel_count'],
|
||||
'gallery_show_recent_comments' => $values['gallery_show_recent_comments'],
|
||||
'gallery_overview_show_categories' => $values['gallery_overview_show_categories'],
|
||||
'gallery_show_recent_updated_albums' => $values['gallery_show_recent_updated_albums'],
|
||||
'gallery_recent_updated_albums_count' => $values['gallery_recent_updated_albums_count'],
|
||||
'gallery_show_new_images' => $values['gallery_show_new_images'],
|
||||
'gallery_new_images_count' => $values['gallery_new_images_count'],
|
||||
) );
|
||||
|
||||
\IPS\Session::i()->log( 'acplogs__gallery_settings' );
|
||||
|
||||
if( $values['rebuildWatermarkScreenshots'] )
|
||||
{
|
||||
$form->saveAsSettings( array(
|
||||
'gallery_large_dims' => implode( 'x', $values['gallery_large_dims'] ),
|
||||
'gallery_small_dims' => implode( 'x', $values['gallery_small_dims'] ),
|
||||
'gallery_use_square_thumbnails' => $values['gallery_use_square_thumbnails'],
|
||||
'gallery_watermark_path' => (string) $values['gallery_watermark_path'],
|
||||
'gallery_detailed_bandwidth' => $values['gallery_detailed_bandwidth'],
|
||||
'gallery_bandwidth_period' => $values['gallery_bandwidth_period'],
|
||||
'gallery_rss_enabled' => $values['gallery_rss_enabled'],
|
||||
'gallery_watermark_images' => implode( ',', $values['gallery_watermark_images'] ),
|
||||
'gallery_use_watermarks' => $values['gallery_use_watermarks'],
|
||||
'gallery_maps_default' => $values['gallery_maps_default'] ?? 0,
|
||||
'gallery_nsfw' => $values['gallery_nsfw']
|
||||
) );
|
||||
\IPS\Session::i()->log( 'acplogs__gallery_settings' );
|
||||
|
||||
if( $values['rebuildWatermarkScreenshots'] )
|
||||
{
|
||||
\IPS\Db::i()->delete( 'core_queue', array( '`app`=? OR `key`=?', 'gallery', 'RebuildGalleryImages' ) );
|
||||
\IPS\Task::queue( 'gallery', 'RebuildGalleryImages', array( ), 2 );
|
||||
}
|
||||
\IPS\Db::i()->delete( 'core_queue', array( '`app`=? OR `key`=?', 'gallery', 'RebuildGalleryImages' ) );
|
||||
\IPS\Task::queue( 'gallery', 'RebuildGalleryImages', array( ), 2 );
|
||||
}
|
||||
|
||||
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('settings');
|
||||
\IPS\Output::i()->output = $form;
|
||||
}
|
||||
}
|
||||
@@ -51,60 +51,7 @@ class _bandwidth extends \IPS\Dispatcher\Controller
|
||||
*/
|
||||
protected function manage()
|
||||
{
|
||||
$chart = new \IPS\Helpers\Chart\Database( \IPS\Http\Url::internal( "app=gallery&module=stats&controller=bandwidth" ), 'gallery_bandwidth', 'bdate', '', array(
|
||||
'backgroundColor' => '#ffffff',
|
||||
'colors' => array( '#10967e' ),
|
||||
'hAxis' => array( 'gridlines' => array( 'color' => '#f5f5f5' ) ),
|
||||
'lineWidth' => 1,
|
||||
'areaOpacity' => 0.4,
|
||||
'chartArea' => array( 'left' => 120, 'width' => '75%' ),
|
||||
'vAxis' => array(
|
||||
'title' => \IPS\Member::loggedIn()->language()->addToStack( 'filesize_raw_k' )
|
||||
)
|
||||
), 'AreaChart', 'daily', array( 'start' => 0, 'end' => 0 ), array( 'member_id', 'image_id', 'bdate', 'bsize' ) );
|
||||
|
||||
$chart->addSeries( \IPS\Member::loggedIn()->language()->addToStack('bandwidth'), 'number', 'ROUND((SUM(bsize)/1024),2)', FALSE );
|
||||
|
||||
$chart->tableParsers = array(
|
||||
'member_id' => function( $val )
|
||||
{
|
||||
$member = \IPS\Member::load( $val );
|
||||
|
||||
if( $member->member_id )
|
||||
{
|
||||
$url = \IPS\Http\Url::internal( "app=gallery&module=stats&controller=member&do=images&id={$member->member_id}" );
|
||||
return \IPS\Theme::i()->getTemplate( 'global', 'core', 'global' )->basicUrl( $url, FALSE, $member->name );
|
||||
}
|
||||
else
|
||||
{
|
||||
return \IPS\Member::loggedIn()->language()->addToStack('deleted_member');
|
||||
}
|
||||
},
|
||||
'image_id' => function( $val )
|
||||
{
|
||||
try
|
||||
{
|
||||
$image = \IPS\gallery\Image::load( $val );
|
||||
return \IPS\Theme::i()->getTemplate( 'global', 'core', 'global' )->basicUrl( $image->url(), TRUE, $image->caption );
|
||||
}
|
||||
catch ( \OutOfRangeException $e )
|
||||
{
|
||||
return \IPS\Member::loggedIn()->language()->addToStack('deleted_image');
|
||||
}
|
||||
},
|
||||
'bdate' => function( $val )
|
||||
{
|
||||
return (string) \IPS\DateTime::ts( $val );
|
||||
},
|
||||
'bsize' => function( $val )
|
||||
{
|
||||
return \IPS\Output\Plugin\Filesize::humanReadableFilesize( $val );
|
||||
}
|
||||
);
|
||||
|
||||
$chart->availableTypes = array( 'AreaChart', 'ColumnChart', 'BarChart' );
|
||||
|
||||
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('bandwidth_stats');
|
||||
\IPS\Output::i()->output = (string) $chart;
|
||||
\IPS\Output::i()->output = (string) \IPS\core\Statistics\Chart::loadFromExtension( 'gallery', 'Bandwidth' )->getChart( \IPS\Http\Url::internal( "app=gallery&module=stats&controller=bandwidth" ) );
|
||||
}
|
||||
}
|
||||
@@ -128,6 +128,8 @@ class _browse extends \IPS\Content\Controller
|
||||
$album = \IPS\gallery\Album::loadAndCheckPerms( \IPS\Request::i()->album, 'view' );
|
||||
|
||||
$album->category()->clubCheckRules();
|
||||
|
||||
$album->asItem()->updateViews();
|
||||
|
||||
/* Add RSS feed */
|
||||
if ( \IPS\Settings::i()->gallery_rss_enabled )
|
||||
@@ -195,18 +197,43 @@ class _browse extends \IPS\Content\Controller
|
||||
protected function _index()
|
||||
{
|
||||
/* Get stuff */
|
||||
$featured = iterator_to_array( \IPS\gallery\Image::featured( 20, NULL ) );
|
||||
/* If there aren't any featured images grab some recent instead */
|
||||
if( !\count( $featured ) )
|
||||
$featured = array();
|
||||
if( \IPS\Settings::i()->gallery_overview_show_carousel )
|
||||
{
|
||||
$featured = \IPS\gallery\Image::getItemsWithPermission( \IPS\gallery\Image::clubImageExclusion(), 'image_updated DESC', 5, 'view' );
|
||||
switch( \IPS\Settings::i()->gallery_overview_carousel_type )
|
||||
{
|
||||
case 'featured':
|
||||
$featured = iterator_to_array( \IPS\gallery\Image::featured( \IPS\Settings::i()->gallery_overview_carousel_count, NULL ) );
|
||||
break;
|
||||
|
||||
case 'new':
|
||||
$featured = \IPS\gallery\Image::getItemsWithPermission( \IPS\gallery\Image::clubImageExclusion(), 'image_updated DESC', \IPS\Settings::i()->gallery_overview_carousel_count, 'view' );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$new = iterator_to_array( \IPS\gallery\Image::getItemsWithPermission( \IPS\gallery\Image::clubImageExclusion(), NULL, 16, 'read', \IPS\Content\Hideable::FILTER_AUTOMATIC, 0, NULL, !\IPS\Settings::i()->club_nodes_in_apps ) );
|
||||
$recentlyUpdatedAlbums = \IPS\gallery\Album\Item::getItemsWithPermission( \IPS\gallery\Album\Item::clubAlbumExclusion(), 'album_last_img_date DESC', 4, 'view' );
|
||||
$commentWhere = \IPS\gallery\Image::clubImageExclusion();
|
||||
$commentWhere[] = array( 'image_comments > 0' );
|
||||
$recentComments = \IPS\gallery\Image::getItemsWithPermission( $commentWhere, 'image_last_comment DESC', 10, 'read', \IPS\Content\Hideable::FILTER_PUBLIC_ONLY, 0, NULL, !\IPS\Settings::i()->club_nodes_in_apps );
|
||||
/* New images */
|
||||
$new = array();
|
||||
if( \IPS\Settings::i()->gallery_show_new_images )
|
||||
{
|
||||
$new = iterator_to_array( \IPS\gallery\Image::getItemsWithPermission( \IPS\gallery\Image::clubImageExclusion(), NULL, \IPS\Settings::i()->gallery_new_images_count, 'read', \IPS\Content\Hideable::FILTER_AUTOMATIC, 0, NULL, !\IPS\Settings::i()->club_nodes_in_apps ) );
|
||||
}
|
||||
|
||||
/* Recently updated albums */
|
||||
$recentlyUpdatedAlbums = array();
|
||||
if( \IPS\Settings::i()->gallery_show_recent_updated_albums )
|
||||
{
|
||||
$recentlyUpdatedAlbums = \IPS\gallery\Album\Item::getItemsWithPermission( \IPS\gallery\Album\Item::clubAlbumExclusion(), 'album_last_img_date DESC', \IPS\Settings::i()->gallery_recent_updated_albums_count, 'view' );
|
||||
}
|
||||
|
||||
/* Recently commented */
|
||||
$recentComments = array();
|
||||
if( \IPS\Settings::i()->gallery_show_recent_comments )
|
||||
{
|
||||
$commentWhere = \IPS\gallery\Image::clubImageExclusion();
|
||||
$commentWhere[] = array( 'image_comments > 0' );
|
||||
$recentComments = \IPS\gallery\Image::getItemsWithPermission( $commentWhere, 'image_last_comment DESC', 10, 'read', \IPS\Content\Hideable::FILTER_PUBLIC_ONLY, 0, NULL, !\IPS\Settings::i()->club_nodes_in_apps );
|
||||
}
|
||||
|
||||
/* Online User Location */
|
||||
\IPS\Session::i()->setLocation( \IPS\Http\Url::internal( 'app=gallery', 'front', 'gallery' ), array(), 'loc_gallery_browsing' );
|
||||
@@ -322,6 +349,11 @@ class _browse extends \IPS\Content\Controller
|
||||
}
|
||||
}
|
||||
|
||||
if ( !\IPS\Request::i()->isAjax() )
|
||||
{
|
||||
$category->updateViews();
|
||||
}
|
||||
|
||||
\IPS\Output::i()->contextualSearchOptions[ \IPS\Member::loggedIn()->language()->addToStack( 'search_contextual_item_categories' ) ] = array( 'type' => 'gallery_image', 'nodes' => $category->_id );
|
||||
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'browse' )->category( $category, $albums, (string) $table );
|
||||
}
|
||||
@@ -452,6 +484,11 @@ class _browse extends \IPS\Content\Controller
|
||||
'item_type' => isset( $albumItem::$contentType ) ? $albumItem::$contentType : $albumItem::$title,
|
||||
'category_name' => $albumItem->container()->_title
|
||||
);
|
||||
|
||||
if ( !\IPS\Request::i()->isAjax() )
|
||||
{
|
||||
$albumItem->updateViews();
|
||||
}
|
||||
|
||||
\IPS\Output::i()->breadcrumb[] = array( NULL, $album->_title );
|
||||
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'browse' )->album( $album, (string) $table, $commentsAndReviews );
|
||||
|
||||
@@ -810,7 +810,7 @@ class _view extends \IPS\Content\Controller
|
||||
{
|
||||
foreach ( \IPS\Request::i()->url()->queryString as $k => $v )
|
||||
{
|
||||
if ( $k != 'do' )
|
||||
if ( !in_array( $k, array( 'id', 'do' ) ) )
|
||||
{
|
||||
$url = $url->setQueryString( $k, $v );
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user