/** * Creates the Filemanagerview * * @since 1.0 */ function display($tpl = null) { // Check for request forgeries JRequest::checkToken('request') or jexit('Invalid Token'); flexicontent_html::loadJQuery(); flexicontent_html::loadFramework('select2'); JHTML::_('behavior.tooltip'); // Load the form validation behavior JHTML::_('behavior.formvalidation'); //initialise variables $app = JFactory::getApplication(); $option = JRequest::getVar('option'); $document = JFactory::getDocument(); $db = JFactory::getDBO(); $user = JFactory::getUser(); $params = JComponentHelper::getParams('com_flexicontent'); //$authorparams = flexicontent_db::getUserConfig($user->id); $langs = FLEXIUtilities::getLanguages('code'); $fieldid = JRequest::getVar('field', null, 'request', 'int'); $client = $app->isAdmin() ? '../' : ''; //get vars $filter_order = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.filter_order', 'filter_order', 'f.filename', 'cmd'); $filter_order_Dir = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.filter_order_Dir', 'filter_order_Dir', '', 'word'); $filter = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.filter', 'filter', 1, 'int'); $filter_lang = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.filter_lang', 'filter_lang', '', 'string'); $filter_uploader = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.filter_uploader', 'filter_uploader', 0, 'int'); $filter_url = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.filter_url', 'filter_url', '', 'word'); $filter_secure = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.filter_secure', 'filter_secure', '', 'word'); $filter_ext = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.filter_ext', 'filter_ext', '', 'alnum'); $search = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.search', 'search', '', 'string'); $filter_item = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.item_id', 'item_id', '', 'int'); $u_item_id = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.u_item_id', 'u_item_id', 0, 'string'); $autoselect = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.autoselect', 'autoselect', 0, 'int'); $autoassign = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.autoassign', 'autoassign', 0, 'int'); $folder_mode = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.folder_mode', 'folder_mode', 0, 'int'); $folder_param = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.folder_param', 'folder_param', 'dir', 'string'); $append_item = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.append_item', 'append_item', 1, 'int'); $append_field = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.append_field', 'append_field', 1, 'int'); $targetid = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.targetid', 'targetid', '', 'string'); $thumb_w = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.thumb_w', 'thumb_w', 120, 'int'); $thumb_h = $app->getUserStateFromRequest($option . '.fileselement' . $fieldid . '.thumb_h', 'thumb_h', 90, 'int'); $search = FLEXI_J16GE ? $db->escape(trim(JString::strtolower($search))) : $db->getEscaped(trim(JString::strtolower($search))); $newfileid = JRequest::getInt('newfileid'); $newfilename = base64_decode(JRequest::getVar('newfilename', '')); $delfilename = base64_decode(JRequest::getVar('delfilename', '')); //add css and submenu to document if ($app->isSite()) { $document->addStyleSheet(JURI::base() . 'components/com_flexicontent/assets/css/flexicontent.css'); $document->addStyleSheet(JURI::base() . 'components/com_flexicontent/assets/css/flexi_shared.css'); // NOTE: this is imported by main Frontend CSS file } else { $document->addStyleSheet(JURI::base() . 'components/com_flexicontent/assets/css/flexicontentbackend.css'); } if (FLEXI_J30GE) { $document->addStyleSheet(JURI::base() . 'components/com_flexicontent/assets/css/j3x.css'); } else { if (FLEXI_J16GE) { $document->addStyleSheet(JURI::base() . 'components/com_flexicontent/assets/css/j25.css'); } else { $document->addStyleSheet(JURI::base() . 'components/com_flexicontent/assets/css/j15.css'); } } $document->addStyleSheet(JURI::root() . 'administrator/templates/system/css/system.css'); // include backend CSS template CSS file , access to backend folder may not be allowed but ... if ($app->isSite()) { $template = !FLEXI_J16GE ? 'khepri' : (FLEXI_J30GE ? 'hathor' : 'bluestork'); $document->addStyleSheet(JURI::root() . 'administrator/templates/' . $template . (FLEXI_J16GE ? '/css/template.css' : '/css/general.css')); } //a trick to avoid loosing general style in modal window $css = 'body, td, th { font-size: 11px; } a.striketext { text-decoration: line-through; color:red; font-style:italic; } '; $document->addStyleDeclaration($css); // Get User's Global Permissions $perms = FlexicontentHelperPerm::getPerm(); // *********************** // Get data from the model // *********************** $model = $this->getModel(); if (!$folder_mode) { $rows = $this->get('Data'); $img_folder = ''; } else { $rows = $model->getFilesFromPath($u_item_id, $fieldid, $append_item, $append_field, $folder_param); $img_folder = $model->getFieldFolderPath($u_item_id, $fieldid, $append_item, $append_field, $folder_param); $img_path = str_replace('\\', '/', $img_folder . DS . $newfilename); $thumb = JURI::root() . 'components/com_flexicontent/librairies/phpthumb/phpThumb.php?src=' . $img_path . '&w=' . $thumb_w . '&h=' . $thumb_h; } $upload_path_var = 'fc_upload_path_' . $fieldid . '_' . $u_item_id; $app->setUserState($upload_path_var, $img_folder); //echo $upload_path_var . "<br>"; //echo $app->getUserState( $upload_path_var, 'noset' ); $pagination = $this->get('Pagination'); //$users = $this->get('Users'); // Get item using at least one file (-of- the currently listed files) /*$items_single = $model->getItemsSingleprop( array('file','minigallery') ); $items_multi = $model->getItemsMultiprop ( $field_props=array('image'=>'originalname'), $value_props=array('image'=>'filename') ); $items = array(); foreach ($items_single as $item_id => $_item) $items[$item_id] = $_item; foreach ($items_multi as $item_id => $_item) $items[$item_id] = $_item; ksort($items);*/ $fname = $model->getFieldName($fieldid); $files_selected = $model->getItemFiles($u_item_id); $formfieldname = FLEXI_J16GE ? 'custom[' . $fname . '][]' : $fname . '[]'; //add js to document if ($folder_mode) { $js = "\n\t\t\t\n\t\t\twindow.addEvent('domready', function() {\n\n\t\t function closest (obj, el) {\n\t\t var find = obj.getElement(el);\n\t\t var self = obj;\n\t\t \n\t\t while (self && !find) {\n\t\t self = self.getParent();\n\t\t find = self ? self.getElement(el) : null;\n\t\t }\n\t\t return find;\n\t\t }\n\n\t\t\t\tvar delfilename = '" . $delfilename . "';\n\t\t\t\tvar remove_existing_files_from_list = 0;\n\t\t\t\tvar remove_new_files_from_list = 0;\n\t\t\t\toriginal_objs = \$(window.parent.document.body).getElement('#container_fcfield_" . $fieldid . "').getElements('.originalname');\n\t\t\t\texisting_objs = \$(window.parent.document.body).getElement('#container_fcfield_" . $fieldid . "').getElements('.existingname');\n\t\t\t\t\n\t\t\t\tvar imgobjs = Array();\n\t\t\t\tfor(i=0,n=original_objs.length; i<n; i++) {\n\t\t\t\t\tif (original_objs[i].value) imgobjs.push(original_objs[i].value);\n\t\t\t\t\tif ( delfilename!='' && original_objs[i].value == delfilename)\n\t\t\t\t\t{\n\t\t\t\t\t\twindow.parent.deleteField" . $fieldid . "( original_objs[i].getParent() );\n\t\t\t\t\t\tremove_existing_files_from_list = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor(i=0,n=existing_objs.length; i<n; i++) {\n\t\t\t\t\tif ( existing_objs[i].value) imgobjs.push(existing_objs[i].value);\n\t\t\t\t\tif ( delfilename!='' && existing_objs[i].value == delfilename)\n\t\t\t\t\t{\n\t\t\t\t\t\twindow.parent.deleteField" . $fieldid . "(\n\t\t\t\t\t\t\t(MooTools.version>='1.2.4') ? existing_objs[i].getParent('.img_value_props') : closest (existing_objs[i] , '.img_value_props')\n\t\t\t\t\t\t);\n\t\t\t\t\t\tremove_new_files_from_list = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif ( remove_existing_files_from_list || remove_new_files_from_list ) {\n\t\t\t\t\tmssg = '" . JText::_('FLEXI_DELETE_FILE_IN_LIST_WINDOW_MUST_CLOSE') . "';\n\t\t\t\t\tmssg = mssg + '\\n' + (remove_existing_files_from_list ? '" . JText::_('FLEXI_EXISTING_FILE_REMOVED_SAVE_RECOMMENEDED', true) . "' : '');\n\t\t\t\t\talert( mssg );\n\t\t\t\t\t(MooTools.version>='1.2.4') ? window.parent.SqueezeBox.close() : window.parent.document.getElementById('sbox-window').close();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor(i=0,n=imgobjs.length; i<n; i++) {\n\t\t\t\t\tvar rows = \$(document.body).getElements('a[rel='+ imgobjs[i] +']');\n\t\t\t\t\trows.addClass('striketext');\n\t\t\t\t\t\n\t\t\t\t\t//if( (typeof rows) != 'undefined' && rows != null) {\n\t\t\t\t\t\t//alert(rows[0]);\n\t\t\t\t\t\t//row.className = 'striketext';\n\t\t\t\t\t//}\n\t\t\t\t}\n\t\t\t\t" . ($autoassign && $newfilename ? "window.parent.qmAssignFile" . $fieldid . "('" . $targetid . "', '" . $newfilename . "', '" . $thumb . "');" : "") . "\n\t\t\t});\n\t\t\t"; } else { $js = "\n\t\t\tfunction qffileselementadd(obj, id, file) {\n\t\t\t\tvar result = window.parent.qfSelectFile" . $fieldid . "(id, file);\n\t\t\t\tif ((typeof result) != 'undefined' && result == 'cancel') return;\n\t\t\t\tobj.className = 'striketext';\n\t\t\t\tdocument.adminForm.file.value=id;\n\t\t\t}\n\t\t\twindow.addEvent('domready', function() {\n\t\t\t\tfileobjs = window.parent.document.getElementsByName('{$formfieldname}');\n\t\t\t\tfor(i=0,n=fileobjs.length; i<n; i++) {\n\t\t\t\t\trow = document.getElementById('file'+fileobjs[i].value);\n\t\t\t\t\tif( (typeof row) != 'undefined' && row != null) {\n\t\t\t\t\t\trow.className = 'striketext';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t" . ($autoselect && $newfileid ? "qffileselementadd( document.getElementById('file" . $newfileid . "'), '" . $newfileid . "', '" . $newfilename . "');" : "") . "\n\t\t\t});\n\t\t\t"; } $document->addScriptDeclaration($js); if ($autoselect && $newfileid) { $app->enqueueMessage(JText::_('FLEXI_UPLOADED_FILE_WAS_SELECTED'), 'message'); } /***************** ** BUILD LISTS ** *****************/ $lists = array(); // ** FILE UPLOAD FORM ** // Build languages list //$allowed_langs = !$authorparams ? null : $authorparams->get('langs_allowed',null); //$allowed_langs = !$allowed_langs ? null : FLEXIUtilities::paramToArray($allowed_langs); $display_file_lang_as = $params->get('display_file_lang_as', 3); $allowed_langs = null; if (FLEXI_FISH || FLEXI_J16GE) { $lists['file-lang'] = flexicontent_html::buildlanguageslist('file-lang', '', '*', $display_file_lang_as, $allowed_langs, $published_only = false); } else { $lists['file-lang'] = flexicontent_html::getSiteDefaultLang() . '<input type="hidden" name="file-lang" value="' . flexicontent_html::getSiteDefaultLang() . '" />'; } /************* ** FILTERS ** *************/ // language filter $lists['language'] = flexicontent_html::buildlanguageslist('filter_lang', 'class="use_select2_lib" onchange="submitform();" size="1" ', $filter_lang, 2); // search $lists['search'] = $search; //search filter $filters = array(); $filters[] = JHTML::_('select.option', '1', JText::_('FLEXI_FILENAME')); $filters[] = JHTML::_('select.option', '2', JText::_('FLEXI_FILE_TITLE')); $lists['filter'] = JHTML::_('select.genericlist', $filters, 'filter', 'size="1" class="use_select2_lib"', 'value', 'text', $filter); //build url/file filterlist $url = array(); $url[] = JHTML::_('select.option', '', '- ' . JText::_('FLEXI_ALL_FILES') . ' -'); $url[] = JHTML::_('select.option', 'F', JText::_('FLEXI_FILE')); $url[] = JHTML::_('select.option', 'U', JText::_('FLEXI_URL')); $lists['url'] = JHTML::_('select.genericlist', $url, 'filter_url', 'class="use_select2_lib" size="1" onchange="submitform( );"', 'value', 'text', $filter_url); //item lists /*$items_list = array(); $items_list[] = JHTML::_('select.option', '', '- '. JText::_( 'FLEXI_FILTER_BY_ITEM' ) .' -' ); foreach($items as $item) { $items_list[] = JHTML::_('select.option', $item->id, JText::_( $item->title ) . ' (#' . $item->id . ')' ); } $lists['item_id'] = JHTML::_('select.genericlist', $items_list, 'item_id', 'size="1" class="use_select2_lib" onchange="submitform( );"', 'value', 'text', $filter_item );*/ $lists['item_id'] = '<input type="text" name="item_id" size="1" class="inputbox" onchange="submitform( );" value="' . $filter_item . '" />'; //build secure/media filterlist $secure = array(); $secure[] = JHTML::_('select.option', '', '- ' . JText::_('FLEXI_ALL_DIRECTORIES') . ' -'); $secure[] = JHTML::_('select.option', 'S', JText::_('FLEXI_SECURE_DIR')); $secure[] = JHTML::_('select.option', 'M', JText::_('FLEXI_MEDIA_DIR')); $lists['secure'] = JHTML::_('select.genericlist', $secure, 'filter_secure', 'class="use_select2_lib" size="1" onchange="submitform( );"', 'value', 'text', $filter_secure); //build ext filterlist $lists['ext'] = flexicontent_html::buildfilesextlist('filter_ext', 'class="use_select2_lib" size="1" onchange="submitform( );"', $filter_ext); //build uploader filterlist $lists['uploader'] = flexicontent_html::builduploaderlist('filter_uploader', 'class="use_select2_lib" size="1" onchange="submitform( );"', $filter_uploader); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // removed files $filelist = JRequest::getString('files'); $file = JRequest::getInt('file'); $filelist = explode(',', $filelist); $files = array(); foreach ($filelist as $fileid) { if ($fileid && $fileid != $file) { $files[] = (int) $fileid; } } $files = implode(',', $files); if (strlen($files) > 0) { $files .= ','; } $files .= $file; //assign data to template $this->assignRef('params', $params); $this->assignRef('client', $client); //Load pane behavior if (!FLEXI_J16GE) { jimport('joomla.html.pane'); $pane = JPane::getInstance('Tabs'); $this->assignRef('pane', $pane); } $this->assignRef('lists', $lists); $this->assignRef('rows', $rows); $this->assignRef('folder_mode', $folder_mode); $this->assignRef('img_folder', $img_folder); $this->assignRef('thumb_w', $thumb_w); $this->assignRef('thumb_h', $thumb_h); $this->assignRef('pagination', $pagination); $this->assignRef('files', $files); $this->assignRef('fieldid', $fieldid); $this->assignRef('u_item_id', $u_item_id); $this->assignRef('targetid', $targetid); $this->assignRef('CanFiles', $perms->CanFiles); $this->assignRef('CanUpload', $perms->CanUpload); $this->assignRef('CanViewAllFiles', $perms->CanViewAllFiles); $this->assignRef('files_selected', $files_selected); $this->assignRef('langs', $langs); parent::display($tpl); }
/** * Creates the Fileselement view * * @since 1.0 */ function display($tpl = null) { // Check for request forgeries JRequest::checkToken('request') or jexit('Invalid Token'); //initialise variables $app = JFactory::getApplication(); $document = JFactory::getDocument(); $option = JRequest::getCmd('option'); $view = JRequest::getVar('view'); $layout = JRequest::getVar('layout', 'default'); $db = JFactory::getDBO(); $user = JFactory::getUser(); $cparams = JComponentHelper::getParams('com_flexicontent'); //$authorparams = flexicontent_db::getUserConfig($user->id); $langs = FLEXIUtilities::getLanguages('code'); $fieldid = JRequest::getVar('field', null, 'request', 'int'); $client = $app->isAdmin() ? '../' : ''; flexicontent_html::loadJQuery(); flexicontent_html::loadFramework('select2'); JHTML::_('behavior.tooltip'); // Load the form validation behavior JHTML::_('behavior.formvalidation'); // Get filters $_view = $view . $fieldid; $folder_mode = $app->getUserStateFromRequest($option . '.' . $_view . '.folder_mode', 'folder_mode', 0, 'int'); // Get User's Global Permissions $perms = FlexicontentHelperPerm::getPerm(); // Get model $model = $this->getModel(); $count_filters = 0; $filter_order = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_order', 'filter_order', 'f.filename', 'cmd'); $filter_order_Dir = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_order_Dir', 'filter_order_Dir', '', 'word'); $filter_lang = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_lang', 'filter_lang', '', 'string'); $filter_url = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_url', 'filter_url', '', 'word'); $filter_secure = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_secure', 'filter_secure', '', 'word'); $target_dir = 2; if (!$folder_mode) { $field_params = $model->getFieldParams(); $target_dir = $field_params->get('target_dir', ''); // Clear secure/media filter if field is not configured to use specific if (!strlen($target_dir) || $target_dir != 2) { $filter_secure = ''; } } $filter_ext = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_ext', 'filter_ext', '', 'alnum'); $filter_uploader = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_uploader', 'filter_uploader', '', 'int'); $filter_item = $app->getUserStateFromRequest($option . '.' . $_view . '.item_id', 'item_id', '', 'int'); if ($layout != 'image') { if ($filter_lang) { $count_filters++; } if ($filter_url) { $count_filters++; } if ($filter_secure) { $count_filters++; } } if ($filter_ext) { $count_filters++; } //if ($perms->CanViewAllFiles && $filter_uploader) $count_filters++; if ($filter_item) { $count_filters++; } $u_item_id = $app->getUserStateFromRequest($option . '.' . $_view . '.u_item_id', 'u_item_id', 0, 'string'); //if ($u_item_id && (int)$u_item_id = $u_item_id) $filter_item = $u_item_id; // DO NOT SET it prevents listing and selecting files !! if (!$u_item_id && $filter_item) { $u_item_id = $filter_item; } $autoselect = $app->getUserStateFromRequest($option . '.' . $_view . '.autoselect', 'autoselect', 0, 'int'); $autoassign = $app->getUserStateFromRequest($option . '.' . $_view . '.autoassign', 'autoassign', 0, 'int'); $folder_param = $app->getUserStateFromRequest($option . '.' . $_view . '.folder_param', 'folder_param', 'dir', 'string'); $append_item = $app->getUserStateFromRequest($option . '.' . $_view . '.append_item', 'append_item', 1, 'int'); $append_field = $app->getUserStateFromRequest($option . '.' . $_view . '.append_field', 'append_field', 1, 'int'); $targetid = $app->getUserStateFromRequest($option . '.' . $_view . '.targetid', 'targetid', '', 'string'); $thumb_w = $app->getUserStateFromRequest($option . '.' . $_view . '.thumb_w', 'thumb_w', 120, 'int'); $thumb_h = $app->getUserStateFromRequest($option . '.' . $_view . '.thumb_h', 'thumb_h', 90, 'int'); $scope = $app->getUserStateFromRequest($option . '.' . $_view . '.scope', 'scope', 1, 'int'); $search = $app->getUserStateFromRequest($option . '.' . $_view . '.search', 'search', '', 'string'); $search = $db->escape(trim(JString::strtolower($search))); $filter_uploader = $filter_uploader ? $filter_uploader : ''; $filter_item = $filter_item ? $filter_item : ''; $newfileid = JRequest::getInt('newfileid'); $newfilename = base64_decode(JRequest::getVar('newfilename', '')); $delfilename = base64_decode(JRequest::getVar('delfilename', '')); // Add custom css and js to document if ($app->isSite()) { $document->addStyleSheet(JURI::base(true) . '/components/com_flexicontent/assets/css/flexicontent.css'); } else { $document->addStyleSheet(JURI::base(true) . '/components/com_flexicontent/assets/css/flexicontentbackend.css'); } if (FLEXI_J30GE) { $document->addStyleSheet(JURI::base(true) . '/components/com_flexicontent/assets/css/j3x.css'); } else { if (FLEXI_J16GE) { $document->addStyleSheet(JURI::base(true) . '/components/com_flexicontent/assets/css/j25.css'); } } // This is not included automatically in frontend JFactory::getDocument()->addScript(JURI::root(true) . '/components/com_flexicontent/assets/js/flexi-lib.js'); // Include backend CSS template CSS file , access to backend folder may not be allowed but ... //$template = $app->isSite() ? (!FLEXI_J16GE ? 'khepri' : (FLEXI_J30GE ? 'hathor' : 'bluestork')) : $app->getTemplate(); //$document->addStyleSheet(JURI::base(true).'/templates/'.$template.(FLEXI_J16GE ? '/css/template.css': '/css/general.css')); //a trick to avoid loosing general style in modal window $css = 'body, td, th { font-size: 11px; } a.striketext { text-decoration: line-through; color:red; font-style:italic; } '; $document->addStyleDeclaration($css); // Create document/toolbar titles $doc_title = JText::_('FLEXI_FILE'); $site_title = $document->getTitle(); $document->setTitle($doc_title . ' - ' . $site_title); // *********************** // Get data from the model // *********************** if (!$folder_mode) { $rows = $this->get('Data'); $img_folder = ''; } else { $exts = $cparams->get('upload_extensions', 'bmp,csv,doc,gif,ico,jpg,jpeg,odg,odp,ods,odt,pdf,png,ppt,swf,txt,xcf,xls,zip,ics'); $rows = $model->getFilesFromPath($u_item_id, $fieldid, $append_item, $append_field, $folder_param, $exts); $img_folder = $model->getFieldFolderPath($u_item_id, $fieldid, $append_item, $append_field, $folder_param); $img_path = str_replace('\\', '/', $img_folder . DS . $newfilename); $thumb = JURI::root() . 'components/com_flexicontent/librairies/phpthumb/phpThumb.php?src=' . $img_path . '&w=' . $thumb_w . '&h=' . $thumb_h; } $upload_path_var = 'fc_upload_path_' . $fieldid . '_' . $u_item_id; $app->setUserState($upload_path_var, $img_folder); //echo $upload_path_var . "<br>"; //echo $app->getUserState( $upload_path_var, 'noset' ); $pagination = $this->get('Pagination'); //$users = $this->get('Users'); // Get item using at least one file (-of- the currently listed files) /*$items_single = $model->getItemsSingleprop( array('file','minigallery') ); $items_multi = $model->getItemsMultiprop ( $field_props=array('image'=>'originalname'), $value_props=array('image'=>'filename') ); $items = array(); foreach ($items_single as $item_id => $_item) $items[$item_id] = $_item; foreach ($items_multi as $item_id => $_item) $items[$item_id] = $_item; ksort($items);*/ $fname = $model->getFieldName($fieldid); $files_selected = $model->getItemFiles($u_item_id); $formfieldname = FLEXI_J16GE ? 'custom[' . $fname . '][]' : $fname . '[]'; //add js to document if ($folder_mode) { $js = "\n\t\t\tjQuery(document).ready(function()\n\t\t\t{\n\t\t\t\tvar delfilename = '" . $delfilename . "';\n\t\t\t\tvar remove_existing_files_from_list = 0;\n\t\t\t\tvar remove_new_files_from_list = 0;\n\t\t\t\t\n\t\t\t\t// Find and mark file usage by filename search\n\t\t\t\tvar original_objs = jQuery(window.parent.document.body).find('.fcfieldval_container_" . $fieldid . " .originalname');\n\t\t\t\tvar existing_objs = jQuery(window.parent.document.body).find('.fcfieldval_container_" . $fieldid . " .existingname');\n\t\t\t\t\n\t\t\t\tvar imgobjs = Array();\n\t\t\t\tfor(i=0,n=original_objs.length; i<n; i++) {\n\t\t\t\t\tif (original_objs[i].value) imgobjs.push(original_objs[i].value);\n\t\t\t\t\tif (delfilename!='' && original_objs[i].value == delfilename)\n\t\t\t\t\t{\n\t\t\t\t\t\twindow.parent.qmAssignFile" . $fieldid . "('" . $targetid . "', '', '', '1');\n\t\t\t\t\t\tremove_existing_files_from_list = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor(i=0,n=existing_objs.length; i<n; i++) {\n\t\t\t\t\tif (existing_objs[i].value) imgobjs.push(existing_objs[i].value);\n\t\t\t\t\tif (delfilename!='' && existing_objs[i].value == delfilename)\n\t\t\t\t\t{\n\t\t\t\t\t\twindow.parent.qmAssignFile" . $fieldid . "('" . $targetid . "', '', '', '1');\n\t\t\t\t\t\tremove_new_files_from_list = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif ( remove_existing_files_from_list || remove_new_files_from_list ) {\n\t\t\t\t\tmssg = '" . JText::_('FLEXI_DELETE_FILE_IN_LIST_WINDOW_MUST_CLOSE') . "';\n\t\t\t\t\tmssg = mssg + '\\n' + (remove_existing_files_from_list ? '" . JText::_('FLEXI_EXISTING_FILE_REMOVED_SAVE_RECOMMENEDED', true) . "' : '');\n\t\t\t\t\talert( mssg );\n\t\t\t\t\twindow.parent.qmAssignFile" . $fieldid . "('" . $targetid . "', '', '', '2');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor(i=0,n=imgobjs.length; i<n; i++) {\n\t\t\t\t\tvar rows = jQuery.find('a[data-filename=\"'+ imgobjs[i] +'\"]');\n\t\t\t\t\tjQuery(rows).addClass('striketext');\n\t\t\t\t}\n\t\t\t\t" . ($autoassign && $newfilename ? "window.parent.qmAssignFile" . $fieldid . "('" . $targetid . "', '" . $newfilename . "', '" . $thumb . "');" : "") . "\n\t\t\t});\n\t\t\t"; } else { $js = "\n\t\t\tfunction qffileselementadd(obj, id, file) {\n\t\t\t\tvar result = window.parent.qfSelectFile" . $fieldid . "(obj, id, file);\n\t\t\t\tif ((typeof result) != 'undefined' && result == 'cancel') return;\n\t\t\t\tobj.className = 'striketext';\n\t\t\t\tdocument.adminForm.file.value=id;\n\t\t\t}\n\t\t\tjQuery(document).ready(function()\n\t\t\t{\n\t\t\t\t// Find and mark file usage by filename search\n\t\t\t\tvar existing_objs = jQuery(window.parent.document.body).find('.fcfieldval_container_" . $fieldid . " .existingname');\n\t\t\t\tfor(i=0,n=existing_objs.length; i<n; i++) {\n\t\t\t\t\tvar rows = jQuery.find('a[data-filename=\"'+ existing_objs[i].value +'\"]');\n\t\t\t\t\tjQuery(rows).addClass('striketext');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// Find and mark file usage by fileid search\n\t\t\t\tvar id_objs = jQuery(window.parent.document.body).find('.fcfieldval_container_" . $fieldid . " input.contains_fileid');\n\t\t\t\tvar imgids = Array();\n\t\t\t\tfor(i=0,n=id_objs.length; i<n; i++) {\n\t\t\t\t\tif ( id_objs[i].value) imgids.push(id_objs[i].value);\n\t\t\t\t}\n\t\t\t\tfor(i=0,n=imgids.length; i<n; i++) {\n\t\t\t\t\tvar rows = jQuery.find('a[data-fileid=\"'+ imgids[i] +'\"]');\n\t\t\t\t\tjQuery(rows).addClass('striketext');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t" . ($autoselect && $newfileid ? "qffileselementadd( document.getElementById('file" . $newfileid . "'), '" . $newfileid . "', '" . $newfilename . "');" : "") . "\n\t\t\t});\n\t\t\t"; } $document->addScriptDeclaration($js); if ($autoselect && $newfileid) { $app->enqueueMessage(JText::_('FLEXI_UPLOADED_FILE_WAS_SELECTED'), 'message'); } /***************** ** BUILD LISTS ** *****************/ $lists = array(); // ** FILE UPLOAD FORM ** // Build languages list //$allowed_langs = !$authorparams ? null : $authorparams->get('langs_allowed',null); //$allowed_langs = !$allowed_langs ? null : FLEXIUtilities::paramToArray($allowed_langs); $display_file_lang_as = $cparams->get('display_file_lang_as', 3); $allowed_langs = null; $lists['file-lang'] = flexicontent_html::buildlanguageslist('file-lang', '', '*', $display_file_lang_as, $allowed_langs, $published_only = false); /************* ** FILTERS ** *************/ // language filter $lists['language'] = ($filter_lang || 1 ? '<label class="label">' . JText::_('FLEXI_LANGUAGE') . '</label>' : '') . flexicontent_html::buildlanguageslist('filter_lang', 'class="use_select2_lib" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()" size="1" ', $filter_lang, '-'); // search $lists['search'] = $search; //search filter $filters = array(); $filters[] = JHTML::_('select.option', '1', JText::_('FLEXI_FILENAME')); $filters[] = JHTML::_('select.option', '2', JText::_('FLEXI_FILE_DISPLAY_TITLE')); $lists['scope'] = JHTML::_('select.genericlist', $filters, 'scope', 'size="1" class="use_select2_lib fc_skip_highlight" title="' . JText::_('FLEXI_SEARCH_TEXT_INSIDE') . '"', 'value', 'text', $scope); //build url/file filterlist $url = array(); $url[] = JHTML::_('select.option', '', '-'); $url[] = JHTML::_('select.option', 'F', JText::_('FLEXI_FILE')); $url[] = JHTML::_('select.option', 'U', JText::_('FLEXI_URL')); $lists['url'] = ($filter_url || 1 ? '<label class="label">' . JText::_('FLEXI_ALL_FILES') . '</label>' : '') . JHTML::_('select.genericlist', $url, 'filter_url', 'class="use_select2_lib" size="1" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', 'value', 'text', $filter_url); //item lists /*$items_list = array(); $items_list[] = JHTML::_('select.option', '', '- '. JText::_( 'FLEXI_FILTER_BY_ITEM' ) .' -' ); foreach($items as $item) { $items_list[] = JHTML::_('select.option', $item->id, JText::_( $item->title ) . ' (#' . $item->id . ')' ); } $lists['item_id'] = JHTML::_('select.genericlist', $items_list, 'item_id', 'size="1" class="use_select2_lib" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', 'value', 'text', $filter_item );*/ $lists['item_id'] = '<input type="text" name="item_id" size="1" class="inputbox" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()" value="' . $filter_item . '" />'; //build secure/media filterlist $secure = array(); $secure[] = JHTML::_('select.option', '', '-'); $secure[] = JHTML::_('select.option', 'S', JText::_('FLEXI_SECURE_DIR')); $secure[] = JHTML::_('select.option', 'M', JText::_('FLEXI_MEDIA_DIR')); $lists['secure'] = ($filter_secure || 1 ? '<label class="label">' . JText::_('FLEXI_ALL_DIRECTORIES') . '</label>' : '') . JHTML::_('select.genericlist', $secure, 'filter_secure', 'class="use_select2_lib" size="1" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', 'value', 'text', $filter_secure); //build ext filterlist $lists['ext'] = ($filter_ext || 1 ? '<label class="label">' . JText::_('FLEXI_ALL_EXT') . '</label>' : '') . flexicontent_html::buildfilesextlist('filter_ext', 'class="use_select2_lib" size="1" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', $filter_ext, '-'); //build uploader filterlist $lists['uploader'] = ($filter_uploader || 1 ? '<label class="label">' . JText::_('FLEXI_ALL_UPLOADERS') . '</label>' : '') . flexicontent_html::builduploaderlist('filter_uploader', 'class="use_select2_lib" size="1" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', $filter_uploader, '-'); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // removed files $filelist = JRequest::getString('files'); $file = JRequest::getInt('file'); $filelist = explode(',', $filelist); $files = array(); foreach ($filelist as $fileid) { if ($fileid && $fileid != $file) { $files[] = (int) $fileid; } } $files = implode(',', $files); if (strlen($files) > 0) { $files .= ','; } $files .= $file; //assign data to template $this->assignRef('target_dir', $target_dir); $this->assignRef('count_filters', $count_filters); $this->assignRef('params', $cparams); $this->assignRef('client', $client); $this->assignRef('lists', $lists); $this->assignRef('rows', $rows); $this->assignRef('folder_mode', $folder_mode); $this->assignRef('img_folder', $img_folder); $this->assignRef('thumb_w', $thumb_w); $this->assignRef('thumb_h', $thumb_h); $this->assignRef('pagination', $pagination); $this->assignRef('files', $files); $this->assignRef('fieldid', $fieldid); $this->assignRef('u_item_id', $u_item_id); $this->assignRef('targetid', $targetid); $this->assignRef('CanFiles', $perms->CanFiles); $this->assignRef('CanUpload', $perms->CanUpload); $this->assignRef('CanViewAllFiles', $perms->CanViewAllFiles); $this->assignRef('files_selected', $files_selected); $this->assignRef('langs', $langs); $this->assignRef('option', $option); $this->assignRef('view', $view); parent::display($tpl); }
/** * Creates the Filemanager view * * @since 1.0 */ function display($tpl = null) { //initialise variables $app = JFactory::getApplication(); $document = JFactory::getDocument(); $option = JRequest::getCmd('option'); $view = JRequest::getVar('view'); $layout = JRequest::getVar('layout', 'default'); $db = JFactory::getDBO(); $user = JFactory::getUser(); $cparams = JComponentHelper::getParams('com_flexicontent'); //$authorparams = flexicontent_db::getUserConfig($user->id); $langs = FLEXIUtilities::getLanguages('code'); flexicontent_html::loadJQuery(); flexicontent_html::loadFramework('select2'); JHTML::_('behavior.tooltip'); // Load the form validation behavior JHTML::_('behavior.formvalidation'); // Get filters $count_filters = 0; $_view = $view; $filter_order = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_order', 'filter_order', 'f.filename', 'cmd'); $filter_order_Dir = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_order_Dir', 'filter_order_Dir', '', 'word'); $filter_lang = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_lang', 'filter_lang', '', 'string'); $filter_url = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_url', 'filter_url', '', 'word'); $filter_secure = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_secure', 'filter_secure', '', 'word'); $filter_ext = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_ext', 'filter_ext', '', 'alnum'); $filter_uploader = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_uploader', 'filter_uploader', '', 'int'); $filter_item = $app->getUserStateFromRequest($option . '.' . $_view . '.item_id', 'item_id', '', 'int'); if ($layout != 'image') { if ($filter_lang) { $count_filters++; } if ($filter_url) { $count_filters++; } if ($filter_secure) { $count_filters++; } } if ($filter_ext) { $count_filters++; } if ($filter_uploader) { $count_filters++; } if ($filter_item) { $count_filters++; } $scope = $app->getUserStateFromRequest($option . '.' . $_view . '.scope', 'scope', 1, 'int'); $search = $app->getUserStateFromRequest($option . '.' . $_view . '.search', 'search', '', 'string'); $search = $db->escape(trim(JString::strtolower($search))); $filter_uploader = $filter_uploader ? $filter_uploader : ''; $filter_item = $filter_item ? $filter_item : ''; // ************************** // Add css and js to document // ************************** if ($app->isSite()) { $document->addStyleSheet(JURI::base(true) . '/components/com_flexicontent/assets/css/flexicontent.css'); } else { $document->addStyleSheet(JURI::base(true) . '/components/com_flexicontent/assets/css/flexicontentbackend.css'); } if (FLEXI_J30GE) { $document->addStyleSheet(JURI::base(true) . '/components/com_flexicontent/assets/css/j3x.css'); } else { if (FLEXI_J16GE) { $document->addStyleSheet(JURI::base(true) . '/components/com_flexicontent/assets/css/j25.css'); } } // ***************************** // Get user's global permissions // ***************************** $perms = FlexicontentHelperPerm::getPerm(); // ************************ // Create Submenu & Toolbar // ************************ // Create Submenu (and also check access to current view) FLEXISubmenu('CanFiles'); // Create document/toolbar titles $doc_title = JText::_('FLEXI_FILEMANAGER'); $site_title = $document->getTitle(); JToolBarHelper::title($doc_title, 'files'); $document->setTitle($doc_title . ' - ' . $site_title); // Create the toolbar JToolBarHelper::deleteList('Are you sure?', 'filemanager.remove'); if ($perms->CanConfig) { JToolBarHelper::divider(); JToolBarHelper::spacer(); $session = JFactory::getSession(); $fc_screen_width = (int) $session->get('fc_screen_width', 0, 'flexicontent'); $_width = $fc_screen_width && $fc_screen_width - 84 > 940 ? $fc_screen_width - 84 > 1400 ? 1400 : $fc_screen_width - 84 : 940; $fc_screen_height = (int) $session->get('fc_screen_height', 0, 'flexicontent'); $_height = $fc_screen_height && $fc_screen_height - 128 > 550 ? $fc_screen_height - 128 > 1000 ? 1000 : $fc_screen_height - 128 : 550; JToolBarHelper::preferences('com_flexicontent', $_height, $_width, 'Configuration'); } $js = "jQuery(document).ready(function(){"; $toolbar = JToolBar::getInstance('toolbar'); $btn_task = ''; $popup_load_url = JURI::base() . 'index.php?option=com_flexicontent&view=filemanager&layout=indexer&tmpl=component&indexer=fileman_default'; if (FLEXI_J30GE || !FLEXI_J16GE) { // Layout of Popup button broken in J3.1, add in J1.5 it generates duplicate HTML tag id (... just for validation), so add manually $js .= "\n\t\t\t\tjQuery('#toolbar-basicindex a.toolbar, #toolbar-basicindex button')\n\t\t\t\t\t.attr('onclick', 'javascript:;')\n\t\t\t\t\t.attr('href', '" . $popup_load_url . "')\n\t\t\t\t\t.attr('rel', '{handler: \\'iframe\\', size: {x: 500, y: 240}, onClose: function() {}}');\n\t\t\t"; JToolBarHelper::custom($btn_task, 'basicindex.png', 'basicindex_f2.png', 'Index file statistics', false); JHtml::_('behavior.modal', '#toolbar-basicindex a.toolbar, #toolbar-basicindex button'); } else { $toolbar->appendButton('Popup', 'basicindex', 'Index file statistics', str_replace('&', '&', $popup_load_url), 500, 240); } $js .= "});"; $document->addScriptDeclaration($js); // *********************** // Get data from the model // *********************** $folder_mode = 0; $model = $this->getModel(); if (!$folder_mode) { $rows = $this->get('Data'); } else { // TODO MORE ... } $pagination = $this->get('Pagination'); //$users = $this->get('Users'); // Get item using at least one file (-of- the currently listed files) /*$items_single = $model->getItemsSingleprop( array('file','minigallery') ); $items_multi = $model->getItemsMultiprop ( $field_props=array('image'=>'originalname'), $value_props=array('image'=>'filename') ); $items = array(); foreach ($items_single as $item_id => $_item) $items[$item_id] = $_item; foreach ($items_multi as $item_id => $_item) $items[$item_id] = $_item; ksort($items);*/ $assigned_fields_labels = array('image' => 'image/gallery', 'file' => 'file', 'minigallery' => 'minigallery'); $assigned_fields_icons = array('image' => 'picture_link', 'file' => 'page_link', 'minigallery' => 'film_link'); /***************** ** BUILD LISTS ** *****************/ $lists = array(); // ** FILE UPLOAD FORM ** // Build languages list //$allowed_langs = !$authorparams ? null : $authorparams->get('langs_allowed',null); //$allowed_langs = !$allowed_langs ? null : FLEXIUtilities::paramToArray($allowed_langs); $display_file_lang_as = $cparams->get('display_file_lang_as', 3); $allowed_langs = null; $lists['file-lang'] = flexicontent_html::buildlanguageslist('file-lang', '', '*', $display_file_lang_as, $allowed_langs, $published_only = false); /************* ** FILTERS ** *************/ // language filter $lists['language'] = ($filter_lang || 1 ? '<label class="label">' . JText::_('FLEXI_LANGUAGE') . '</label>' : '') . flexicontent_html::buildlanguageslist('filter_lang', 'class="use_select2_lib" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()" size="1" ', $filter_lang, '-'); // search $lists['search'] = $search; //search filter $filters = array(); $filters[] = JHTML::_('select.option', '1', JText::_('FLEXI_FILENAME')); $filters[] = JHTML::_('select.option', '2', JText::_('FLEXI_FILE_DISPLAY_TITLE')); $lists['scope'] = JHTML::_('select.genericlist', $filters, 'scope', 'size="1" class="use_select2_lib fc_skip_highlight" title="' . JText::_('FLEXI_SEARCH_TEXT_INSIDE') . '"', 'value', 'text', $scope); //build url/file filterlist $url = array(); $url[] = JHTML::_('select.option', '', '-'); $url[] = JHTML::_('select.option', 'F', JText::_('FLEXI_FILE')); $url[] = JHTML::_('select.option', 'U', JText::_('FLEXI_URL')); $lists['url'] = ($filter_url || 1 ? '<label class="label">' . JText::_('FLEXI_ALL_FILES') . '</label>' : '') . JHTML::_('select.genericlist', $url, 'filter_url', 'class="use_select2_lib" size="1" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', 'value', 'text', $filter_url); //item lists /*$items_list = array(); $items_list[] = JHTML::_('select.option', '', '- '. JText::_( 'FLEXI_FILTER_BY_ITEM' ) .' -' ); foreach($items as $item) { $items_list[] = JHTML::_('select.option', $item->id, JText::_( $item->title ) . ' (#' . $item->id . ')' ); } $lists['item_id'] = JHTML::_('select.genericlist', $items_list, 'item_id', 'size="1" class="use_select2_lib" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', 'value', 'text', $filter_item );*/ $lists['item_id'] = '<input type="text" name="item_id" size="1" class="inputbox" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()" value="' . $filter_item . '" />'; //build secure/media filterlist $secure = array(); $secure[] = JHTML::_('select.option', '', '-'); $secure[] = JHTML::_('select.option', 'S', JText::_('FLEXI_SECURE_DIR')); $secure[] = JHTML::_('select.option', 'M', JText::_('FLEXI_MEDIA_DIR')); $lists['secure'] = ($filter_secure || 1 ? '<label class="label">' . JText::_('FLEXI_ALL_DIRECTORIES') . '</label>' : '') . JHTML::_('select.genericlist', $secure, 'filter_secure', 'class="use_select2_lib" size="1" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', 'value', 'text', $filter_secure); //build ext filterlist $lists['ext'] = ($filter_ext || 1 ? '<label class="label">' . JText::_('FLEXI_ALL_EXT') . '</label>' : '') . flexicontent_html::buildfilesextlist('filter_ext', 'class="use_select2_lib" size="1" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', $filter_ext, '-'); //build uploader filterlist $lists['uploader'] = ($filter_uploader || 1 ? '<label class="label">' . JText::_('FLEXI_ALL_UPLOADERS') . '</label>' : '') . flexicontent_html::builduploaderlist('filter_uploader', 'class="use_select2_lib" size="1" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', $filter_uploader, '-'); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // uploadstuff if ($cparams->get('enable_flash', 1) && !FLEXI_J30GE) { JHTML::_('behavior.uploader', 'file-upload', array('onAllComplete' => 'function(){ window.location.reload(); }')); } jimport('joomla.client.helper'); $ftp = !JClientHelper::hasCredentials('ftp'); //assign data to template $this->assignRef('count_filters', $count_filters); $this->assignRef('params', $cparams); $this->assign('require_ftp', $ftp); $this->assignRef('lists', $lists); $this->assignRef('rows', $rows); $this->assignRef('folder_mode', $folder_mode); $this->assignRef('pagination', $pagination); $this->assignRef('CanFiles', $perms->CanFiles); $this->assignRef('CanUpload', $perms->CanUpload); $this->assignRef('CanViewAllFiles', $perms->CanViewAllFiles); $this->assignRef('assigned_fields_labels', $assigned_fields_labels); $this->assignRef('assigned_fields_icons', $assigned_fields_icons); $this->assignRef('langs', $langs); $this->assignRef('option', $option); $this->assignRef('view', $view); $this->sidebar = FLEXI_J30GE ? JHtmlSidebar::render() : null; parent::display($tpl); }
/** * Creates the Filemanagerview * * @since 1.0 */ function display($tpl = null) { flexicontent_html::loadJQuery(); flexicontent_html::loadFramework('select2'); JHTML::_('behavior.tooltip'); // Load the form validation behavior JHTML::_('behavior.formvalidation'); //initialise variables $app = JFactory::getApplication(); $option = JRequest::getVar('option'); $document = JFactory::getDocument(); $db = JFactory::getDBO(); $user = JFactory::getUser(); $params = JComponentHelper::getParams('com_flexicontent'); //$authorparams = flexicontent_db::getUserConfig($user->id); $langs = FLEXIUtilities::getLanguages('code'); //get vars $filter_order = $app->getUserStateFromRequest($option . '.filemanager.filter_order', 'filter_order', 'f.filename', 'cmd'); $filter_order_Dir = $app->getUserStateFromRequest($option . '.filemanager.filter_order_Dir', 'filter_order_Dir', '', 'word'); $filter = $app->getUserStateFromRequest($option . '.filemanager.filter', 'filter', 1, 'int'); $filter_lang = $app->getUserStateFromRequest($option . '.filemanager.filter_lang', 'filter_lang', '', 'string'); $filter_uploader = $app->getUserStateFromRequest($option . '.filemanager.filter_uploader', 'filter_uploader', 0, 'int'); $filter_url = $app->getUserStateFromRequest($option . '.filemanager.filter_url', 'filter_url', '', 'word'); $filter_secure = $app->getUserStateFromRequest($option . '.filemanager.filter_secure', 'filter_secure', '', 'word'); $filter_ext = $app->getUserStateFromRequest($option . '.filemanager.filter_ext', 'filter_ext', '', 'alnum'); $search = $app->getUserStateFromRequest($option . '.filemanager.search', 'search', '', 'string'); $filter_item = $app->getUserStateFromRequest($option . '.filemanager.item_id', 'item_id', 0, 'int'); $folder_mode = 0; $search = FLEXI_J16GE ? $db->escape(trim(JString::strtolower($search))) : $db->getEscaped(trim(JString::strtolower($search))); //add css and submenu to document $document->addStyleSheet(JURI::base() . 'components/com_flexicontent/assets/css/flexicontentbackend.css'); if (FLEXI_J30GE) { $document->addStyleSheet(JURI::base() . 'components/com_flexicontent/assets/css/j3x.css'); } else { if (FLEXI_J16GE) { $document->addStyleSheet(JURI::base() . 'components/com_flexicontent/assets/css/j25.css'); } else { $document->addStyleSheet(JURI::base() . 'components/com_flexicontent/assets/css/j15.css'); } } // Get User's Global Permissions $perms = FlexicontentHelperPerm::getPerm(); // ************************** // Create Submenu and toolbar // ************************** FLEXISubmenu('CanFiles'); // Create document/toolbar titles $doc_title = JText::_('FLEXI_FILEMANAGER'); $site_title = $document->getTitle(); JToolBarHelper::title($doc_title, 'files'); $document->setTitle($doc_title . ' - ' . $site_title); // Create the toolbar if (FLEXI_J16GE) { JToolBarHelper::deleteList('Are you sure?', 'filemanager.remove'); } else { JToolBarHelper::deleteList(); } if ($perms->CanConfig) { JToolBarHelper::divider(); JToolBarHelper::spacer(); $session = JFactory::getSession(); $fc_screen_width = (int) $session->get('fc_screen_width', 0, 'flexicontent'); $_width = $fc_screen_width && $fc_screen_width - 84 > 940 ? $fc_screen_width - 84 > 1400 ? 1400 : $fc_screen_width - 84 : 940; $fc_screen_height = (int) $session->get('fc_screen_height', 0, 'flexicontent'); $_height = $fc_screen_height && $fc_screen_height - 128 > 550 ? $fc_screen_height - 128 > 1000 ? 1000 : $fc_screen_height - 128 : 550; JToolBarHelper::preferences('com_flexicontent', $_height, $_width, 'Configuration'); } // *********************** // Get data from the model // *********************** $model = $this->getModel(); if (!$folder_mode) { $rows = $this->get('Data'); } else { // TODO MORE ... } $pagination = $this->get('Pagination'); //$users = $this->get('Users'); // Get item using at least one file (-of- the currently listed files) /*$items_single = $model->getItemsSingleprop( array('file','minigallery') ); $items_multi = $model->getItemsMultiprop ( $field_props=array('image'=>'originalname'), $value_props=array('image'=>'filename') ); $items = array(); foreach ($items_single as $item_id => $_item) $items[$item_id] = $_item; foreach ($items_multi as $item_id => $_item) $items[$item_id] = $_item; ksort($items);*/ $assigned_fields_labels = array('image' => 'image/gallery', 'file' => 'file', 'minigallery' => 'minigallery'); $assigned_fields_icons = array('image' => 'picture_link', 'file' => 'page_link', 'minigallery' => 'film_link'); /***************** ** BUILD LISTS ** *****************/ $lists = array(); // ** FILE UPLOAD FORM ** // Build languages list //$allowed_langs = !$authorparams ? null : $authorparams->get('langs_allowed',null); //$allowed_langs = !$allowed_langs ? null : FLEXIUtilities::paramToArray($allowed_langs); $display_file_lang_as = $params->get('display_file_lang_as', 3); $allowed_langs = null; if (FLEXI_FISH || FLEXI_J16GE) { $lists['file-lang'] = flexicontent_html::buildlanguageslist('file-lang', '', '*', $display_file_lang_as, $allowed_langs, $published_only = false); } else { $lists['file-lang'] = flexicontent_html::getSiteDefaultLang() . '<input type="hidden" name="file-lang" value="' . flexicontent_html::getSiteDefaultLang() . '" />'; } /************* ** FILTERS ** *************/ // language filter $lists['language'] = flexicontent_html::buildlanguageslist('filter_lang', 'class="use_select2_lib" onchange="submitform();" size="1" ', $filter_lang, 2); // search $lists['search'] = $search; //search filter $filters = array(); $filters[] = JHTML::_('select.option', '1', JText::_('FLEXI_FILENAME')); $filters[] = JHTML::_('select.option', '2', JText::_('FLEXI_FILE_TITLE')); $lists['filter'] = JHTML::_('select.genericlist', $filters, 'filter', 'size="1" class="use_select2_lib"', 'value', 'text', $filter); //build url/file filterlist $url = array(); $url[] = JHTML::_('select.option', '', '- ' . JText::_('FLEXI_ALL_FILES') . ' -'); $url[] = JHTML::_('select.option', 'F', JText::_('FLEXI_FILE')); $url[] = JHTML::_('select.option', 'U', JText::_('FLEXI_URL')); $lists['url'] = JHTML::_('select.genericlist', $url, 'filter_url', 'class="use_select2_lib" size="1" onchange="submitform( );"', 'value', 'text', $filter_url); //item lists /*$items_list = array(); $items_list[] = JHTML::_('select.option', '', '- '. JText::_( 'FLEXI_FILTER_BY_ITEM' ) .' -' ); foreach($items as $item) { $items_list[] = JHTML::_('select.option', $item->id, JText::_( $item->title ) . ' (#' . $item->id . ')' ); } $lists['item_id'] = JHTML::_('select.genericlist', $items_list, 'item_id', 'size="1" class="use_select2_lib" onchange="submitform( );"', 'value', 'text', $filter_item );*/ $lists['item_id'] = '<input type="text" name="item_id" size="1" class="inputbox" onchange="submitform( );" value="' . $filter_item . '" />'; //build secure/media filterlist $secure = array(); $secure[] = JHTML::_('select.option', '', '- ' . JText::_('FLEXI_ALL_DIRECTORIES') . ' -'); $secure[] = JHTML::_('select.option', 'S', JText::_('FLEXI_SECURE_DIR')); $secure[] = JHTML::_('select.option', 'M', JText::_('FLEXI_MEDIA_DIR')); $lists['secure'] = JHTML::_('select.genericlist', $secure, 'filter_secure', 'class="use_select2_lib" size="1" onchange="submitform( );"', 'value', 'text', $filter_secure); //build ext filterlist $lists['ext'] = flexicontent_html::buildfilesextlist('filter_ext', 'class="use_select2_lib" size="1" onchange="submitform( );"', $filter_ext); //build uploader filterlist $lists['uploader'] = flexicontent_html::builduploaderlist('filter_uploader', 'class="use_select2_lib" size="1" onchange="submitform( );"', $filter_uploader); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // uploadstuff if ($params->get('enable_flash', 1) && !FLEXI_J30GE) { JHTML::_('behavior.uploader', 'file-upload', array('onAllComplete' => 'function(){ window.location.reload(); }')); } jimport('joomla.client.helper'); $ftp = !JClientHelper::hasCredentials('ftp'); //assign data to template $this->assignRef('params', $params); $this->assign('require_ftp', $ftp); //Load pane behavior if (!FLEXI_J16GE) { jimport('joomla.html.pane'); $pane = JPane::getInstance('Tabs'); $this->assignRef('pane', $pane); } $this->assignRef('lists', $lists); $this->assignRef('rows', $rows); $this->assignRef('pagination', $pagination); $this->assignRef('CanFiles', $perms->CanFiles); $this->assignRef('CanUpload', $perms->CanUpload); $this->assignRef('CanViewAllFiles', $perms->CanViewAllFiles); $this->assignRef('assigned_fields_labels', $assigned_fields_labels); $this->assignRef('assigned_fields_icons', $assigned_fields_icons); $this->assignRef('langs', $langs); parent::display($tpl); }
function display($tpl = null) { // ******************** // Initialise variables // ******************** $app = JFactory::getApplication(); $jinput = $app->input; $layout = $jinput->get('layout', '', 'cmd'); $option = $jinput->get('option', '', 'cmd'); $view = $jinput->get('view', '', 'cmd'); $cparams = JComponentHelper::getParams('com_flexicontent'); $user = JFactory::getUser(); $db = JFactory::getDBO(); $document = JFactory::getDocument(); // Get model $model = $this->getModel(); //$authorparams = flexicontent_db::getUserConfig($user->id); $langs = FLEXIUtilities::getLanguages('code'); flexicontent_html::loadJQuery(); flexicontent_html::loadFramework('select2'); //JHTML::_('behavior.tooltip'); // Load the form validation behavior JHTML::_('behavior.formvalidation'); // Get user's global permissions $perms = FlexicontentHelperPerm::getPerm(); // Get folder mode $_view = $view; $folder_mode = 0; // *********** // Get filters // *********** $count_filters = 0; // Order and order direction $filter_order = $model->getState('filter_order'); $filter_order_Dir = $model->getState('filter_order_Dir'); $filter_lang = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_lang', 'filter_lang', '', 'string'); $filter_url = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_url', 'filter_url', '', 'word'); $filter_secure = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_secure', 'filter_secure', '', 'word'); $filter_ext = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_ext', 'filter_ext', '', 'alnum'); $filter_uploader = $app->getUserStateFromRequest($option . '.' . $_view . '.filter_uploader', 'filter_uploader', '', 'int'); $filter_item = $app->getUserStateFromRequest($option . '.' . $_view . '.item_id', 'item_id', '', 'int'); if ($layout != 'image') { if ($filter_lang) { $count_filters++; } if ($filter_url) { $count_filters++; } if ($filter_secure) { $count_filters++; } } if ($filter_ext) { $count_filters++; } if ($filter_uploader) { $count_filters++; } if ($filter_item) { $count_filters++; } // Text search $scope = $model->getState('scope'); $search = $model->getState('search'); $search = $db->escape(trim(JString::strtolower($search))); $filter_uploader = $filter_uploader ? $filter_uploader : ''; $filter_item = $filter_item ? $filter_item : ''; // ************************** // Add css and js to document // ************************** if ($app->isSite()) { $document->addStyleSheetVersion(JURI::base(true) . '/components/com_flexicontent/assets/css/flexicontent.css', FLEXI_VHASH); } else { $document->addStyleSheetVersion(JURI::base(true) . '/components/com_flexicontent/assets/css/flexicontentbackend.css', FLEXI_VHASH); } $document->addStyleSheetVersion(JURI::base(true) . '/components/com_flexicontent/assets/css/j3x.css', FLEXI_VHASH); $js = "jQuery(document).ready(function(){"; // ************************ // Create Submenu & Toolbar // ************************ // Create Submenu (and also check access to current view) FLEXISubmenu('CanFiles'); // Create document/toolbar titles $doc_title = JText::_('FLEXI_FILEMANAGER'); $site_title = $document->getTitle(); JToolBarHelper::title($doc_title, 'files'); $document->setTitle($doc_title . ' - ' . $site_title); // Create the toolbar $this->setToolbar(); // *********************** // Get data from the model // *********************** if (!$folder_mode) { $rows = $this->get('Data'); } else { // TODO MORE ... } $pagination = $this->get('Pagination'); //$users = $this->get('Users'); // Get item using at least one file (-of- the currently listed files) /*$items_single = $model->getItemsSingleprop( array('file','minigallery') ); $items_multi = $model->getItemsMultiprop ( $field_props=array('image'=>'originalname'), $value_props=array('image'=>'filename') ); $items = array(); foreach ($items_single as $item_id => $_item) $items[$item_id] = $_item; foreach ($items_multi as $item_id => $_item) $items[$item_id] = $_item; ksort($items);*/ $assigned_fields_labels = array('image' => 'image/gallery', 'file' => 'file', 'minigallery' => 'minigallery'); $assigned_fields_icons = array('image' => 'picture_link', 'file' => 'page_link', 'minigallery' => 'film_link'); /***************** ** BUILD LISTS ** *****************/ $lists = array(); // ** FILE UPLOAD FORM ** // Build languages list //$allowed_langs = !$authorparams ? null : $authorparams->get('langs_allowed',null); //$allowed_langs = !$allowed_langs ? null : FLEXIUtilities::paramToArray($allowed_langs); $display_file_lang_as = $cparams->get('display_file_lang_as', 3); $allowed_langs = null; $lists['file-lang'] = flexicontent_html::buildlanguageslist('file-lang', '', '*', $display_file_lang_as, $allowed_langs, $published_only = false); /************* ** FILTERS ** *************/ // language filter $lists['language'] = ($filter_lang || 1 ? '<label class="label">' . JText::_('FLEXI_LANGUAGE') . '</label>' : '') . flexicontent_html::buildlanguageslist('filter_lang', 'class="use_select2_lib" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()" size="1" ', $filter_lang, '-'); // search $lists['search'] = $search; //search filter $filters = array(); $filters[] = JHTML::_('select.option', '0', '- ' . JText::_('FLEXI_ALL') . ' -'); $filters[] = JHTML::_('select.option', '1', JText::_('FLEXI_FILENAME')); $filters[] = JHTML::_('select.option', '2', JText::_('FLEXI_FILE_DISPLAY_TITLE')); $filters[] = JHTML::_('select.option', '3', JText::_('FLEXI_DESCRIPTION')); $lists['scope'] = ' <span class="hasTooltip" style="display:inline-block; padding:0; margin:0;" title="' . JText::_('FLEXI_SEARCH_TEXT_INSIDE') . '"><i class="icon-info"></i></span> ' . JHTML::_('select.genericlist', $filters, 'scope', 'size="1" class="use_select2_lib fc_skip_highlight" onchange="jQuery(\'#search\').attr(\'placeholder\', jQuery(this).find(\'option:selected\').text());" ', 'value', 'text', $scope); //build url/file filterlist $url = array(); $url[] = JHTML::_('select.option', '', '-'); $url[] = JHTML::_('select.option', 'F', JText::_('FLEXI_FILE')); $url[] = JHTML::_('select.option', 'U', JText::_('FLEXI_URL')); $lists['url'] = ($filter_url || 1 ? '<label class="label">' . JText::_('FLEXI_ALL_FILES') . '</label>' : '') . JHTML::_('select.genericlist', $url, 'filter_url', 'class="use_select2_lib" size="1" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', 'value', 'text', $filter_url); //item lists /*$items_list = array(); $items_list[] = JHTML::_('select.option', '', '- '. JText::_( 'FLEXI_FILTER_BY_ITEM' ) .' -' ); foreach($items as $item) { $items_list[] = JHTML::_('select.option', $item->id, JText::_( $item->title ) . ' (#' . $item->id . ')' ); } $lists['item_id'] = JHTML::_('select.genericlist', $items_list, 'item_id', 'size="1" class="use_select2_lib" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', 'value', 'text', $filter_item );*/ $lists['item_id'] = '<input type="text" name="item_id" size="1" class="inputbox" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()" value="' . $filter_item . '" />'; //build secure/media filterlist $secure = array(); $secure[] = JHTML::_('select.option', '', '-'); $secure[] = JHTML::_('select.option', 'S', JText::_('FLEXI_SECURE_DIR')); $secure[] = JHTML::_('select.option', 'M', JText::_('FLEXI_MEDIA_DIR')); $lists['secure'] = ($filter_secure || 1 ? '<label class="label">' . JText::_('FLEXI_ALL_DIRECTORIES') . '</label>' : '') . JHTML::_('select.genericlist', $secure, 'filter_secure', 'class="use_select2_lib" size="1" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', 'value', 'text', $filter_secure); //build ext filterlist $lists['ext'] = ($filter_ext || 1 ? '<label class="label">' . JText::_('FLEXI_ALL_EXT') . '</label>' : '') . flexicontent_html::buildfilesextlist('filter_ext', 'class="use_select2_lib" size="1" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', $filter_ext, '-'); //build uploader filterlist $lists['uploader'] = ($filter_uploader || 1 ? '<label class="label">' . JText::_('FLEXI_ALL_UPLOADERS') . '</label>' : '') . flexicontent_html::builduploaderlist('filter_uploader', 'class="use_select2_lib" size="1" onchange="document.adminForm.limitstart.value=0; Joomla.submitform()"', $filter_uploader, '-'); // table ordering $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; // uploadstuff if ($cparams->get('enable_flash', 1) && !FLEXI_J30GE) { JHTML::_('behavior.uploader', 'file-upload', array('onAllComplete' => 'function(){ window.location.reload(); }')); } jimport('joomla.client.helper'); $ftp = !JClientHelper::hasCredentials('ftp'); //assign data to template $this->assignRef('count_filters', $count_filters); $this->assignRef('params', $cparams); $this->assign('require_ftp', $ftp); $this->assignRef('lists', $lists); $this->assignRef('rows', $rows); $this->assignRef('folder_mode', $folder_mode); $this->assignRef('pagination', $pagination); $this->assignRef('CanFiles', $perms->CanFiles); $this->assignRef('CanUpload', $perms->CanUpload); $this->assignRef('CanViewAllFiles', $perms->CanViewAllFiles); $this->assignRef('assigned_fields_labels', $assigned_fields_labels); $this->assignRef('assigned_fields_icons', $assigned_fields_icons); $this->assignRef('langs', $langs); $this->assignRef('option', $option); $this->assignRef('view', $view); $this->sidebar = FLEXI_J30GE ? JHtmlSidebar::render() : null; parent::display($tpl); }