Seditio Source
Root |
./othercms/ips_4.3.4/applications/nexus/extensions/core/EditorLocations/Support.php
<?php
/**
 * @brief        Editor Extension: Support
 * @author        <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
 * @copyright    (c) Invision Power Services, Inc.
 * @license        https://www.invisioncommunity.com/legal/standards/
 * @package        Invision Community
 * @subpackage    Nexus
 * @since        09 Apr 2014
 */

namespace IPS\nexus\extensions\core\EditorLocations;

/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
   
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
    exit;
}

/**
 * Editor Extension: Support
 */
class _Support
{
   
/**
     * Can we use HTML in this editor?
     *
     * @param    \IPS\Member    $member    The member
     * @return    bool|null    NULL will cause the default value (based on the member's permissions) to be used, and is recommended in most cases. A boolean value will override that.
     */
   
public function canUseHtml( $member )
    {
        return
NULL;
    }
   
   
/**
     * Only allow local embeds?
     *
     * @return bool
     */
   
public function embedLocalOnly()
    {
        return
TRUE;
    }
   
   
/**
     * Can we use attachments in this editor?
     *
     * @param    \IPS\Member                    $member    The member
     * @param    \IPS\Helpers\Form\Editor    $field    The editor field
     * @return    bool|null    NULL will cause the default value (based on the member's permissions) to be used, and is recommended in most cases. A boolean value will override that.
     */
   
public function canAttach( $member, $field )
    {
        if (
$field->options['autoSaveKey'] == 'default_content' )
        {
            return
FALSE;
        }

        if( !
$field->options['allowAttachments'] )
        {
            return
FALSE;
        }
       
        return
NULL;
    }

   
/**
     * Permission check for attachments
     *
     * @param    \IPS\Member    $member        The member
     * @param    int|null    $id1        Primary ID
     * @param    int|null    $id2        Secondary ID
     * @param    string|null    $id3        Arbitrary data
     * @param    array        $attachment    The attachment data
     * @param    bool        $viewOnly    If true, just check if the user can see the attachment rather than download it
     * @return    bool
     */
   
public function attachmentPermissionCheck( $member, $id1, $id2, $id3, $attachment, $viewOnly=FALSE )
    {
        try
        {
            return \
IPS\nexus\Support\Request::load( $id1 )->canView( $member );
        }
        catch ( \
OutOfRangeException $e )
        {
            return
FALSE;
        }
    }
   
   
/**
     * Attachment lookup
     *
     * @param    int|null    $id1    Primary ID
     * @param    int|null    $id2    Secondary ID
     * @param    string|null    $id3    Arbitrary data
     * @return    \IPS\Http\Url|\IPS\Content|\IPS\Node\Model
     * @throws    \LogicException
     */
   
public function attachmentLookup( $id1, $id2, $id3 )
    {
        return \
IPS\nexus\Support\Reply::load( $id2 );
    }
   
   
/**
     * HTMLPurifier Configuration
     *
     * @param    \HTMLPurifier_Config    $config    Configuration
     * @return    void
     */
   
public function htmlPurifierConfig( \HTMLPurifier_Config $config )
    {
       
$config->set( 'URI.Munge', \IPS\Settings::i()->base_url . 'index.php?app=core&module=system&controller=redirect&url=%s&key=%t&resource=%r' );
       
$config->set( 'URI.MungeResources', TRUE );
       
$config->set( 'URI.MungeSecretKey', \IPS\Settings::i()->site_secret_key );
    }

}