In Pimcore habe ich versucht, die Workflow-Management für Objekte zu implementieren. Der Workflow funktioniert einwandfrei. Die Schaltfläche zum Speichern und Veröffentlichen wird jedoch weiterhin angezeigt. Wie kann ich diese Funktionen entfernen, wenn der Workflow aktiviert ist? 1. Deaktivierung Speichern, veröffentlichen, nicht veröffentlichen und löschen für den Benutzer, wenn der Workflow aktiviert ist. 2. Entfernen Sie dieselben Optionen (speichern, veröffentlichen, entfernen und löschen), wenn Sie mit der rechten Maustaste auf das Objekt klicken.Pimcore Workflow Management - Deaktivieren Speichern und veröffentlichen
0
A
Antwort
1
Wenn Sie Schaltflächen deaktivieren möchten, müssen Sie pimcore object.js (pimcore/static6/js/pimcore/object/object.js) und tree.js (pimcore/static6/js/pimcore/object/tree) überschreiben. js). Zuerst ein Plugin erstellen. Dann erstellen Sie object.js in statischen (Denken Sie daran, js Pfade hinzufügen, um plugin.xml) und fügen Sie den Code ein:
pimcore.registerNS("pimcore.object.object");
pimcore.object.object = Class.create(pimcore.object.object, {
getLayoutToolbar : function() {
if (!this.toolbar) {
var buttons = [];
this.toolbarButtons = {};
this.toolbarButtons.save = new Ext.SplitButton({
text: t('save'),
iconCls: "pimcore_icon_save",
scale: "medium",
handler: this.save.bind(this, "unpublish"),
menu:[{
text: t('save_close'),
iconCls: "pimcore_icon_save",
handler: this.unpublishClose.bind(this)
}]
});
this.toolbarButtons.publish = new Ext.SplitButton({
text: t('save_and_publish'),
iconCls: "pimcore_icon_publish",
scale: "medium",
handler: this.publish.bind(this),
menu: [{
text: t('save_pubish_close'),
iconCls: "pimcore_icon_save",
handler: this.publishClose.bind(this)
},
{
text: t('save_only_new_version'),
iconCls: "pimcore_icon_save",
handler: this.save.bind(this, "version")
},
{
text: t('save_only_scheduled_tasks'),
iconCls: "pimcore_icon_save",
handler: this.save.bind(this, "scheduler","scheduler")
}
]
});
this.toolbarButtons.unpublish = new Ext.Button({
text: t('unpublish'),
iconCls: "pimcore_icon_unpublish",
scale: "medium",
handler: this.unpublish.bind(this)
});
this.toolbarButtons.remove = new Ext.Button({
tooltip: t("delete"),
iconCls: "pimcore_icon_delete",
scale: "medium",
handler: this.remove.bind(this)
});
this.toolbarButtons.rename = new Ext.Button({
tooltip: t('rename'),
iconCls: "pimcore_icon_key pimcore_icon_overlay_go",
scale: "medium",
handler: function() {
var options = {
elementType: "object",
elementSubType: this.data.general.o_type,
id: this.id,
default: this.data.general.o_key
};
pimcore.elementservice.editElementKey(options);
}.bind(this)
});
//This code is for save&publish buttons
if (this.isAllowed("save")) {
buttons.push(this.toolbarButtons.save);
}
if (this.isAllowed("publish")) {
buttons.push(this.toolbarButtons.publish);
}
if (this.isAllowed("unpublish") && !this.data.general.o_locked) {
buttons.push(this.toolbarButtons.unpublish);
}
buttons.push("-");
if(this.isAllowed("delete") && !this.data.general.o_locked) {
buttons.push(this.toolbarButtons.remove);
}
if(this.isAllowed("rename") && !this.data.general.o_locked) {
buttons.push(this.toolbarButtons.rename);
}
var reloadConfig = {
xtype: "splitbutton",
tooltip: t('reload'),
iconCls: "pimcore_icon_reload",
scale: "medium",
handler: this.reload.bind(this, this.data.currentLayoutId)
};
if (this.data["validLayouts"] && this.data.validLayouts.length > 1) {
var menu = [];
for (var i = 0; i < this.data.validLayouts.length; i++) {
var menuLabel = ts(this.data.validLayouts[i].name);
if (Number(this.data.currentLayoutId) == this.data.validLayouts[i].id) {
menuLabel = "<b>" + menuLabel + "</b>";
}
menu.push({
text: menuLabel,
iconCls: "pimcore_icon_reload",
handler: this.reload.bind(this, this.data.validLayouts[i].id)
});
}
reloadConfig.menu = menu;
}
buttons.push(reloadConfig);
if (pimcore.elementservice.showLocateInTreeButton("object")) {
if (this.data.general.o_type != "variant" || this.data.general.showVariants) {
buttons.push({
tooltip: t('show_in_tree'),
iconCls: "pimcore_icon_show_in_tree",
scale: "medium",
handler: this.selectInTree.bind(this, this.data.general.o_type)
});
}
}
buttons.push({
tooltip: t("show_metainfo"),
iconCls: "pimcore_icon_info",
scale: "medium",
handler: this.showMetaInfo.bind(this)
});
buttons.push("-");
buttons.push({
xtype: 'tbtext',
text: t("id") + " " + this.data.general.o_id,
scale: "medium"
});
buttons.push("-");
buttons.push({
xtype: 'tbtext',
text: ts(this.data.general.o_className),
scale: "medium"
});
// version notification
this.newerVersionNotification = new Ext.Toolbar.TextItem({
xtype: 'tbtext',
text: ' <img src="/pimcore/static6/img/flat-color-icons/medium_priority.svg" style="height: 16px;" align="absbottom" /> '
+ t("this_is_a_newer_not_published_version"),
scale: "medium",
hidden: true
});
buttons.push(this.newerVersionNotification);
//workflow management
pimcore.elementservice.integrateWorkflowManagement('object', this.id, this, buttons);
// check for newer version than the published
if (this.data.versions.length > 0) {
if (this.data.general.o_modificationDate < this.data.versions[0].date) {
this.newerVersionNotification.show();
}
}
this.toolbar = new Ext.Toolbar({
id: "object_toolbar_" + this.id,
region: "north",
border: false,
cls: "main-toolbar",
items: buttons,
overflowHandler: 'scroller'
});
this.toolbar.on("afterrender", function() {
window.setTimeout(function() {
if (!this.data.general.o_published) {
this.toolbarButtons.unpublish.hide();
} else if (this.isAllowed("publish")) {
this.toolbarButtons.save.hide();
}
}.bind(this), 500);
}.bind(this));
}
return this.toolbar;
}
});
Sie haben das gleiche mit Tree.js zu tun:
pimcore.object.tree = Class.create({
onTreeNodeContextmenu: function (tree, record, item, index, e, eOpts) {
e.stopEvent();
tree.select();
var menu = new Ext.menu.Menu();
var perspectiveCfg = this.perspectiveCfg;
var object_types = pimcore.globalmanager.get("object_types_store_create");
var objectMenu = {
objects: [],
importer: [],
ref: this
};
var groups = {
importer: {},
objects: {}
};
var tmpMenuEntry;
var tmpMenuEntryImport;
var $this = this;
object_types.each(function (classRecord) {
if ($this.config.allowedClasses && !in_array(classRecord.get("id"), $this.config.allowedClasses)) {
return;
}
tmpMenuEntry = {
text: classRecord.get("translatedText"),
iconCls: "pimcore_icon_object pimcore_icon_overlay_add",
handler: $this.addObject.bind($this, classRecord.get("id"), classRecord.get("text"), tree, record)
};
// add special icon
if (classRecord.get("icon") != "/pimcore/static6/img/flat-color-icons/timeline.svg") {
tmpMenuEntry.icon = classRecord.get("icon");
tmpMenuEntry.iconCls = "";
}
tmpMenuEntryImport = {
text: classRecord.get("translatedText"),
iconCls: "pimcore_icon_object pimcore_icon_overlay_add",
handler: $this.importObjects.bind($this, classRecord.get("id"), classRecord.get("text"), tree, record)
};
// add special icon
if (classRecord.get("icon") != "/pimcore/static6/img/flat-color-icons/timeline.svg") {
tmpMenuEntryImport.icon = classRecord.get("icon");
tmpMenuEntryImport.iconCls = "";
}
// check if the class is within a group
if(classRecord.get("group")) {
if(!groups["objects"][classRecord.get("group")]) {
groups["objects"][classRecord.get("group")] = {
text: classRecord.get("group"),
iconCls: "pimcore_icon_folder",
hideOnClick: false,
menu: {
items: []
}
};
groups["importer"][classRecord.get("group")] = {
text: classRecord.get("group"),
iconCls: "pimcore_icon_folder",
hideOnClick: false,
menu: {
items: []
}
};
objectMenu["objects"].push(groups["objects"][classRecord.get("group")]);
objectMenu["importer"].push(groups["importer"][classRecord.get("group")]);
}
groups["objects"][classRecord.get("group")]["menu"]["items"].push(tmpMenuEntry);
groups["importer"][classRecord.get("group")]["menu"]["items"].push(tmpMenuEntryImport);
} else {
objectMenu["objects"].push(tmpMenuEntry);
objectMenu["importer"].push(tmpMenuEntryImport);
}
});
var isVariant = record.data.type == "variant";
if (record.data.permissions.create) {
if (!isVariant) {
if (perspectiveCfg.inTreeContextMenu("object.add")) {
menu.add(new Ext.menu.Item({
text: t('add_object'),
iconCls: "pimcore_icon_object pimcore_icon_overlay_add",
hideOnClick: false,
menu: objectMenu.objects
}));
}
}
if (record.data.allowVariants && perspectiveCfg.inTreeContextMenu("object.add")) {
menu.add(new Ext.menu.Item({
text: t("add_variant"),
iconCls: "pimcore_icon_variant",
handler: this.createVariant.bind(this, tree, record)
}));
}
if (!isVariant) {
if (perspectiveCfg.inTreeContextMenu("object.addFolder")) {
menu.add(new Ext.menu.Item({
text: t('add_folder'),
iconCls: "pimcore_icon_folder pimcore_icon_overlay_add",
handler: this.addFolder.bind(this, tree, record)
}));
}
if (perspectiveCfg.inTreeContextMenu("object.importCsv")) {
menu.add({
text: t('import_csv'),
hideOnClick: false,
iconCls: "pimcore_icon_object pimcore_icon_overlay_upload",
menu: objectMenu.importer
});
}
menu.add("-");
//paste
var pasteMenu = [];
if (perspectiveCfg.inTreeContextMenu("object.paste")) {
if (pimcore.cachedObjectId && record.data.permissions.create) {
pasteMenu.push({
text: t("paste_recursive_as_childs"),
iconCls: "pimcore_icon_paste",
handler: this.pasteInfo.bind(this, tree, record, "recursive")
});
pasteMenu.push({
text: t("paste_recursive_updating_references"),
iconCls: "pimcore_icon_paste",
handler: this.pasteInfo.bind(this, tree, record, "recursive-update-references")
});
pasteMenu.push({
text: t("paste_as_child"),
iconCls: "pimcore_icon_paste",
handler: this.pasteInfo.bind(this, tree, record, "child")
});
if (record.data.type != "folder") {
pasteMenu.push({
text: t("paste_contents"),
iconCls: "pimcore_icon_paste",
handler: this.pasteInfo.bind(this, tree, record, "replace")
});
}
}
}
if (!isVariant) {
if (pimcore.cutObject && record.data.permissions.create) {
pasteMenu.push({
text: t("paste_cut_element"),
iconCls: "pimcore_icon_paste",
handler: function() {
this.pasteCutObject(pimcore.cutObject,
pimcore.cutObjectParentNode, record, this.tree);
pimcore.cutObjectParentNode = null;
pimcore.cutObject = null;
}.bind(this)
});
}
if (pasteMenu.length > 0) {
menu.add(new Ext.menu.Item({
text: t('paste'),
iconCls: "pimcore_icon_paste",
hideOnClick: false,
menu: pasteMenu
}));
}
}
}
}
if (!isVariant) {
if (record.data.id != 1 && record.data.permissions.view && perspectiveCfg.inTreeContextMenu("object.copy")) {
menu.add(new Ext.menu.Item({
text: t('copy'),
iconCls: "pimcore_icon_copy",
handler: this.copy.bind(this, tree, record)
}));
}
//cut
if (record.data.id != 1 && !record.data.locked && record.data.permissions.rename && perspectiveCfg.inTreeContextMenu("object.cut")) {
menu.add(new Ext.menu.Item({
text: t('cut'),
iconCls: "pimcore_icon_cut",
handler: this.cut.bind(this, tree, record)
}));
}
}
//publish
if (record.data.type != "folder" && !record.data.locked) {
if (record.data.published && record.data.permissions.unpublish && perspectiveCfg.inTreeContextMenu("object.unpublish")) {
menu.add(new Ext.menu.Item({
text: t('unpublish'),
iconCls: "pimcore_icon_unpublish",
handler: this.publishObject.bind(this, tree, record, 'unpublish')
}));
} else if (!record.data.published && record.data.permissions.publish && perspectiveCfg.inTreeContextMenu("object.publish")) {
menu.add(new Ext.menu.Item({
text: t('publish'),
iconCls: "pimcore_icon_publish",
handler: this.publishObject.bind(this, tree, record, 'publish')
}));
}
}
if (record.data.permissions["delete"] && record.data.id != 1 && !record.data.locked && perspectiveCfg.inTreeContextMenu("object.delete")) {
menu.add(new Ext.menu.Item({
text: t('delete'),
iconCls: "pimcore_icon_delete",
handler: this.remove.bind(this, tree, record)
}));
}
if (record.data.permissions.rename && record.data.id != 1 && !record.data.locked && perspectiveCfg.inTreeContextMenu("object.rename")) {
menu.add(new Ext.menu.Item({
text: t('rename'),
iconCls: "pimcore_icon_key pimcore_icon_overlay_go",
handler: this.editObjectKey.bind(this, tree, record)
}));
}
// advanced menu
var advancedMenuItems = [];
var user = pimcore.globalmanager.get("user");
if (record.data.permissions.create && perspectiveCfg.inTreeContextMenu("object.searchAndMove")) {
advancedMenuItems.push({
text: t('search_and_move'),
iconCls: "pimcore_icon_search pimcore_icon_overlay_go",
handler: this.searchAndMove.bind(this, tree, record)
});
}
if (record.data.id != 1 && user.admin) {
var lockMenu = [];
if (record.data.lockOwner && perspectiveCfg.inTreeContextMenu("object.unlock")) { // add unlock
lockMenu.push({
text: t('unlock'),
iconCls: "pimcore_icon_lock pimcore_icon_overlay_delete",
handler: function() {
pimcore.elementservice.lockElement({
elementType: "object",
id: record.data.id,
mode: "null"
});
}.bind(this)
});
} else {
if (perspectiveCfg.inTreeContextMenu("object.lock")) {
lockMenu.push({
text: t('lock'),
iconCls: "pimcore_icon_lock pimcore_icon_overlay_add",
handler: function() {
pimcore.elementservice.lockElement({
elementType: "object",
id: record.data.id,
mode: "self"
});
}.bind(this)
});
}
if (perspectiveCfg.inTreeContextMenu("object.lockAndPropagate")) {
lockMenu.push({
text: t('lock_and_propagate_to_childs'),
iconCls: "pimcore_icon_lock pimcore_icon_overlay_go",
handler: function() {
pimcore.elementservice.lockElement({
elementType: "object",
id: record.data.id,
mode: "propagate"
});
}.bind(this)
});
}
}
if(record.data.locked) {
// add unlock and propagate to children functionality
if (perspectiveCfg.inTreeContextMenu("object.unlockAndPropagate")) {
lockMenu.push({
text: t('unlock_and_propagate_to_children'),
iconCls: "pimcore_icon_lock pimcore_icon_overlay_delete",
handler: function() {
pimcore.elementservice.unlockElement({
elementType: "object",
id: record.data.id
});
}.bind(this)
});
}
}
if (lockMenu.length > 0) {
advancedMenuItems.push({
text: t('lock'),
iconCls: "pimcore_icon_lock",
hideOnClick: false,
menu: lockMenu
});
}
}
menu.add("-");
if(advancedMenuItems.length) {
menu.add({
text: t('advanced'),
iconCls: "pimcore_icon_more",
hideOnClick: false,
menu: advancedMenuItems
});
}
if (perspectiveCfg.inTreeContextMenu("object.reload")) {
menu.add({
text: t('refresh'),
iconCls: "pimcore_icon_reload",
handler: this.reloadNode.bind(this, tree, record)
});
}
pimcore.helpers.hideRedundantSeparators(menu);
pimcore.plugin.broker.fireEvent("prepareObjectTreeContextMenu", menu, this, record);
menu.showAt(e.pageX+1, e.pageY+1);
},
});
Verwandte Themen
- 1. -Workflow in pimcore nicht funktioniert
- 2. Veröffentlichen Sie Nintex Workflow programmatisch
- 3. Deaktivieren Sie "Speichern" Eingabeaufforderung in SQL Server Management Studio 2005
- 4. Pimcore und Dependency Injection
- 5. CKAN zum Speichern und Veröffentlichen von RDFS
- 6. Pre speichern und lesen Aktionen veröffentlichen
- 7. Deaktivieren Sie "zuweisen" bei Workflow-Benachrichtigungen
- 8. PHP-Framework zum Erstellen von Workflow-Management-System
- 9. PDF-Download deaktivieren und speichern Option
- 10. Photoshop-Plugin Pipl Ressourcen und Deaktivieren speichern
- 11. Lokalisierung FieldCollection Pimcore
- 12. Pimcore Teilnavigations Parameter
- 13. Pimcore-Plugin für Netbeans
- 14. Dynamische Tabelle in Pimcore
- 15. Arbeitskopien (Iterate) Berechtigungen und Workflow
- 16. Speichern des Verlaufs deaktivieren
- 17. SQL Server Management Studio - verschlüsselte Verbindungszeichenfolge speichern
- 18. Webcenter Portal und Content Management
- 19. Mehrere Zeilen von Daten speichern und veröffentlichen ASP.Net MVC
- 20. ETL vs Workflow-Management und welche zutreffen? Können sie gleich verwendet werden?
- 21. Github und SVN Workflow
- 22. Jira und Crucible Workflow
- 23. Soap API und Workflow
- 24. Dateigrößenbeschränkung in Pimcore CSV-Import
- 25. Wie kann ich die Schaltfläche Veröffentlichen im Content-Editor des EPiServers deaktivieren?
- 26. Wie pimcore auf Linux installieren
- 27. Wie diese Fehler in pimcore
- 28. Pimcore verbindet Objekte mit Dokumenten
- 29. Nano - deaktivieren beim Speichern bestätigen?
- 30. Deaktivieren Excel speichern Änderungen Aufforderung
Dank für die gemeinsame Nutzung dieser Information. Ich habe es heute auf andere Art und Weise versucht, indem ich Benutzer-/Rollen-Berechtigungen (Speichern, Veröffentlichen, Aufheben der Veröffentlichung ...) für das Objekt verwendet habe, es hat funktioniert. –