184 lines
6.4 KiB
PHP
184 lines
6.4 KiB
PHP
<?php
|
|
/**
|
|
* Attachments component
|
|
*
|
|
* @package Attachments
|
|
* @subpackage Attachments_Component
|
|
*
|
|
* @copyright Copyright (C) 2007-2018 Jonathan M. Cameron, All Rights Reserved
|
|
* @license http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL
|
|
* @link http://joomlacode.org/gf/project/attachments/frs/
|
|
* @author Jonathan M. Cameron
|
|
*/
|
|
|
|
// no direct access
|
|
|
|
defined( '_JEXEC' ) or die('Restricted access');
|
|
|
|
// Access check.
|
|
if (!JFactory::getUser()->authorise('core.create', 'com_attachments')) {
|
|
return JError::raiseError(404, JText::_('JERROR_ALERTNOAUTHOR') . ' (ERR 172)');
|
|
}
|
|
|
|
/** Define the legacy classes, if necessary */
|
|
require_once(JPATH_SITE.'/components/com_attachments/legacy/view.php');
|
|
|
|
/** Include the Attachments javascript classes */
|
|
require_once(JPATH_SITE.'/components/com_attachments/javascript.php');
|
|
|
|
|
|
/**
|
|
* HTML View class for adding new attachments
|
|
*
|
|
* @package Attachments
|
|
*/
|
|
class AttachmentsViewAdd extends JViewLegacy
|
|
{
|
|
/**
|
|
* Display the add/create view
|
|
*/
|
|
public function display($tpl = null)
|
|
{
|
|
// For convenience below
|
|
$attachment = $this->attachment;
|
|
$parent_id = $attachment->parent_id;
|
|
$parent_type = $attachment->parent_type;
|
|
$parent_entity = $attachment->parent_entity;
|
|
$attachment->parent_entity_name = JText::_('ATTACH_' . $attachment->parent_entity);
|
|
$parent_entity_name = $attachment->parent_entity_name;
|
|
$params = $this->params;
|
|
|
|
// Prevent unallowed editing PID PE
|
|
if (!$this->parent->userMayAddAttachment($parent_id, $parent_entity, $this->new_parent))
|
|
{
|
|
$errmsg = JText::sprintf('ATTACH_ERROR_NO_PERMISSION_TO_UPLOAD_S',
|
|
$attachment->parent_entity_name);
|
|
return JError::raiseError(403, $errmsg . ' (ERR 173)');
|
|
}
|
|
|
|
// Construct derived data
|
|
$this->relative_url_checked = $attachment->url_relative ? 'checked="yes"' : '';
|
|
$this->verify_url_checked = $attachment->url_verify ? 'checked="yes"' : '';
|
|
|
|
// Construct some tooltips
|
|
$this->enter_url_tooltip = JText::_('ATTACH_ENTER_URL') . '::' . JText::_('ATTACH_ENTER_URL_TOOLTIP');
|
|
$this->display_filename_tooltip = JText::_('ATTACH_DISPLAY_FILENAME') . '::' . JText::_('ATTACH_DISPLAY_FILENAME_TOOLTIP');
|
|
$this->display_url_tooltip = JText::_('ATTACH_DISPLAY_URL') . '::' . JText::_('ATTACH_DISPLAY_URL_TOOLTIP');
|
|
|
|
// Add the published selection
|
|
$this->lists = Array();
|
|
$this->lists['published'] = JHtml::_('select.booleanlist', 'state',
|
|
'class="inputbox"', $attachment->state);
|
|
|
|
// Set up the access field
|
|
require_once(JPATH_COMPONENT_ADMINISTRATOR.'/models/fields/accesslevels.php');
|
|
$this->access_level = JFormFieldAccessLevels::getAccessLevels('access', 'access', null);
|
|
$this->access_level_tooltip = JText::_('JFIELD_ACCESS_LABEL') . '::' . JText::_('JFIELD_ACCESS_DESC');
|
|
|
|
// Handle user field 1
|
|
$show_user_field_1 = false;
|
|
$user_field_1_name = $params->get('user_field_1_name', '');
|
|
if ( $user_field_1_name != '' ) {
|
|
$show_user_field_1 = true;
|
|
$this->user_field_1_name = $user_field_1_name;
|
|
}
|
|
$this->show_user_field_1 = $show_user_field_1;
|
|
|
|
// Handle user field 2
|
|
$show_user_field_2 = false;
|
|
$user_field_2_name = $params->get('user_field_2_name', '');
|
|
if ( $user_field_2_name != '' ) {
|
|
$show_user_field_2 = true;
|
|
$this->user_field_2_name = $user_field_2_name;
|
|
}
|
|
$this->show_user_field_2 = $show_user_field_2;
|
|
|
|
// Handle user field 3
|
|
$show_user_field_3 = false;
|
|
$user_field_3_name = $params->get('user_field_3_name', '');
|
|
if ( $user_field_3_name != '' ) {
|
|
$show_user_field_3 = true;
|
|
$this->user_field_3_name = $user_field_3_name;
|
|
}
|
|
$this->show_user_field_3 = $show_user_field_3;
|
|
|
|
// Set up to toggle between uploading file/urls
|
|
if ( $attachment->uri_type == 'file' ) {
|
|
$upload_toggle_button_text = JText::_('ATTACH_ENTER_URL_INSTEAD');
|
|
$upload_toggle_tooltip = JText::_('ATTACH_ENTER_URL_INSTEAD_TOOLTIP');
|
|
$upload_toggle_url = 'index.php?option=com_attachments&task=attachment.add&uri=url';
|
|
}
|
|
else {
|
|
$upload_toggle_button_text = JText::_('ATTACH_SELECT_FILE_TO_UPLOAD_INSTEAD');
|
|
$upload_toggle_tooltip = JText::_('ATTACH_SELECT_FILE_TO_UPLOAD_INSTEAD_TOOLTIP');
|
|
$upload_toggle_url = 'index.php?option=com_attachments&task=attachment.add&uri=file';
|
|
}
|
|
if ( $this->from == 'closeme' ) {
|
|
$upload_toggle_url .= '&tmpl=component';
|
|
}
|
|
if ( $this->from ) {
|
|
$upload_toggle_url .= '&from=' . $this->from;
|
|
}
|
|
|
|
// Update the toggle URL to not forget if the parent is not simply an article
|
|
if ( !( ($parent_type == 'com_content') && ($parent_entity == 'default')) ) {
|
|
$upload_toggle_url .= "&parent_type=$parent_type";
|
|
if ( $parent_entity != 'default' ) {
|
|
$upload_toggle_url .= ".$parent_entity";
|
|
}
|
|
}
|
|
|
|
// If this is for an existing content item, modify the URL appropriately
|
|
if ( $this->new_parent ) {
|
|
$upload_toggle_url .= "&parent_id=0,new";
|
|
}
|
|
elseif ( $parent_id && ($parent_id != -1) ) {
|
|
$upload_toggle_url .= "&parent_id=$parent_id";
|
|
}
|
|
if ( JRequest::getWord('editor') ) {
|
|
$upload_toggle_url .= "&editor=" . JRequest::getWord('editor');
|
|
}
|
|
|
|
$this->upload_toggle_button_text = $upload_toggle_button_text;
|
|
$this->upload_toggle_url = $upload_toggle_url;
|
|
$this->upload_toggle_tooltip = $upload_toggle_tooltip;
|
|
|
|
// Set up the 'select parent' button
|
|
$this->selpar_label = JText::sprintf('ATTACH_SELECT_ENTITY_S_COLON', $parent_entity_name);
|
|
$this->selpar_btn_text = ' ' . JText::sprintf('ATTACH_SELECT_ENTITY_S', $parent_entity_name) . ' ';
|
|
$this->selpar_btn_tooltip = JText::sprintf('ATTACH_SELECT_ENTITY_S_TOOLTIP', $parent_entity_name);
|
|
$this->selpar_btn_url = $this->parent->getSelectEntityURL($parent_entity);
|
|
|
|
// Add the style sheets
|
|
JHtml::stylesheet('com_attachments/attachments_admin_form.css', Array(), true);
|
|
$lang = JFactory::getLanguage();
|
|
if ( $lang->isRTL() ) {
|
|
JHtml::stylesheet('com_attachments/attachments_admin_form_rtl.css', Array(), true);
|
|
}
|
|
|
|
// Set up mootools/modal
|
|
AttachmentsJavascript::setupModalJavascript();
|
|
|
|
// Set the toolbar
|
|
$this->addToolBar();
|
|
|
|
// Display the form
|
|
parent::display($tpl);
|
|
}
|
|
|
|
/**
|
|
* Setting the toolbar
|
|
*/
|
|
protected function addToolBar()
|
|
{
|
|
JRequest::setVar('hidemainmenu', true);
|
|
JToolBarHelper::title(JText::_('ATTACH_ADD_ATTACHMENT'));
|
|
|
|
JToolBarHelper::apply('attachment.applyNew');
|
|
JToolBarHelper::save('attachment.saveNew');
|
|
JToolBarHelper::save2new('attachment.save2New');
|
|
|
|
JToolBarHelper::cancel('attachment.cancel', 'JTOOLBAR_CANCEL');
|
|
}
|
|
}
|