Hallo typo3´ler
seit einiger Zeit beschäftigt mich folgendes Problem. Mit dem Kickstarter habe ich eine BE Extension (Modul) erzeugt. Mit dieser Extension sollen Firmendaten verwaltet werden. Hier können z.B. Stammdaten, Lieferanten, Kunden u.s.w. in mittels den typo3 eigenen Formularen angelegt werden. Hierzu habe ich für jeden Bereich eine Frontend Extension erstellt, welche diese Daten aufnimmtt.
Solange ich mit Adminrechten angemeldet bin funktionieren die Extensions auch sehr gut. Nun habe ich einen Benutzer (Sachbearbeiter) angelegt, der nur die relevanten Seiten sieht, um neue Daten eingeben zu können.
So kann er sich über "Liste" die einzelnen Ordner und deren Inhalte (Kunden, Lieferanten, u.s.w.) anzeigen lassen und auch neue hinzufügen. Hier ist es die klassische Bearbeitung von Inhalten bei Frontend Plugins.
Das Backend Modul dient aber eigentlich zur Eingabe der Daten (was ja als Admin) auch funktioniert. Als Sachbearbeiter angemeldet, werden aber keine Inhalte (rechtes Frame) angezeigt, obwohl die Gruppe über die notwendigen Rechte verfügt.
So... lange Rede, kurzer Sinn. Hat das jemand verstanden und kann mir helfen?
Gruß
febo
hm...
ich weiß jetzt nicht wie ich das noch anders erklären könnte.
Hat den niemand eine Idee?
Moin moin,
ich stehe grade vor dem selben problem, und müsste, wenn möglich, bis heute abend eine Lösung dafür haben... hat da jemand einen Tipp für mich (uns?) ? 🙂
Hi Zonkie,
anbei meine main Funktion mit der es nun funktioniert. Achte auf die auskommentierten Bereiche wo der Admin abgefragt wird.
function main() {
global $BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$CLIENT,$TYPO3_CONF_VARS;
// Access check!
// The page will show only if there is a valid page and if this page may be viewed by the user
/*
$this->pageinfo = t3lib_BEfunc::readPageAccess($this->id,$this->perms_clause);
$access = is_array($this->pageinfo) ? 1 : 0;
if (($this->id && $access) || ($BE_USER->user["admin"] && !$this->id)) {
*/
// Draw the header.
$this->doc = t3lib_div::makeInstance("noDoc");
$this->doc->backPath = $BACK_PATH;
$this->doc->form='<form action="" method="POST">';
$this->doc->JScode = '
<script language="javascript" type="text/javascript">
script_ended = 0;
function jumpToUrl(URL) {
document.location = URL;
}
function deleteRecord(table,id,url,warning) { //
if (
confirm(eval(warning))
) {
window.location.href = "'.$this->doc->backPath.'tce_db.php?cmd["+table+"]["+id+"][delete]=1&redirect="+escape(url);
}
return false;
}
</script>
';
$this->doc->postCode='
<script language="javascript" type="text/javascript">
script_ended = 1;
if (top.fsMod) top.fsMod.recentIds["web"] = '.intval($this->id).';
</script>
';
$headerSection = ''; // $this->doc->getHeader("pages",$this->pageinfo,$this->pageinfo["_thePath"])."<br>".$LANG->sL("LLL:EXT:lang/locallang_core.php:labels.path").": ".t3lib_div::fixed_lgd_pre($this->pageinfo["_thePath"],50);
$this->content.=$this->doc->startPage($LANG->getLL("title"));
$this->content.=$this->doc->header($LANG->getLL("title"));
$this->content.=$this->doc->spacer(5);
$this->content.=$this->doc->section("",$this->doc->funcMenu($headerSection,t3lib_BEfunc::getFuncMenu($this->id,"SET[function]",$this->MOD_SETTINGS["function"],$this->MOD_MENU["function"])));
// Render content:
$this->moduleContent();
// ShortCut
if ($BE_USER->mayMakeShortcut()) {
$this->content.=$this->doc->spacer(20).$this->doc->section("",$this->doc->makeShortcutIcon("id",implode(",",array_keys($this->MOD_MENU)),$this->MCONF["name"]));
}
$this->content.=$this->doc->spacer(10);
/*
} else {
// If no access or if ID == zero
$this->doc = t3lib_div::makeInstance("noDoc");
$this->doc->backPath = $BACK_PATH;
$this->content.=$this->doc->startPage($LANG->getLL("title"));
$this->content.=$this->doc->header($LANG->getLL("title"));
$this->content.=$this->doc->spacer(5);
$this->content.=$this->doc->spacer(10);
}
*/
}
Ich hoffe, ich konnte Dir damit helfen.
Gruß
febo