Version 4.3.0
This commit is contained in:
1 parent
96997ddd8e
commit
fe1acf984a
1349 files changed
+116159
-67711
No files matched your search
@@ -42,6 +42,11 @@ class _promote extends \IPS\Dispatcher\Controller
|
||||
\IPS\Output::i()->error( 'page_not_found', '2C356/5', 404, '' );
|
||||
}
|
||||
|
||||
if ( ! \IPS\Member::loggedIn()->hasAcpRestriction( 'core', 'promotion', 'promote_manage' ) and $promote->added_by != \IPS\Member::loggedIn()->member_id )
|
||||
{
|
||||
\IPS\Output::i()->error( 'no_module_permission', '2C366/2', 403, '' );
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$object = $class::load( $id );
|
||||
@@ -57,13 +62,87 @@ class _promote extends \IPS\Dispatcher\Controller
|
||||
\IPS\Output::i()->error( 'page_not_found', '2C356/7', 404, '' );
|
||||
}
|
||||
|
||||
$title = NULL;
|
||||
$settings = $promote->form_data;
|
||||
|
||||
if ( ! empty( $settings['internal']['title'] ) )
|
||||
{
|
||||
$title = $settings['internal']['title'];
|
||||
}
|
||||
|
||||
$form = new \IPS\Helpers\Form( 'form', 'save' );
|
||||
$form->class = 'ipsForm_vertical cPromoteDialog';
|
||||
$form->attributes = array( 'data-controller' => 'core.front.system.promote' );
|
||||
$form->add( new \IPS\Helpers\Form\Text( 'promote_social_title_internal', $title, FALSE ) );
|
||||
$form->add( new \IPS\Helpers\Form\TextArea( 'promote_internal_text', $promote->getText('internal'), FALSE, array( 'rows' => 10 ) ) );
|
||||
|
||||
/* Existing media */
|
||||
try
|
||||
{
|
||||
if ( $images = $object->contentImages( 20 ) )
|
||||
{
|
||||
$form->addHtml( \IPS\Theme::i()->getTemplate( 'promote' )->promoteDialogImages( $images, $promote ) );
|
||||
}
|
||||
}
|
||||
catch( \BadMethodCallException $e ) { }
|
||||
|
||||
/* Upload box */
|
||||
$existingMedia = array();
|
||||
if ( $promote )
|
||||
{
|
||||
foreach( $promote->media as $file )
|
||||
{
|
||||
try
|
||||
{
|
||||
$existingMedia[] = \IPS\File::get( 'core_Promote', $file );
|
||||
}
|
||||
catch ( \OutOfRangeException $e ) { }
|
||||
}
|
||||
}
|
||||
|
||||
$uploader = new \IPS\Helpers\Form\Upload( 'promote_media', $existingMedia, FALSE, array(
|
||||
'multiple' => TRUE,
|
||||
'storageExtension' => 'core_Promote',
|
||||
'maxFiles' => 10,
|
||||
'image' => TRUE,
|
||||
'maxFileSize' => 3,
|
||||
) );
|
||||
|
||||
$form->add( $uploader );
|
||||
|
||||
/* Saving? */
|
||||
if ( $values = $form->values() )
|
||||
{
|
||||
/* Content images */
|
||||
$saveImages = array();
|
||||
if ( $images )
|
||||
{
|
||||
foreach( $images as $image )
|
||||
{
|
||||
foreach( $image as $extension => $path )
|
||||
{
|
||||
if ( \IPS\Request::i()->attach_files and in_array( $path, array_keys( \IPS\Request::i()->attach_files ) ) )
|
||||
{
|
||||
$saveImages[] = array( $extension => $path );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$media = array();
|
||||
if ( is_array( $values['promote_media'] ) )
|
||||
{
|
||||
foreach( $values['promote_media'] as $key => $file )
|
||||
{
|
||||
$media[] = (string) $file;
|
||||
}
|
||||
}
|
||||
|
||||
$settings['internal']['title'] = $values['promote_social_title_internal'];
|
||||
|
||||
$promote->images = $saveImages;
|
||||
$promote->media = $media;
|
||||
$promote->form_data = $settings;
|
||||
$promote->setText( 'internal', $values['promote_internal_text'] );
|
||||
$promote->save();
|
||||
|
||||
@@ -129,6 +208,11 @@ class _promote extends \IPS\Dispatcher\Controller
|
||||
/* Create the table */
|
||||
$table = new \IPS\core\Promote\Table( \IPS\Http\Url::internal( 'app=core&module=promote&controller=promote&do=view', 'front', 'promote_manage' ) );
|
||||
|
||||
if ( ! \IPS\Member::loggedIn()->hasAcpRestriction( 'core', 'promotion', 'promote_manage' ) )
|
||||
{
|
||||
$table->setMember( \IPS\Member::loggedIn() );
|
||||
}
|
||||
|
||||
\IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles, \IPS\Output::i()->js('front_promote.js', 'core' ) );
|
||||
\IPS\Output::i()->cssFiles = array_merge( \IPS\Output::i()->cssFiles, \IPS\Theme::i()->css( 'styles/promote.css' ) );
|
||||
|
||||
@@ -160,6 +244,12 @@ class _promote extends \IPS\Dispatcher\Controller
|
||||
try
|
||||
{
|
||||
$item = \IPS\core\Promote::load( \IPS\Request::i()->promote_id );
|
||||
|
||||
if ( ! \IPS\Member::loggedIn()->hasAcpRestriction( 'core', 'promotion', 'promote_manage' ) and $item->added_by != \IPS\Member::loggedIn()->member_id )
|
||||
{
|
||||
\IPS\Output::i()->error( 'no_module_permission', '2C366/1', 403, '' );
|
||||
}
|
||||
|
||||
$item->delete();
|
||||
|
||||
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=core&module=promote&controller=promote&do=view', 'front', 'promote_manage' ), 'promote_item_deleted' );
|
||||
@@ -228,6 +318,11 @@ class _promote extends \IPS\Dispatcher\Controller
|
||||
|
||||
try
|
||||
{
|
||||
if( !$class OR !class_exists( $class ) )
|
||||
{
|
||||
throw new \InvalidArgumentException;
|
||||
}
|
||||
|
||||
$object = $class::load( $id );
|
||||
}
|
||||
catch ( \Exception $ex )
|
||||
@@ -405,6 +500,8 @@ class _promote extends \IPS\Dispatcher\Controller
|
||||
{
|
||||
$text = array();
|
||||
$shareTo = array();
|
||||
$processedForms = array();
|
||||
|
||||
foreach( $services as $service )
|
||||
{
|
||||
$key = mb_strtolower( $service->key );
|
||||
@@ -413,9 +510,10 @@ class _promote extends \IPS\Dispatcher\Controller
|
||||
$text[ $key ] = $values[ 'promote_social_content_' . $key ];
|
||||
$shareTo[] = $key;
|
||||
}
|
||||
|
||||
$processedForms[ $key ] = $service->processPromoteForm( $values );
|
||||
}
|
||||
|
||||
|
||||
$media = array();
|
||||
if ( is_array( $values['promote_media'] ) )
|
||||
{
|
||||
@@ -481,6 +579,7 @@ class _promote extends \IPS\Dispatcher\Controller
|
||||
$promote->share_to = $shareTo;
|
||||
$promote->failed = 0; # Reset the failed flag if we're re-promoting
|
||||
$promote->sent = 0;
|
||||
$promote->form_data = $processedForms;
|
||||
$promote->save();
|
||||
|
||||
if ( isset( \IPS\Request::i()->promote_id ) )
|
||||
@@ -496,7 +595,7 @@ class _promote extends \IPS\Dispatcher\Controller
|
||||
}
|
||||
else
|
||||
{
|
||||
$output = \IPS\Theme::i()->getTemplate( 'promote' )->promoteDialog( \IPS\Member::loggedIn()->language()->addToStack('promote_social_title'), $form->customTemplate( array( call_user_func_array( array( \IPS\Theme::i(), 'getTemplate' ), array( 'promote', 'core' ) ), 'promoteDialogTemplate' ) ), $existing, $object );
|
||||
$output = \IPS\Theme::i()->getTemplate( 'promote' )->promoteDialog( \IPS\Member::loggedIn()->language()->addToStack('promote_social_title'), $form->customTemplate( array( call_user_func_array( array( \IPS\Theme::i(), 'getTemplate' ), array( 'promote', 'core' ) ), 'promoteDialogTemplate' ), $existing, $object ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user