Funktion zum Rechte Kopieren!?
Funktion zum Rechte Kopieren!?
Hallo, kennt einer eine Funktion die mir Rechte von einem Bestehenden Verzeichnis auf ein anderes dupliziert? Also zb. copyRichts(FromIdcat, $toIdCat,$UserId)... Finde so eine nicht.. Die Funktion copyRightsForElement (in der functions.rights.php) kann ich so leider nicht gebrauchen.. Aber mal am Rande zusätzlich gefragt, wofür ist der Übergabewert $area und die Tabelle con_area?
mfg franky
mfg franky
hmm...
was willst du denn genau wohin kopieren ?
$area wird benötigt um die rechte zuortenbar zu machen...
content zb wäre con
kategorien zb str
was willst du denn genau wohin kopieren ?
$area wird benötigt um die rechte zuortenbar zu machen...
content zb wäre con
kategorien zb str
*** make your own tools (wishlist :: thx)
ist eine anlehnung an meinen vorherigen Forum beitrag, wo es darum ging eine Kategorie inkl. Rechte und Einstellungen ohne das "Kopie von" zu kopieren.. Alles andere klappt jetzt soweit wie ich das möchte, jedoch benötige ich noch eine Funktion welche die Rechte an die neue Kategorie von der vorhandenen übernimmt und diese an die neue weitergibt. mfg franky
ähm, dieses code stück würde genau das machen was du willst:
$sourceidcat = von welcher idcat die rechte übernommen werden sollen
$targetidcat = die ziel idcat wohin die rechte kopiert werden sollen
$lang = die id der aktuellen sprache
Code: Alles auswählen
// set correct rights for element
cInclude ("includes", "functions.rights.php");
copyRightsForElement("str", $sourceidcat, $targetidcat, $lang);
copyRightsForElement("con", $sourceidcat, $targetidcat, $lang);
$targetidcat = die ziel idcat wohin die rechte kopiert werden sollen
$lang = die id der aktuellen sprache
*** make your own tools (wishlist :: thx)
Hallo, ja die Funktion habe ich schon ausprobiert leider funktioniert diese nicht bei mir (funktionieren wohl, also kein error, aber kein effekt)
hier mal der source der mir kategorien mit unterkategorien füllen soll, und dann bestehende artikel hineinkopieren:
Artikel kopieren klappt sowei super, kategorien inkl. unterkategorien erstellen auch. Nur die Rechtevergabe und Artikel als Startartikel setzen klappt nicht. Die zahlen 100-103 sind die referenz catid's welche die erforderlichen rechte für die neuen kategorien enthalten.
nächste frage / anmerkung:
kann ich die Function so benutzen? db->f ist richtig gesetzt, nur leider hat auch diese Funktion keine Auswirkung ...
conMakeStart($db->f("idcatart"),1);
mfg franky
hier mal der source der mir kategorien mit unterkategorien füllen soll, und dann bestehende artikel hineinkopieren:
Code: Alles auswählen
// Pressespiegel Kategorien anlegen
$PressespiegelCat = strNewCategory($TreeIdCat, "Pressespiegel", true);
$PressespiegelAktuellCat = strNewCategory($PressespiegelCat, "aktuell", true);
$PressespiegelArchivCat = strNewCategory($PressespiegelCat, "Archiv", true);
// Kategorien mit Inhalt (Artikelvorlagen) füllen
conCopyArticle(86, $PressespiegelCat, "Pressespiegel - Startseite","1");
conCopyArticle(87, $PressespiegelAktuellCat, "Pressespiegel - aktuell - Startseite","1");
conCopyArticle(88, $PressespiegelAktuellCat, "Pressespiegel - Vorlage");
conCopyArticle(89, $PressespiegelArchivCat, "Pressespiegel - Archiv - Startseite","1");
// Rechte für die Kategorie koprieren
copyRightsForElement("con", "100", $PressespiegelCat, "1");
copyRightsForElement("con", "101", $PressespiegelAktuellCat, "1");
copyRightsForElement("con", "102", $PressespiegelArchivCat, "1");
copyRightsForElement("str", "100", $PressespiegelCat, "1");
copyRightsForElement("str", "101", $PressespiegelAktuellCat, "1");
copyRightsForElement("str", "102", $PressespiegelArchivCat, "1");
nächste frage / anmerkung:
kann ich die Function so benutzen? db->f ist richtig gesetzt, nur leider hat auch diese Funktion keine Auswirkung ...
conMakeStart($db->f("idcatart"),1);
mfg franky
gibt es in der con_rights einträge die beim feld idcat einträge die 100,101,102 enthalten ?
müsste genau so funktionieren...
ich würd mir einfach mal die ganzen werte vor benutzung mit echo ausgeben lassen...
zb -> $db->f("idcatart")
sonst wird es etwas schwer zu debuggen für dich...
Code: Alles auswählen
conMakeStart($idcatart,1);
ich würd mir einfach mal die ganzen werte vor benutzung mit echo ausgeben lassen...
zb -> $db->f("idcatart")
sonst wird es etwas schwer zu debuggen für dich...
*** make your own tools (wishlist :: thx)
Alles so wie es sein müsste... Die Datenbank Tabelle enthält die Werte..:
Hier ist die Funktion zum Rechte kopieren aus Contenido, vielleicht ist da ja ein Fehler drin. Habe da aber nichts geändert..:
Desweiteren Funktioniert es mit den Startartikeln auch nicht. Habe die Werte ausgegeben die Stimmen jetzt, aber er ändert trotzdem nichts .. Hier mal der Code von der Funktion die ich bearbeitet habe:
vielleicht wirst du da ja raus schlau... ich verstehs langsam nicht mehr...[/code]
Und er kopiert keine Rechte ...121 3d033a1fa6bff346a57ad27c538a1c6e 2 56 100 1 1 0
Bearbeiten Löschen 122 3d033a1fa6bff346a57ad27c538a1c6e 1 2 101 1 1 0
Bearbeiten Löschen 123 3d033a1fa6bff346a57ad27c538a1c6e 1 3 101 1 1 0
Bearbeiten Löschen 124 3d033a1fa6bff346a57ad27c538a1c6e 1 57 101 1 1 0
Bearbeiten Löschen 125 3d033a1fa6bff346a57ad27c538a1c6e 1 404 101 1 1 0
Bearbeiten Löschen 126 3d033a1fa6bff346a57ad27c538a1c6e 2 56 101 1 1 0
Bearbeiten Löschen 127 3d033a1fa6bff346a57ad27c538a1c6e 3 5 101 1 1 0
Bearbeiten Löschen 128 3d033a1fa6bff346a57ad27c538a1c6e 3 54 101 1 1 0
Bearbeiten Löschen 129 3d033a1fa6bff346a57ad27c538a1c6e 1 2 102 1 1 0
Bearbeiten Löschen 130 3d033a1fa6bff346a57ad27c538a1c6e 1 3 102 1 1 0
Bearbeiten Löschen 131 3d033a1fa6bff346a57ad27c538a1c6e 1 57 102 1 1 0
Bearbeiten Löschen 132 3d033a1fa6bff346a57ad27c538a1c6e 1 404 102 1 1 0
Bearbeiten Löschen 133 3d033a1fa6bff346a57ad27c538a1c6e 2 56 102 1 1 0
Bearbeiten Löschen 134 3d033a1fa6bff346a57ad27c538a1c6e 3 5 102 1 1 0
Bearbeiten Löschen 135 3d033a1fa6bff346a57ad27c538a1c6e 3 54 102 1 1 0
Bearbeiten Löschen 136 3d033a1fa6bff346a57ad27c538a1c6e 2 56 103 1 1 0
Hier ist die Funktion zum Rechte kopieren aus Contenido, vielleicht ist da ja ein Fehler drin. Habe da aber nichts geändert..:
Code: Alles auswählen
function copyRightsForElement ($area, $iditem, $newiditem, $idlang=false) {
global $cfg, $perm, $auth, $area_tree;
$db = new DB_Contenido;
$db2 = new DB_Contenido;
// get all user_id values for con_rights
$userIDContainer = $perm->getGroupsForUser($auth->auth["uid"]); // add groups if available
$userIDContainer[] = $auth->auth["uid"]; // add user_id of current user
// long way start
/*
$sql = "SELECT
group_id
FROM
".$cfg["tab"]["groupmembers"]."
WHERE
user_id = '".$userIDContainer[0]."'";
$db->query($sql);
while ($db->next_record()) {
$userIDContainer[] = $db->f("group_id"); // add group_ids
}
*/
// long way end
foreach ($userIDContainer as $key) {
$statement_where2[] = "user_id = '".$key."' ";
}
$where_users = "(".implode(" OR ", $statement_where2 ) .")"; // only duplicate on user and where user is member of
// get all idarea values for $area
// short way
$AreaContainer = $area_tree[$perm->showareas($area)];
// long way
/*
$AreaContainer[0] = $perm->getIDForArea($area);
$sql = "SELECT
idarea
FROM
".$cfg["tab"]["area"]."
WHERE
parent_id = '".$area."'";
$db->query($sql);
while ($db->next_record()) {
$AreaContainer[] = $db->f("idarea");
}
*/
// long version start
// get all actions for corresponding area
$AreaActionContainer = array();
$sql = "SELECT
idarea, idaction
FROM
".$cfg["tab"]["actions"]."
WHERE
idarea IN (".implode (',', $AreaContainer).")";
$db->query($sql);
while ($db->next_record()) {
$AreaActionContainer[] = Array ("idarea"=>$db->f("idarea"), "idaction"=>$db->f("idaction"));
}
// build sql statement for con_rights
foreach ($AreaActionContainer as $key) {
$statement_where[] = "( idarea = ".$key["idarea"]." AND idaction = ".$key["idaction"]." )";
}
$where_area_actions = "(".implode(" OR ", $statement_where ) .")"; // only correct area action pairs possible
// final sql statement to get all effected elements in con_right
$sql = "SELECT
*
FROM
".$cfg["tab"]["rights"]."
WHERE
{$where_area_actions} AND
{$where_users} AND
idcat = {$iditem}";
// long version end
/*
// short version start
$sql = "SELECT
*
FROM
".$cfg["tab"]["rights"]."
WHERE
idarea IN (".implode (',', $AreaContainer).") AND
idaction != 0 AND
{$where_users} AND
idcat = {$iditem}";
// short version end
*/
if ($idlang) {
$sql.= " AND idlang='$idlang'";
}
$db->query($sql);
while ($db->next_record()) {
$sql = "INSERT INTO ".$cfg["tab"]["rights"]." (idright,user_id,idarea,idaction,idcat,idclient,idlang,`type`) VALUES ('".$db2->nextid($cfg["tab"]["rights"])."','".$db->f("user_id")."','".$db->f("idarea")."','".$db->f("idaction")."','".$newiditem."','".$db->f("idclient")."','".$db->f("idlang")."','".$db->f("type")."');";
$db2->query($sql);
}
// permissions reloaded...
$perm->load_permissions(true);
}
Desweiteren Funktioniert es mit den Startartikeln auch nicht. Habe die Werte ausgegeben die Stimmen jetzt, aber er ändert trotzdem nichts .. Hier mal der Code von der Funktion die ich bearbeitet habe:
Code: Alles auswählen
function conCopyArticle ($srcidart, $targetcat = 0, $newtitle = "", $startart = "")
{
global $cfg, $_cecRegistry;
$db = new DB_Contenido;
$db2 = new DB_Contenido;
$sql = "SELECT idclient FROM ".$cfg["tab"]["art"] ." WHERE idart = '$srcidart'";
$db->query($sql);
if (!$db->next_record())
{
return false;
}
$idclient = $db->f("idclient");
$dstidart = $db->nextid($cfg["tab"]["art"]);
$sql = "INSERT INTO ".$cfg["tab"]["art"]." (idart, idclient) VALUES ('$dstidart', '$idclient')";
$db->query($sql);
conCopyArtLang($srcidart, $dstidart, $newtitle);
/* Update category */
$sql = "SELECT idcat FROM ".$cfg["tab"]["cat_art"]." WHERE idart = '$srcidart'";
$db->query($sql);
while ($db->next_record())
{
$nextid = $db2->nextid($cfg["tab"]["cat_art"]);
$idcatart = $nextid;
if ($targetcat != 0)
{
$idcat = $targetcat;
} else {
$idcat = $db->f("idcat");
}
$idart = $dstidart;
$status = $db->f("status");
$createcode = 1;
$sql = "INSERT INTO ".$cfg["tab"]["cat_art"]
." (idcatart, idcat, idart, is_start, status,
createcode) VALUES ('$idcatart', '$idcat',
'$idart', '0', '$status', '$createcode')";
$db->query($sql);
// added!!!! Das hief funktioniert nicht
if(($startart != "")&&($startart != "0")){
conMakeStart($idcatart,1);
}
}
kann es mir erst später etwas ansehen... momentan keine zeit
*** make your own tools (wishlist :: thx)
hmm...
was sagt das errorlog ?
bzw. wie rufst du dein script auf ?
was sagt das errorlog ?
bzw. wie rufst du dein script auf ?
*** make your own tools (wishlist :: thx)
also im errorlog steht überhaupt nichts was in dieser zeit in frage kommen könnte..
Ich ruft die Funktionen auf, wie ich es oben beschrieben habe.. Das ist meine Funktion um einen neuen Standort mit der entspechenden Kategoriestruktur und den Artikeln zu erstellen:
Finde einfach nicht meinen Fehler ...
Ich ruft die Funktionen auf, wie ich es oben beschrieben habe.. Das ist meine Funktion um einen neuen Standort mit der entspechenden Kategoriestruktur und den Artikeln zu erstellen:
Code: Alles auswählen
function NewStandort($StandortName){
cInclude("includes", "functions.str.php");
cInclude("includes", "functions.con.php");
cInclude("includes", "functions.rights.php");
global $str;
$db = new DB_Contenido();
strRemakeTreeTable();
// Neuen Tree zusammenbauen
$TreeIdCat = strNewTree($StandortName);
conCopyArticle(38, $TreeIdCat, "Vorlage - Startseite");
// News & Termine Kategorien anlegen
$NewsTermineCat = strNewCategory($TreeIdCat, "News & Termine", true);
$NewsTermineAktuellCat = strNewCategory($NewsTermineCat, "aktuell", true);
$NewsTermineArchivCat = strNewCategory($NewsTermineCat, "Archiv", true);
// Kategorien mit Inhalt (Artikelvorlagen) füllen
conCopyArticle(75, $NewsTermineCat, "News & Termine - Startseite","1");
conCopyArticle(80, $NewsTermineAktuellCat, "News & Termine - aktuell - Startseite","1");
conCopyArticle(132, $NewsTermineAktuellCat, "News & Termine - Vorlage");
conCopyArticle(81, $NewsTermineArchivCat, "News & Termine - Archiv - Startseite","1");
// Rechte für die Kategorie koprieren
copyRightsForElement("con", "100", $NewsTermineCat, "1");
copyRightsForElement("con", "101", $NewsTermineAktuellCat, "1");
copyRightsForElement("con", "102", $NewsTermineArchivCat, "1");
copyRightsForElement("str", "100", $NewsTermineCat, "1");
copyRightsForElement("str", "101", $NewsTermineAktuellCat, "1");
copyRightsForElement("str", "102", $NewsTermineArchivCat, "1");
// Startartikel festlegen
// Stellenmarkt Kategorien anlegen
$StellenmarktCat = strNewCategory($TreeIdCat, "Stellenmarkt", true);
$StellenmarktAktuellCat = strNewCategory($StellenmarktCat, "aktuell", true);
$StellenmarktArchivCat = strNewCategory($StellenmarktCat, "Archiv", true);
// Kategorien mit Inhalt (Artikelvorlagen) füllen
conCopyArticle(82, $StellenmarktCat, "Stellenmarkt - Startseite","1");
conCopyArticle(83, $StellenmarktAktuellCat, "Stellenmarkt - aktuell - Startseite","1");
conCopyArticle(84, $StellenmarktAktuellCat, "Stellenmarkt - Vorlage");
conCopyArticle(85, $StellenmarktArchivCat, "Stellenmarkt - Archiv - Startseite","1");
// Rechte für die Kategorie koprieren
copyRightsForElement("con", "100", $StellenmarktCat, "1");
copyRightsForElement("con", "101", $StellenmarktAktuellCat, "1");
copyRightsForElement("con", "102", $StellenmarktArchivCat, "1");
copyRightsForElement("str", "100", $StellenmarktCat, "1");
copyRightsForElement("str", "101", $StellenmarktAktuellCat, "1");
copyRightsForElement("str", "102", $StellenmarktArchivCat, "1");
// Pressespiegel Kategorien anlegen
$PressespiegelCat = strNewCategory($TreeIdCat, "Pressespiegel", true);
$PressespiegelAktuellCat = strNewCategory($PressespiegelCat, "aktuell", true);
$PressespiegelArchivCat = strNewCategory($PressespiegelCat, "Archiv", true);
// Kategorien mit Inhalt (Artikelvorlagen) füllen
conCopyArticle(86, $PressespiegelCat, "Pressespiegel - Startseite","1");
conCopyArticle(87, $PressespiegelAktuellCat, "Pressespiegel - aktuell - Startseite","1");
conCopyArticle(88, $PressespiegelAktuellCat, "Pressespiegel - Vorlage");
conCopyArticle(89, $PressespiegelArchivCat, "Pressespiegel - Archiv - Startseite","1");
// Rechte für die Kategorie koprieren
copyRightsForElement("con", "100", $PressespiegelCat, "1");
copyRightsForElement("con", "101", $PressespiegelAktuellCat, "1");
copyRightsForElement("con", "102", $PressespiegelArchivCat, "1");
copyRightsForElement("str", "100", $PressespiegelCat, "1");
copyRightsForElement("str", "101", $PressespiegelAktuellCat, "1");
copyRightsForElement("str", "102", $PressespiegelArchivCat, "1");
echo("Datenbaum wurde erfolgreich erstellt");
return($TreeIdCat);
}