2012-12-14 07:53:13 +00:00
|
|
|
|
<?php
|
|
|
|
|
/**
|
|
|
|
|
* Implementation of ViewFolder view
|
|
|
|
|
*
|
|
|
|
|
* @category DMS
|
2013-02-14 11:10:53 +00:00
|
|
|
|
* @package SeedDMS
|
2012-12-14 07:53:13 +00:00
|
|
|
|
* @license GPL 2
|
|
|
|
|
* @version @version@
|
|
|
|
|
* @author Uwe Steinmann <uwe@steinmann.cx>
|
|
|
|
|
* @copyright Copyright (C) 2002-2005 Markus Westphal,
|
|
|
|
|
* 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli,
|
|
|
|
|
* 2010-2012 Uwe Steinmann
|
|
|
|
|
* @version Release: @package_version@
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Include parent class
|
|
|
|
|
*/
|
2021-04-15 08:33:29 +00:00
|
|
|
|
//require_once("class.Bootstrap.php");
|
2012-12-14 07:53:13 +00:00
|
|
|
|
|
2016-04-26 11:43:02 +00:00
|
|
|
|
/**
|
|
|
|
|
* Include class to preview documents
|
|
|
|
|
*/
|
|
|
|
|
require_once("SeedDMS/Preview.php");
|
|
|
|
|
|
2012-12-14 07:53:13 +00:00
|
|
|
|
/**
|
|
|
|
|
* Class which outputs the html page for ViewFolder view
|
|
|
|
|
*
|
|
|
|
|
* @category DMS
|
2013-02-14 11:10:53 +00:00
|
|
|
|
* @package SeedDMS
|
2012-12-14 07:53:13 +00:00
|
|
|
|
* @author Markus Westphal, Malcolm Cowe, Uwe Steinmann <uwe@steinmann.cx>
|
|
|
|
|
* @copyright Copyright (C) 2002-2005 Markus Westphal,
|
|
|
|
|
* 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli,
|
|
|
|
|
* 2010-2012 Uwe Steinmann
|
|
|
|
|
* @version Release: @package_version@
|
|
|
|
|
*/
|
2021-04-15 08:33:29 +00:00
|
|
|
|
class SeedDMS_View_ViewFolder extends SeedDMS_Theme_Style {
|
2012-12-14 07:53:13 +00:00
|
|
|
|
|
2021-04-23 04:54:43 +00:00
|
|
|
|
/**
|
|
|
|
|
* set a different name which is used to specify the hooks.
|
|
|
|
|
*/
|
|
|
|
|
//public $viewAliasName = '';
|
|
|
|
|
|
2019-11-07 18:55:55 +00:00
|
|
|
|
function data() { /* {{{ */
|
|
|
|
|
$dms = $this->params['dms'];
|
|
|
|
|
$user = $this->params['user'];
|
|
|
|
|
$folder = $this->params['folder'];
|
|
|
|
|
|
|
|
|
|
$jsondata = array('name'=>$folder->getName());
|
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
|
echo json_encode($jsondata);
|
|
|
|
|
} /* }}} */
|
|
|
|
|
|
2013-02-06 13:58:36 +00:00
|
|
|
|
function getAccessModeText($defMode) { /* {{{ */
|
|
|
|
|
switch($defMode) {
|
|
|
|
|
case M_NONE:
|
|
|
|
|
return getMLText("access_mode_none");
|
|
|
|
|
break;
|
|
|
|
|
case M_READ:
|
|
|
|
|
return getMLText("access_mode_read");
|
|
|
|
|
break;
|
|
|
|
|
case M_READWRITE:
|
|
|
|
|
return getMLText("access_mode_readwrite");
|
|
|
|
|
break;
|
|
|
|
|
case M_ALL:
|
|
|
|
|
return getMLText("access_mode_all");
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} /* }}} */
|
|
|
|
|
|
|
|
|
|
function printAccessList($obj) { /* {{{ */
|
|
|
|
|
$accessList = $obj->getAccessList();
|
|
|
|
|
if (count($accessList["users"]) == 0 && count($accessList["groups"]) == 0)
|
|
|
|
|
return;
|
|
|
|
|
|
2017-01-12 16:26:55 +00:00
|
|
|
|
$content = '';
|
2013-02-06 13:58:36 +00:00
|
|
|
|
for ($i = 0; $i < count($accessList["groups"]); $i++)
|
|
|
|
|
{
|
|
|
|
|
$group = $accessList["groups"][$i]->getGroup();
|
|
|
|
|
$accesstext = $this->getAccessModeText($accessList["groups"][$i]->getMode());
|
2017-01-12 16:26:55 +00:00
|
|
|
|
$content .= $accesstext.": ".htmlspecialchars($group->getName());
|
2013-02-06 13:58:36 +00:00
|
|
|
|
if ($i+1 < count($accessList["groups"]) || count($accessList["users"]) > 0)
|
2017-01-12 16:26:55 +00:00
|
|
|
|
$content .= "<br />";
|
2013-02-06 13:58:36 +00:00
|
|
|
|
}
|
|
|
|
|
for ($i = 0; $i < count($accessList["users"]); $i++)
|
|
|
|
|
{
|
|
|
|
|
$user = $accessList["users"][$i]->getUser();
|
|
|
|
|
$accesstext = $this->getAccessModeText($accessList["users"][$i]->getMode());
|
2017-01-12 16:26:55 +00:00
|
|
|
|
$content .= $accesstext.": ".htmlspecialchars($user->getFullName());
|
2013-02-06 13:58:36 +00:00
|
|
|
|
if ($i+1 < count($accessList["users"]))
|
2017-01-12 16:26:55 +00:00
|
|
|
|
$content .= "<br />";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(count($accessList["groups"]) + count($accessList["users"]) > 3) {
|
|
|
|
|
$this->printPopupBox(getMLText('list_access_rights'), $content);
|
|
|
|
|
} else {
|
|
|
|
|
echo $content;
|
2013-02-06 13:58:36 +00:00
|
|
|
|
}
|
|
|
|
|
} /* }}} */
|
|
|
|
|
|
2021-07-12 17:44:25 +00:00
|
|
|
|
/**
|
|
|
|
|
* Output a single attribute in the document info section
|
|
|
|
|
*
|
|
|
|
|
* @param object $attribute attribute
|
|
|
|
|
*/
|
|
|
|
|
protected function printAttribute($attribute) { /* {{{ */
|
|
|
|
|
$attrdef = $attribute->getAttributeDefinition();
|
|
|
|
|
?>
|
|
|
|
|
<tr>
|
|
|
|
|
<td><?php echo htmlspecialchars($attrdef->getName()); ?>:</td>
|
|
|
|
|
<td><?php echo $this->getAttributeValue($attribute); ?></td>
|
|
|
|
|
</tr>
|
|
|
|
|
<?php
|
|
|
|
|
} /* }}} */
|
|
|
|
|
|
2019-08-08 07:32:42 +00:00
|
|
|
|
public function subtree() { /* {{{ */
|
|
|
|
|
$user = $this->params['user'];
|
|
|
|
|
$node = $this->params['node'];
|
|
|
|
|
$orderby = $this->params['orderby'];
|
|
|
|
|
|
|
|
|
|
$this->printNewTreeNavigationSubtree($node->getID(), 0, $orderby);
|
|
|
|
|
} /* }}} */
|
|
|
|
|
|
|
|
|
|
public function js() { /* {{{ */
|
2015-12-11 19:29:52 +00:00
|
|
|
|
$user = $this->params['user'];
|
|
|
|
|
$folder = $this->params['folder'];
|
|
|
|
|
$orderby = $this->params['orderby'];
|
2019-06-24 09:54:08 +00:00
|
|
|
|
$orderdir = (isset($orderby[1]) ? ($orderby[1] == 'd' ? 'desc' : 'asc') : 'asc');
|
2015-12-11 19:29:52 +00:00
|
|
|
|
$expandFolderTree = $this->params['expandFolderTree'];
|
|
|
|
|
$enableDropUpload = $this->params['enableDropUpload'];
|
2018-07-04 13:49:07 +00:00
|
|
|
|
$maxItemsPerPage = $this->params['maxItemsPerPage'];
|
2020-05-07 12:03:00 +00:00
|
|
|
|
$maxuploadsize = $this->params['maxuploadsize'];
|
2019-02-05 06:35:20 +00:00
|
|
|
|
$showtree = $this->params['showtree'];
|
2019-09-11 15:44:40 +00:00
|
|
|
|
$onepage = $this->params['onepage'];
|
2019-10-16 07:50:54 +00:00
|
|
|
|
$sitename = trim(strip_tags($this->params['sitename']));
|
2015-12-11 19:29:52 +00:00
|
|
|
|
|
2016-03-08 09:40:01 +00:00
|
|
|
|
header('Content-Type: application/javascript; charset=UTF-8');
|
2019-07-11 15:18:03 +00:00
|
|
|
|
parent::jsTranslations(array('cancel', 'splash_move_document', 'confirm_move_document', 'move_document', 'confirm_transfer_link_document', 'transfer_content', 'link_document', 'splash_move_folder', 'confirm_move_folder', 'move_folder'));
|
2015-12-11 19:29:52 +00:00
|
|
|
|
?>
|
2019-09-05 10:53:45 +00:00
|
|
|
|
seeddms_folder = <?= $folder->getID() ?>;
|
2020-08-28 09:54:12 +00:00
|
|
|
|
function folderSelectedmaintree(id, name) {
|
2019-09-11 15:44:40 +00:00
|
|
|
|
<?php if(!$onepage) { ?>
|
|
|
|
|
window.location = '../out/out.ViewFolder.php?folderid=' + id;
|
|
|
|
|
<?php } else { ?>
|
2019-09-05 10:53:45 +00:00
|
|
|
|
seeddms_folder = id;
|
2019-10-16 07:50:54 +00:00
|
|
|
|
title_prefix = "<?= (strlen($sitename)>0 ? $sitename : "SeedDMS") ?>";
|
2019-08-27 19:46:19 +00:00
|
|
|
|
$('div.ajax').trigger('update', {folderid: id, orderby: '<?= $orderby ?>'});
|
2019-10-16 07:50:54 +00:00
|
|
|
|
document.title = title_prefix+": "+name;
|
|
|
|
|
window.history.pushState({"html":"","pageTitle":title_prefix+": "+name},"", '../out/out.ViewFolder.php?folderid=' + id);
|
2019-09-11 15:44:40 +00:00
|
|
|
|
<?php } ?>
|
2016-03-08 09:40:01 +00:00
|
|
|
|
}
|
2018-07-04 13:49:07 +00:00
|
|
|
|
<?php if($maxItemsPerPage) { ?>
|
2021-01-13 06:42:35 +00:00
|
|
|
|
function loadMoreObjects(element, limit, orderby) {
|
2017-12-14 08:39:43 +00:00
|
|
|
|
if(!$(element).is(":visible"))
|
|
|
|
|
return;
|
2018-01-23 09:43:51 +00:00
|
|
|
|
element.text('<?= getMLText('more_objects_loading') ?>');
|
|
|
|
|
element.prop("disabled",true);
|
2017-12-14 08:39:43 +00:00
|
|
|
|
var folder = element.data('folder')
|
|
|
|
|
var offset = element.data('offset')
|
|
|
|
|
// var limit = element.data('limit')
|
2021-01-13 06:42:35 +00:00
|
|
|
|
url = seeddms_webroot+"out/out.ViewFolder.php?action=entries&folderid="+folder+"&offset="+offset+"&limit="+limit+"&orderby="+orderby;
|
2017-12-14 08:39:43 +00:00
|
|
|
|
$.ajax({
|
|
|
|
|
type: 'GET',
|
|
|
|
|
url: url,
|
|
|
|
|
dataType: 'json',
|
|
|
|
|
success: function(data){
|
|
|
|
|
$('#viewfolder-table').append(data.html);
|
|
|
|
|
if(data.count <= 0) {
|
|
|
|
|
element.hide();
|
|
|
|
|
} else {
|
2017-12-19 10:09:20 +00:00
|
|
|
|
var str = '<?= getMLText('x_more_objects') ?>';
|
|
|
|
|
element.text(str.replace('[number]', data.count));
|
2017-12-14 08:39:43 +00:00
|
|
|
|
element.data('offset', offset+limit);
|
2018-01-23 09:43:51 +00:00
|
|
|
|
element.prop("disabled",false);
|
2017-12-14 08:39:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
$(window).scroll(function() {
|
|
|
|
|
if($(window).scrollTop() + $(window).height() == $(document).height()) {
|
2021-01-13 06:42:35 +00:00
|
|
|
|
loadMoreObjects($('#loadmore'), $('#loadmore').data('limit'), $('#loadmore').data('orderby'));
|
2017-12-14 08:39:43 +00:00
|
|
|
|
}
|
|
|
|
|
});
|
2020-01-22 14:54:29 +00:00
|
|
|
|
$('body').on('click', '#loadmore', function(e) {
|
2021-01-13 06:42:35 +00:00
|
|
|
|
loadMoreObjects($(this), $(this).data('all'), $(this).data('orderby'));
|
2017-12-14 08:39:43 +00:00
|
|
|
|
});
|
2019-09-05 10:53:45 +00:00
|
|
|
|
|
2018-07-04 13:49:07 +00:00
|
|
|
|
<?php } ?>
|
2019-09-11 15:44:40 +00:00
|
|
|
|
<?php
|
|
|
|
|
if($onepage) {
|
|
|
|
|
?>
|
2019-10-16 07:50:54 +00:00
|
|
|
|
window.onpopstate = function(event) {
|
|
|
|
|
console.log("location: " + document.location + ", state: " + JSON.stringify(event.state));
|
|
|
|
|
console.log(JSON.stringify(event.state));
|
|
|
|
|
window.location = document.location;
|
|
|
|
|
};
|
2019-10-28 08:26:35 +00:00
|
|
|
|
/* catch click on 'goto parent button' */
|
|
|
|
|
$('body').on('click', '#goto-parent', function(ev) {
|
|
|
|
|
attr_id = $(ev.currentTarget).data('parentid');
|
2020-08-28 09:54:12 +00:00
|
|
|
|
folderSelectedmaintree(attr_id, '');
|
2019-10-28 08:26:35 +00:00
|
|
|
|
$([document.documentElement, document.body]).animate({
|
|
|
|
|
scrollTop: 200
|
|
|
|
|
}, 200);
|
|
|
|
|
});
|
|
|
|
|
/* catch click on a folder row in the list folders and documents */
|
2019-10-16 15:59:43 +00:00
|
|
|
|
$('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev) {
|
2020-04-10 05:52:35 +00:00
|
|
|
|
/* retrieve the id of the target folder either from data-target-id or
|
|
|
|
|
* from the id. Prefer data-target-id because the id is also used for identifying
|
|
|
|
|
* the table row when deleting the folder
|
|
|
|
|
* This was added for the internal_link extensіon
|
|
|
|
|
*/
|
2021-05-14 17:05:02 +00:00
|
|
|
|
if(ev.shiftKey) {
|
|
|
|
|
$(ev.currentTarget).parent().toggleClass('selected');
|
|
|
|
|
} else {
|
|
|
|
|
attr_id = $(ev.currentTarget).parent().data('target-id');
|
|
|
|
|
if(typeof attr_id == 'undefined')
|
|
|
|
|
attr_id = $(ev.currentTarget).parent().attr('id').split('-')[3];
|
|
|
|
|
folderSelectedmaintree(attr_id, '');
|
|
|
|
|
$([document.documentElement, document.body]).animate({
|
|
|
|
|
scrollTop: 200
|
|
|
|
|
}, 200);
|
|
|
|
|
}
|
2019-09-05 10:53:45 +00:00
|
|
|
|
});
|
2019-11-25 08:51:39 +00:00
|
|
|
|
<?php
|
|
|
|
|
$this->printClickDocumentJs();
|
|
|
|
|
?>
|
2019-09-11 15:44:40 +00:00
|
|
|
|
$('body').on('click', '.order-btn', function(ev) {
|
|
|
|
|
ev.preventDefault();
|
|
|
|
|
var element = $(this);
|
|
|
|
|
var orderby = element.data('orderby');
|
|
|
|
|
$("div.ajax[data-action='folderList']").trigger('update', {folderid: seeddms_folder, orderby: orderby});
|
|
|
|
|
});
|
|
|
|
|
<?php } ?>
|
2015-12-11 19:29:52 +00:00
|
|
|
|
<?php
|
2019-02-05 06:35:20 +00:00
|
|
|
|
if($showtree == 1)
|
2020-08-28 09:54:12 +00:00
|
|
|
|
$this->printNewTreeNavigationJs($folder->getID(), M_READ, 0, 'maintree', ($expandFolderTree == 1) ? -1 : 3, $orderby);
|
2015-12-11 19:29:52 +00:00
|
|
|
|
|
2016-01-25 08:36:19 +00:00
|
|
|
|
if ($enableDropUpload && $folder->getAccessMode($user) >= M_READWRITE) {
|
2021-07-05 14:30:26 +00:00
|
|
|
|
echo "SeedDMSUpload.setUrl('".$this->params['settings']->_httpRoot."op/op.Ajax.php');";
|
2015-12-11 19:29:52 +00:00
|
|
|
|
echo "SeedDMSUpload.setAbortBtnLabel('".getMLText("cancel")."');";
|
|
|
|
|
echo "SeedDMSUpload.setEditBtnLabel('".getMLText("edit_document_props")."');";
|
2020-05-07 12:03:00 +00:00
|
|
|
|
$mus2 = SeedDMS_Core_File::parse_filesize(ini_get("upload_max_filesize"));
|
|
|
|
|
if($maxuploadsize && $maxuploadsize < $mus2)
|
2021-05-28 08:36:15 +00:00
|
|
|
|
echo "SeedDMSUpload.setMaxFileSize($maxuploadsize);\n";
|
2020-05-07 12:03:00 +00:00
|
|
|
|
else
|
2021-05-28 08:36:15 +00:00
|
|
|
|
echo "SeedDMSUpload.setMaxFileSize($mus2);\n";
|
2015-12-11 19:29:52 +00:00
|
|
|
|
echo "SeedDMSUpload.setMaxFileSizeMsg('".getMLText("uploading_maxsize")."');";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->printDeleteFolderButtonJs();
|
|
|
|
|
$this->printDeleteDocumentButtonJs();
|
|
|
|
|
} /* }}} */
|
|
|
|
|
|
2019-08-27 12:35:22 +00:00
|
|
|
|
function folderInfos() { /* {{{ */
|
2017-12-14 08:39:43 +00:00
|
|
|
|
$dms = $this->params['dms'];
|
|
|
|
|
$user = $this->params['user'];
|
|
|
|
|
$folder = $this->params['folder'];
|
2012-12-14 07:53:13 +00:00
|
|
|
|
|
2020-11-13 10:23:56 +00:00
|
|
|
|
$txt = $this->callHook('folderInfos', $folder);
|
2013-08-11 06:32:23 +00:00
|
|
|
|
if(is_string($txt))
|
|
|
|
|
echo $txt;
|
|
|
|
|
else {
|
|
|
|
|
$owner = $folder->getOwner();
|
2020-11-13 10:23:56 +00:00
|
|
|
|
$txt = $this->callHook('preFolderInfos', $folder);
|
|
|
|
|
if(is_string($txt))
|
|
|
|
|
echo $txt;
|
2022-04-26 16:50:22 +00:00
|
|
|
|
ob_start();
|
2021-04-18 05:08:00 +00:00
|
|
|
|
echo "<table class=\"table table-condensed table-sm\">\n";
|
2014-07-11 10:49:21 +00:00
|
|
|
|
if($user->isAdmin()) {
|
2015-09-23 10:59:53 +00:00
|
|
|
|
echo "<tr>";
|
|
|
|
|
echo "<td>".getMLText("id").":</td>\n";
|
|
|
|
|
echo "<td>".htmlspecialchars($folder->getID())."</td>\n";
|
|
|
|
|
echo "</tr>";
|
2014-07-11 10:49:21 +00:00
|
|
|
|
}
|
|
|
|
|
echo "<tr>";
|
|
|
|
|
echo "<td>".getMLText("owner").":</td>\n";
|
|
|
|
|
echo "<td><a href=\"mailto:".htmlspecialchars($owner->getEmail())."\">".htmlspecialchars($owner->getFullName())."</a></td>\n";
|
|
|
|
|
echo "</tr>";
|
2013-02-06 13:58:36 +00:00
|
|
|
|
echo "<tr>";
|
2015-09-23 10:59:53 +00:00
|
|
|
|
echo "<td>".getMLText("creation_date").":</td>";
|
|
|
|
|
echo "<td>".getLongReadableDate($folder->getDate())."</td>";
|
2013-02-06 13:58:36 +00:00
|
|
|
|
echo "</tr>";
|
2014-07-11 10:49:21 +00:00
|
|
|
|
if($folder->getComment()) {
|
2013-02-06 13:58:36 +00:00
|
|
|
|
echo "<tr>";
|
2014-07-11 10:49:21 +00:00
|
|
|
|
echo "<td>".getMLText("comment").":</td>\n";
|
|
|
|
|
echo "<td>".htmlspecialchars($folder->getComment())."</td>\n";
|
2013-02-06 13:58:36 +00:00
|
|
|
|
echo "</tr>";
|
|
|
|
|
}
|
2014-07-11 10:49:21 +00:00
|
|
|
|
|
2020-05-19 15:57:34 +00:00
|
|
|
|
if($user->isAdmin() || $folder->getAccessMode($user) > M_READ) {
|
2013-02-06 13:58:36 +00:00
|
|
|
|
echo "<tr>";
|
2016-04-22 14:40:29 +00:00
|
|
|
|
echo "<td>".getMLText('default_access').":</td>";
|
|
|
|
|
echo "<td>".$this->getAccessModeText($folder->getDefaultAccess())."</td>";
|
2013-02-06 13:58:36 +00:00
|
|
|
|
echo "</tr>";
|
2013-08-11 06:32:23 +00:00
|
|
|
|
if($folder->inheritsAccess()) {
|
|
|
|
|
echo "<tr>";
|
|
|
|
|
echo "<td>".getMLText("access_mode").":</td>\n";
|
|
|
|
|
echo "<td>";
|
2016-04-22 14:40:29 +00:00
|
|
|
|
echo getMLText("inherited")."<br />";
|
|
|
|
|
$this->printAccessList($folder);
|
2013-08-11 06:32:23 +00:00
|
|
|
|
echo "</tr>";
|
|
|
|
|
} else {
|
|
|
|
|
echo "<tr>";
|
|
|
|
|
echo "<td>".getMLText('access_mode').":</td>";
|
|
|
|
|
echo "<td>";
|
|
|
|
|
$this->printAccessList($folder);
|
|
|
|
|
echo "</td>";
|
|
|
|
|
echo "</tr>";
|
|
|
|
|
}
|
2012-12-14 07:53:13 +00:00
|
|
|
|
}
|
2013-08-11 06:32:23 +00:00
|
|
|
|
$attributes = $folder->getAttributes();
|
|
|
|
|
if($attributes) {
|
|
|
|
|
foreach($attributes as $attribute) {
|
2015-04-27 06:27:19 +00:00
|
|
|
|
$arr = $this->callHook('showFolderAttribute', $folder, $attribute);
|
|
|
|
|
if(is_array($arr)) {
|
|
|
|
|
echo "<tr>";
|
|
|
|
|
echo "<td>".$arr[0].":</td>";
|
2020-08-03 10:51:35 +00:00
|
|
|
|
echo "<td>".$arr[1]."</td>";
|
2015-04-27 06:27:19 +00:00
|
|
|
|
echo "</tr>";
|
2019-10-19 07:17:49 +00:00
|
|
|
|
} elseif(is_string($arr)) {
|
|
|
|
|
echo $arr;
|
2015-04-27 06:27:19 +00:00
|
|
|
|
} else {
|
2021-07-12 17:44:25 +00:00
|
|
|
|
$this->printAttribute($attribute);
|
2015-04-27 06:27:19 +00:00
|
|
|
|
}
|
2013-08-11 06:32:23 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2020-11-13 10:23:56 +00:00
|
|
|
|
$arrarr = $this->callHook('additionalFolderInfos', $folder);
|
|
|
|
|
if(is_array($arrarr)) {
|
|
|
|
|
foreach($arrarr as $arr) {
|
|
|
|
|
echo "<tr>";
|
|
|
|
|
echo "<td>".$arr[0].":</td>";
|
|
|
|
|
echo "<td>".$arr[1]."</td>";
|
|
|
|
|
echo "</tr>";
|
|
|
|
|
}
|
|
|
|
|
} elseif(is_string($arrarr)) {
|
|
|
|
|
echo $arrarr;
|
|
|
|
|
}
|
2013-08-11 06:32:23 +00:00
|
|
|
|
echo "</table>\n";
|
2022-04-26 16:50:22 +00:00
|
|
|
|
$infos = ob_get_clean();
|
|
|
|
|
$this->printAccordion2(getMLText("folder_infos"), $infos);
|
2020-11-13 10:23:56 +00:00
|
|
|
|
$txt = $this->callHook('postFolderInfos', $folder);
|
|
|
|
|
if(is_string($txt))
|
|
|
|
|
echo $txt;
|
2012-12-14 07:53:13 +00:00
|
|
|
|
}
|
2019-08-27 12:35:22 +00:00
|
|
|
|
} /* }}} */
|
|
|
|
|
|
|
|
|
|
function folderList() { /* {{{ */
|
|
|
|
|
$dms = $this->params['dms'];
|
|
|
|
|
$user = $this->params['user'];
|
|
|
|
|
$folder = $this->params['folder'];
|
|
|
|
|
$folderid = $folder->getId();
|
|
|
|
|
$orderby = $this->params['orderby'];
|
|
|
|
|
$orderdir = (isset($orderby[1]) ? ($orderby[1] == 'd' ? 'desc' : 'asc') : 'asc');
|
|
|
|
|
$cachedir = $this->params['cachedir'];
|
2021-10-06 13:03:03 +00:00
|
|
|
|
$conversionmgr = $this->params['conversionmgr'];
|
2019-08-27 12:35:22 +00:00
|
|
|
|
$maxItemsPerPage = $this->params['maxItemsPerPage'];
|
|
|
|
|
$incItemsPerPage = $this->params['incItemsPerPage'];
|
|
|
|
|
$previewwidth = $this->params['previewWidthList'];
|
|
|
|
|
$previewconverters = $this->params['previewConverters'];
|
|
|
|
|
$timeout = $this->params['timeout'];
|
|
|
|
|
$xsendfile = $this->params['xsendfile'];
|
2019-09-11 15:44:40 +00:00
|
|
|
|
$onepage = $this->params['onepage'];
|
2019-08-27 12:35:22 +00:00
|
|
|
|
|
|
|
|
|
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
2021-10-06 13:03:03 +00:00
|
|
|
|
if($conversionmgr)
|
|
|
|
|
$previewer->setConversionMgr($conversionmgr);
|
|
|
|
|
else
|
|
|
|
|
$previewer->setConverters($previewconverters);
|
2012-12-14 07:53:13 +00:00
|
|
|
|
|
2017-03-15 20:53:42 +00:00
|
|
|
|
$txt = $this->callHook('listHeader', $folder);
|
|
|
|
|
if(is_string($txt))
|
|
|
|
|
echo $txt;
|
|
|
|
|
else
|
|
|
|
|
$this->contentHeading(getMLText("folder_contents"));
|
2012-12-14 07:53:13 +00:00
|
|
|
|
|
2019-06-24 09:54:08 +00:00
|
|
|
|
$subFolders = $this->callHook('folderGetSubFolders', $folder, $orderby[0], $orderdir);
|
2017-12-19 05:48:03 +00:00
|
|
|
|
if($subFolders === null)
|
2019-06-24 09:54:08 +00:00
|
|
|
|
$subFolders = $folder->getSubFolders($orderby[0], $orderdir);
|
2013-02-14 11:10:53 +00:00
|
|
|
|
$subFolders = SeedDMS_Core_DMS::filterAccess($subFolders, $user, M_READ);
|
2019-06-24 09:54:08 +00:00
|
|
|
|
$documents = $this->callHook('folderGetDocuments', $folder, $orderby[0], $orderdir);
|
2017-12-19 05:48:03 +00:00
|
|
|
|
if($documents === null)
|
2019-06-24 09:54:08 +00:00
|
|
|
|
$documents = $folder->getDocuments($orderby[0], $orderdir);
|
2013-02-14 11:10:53 +00:00
|
|
|
|
$documents = SeedDMS_Core_DMS::filterAccess($documents, $user, M_READ);
|
2012-12-14 07:53:13 +00:00
|
|
|
|
|
2018-11-08 15:40:42 +00:00
|
|
|
|
$txt = $this->callHook('folderListPreContent', $folder, $subFolders, $documents);
|
|
|
|
|
if(is_string($txt))
|
|
|
|
|
echo $txt;
|
2017-12-14 08:39:43 +00:00
|
|
|
|
$i = 0;
|
2012-12-14 07:53:13 +00:00
|
|
|
|
if ((count($subFolders) > 0)||(count($documents) > 0)){
|
2019-06-24 09:54:08 +00:00
|
|
|
|
$txt = $this->callHook('folderListHeader', $folder, $orderby, $orderdir);
|
2022-01-03 12:35:12 +00:00
|
|
|
|
if(is_string($txt)) {
|
2013-10-08 19:10:08 +00:00
|
|
|
|
echo $txt;
|
2022-01-03 12:35:12 +00:00
|
|
|
|
} elseif(is_array($txt)) {
|
2021-04-18 05:08:00 +00:00
|
|
|
|
print "<table id=\"viewfolder-table\" class=\"table table-condensed table-sm table-hover\">";
|
2013-10-08 19:10:08 +00:00
|
|
|
|
print "<thead>\n<tr>\n";
|
2022-01-03 12:35:12 +00:00
|
|
|
|
foreach($txt as $headcol)
|
|
|
|
|
echo "<th>".$headcol."</th>\n";
|
|
|
|
|
print "</tr>\n</thead>\n";
|
|
|
|
|
} else {
|
|
|
|
|
echo $this->folderListHeader();
|
2013-10-08 19:10:08 +00:00
|
|
|
|
}
|
2022-01-03 12:35:12 +00:00
|
|
|
|
print "<tbody>\n";
|
2012-12-14 07:53:13 +00:00
|
|
|
|
|
2017-03-02 19:00:14 +00:00
|
|
|
|
foreach($subFolders as $subFolder) {
|
2017-12-14 08:39:43 +00:00
|
|
|
|
if(!$maxItemsPerPage || $i < $maxItemsPerPage) {
|
2020-03-05 08:11:15 +00:00
|
|
|
|
$txt = $this->callHook('folderListItem', $subFolder, false, 'viewfolder');
|
2017-12-14 08:39:43 +00:00
|
|
|
|
if(is_string($txt))
|
|
|
|
|
echo $txt;
|
|
|
|
|
else {
|
|
|
|
|
echo $this->folderListRow($subFolder);
|
|
|
|
|
}
|
2017-03-02 19:00:14 +00:00
|
|
|
|
}
|
2017-12-14 08:39:43 +00:00
|
|
|
|
$i++;
|
2013-05-21 06:39:41 +00:00
|
|
|
|
}
|
2012-12-14 07:53:13 +00:00
|
|
|
|
|
2017-03-14 05:52:37 +00:00
|
|
|
|
if($subFolders && $documents) {
|
2017-12-14 08:39:43 +00:00
|
|
|
|
if(!$maxItemsPerPage || $maxItemsPerPage > count($subFolders)) {
|
|
|
|
|
$txt = $this->callHook('folderListSeparator', $folder);
|
|
|
|
|
if(is_string($txt))
|
|
|
|
|
echo $txt;
|
|
|
|
|
}
|
2017-03-14 05:52:37 +00:00
|
|
|
|
}
|
2017-03-14 05:38:40 +00:00
|
|
|
|
|
2017-03-02 19:00:14 +00:00
|
|
|
|
foreach($documents as $document) {
|
2017-12-14 08:39:43 +00:00
|
|
|
|
if(!$maxItemsPerPage || $i < $maxItemsPerPage) {
|
|
|
|
|
$document->verifyLastestContentExpriry();
|
2018-08-08 04:55:56 +00:00
|
|
|
|
$txt = $this->callHook('documentListItem', $document, $previewer, false, 'viewfolder');
|
2017-12-14 08:39:43 +00:00
|
|
|
|
if(is_string($txt))
|
|
|
|
|
echo $txt;
|
|
|
|
|
else {
|
|
|
|
|
echo $this->documentListRow($document, $previewer);
|
|
|
|
|
}
|
2017-03-02 19:00:14 +00:00
|
|
|
|
}
|
2017-12-14 08:39:43 +00:00
|
|
|
|
$i++;
|
2012-12-14 07:53:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
2013-10-08 19:10:08 +00:00
|
|
|
|
$txt = $this->callHook('folderListFooter', $folder);
|
|
|
|
|
if(is_string($txt))
|
|
|
|
|
echo $txt;
|
|
|
|
|
else
|
|
|
|
|
echo "</tbody>\n</table>\n";
|
2017-03-02 19:00:14 +00:00
|
|
|
|
|
2017-12-14 08:39:43 +00:00
|
|
|
|
if($maxItemsPerPage && $i > $maxItemsPerPage)
|
2021-01-13 06:42:35 +00:00
|
|
|
|
echo "<button id=\"loadmore\" style=\"width: 100%; margin-bottom: 20px;\" class=\"btn btn-secondary\" data-folder=\"".$folder->getId()."\"data-offset=\"".$maxItemsPerPage."\" data-limit=\"".$incItemsPerPage."\" data-orderby=\"".$orderby."\" data-all=\"".($i-$maxItemsPerPage)."\">".getMLText('x_more_objects', array('number'=>($i-$maxItemsPerPage)))."</button>";
|
2013-10-08 19:10:08 +00:00
|
|
|
|
}
|
2017-03-02 19:00:14 +00:00
|
|
|
|
else printMLText("empty_folder_list");
|
2012-12-14 07:53:13 +00:00
|
|
|
|
|
2018-11-08 15:40:42 +00:00
|
|
|
|
$txt = $this->callHook('folderListPostContent', $folder, $subFolders, $documents);
|
|
|
|
|
if(is_string($txt))
|
|
|
|
|
echo $txt;
|
|
|
|
|
|
2019-08-27 12:35:22 +00:00
|
|
|
|
} /* }}} */
|
|
|
|
|
|
|
|
|
|
function navigation() { /* {{{ */
|
|
|
|
|
$dms = $this->params['dms'];
|
|
|
|
|
$user = $this->params['user'];
|
|
|
|
|
$folder = $this->params['folder'];
|
|
|
|
|
|
|
|
|
|
$txt = $this->callHook('folderMenu', $folder);
|
|
|
|
|
if(is_string($txt))
|
|
|
|
|
echo $txt;
|
|
|
|
|
else {
|
|
|
|
|
$this->pageNavigation($this->getFolderPathHTML($folder), "view_folder", $folder);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
echo $this->callHook('preContent');
|
|
|
|
|
} /* }}} */
|
|
|
|
|
|
|
|
|
|
function dropUpload() { /* {{{ */
|
|
|
|
|
$dms = $this->params['dms'];
|
|
|
|
|
$user = $this->params['user'];
|
|
|
|
|
$folder = $this->params['folder'];
|
|
|
|
|
|
|
|
|
|
$this->contentHeading(getMLText("dropupload"), true);
|
2020-05-27 14:23:19 +00:00
|
|
|
|
if ($folder->getAccessMode($user) >= M_READWRITE) {
|
2019-08-27 12:35:22 +00:00
|
|
|
|
?>
|
2021-04-18 05:08:00 +00:00
|
|
|
|
<div id="draganddrophandler" class="well alert alert-warning" data-droptarget="folder_<?php echo $folder->getID(); ?>" data-target="<?php echo $folder->getID(); ?>" data-uploadformtoken="<?php echo createFormKey(''); ?>"><?php printMLText('drop_files_here'); ?></div>
|
2019-08-27 12:35:22 +00:00
|
|
|
|
<?php
|
2020-05-27 14:23:19 +00:00
|
|
|
|
} else {
|
|
|
|
|
$this->errorMsg(getMLText('access_denied'));
|
|
|
|
|
}
|
2019-08-27 12:35:22 +00:00
|
|
|
|
} /* }}} */
|
|
|
|
|
|
|
|
|
|
function entries() { /* {{{ */
|
|
|
|
|
$dms = $this->params['dms'];
|
|
|
|
|
$user = $this->params['user'];
|
|
|
|
|
$folder = $this->params['folder'];
|
|
|
|
|
$orderby = $this->params['orderby'];
|
|
|
|
|
$orderdir = (isset($orderby[1]) ? ($orderby[1] == 'd' ? 'desc' : 'asc') : 'asc');
|
|
|
|
|
$cachedir = $this->params['cachedir'];
|
2021-10-06 13:03:03 +00:00
|
|
|
|
$conversionmgr = $this->params['conversionmgr'];
|
2019-08-27 12:35:22 +00:00
|
|
|
|
$previewwidth = $this->params['previewWidthList'];
|
|
|
|
|
$previewconverters = $this->params['previewConverters'];
|
|
|
|
|
$timeout = $this->params['timeout'];
|
|
|
|
|
$xsendfile = $this->params['xsendfile'];
|
|
|
|
|
$offset = $this->params['offset'];
|
|
|
|
|
$limit = $this->params['limit'];
|
|
|
|
|
|
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
|
|
|
|
|
|
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
2021-10-06 13:03:03 +00:00
|
|
|
|
if($conversionmgr)
|
|
|
|
|
$previewer->setConversionMgr($conversionmgr);
|
|
|
|
|
else
|
|
|
|
|
$previewer->setConverters($previewconverters);
|
2019-08-27 12:35:22 +00:00
|
|
|
|
|
|
|
|
|
$subFolders = $this->callHook('folderGetSubFolders', $folder, $orderby[0]);
|
|
|
|
|
if($subFolders === null)
|
|
|
|
|
$subFolders = $folder->getSubFolders($orderby[0], $orderdir);
|
|
|
|
|
$subFolders = SeedDMS_Core_DMS::filterAccess($subFolders, $user, M_READ);
|
|
|
|
|
$documents = $this->callHook('folderGetDocuments', $folder, $orderby[0]);
|
|
|
|
|
if($documents === null)
|
|
|
|
|
$documents = $folder->getDocuments($orderby[0], $orderdir);
|
|
|
|
|
$documents = SeedDMS_Core_DMS::filterAccess($documents, $user, M_READ);
|
|
|
|
|
|
|
|
|
|
$content = '';
|
|
|
|
|
if ((count($subFolders) > 0)||(count($documents) > 0)){
|
|
|
|
|
$i = 0; // counts all entries
|
|
|
|
|
$j = 0; // counts only returned entries
|
|
|
|
|
foreach($subFolders as $subFolder) {
|
|
|
|
|
if($i >= $offset && $j < $limit) {
|
2020-03-05 08:11:15 +00:00
|
|
|
|
$txt = $this->callHook('folderListItem', $subFolder, false, 'viewfolder');
|
2019-08-27 12:35:22 +00:00
|
|
|
|
if(is_string($txt))
|
|
|
|
|
$content .= $txt;
|
|
|
|
|
else {
|
|
|
|
|
$content .= $this->folderListRow($subFolder);
|
|
|
|
|
}
|
|
|
|
|
$j++;
|
|
|
|
|
}
|
|
|
|
|
$i++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if($subFolders && $documents) {
|
|
|
|
|
if(($j && $j < $limit) || ($offset + $limit == $i)) {
|
|
|
|
|
$txt = $this->callHook('folderListSeparator', $folder);
|
|
|
|
|
if(is_string($txt))
|
|
|
|
|
$content .= $txt;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach($documents as $document) {
|
|
|
|
|
if($i >= $offset && $j < $limit) {
|
|
|
|
|
$document->verifyLastestContentExpriry();
|
|
|
|
|
$txt = $this->callHook('documentListItem', $document, $previewer, false, 'viewfolder');
|
|
|
|
|
if(is_string($txt))
|
|
|
|
|
$content .= $txt;
|
|
|
|
|
else {
|
|
|
|
|
$content .= $this->documentListRow($document, $previewer);
|
|
|
|
|
}
|
|
|
|
|
$j++;
|
|
|
|
|
}
|
|
|
|
|
$i++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
echo json_encode(array('error'=>0, 'count'=>$i-($offset+$limit), 'html'=>$content));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} /* }}} */
|
|
|
|
|
|
|
|
|
|
function show() { /* {{{ */
|
|
|
|
|
$dms = $this->params['dms'];
|
|
|
|
|
$user = $this->params['user'];
|
|
|
|
|
$folder = $this->params['folder'];
|
|
|
|
|
$orderby = $this->params['orderby'];
|
|
|
|
|
$orderdir = (isset($orderby[1]) ? ($orderby[1] == 'd' ? 'desc' : 'asc') : 'asc');
|
|
|
|
|
$enableFolderTree = $this->params['enableFolderTree'];
|
|
|
|
|
$enableClipboard = $this->params['enableclipboard'];
|
|
|
|
|
$enableDropUpload = $this->params['enableDropUpload'];
|
|
|
|
|
$expandFolderTree = $this->params['expandFolderTree'];
|
|
|
|
|
$showtree = $this->params['showtree'];
|
|
|
|
|
$cachedir = $this->params['cachedir'];
|
2021-10-06 13:03:03 +00:00
|
|
|
|
$conversionmgr = $this->params['conversionmgr'];
|
2019-08-27 12:35:22 +00:00
|
|
|
|
$enableRecursiveCount = $this->params['enableRecursiveCount'];
|
|
|
|
|
$maxRecursiveCount = $this->params['maxRecursiveCount'];
|
|
|
|
|
$maxItemsPerPage = $this->params['maxItemsPerPage'];
|
|
|
|
|
$incItemsPerPage = $this->params['incItemsPerPage'];
|
|
|
|
|
$previewwidth = $this->params['previewWidthList'];
|
|
|
|
|
$previewconverters = $this->params['previewConverters'];
|
|
|
|
|
$timeout = $this->params['timeout'];
|
|
|
|
|
$xsendfile = $this->params['xsendfile'];
|
|
|
|
|
|
|
|
|
|
$folderid = $folder->getId();
|
|
|
|
|
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout, $xsendfile);
|
2021-10-06 13:03:03 +00:00
|
|
|
|
if($conversionmgr)
|
|
|
|
|
$previewer->setConversionMgr($conversionmgr);
|
|
|
|
|
else
|
|
|
|
|
$previewer->setConverters($previewconverters);
|
2019-08-27 12:35:22 +00:00
|
|
|
|
|
2021-04-23 04:54:43 +00:00
|
|
|
|
// echo $this->callHook('startPage');
|
2019-08-27 12:35:22 +00:00
|
|
|
|
$this->htmlStartPage(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))));
|
|
|
|
|
$this->globalNavigation($folder);
|
|
|
|
|
$this->contentStart();
|
|
|
|
|
?>
|
|
|
|
|
<div class="ajax" data-view="ViewFolder" data-action="navigation" data-no-spinner="true" <?php echo ($folder ? "data-query=\"folderid=".$folder->getID()."\"" : "") ?>></div>
|
|
|
|
|
<?php
|
2020-10-08 06:34:55 +00:00
|
|
|
|
$this->rowStart();
|
2019-08-27 12:35:22 +00:00
|
|
|
|
|
|
|
|
|
// dynamic columns - left column removed if no content and right column then fills span12.
|
|
|
|
|
if (!($enableFolderTree || $enableClipboard)) {
|
|
|
|
|
$LeftColumnSpan = 0;
|
|
|
|
|
$RightColumnSpan = 12;
|
|
|
|
|
} else {
|
|
|
|
|
$LeftColumnSpan = 4;
|
|
|
|
|
$RightColumnSpan = 8;
|
|
|
|
|
}
|
|
|
|
|
if ($LeftColumnSpan > 0) {
|
2020-10-07 17:04:39 +00:00
|
|
|
|
$this->columnStart($LeftColumnSpan);
|
2019-12-13 08:07:56 +00:00
|
|
|
|
|
|
|
|
|
echo $this->callHook('leftContentPre');
|
|
|
|
|
|
2019-08-27 12:35:22 +00:00
|
|
|
|
if ($enableFolderTree) {
|
|
|
|
|
if ($showtree==1){
|
2021-07-05 14:30:26 +00:00
|
|
|
|
$this->contentHeading("<a href=\"".$this->params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=". $folderid."&showtree=0\"><i class=\"fa fa-minus-circle\"></i></a>", true);
|
2019-08-27 12:35:22 +00:00
|
|
|
|
$this->contentContainerStart();
|
|
|
|
|
/*
|
|
|
|
|
* access expandFolderTree with $this->params because it can
|
|
|
|
|
* be changed by preContent hook.
|
|
|
|
|
*/
|
2020-08-28 09:54:12 +00:00
|
|
|
|
$this->printNewTreeNavigationHtml($folderid, M_READ, 0, 'maintree', ($this->params['expandFolderTree'] == 1) ? -1 : 3, $orderby);
|
2019-08-27 12:35:22 +00:00
|
|
|
|
$this->contentContainerEnd();
|
|
|
|
|
} else {
|
2021-07-05 14:30:26 +00:00
|
|
|
|
$this->contentHeading("<a href=\"".$this->params['settings']->_httpRoot."out/out.ViewFolder.php?folderid=". $folderid."&showtree=1\"><i class=\"fa fa-plus-circle\"></i></a>", true);
|
2019-08-27 12:35:22 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
echo $this->callHook('leftContent');
|
|
|
|
|
|
|
|
|
|
if ($enableClipboard) $this->printClipboard($this->params['session']->getClipboard(), $previewer);
|
|
|
|
|
|
2019-12-13 08:07:56 +00:00
|
|
|
|
echo $this->callHook('leftContentPost');
|
|
|
|
|
|
2020-10-07 17:04:39 +00:00
|
|
|
|
$this->columnEnd();
|
2019-08-27 12:35:22 +00:00
|
|
|
|
}
|
2020-10-07 17:04:39 +00:00
|
|
|
|
$this->columnStart($RightColumnSpan);
|
2019-08-27 12:35:22 +00:00
|
|
|
|
|
2020-05-27 14:23:19 +00:00
|
|
|
|
if ($enableDropUpload/* && $folder->getAccessMode($user) >= M_READWRITE*/) {
|
2020-10-07 17:04:39 +00:00
|
|
|
|
$this->rowStart();
|
|
|
|
|
$this->columnStart(8);
|
2019-08-27 12:35:22 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// $this->folderInfos();
|
|
|
|
|
?>
|
|
|
|
|
<div class="ajax" data-view="ViewFolder" data-action="folderInfos" data-no-spinner="true" <?php echo ($folder ? "data-query=\"folderid=".$folder->getID()."\"" : "") ?>></div>
|
|
|
|
|
<?php
|
2020-05-27 14:23:19 +00:00
|
|
|
|
if ($enableDropUpload/* && $folder->getAccessMode($user) >= M_READWRITE*/) {
|
2020-10-07 17:04:39 +00:00
|
|
|
|
$this->columnEnd();
|
|
|
|
|
$this->columnStart(4);
|
2019-08-27 12:35:22 +00:00
|
|
|
|
// $this->dropUpload();
|
|
|
|
|
?>
|
2019-09-11 15:44:40 +00:00
|
|
|
|
<div class="ajax" data-view="ViewFolder" data-action="dropUpload" data-no-spinner="true" <?php echo ($folder ? "data-query=\"folderid=".$folder->getID()."\"" : "") ?>></div>
|
2019-08-27 12:35:22 +00:00
|
|
|
|
<?php
|
|
|
|
|
|
2020-10-07 17:04:39 +00:00
|
|
|
|
$this->columnEnd();
|
|
|
|
|
$this->rowEnd();
|
2019-08-27 12:35:22 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-07-28 16:11:49 +00:00
|
|
|
|
echo $this->callHook('rightContentPre');
|
2019-08-27 12:35:22 +00:00
|
|
|
|
?>
|
2019-08-27 19:46:19 +00:00
|
|
|
|
<div class="ajax" data-view="ViewFolder" data-action="folderList" <?php echo ($folder ? "data-query=\"folderid=".$folder->getID()."&orderby=".$orderby."\"" : "") ?>></div>
|
2019-08-27 12:35:22 +00:00
|
|
|
|
<?php
|
2020-07-28 16:11:49 +00:00
|
|
|
|
echo $this->callHook('rightContentPost');
|
2020-10-07 17:04:39 +00:00
|
|
|
|
$this->columnEnd(); // End of right column div
|
|
|
|
|
$this->rowEnd(); // End of div around left and right column
|
2012-12-14 07:53:13 +00:00
|
|
|
|
|
2013-05-02 16:26:49 +00:00
|
|
|
|
echo $this->callHook('postContent');
|
|
|
|
|
|
2012-12-14 07:53:13 +00:00
|
|
|
|
$this->contentEnd();
|
|
|
|
|
$this->htmlEndPage();
|
|
|
|
|
} /* }}} */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|