Home
Download
Add-ons
Help
Forum
Organisation
Project
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email?
May 25, 2012, 10:02:31 PM
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Search:
Advanced search
Interested in joining the WebsiteBaker team?
For more Information read
here
or on our
new website
.
155529
Posts in
21713
Topics by
7737
Members
Latest Member:
chris85
WebsiteBaker Community Forum
Deutsch (German)
Hilfe/Support
(Moderator:
badknight
)
"Seite direkt bearbeiten" nur für Admins?
Pages: [
1
]
Go Down
Author
Topic: "Seite direkt bearbeiten" nur für Admins? (Read 1552 times)
micon
Offline
Posts: 79
"Seite direkt bearbeiten" nur für Admins?
«
on:
November 18, 2009, 12:32:22 AM »
Mit diesem kleinen Snippet kann man ja bekanntlich Seiten direkt bearbeiten:
Code:
<?php
if (
$wb
->
is_authenticated
()) { echo
'<a href="'
.
WB_URL
.
'admin/pages/modify.php?page_id='
.
$page_id
.
'">Seite bearbeiten</a>'
;} }
?>
Allerdings kann das jetzt JEDER angemeldete Benutzer.
Wie kann man das regeln, dass NUR die Gruppe der Administratoren diesen Link sieht?
Logged
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #1 on:
November 18, 2009, 12:52:00 AM »
Quote from: micon on November 18, 2009, 12:32:22 AM
Mit diesem kleinen Snippet kann man ja bekanntlich Seiten direkt bearbeiten:
Code:
<?php
if (
$wb
->
is_authenticated
()) { echo
'<a href="'
.
WB_URL
.
'admin/pages/modify.php?page_id='
.
$page_id
.
'">Seite bearbeiten</a>'
;} }
?>
Allerdings kann das jetzt JEDER angemeldete Benutzer.
Wie kann man das regeln, dass NUR die Gruppe der Administratoren diesen Link sieht?
Schau auf AMASP nach dem Snippet oder Droplet Frontend Edit, oder so ähnlich.
Das macht, was Du wilslt.
Gruß,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
Hans>NULL
Offline
Posts: 1389
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #2 on:
November 18, 2009, 12:54:52 AM »
Wenn Du selber basteln willst gehört zum is_authenticated() noch die entsprechende group_id == 1
Ansonsten mach's wie von Stefek empfohlen.
Gruß, Hans>NUL
Logged
/dev/null Ort ohne Wiederkehr
DarkViper
Development Team
Offline
Posts: 1252
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #3 on:
November 18, 2009, 04:16:12 AM »
kleine Korrektur: (sorry Hans)
Seit die Rechtestruktur auf MultipleGroups umgestellt ist, genügt der einfache Vergleich nicht mehr, Da ein User Mitglied in verschiedenen Gruppen (die u.U. Adminrechte haben) sein kann, ebenso kann er, zusammen mit anderen als admin_user in der jeweiligen Seite eingetragen sein.
Ich hab mal kurz das Droplet 'EditThisPage' von AMASP etwas aufpoliert und auch gleich die Icons der Themes berücksichtigt.
(dürfte auch eine Idee schneller sein, da nur noch eine Query ausgeführt wird, die zudem auch nur unbedingt erforderliche Daten abholt und nicht komplette Datensätze.)
Code: (EditThisPage_new)
<?php
global
$wb
,
$database
,
$HEADING
;
$returnvalue
=
''
;
if (
$wb
->
is_authenticated
() ) {
$is_admin
=
false
;
$page_id
=
PAGE_ID
==
0
?
$wb
->
default_page_id
:
PAGE_ID
;
$user_id
=
$wb
->
get_user_id
();
if (
$rset
=
$database
->
query
(
"SELECT `admin_users`, `admin_groups` FROM `"
.
TABLE_PREFIX
.
"pages` WHERE `page_id` = "
.
$page_id
)) {
if (
$rec
=
$rset
->
fetchRow
()) {
$user_groups
=
$wb
->
get_groups_id
();
$admin_groups
=
explode
(
','
,
$rec
[
'admin_groups'
]);
if (
$user_groups
&&
$admin_groups
) {
foreach(
$user_groups
as
$gid
) {
if (
in_array
(
$gid
,
$admin_groups
)) {
$is_admin
=
true
;
break;
}
}
}
$admin_users
=
explode
(
','
,
$rec
[
'admin_users'
]);
if (
$admin_users
) {
if (
in_array
(
$user_id
,
$admin_users
)) {
$is_admin
=
true
;; }
}
}
}
if (
$is_admin
) {
$tpl
=
"<a href=\""
.
ADMIN_URL
.
"/pages/%1\$s.php?page_id="
.
$page_id
.
"\" target=\"_blank\" title=\"%2\$s\">"
;
$tpl
.=
"<img src=\""
.
THEME_URL
.
"/images/%3\$s_16.png\" alt=\"\" /></a>"
;
$show
= (isset(
$show
) ? (
$show
<
2
?
1
: (
$show
>
7
?
7
:
$show
)) :
1
);
if (
$show
&
1
) {
$returnvalue
.=
sprintf
(
$tpl
,
'modify'
,
$HEADING
[
'MODIFY_PAGE'
],
'edit'
); }
$sys_perm
=
$wb
->
get_session
(
'SYSTEM_PERMISSIONS'
);
if (@
is_array
(
$sys_perm
)) {
if ((
$show
&
2
) && (
array_search
(
'pages_settings'
,
$sys_perm
)!==
false
)) {
$returnvalue
.=
sprintf
(
$tpl
,
'settings'
,
$HEADING
[
'MODIFY_PAGE_SETTINGS'
],
'modify'
);
}
if ((
$show
&
4
) && (
array_search
(
'pages_modify'
,
$sys_perm
)!==
false
)) {
$returnvalue
.=
sprintf
(
$tpl
,
'sections'
,
$HEADING
[
'MANAGE_SECTIONS'
],
'sections'
);
}
}
if (
$returnvalue
!=
''
) {
$returnvalue
=
"<div class=\"EditThisPage\">"
.
$returnvalue
.
"</div>"
; }
}
}
return(
$returnvalue
==
''
?
true
:
$returnvalue
);
?>
Das Teil funktioniert auch, wenn kein Frontend-Login aktiviert ist, jedoch ein Admin eine Seite aus dem Backend aufruft.
[edit Nachtrag]
Using: [[EditThisPage]] or [[EditThisPage?show=3]]
Values for show:
1 = edit page (default)
2 = modify page options
4 = modify sections
to combine the links, simply add the Values (i.e show all = 1+2+4 => show=7)
Add div.EditThisPage{} to your Template CSS
I.e:
div.EditThisPage {
display: inline;
}
div.EditThisPage img {
margin: 0px 3px;
border: none;
}
[/edit Nachtrag]
viel Spass...
Werner
«
Last Edit: November 19, 2009, 09:30:21 PM by DarkViper
»
Logged
Anleitungen lesen und selber nachdenken ist anstrengend... Da lass ich doch lieber andere für mich denken...
In
1984
: Nineteen Eighty-Four is a unrealistic utopia!!
In
2012
: Nineteen Eighty-Four is a little piece only of our reality!!
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #4 on:
November 18, 2009, 01:08:13 PM »
Hallo Werner,
mag das neue Droplet gerne.
Wäre es auch möglich, Links zu den Seiteeinstellungen und Seitensections zu setzen, wenn der Fall ist, dass der Benutzer Zugriff darauf hat?
Das wäre ein cooles Droplet.
Gruß,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
konto
Offline
Posts: 23
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #5 on:
November 18, 2009, 01:18:40 PM »
Wie meint ihr dies?
Also wo muss ich was einfügen, dass ich so direkt auf die Site komme, um dies zu bearbeiten?!
Lg
edit: könnt ihr mir gleich den ganzen link geben?
will auf diese url:
192.168.3.132/wb
Also direkt im netzwerk.
Ist einfach die Index seite, welche ich meine...also home.php
Lg
Logged
Hans>NULL
Offline
Posts: 1389
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #6 on:
November 18, 2009, 02:54:58 PM »
@DarkViper
Quote
kleine Korrektur: (sorry Hans)
Dank für die Aufklärung. So werde ich meine Scripts nochmal auf diesen Sachverhalt hin überprüfen, also ob auf Notwendigkeit.
Bin zwar erstmal froh, daß meine ersten Schnipsel nicht nur laufen, sondern auch was bewirken,
aber Türen sollen die natürlich auch nicht öffnen
Gruß, Hans>NUL
Logged
/dev/null Ort ohne Wiederkehr
DarkViper
Development Team
Offline
Posts: 1252
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #7 on:
November 18, 2009, 03:40:50 PM »
@Stefek
Ich hab das Teil noch ein wenig ergänzt. Die Rechteabfragen habe ich nicht weiter differenziert, das erledigt dann das Backend beim Aufruf.
Die Änderungen sind im
Originalpost weiter oben
eingebaut.
Logged
Anleitungen lesen und selber nachdenken ist anstrengend... Da lass ich doch lieber andere für mich denken...
In
1984
: Nineteen Eighty-Four is a unrealistic utopia!!
In
2012
: Nineteen Eighty-Four is a little piece only of our reality!!
Hans>NULL
Offline
Posts: 1389
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #8 on:
November 18, 2009, 03:45:59 PM »
So, überprüft.
Resultat ok, da hier Redaktionen + Admins in nur zwei Gruppen existieren. (darauf hatte ich es auch fixiert)
Will man aber das Potential MultipleGroups ausschöpfen, muß man Deiner Empfehlung folgen.
Dank und Gruß, Hans>NUL
Logged
/dev/null Ort ohne Wiederkehr
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #9 on:
November 18, 2009, 04:38:54 PM »
Hallo Werner.
Noch ein kleiner Schönheitsfehler, wenn ich eine Gruppe habe, die sich zwar anmelden kann, die aber keinerlei Rechte bei Seiten hat bzw. der eine Seite nicht zugeführt wurde.
In dem Falle bekomme ich die Note:
Error in: ETP?show=7, no correct returnvalue.
Auch schade, dass wenn ich als Editor einer Gruppe zugefügt wurde, alle images/links angezeigt werden, wenn ich aber darauf klicke, ich die Nachricht bekomme "
ungenügende zugriffsrechte
".
Wäre schöne, wenn die Links in dem Fall nicht auftauchen.
Gruß,
Stefek
BTW. Du kannst Das CSS auch gleich ins Droplet schreiben, weil die SuMas sich nicht einlogen, werden sie es auch nicht validieren:
Bei mir habe ich es im Droplet so ergänzt:
Code:
<?php
global
$wb
,
$database
,
$HEADING
;
if (
$wb
->
is_authenticated
() ) {
$css
=
'<style media="screen" type="text/css">
<!--
div.EditThisPage { background-color: #4a5770; text-align: center; padding: 2px; position: fixed; top: 5px; right: 20px; width: 80px; height: 40px; border: solid 2px #ced9da; -moz-opacity: 0.80; filter: alpha(opacity=80); opacity: 0.80 }
div.EditThisPage a img {margin: 2px; -moz-opacity: 0.60; filter: alpha(opacity=60); opacity: 0.60}
div.EditThisPage a:hover img {-moz-opacity: 0.99; filter: alpha(opacity=99); opacity: 0.99 }
div.EditThisPage p.page_id { color: #ebeced; font-size: 10px; margin-bottom: 3px; margin-top: 3px }
-->
</style>'
;
$returnvalue
=
''
;
Und das positive return dann ergänzt:
$returnvalue
=
$css
.
"<div class=\"EditThisPage\">"
.
$returnvalue
.
"</div>"
;
So bleibt alles im Droplet und es muss nicht im Template CSS gefummelt werden.
Gruß,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
DarkViper
Development Team
Offline
Posts: 1252
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #10 on:
November 18, 2009, 05:05:52 PM »
Quote
BTW. Du kannst Das CSS auch gleich ins Droplet schreiben, weil die SuMas sich nicht einlogen, werden sie es auch nicht validieren:
1. Bei XHTML ist CSS grundsätzlich nur innerhalb des <head> Bereiches erlaubt. Mit Ausnahme von style="" innerhalb von Tags. Und da es bei mir nur XHTML-Code gibt......
2. Nicht XHTML-conformer Code ist für WB-Neuentwicklungen nicht erwünscht. (Sagt jetzt einfach mal die QS)
3. Habe ich selbst, ehrlich gesagt, keine Lust mich bei einer Style-Änderung durch den Source von WB, Addons und Droplets zu wühlen, um auch das letzte, irgendwo versteckte CSS-Element zu finden...
Quote
In dem Falle bekomme ich die Note: Error in: ETP?show=7, no correct returnvalue.
Ok, die Droplet-Engine mag keine Leerstrings als Rückgabewert.
die letzte Zeile:
return '';
durch
return true;
ersetzen, sollte den Fehler beheben.
Ich schau mal nach den restlichen Rechten... aber vermutlich mutiert dann das 'kleine' Droplet zum Snippet
«
Last Edit: November 18, 2009, 05:19:50 PM by DarkViper
»
Logged
Anleitungen lesen und selber nachdenken ist anstrengend... Da lass ich doch lieber andere für mich denken...
In
1984
: Nineteen Eighty-Four is a unrealistic utopia!!
In
2012
: Nineteen Eighty-Four is a little piece only of our reality!!
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #11 on:
November 18, 2009, 05:18:57 PM »
Quote from: DarkViper on November 18, 2009, 05:05:52 PM
Auch habe ich selbst, ehrlich gesagt, keine Lust mich bei einer Style-Änderung durch den Source von WB zu wühlen, um auch das letzte, irgendwo versteckte CSS-Element zu finden...
Macht Sinn.
Quote
Ich schau mal nach den restlichen Rechten...
Wäre toll.
Quote
aber vermutlich mutiert dann das 'kleine' Droplet zum Snippet
Wäre nicht schlimm.
Gruß,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
DarkViper
Development Team
Offline
Posts: 1252
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #12 on:
November 19, 2009, 10:41:50 AM »
So, jetzt sollte es auch mit den restlichen Rechten klappen...
Die Änderungen sind im
Originalpost weiter oben
eingebaut.
Logged
Anleitungen lesen und selber nachdenken ist anstrengend... Da lass ich doch lieber andere für mich denken...
In
1984
: Nineteen Eighty-Four is a unrealistic utopia!!
In
2012
: Nineteen Eighty-Four is a little piece only of our reality!!
Stefek
WebsiteBaker Org e.V.
Offline
Posts: 4884
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #13 on:
February 03, 2010, 08:38:57 PM »
Hallo Werner,
könntest Du einen Tipp geben, wie ich das statt als Droplet, als ein installierbares Snippet (Function) angehen könnte?
Wäre für einen Tipp sehr dankbar.
MfG,
Stefek
Logged
"In a time of universal deceit, telling the truth becomes a revolutionary act."
- George Orwell, Nineteen eighty-four (1984)
crnogorac081
AddOn Development
Offline
Posts: 1706
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #14 on:
February 03, 2010, 08:54:47 PM »
Like the code you wrote DarkViper, and following this thread
Logged
Wow, I coded something myself: PM Messanger Modul ,Searchbox with suggestions
s.fischer
Offline
Posts: 262
Re: "Seite direkt bearbeiten" nur für Admins?
«
Reply #15 on:
August 24, 2010, 04:20:24 PM »
danke! schönes teil!!!
gruß sfischer
Logged
Glaube nicht alles was du denkst!!!
Pages: [
1
]
Go Up
Jump to:
Please select a destination:
-----------------------------
General
-----------------------------
=> General Announcements
=> Security Announcements
=> Documentation
=> WebsiteBaker Website Showcase
=> Guest Area & Off-Topic
-----------------------------
English
-----------------------------
=> WebsiteBaker 2.9
===> Announcements
===> Help/Support
=====> Modules / Extensions
===> Suggestions
===> Software bugs
=> Help & Support
=> Modules
=> Droplets (PHP code for use with Droplet module) & Snippets (raw PHP code)
=> jQuery
=> Templates, Menus & Design
=> WebsiteBaker Language Files
=> WebsiteBaker 2.x discussion
=> WebsiteBaker 3
=> Archive (posts up to 2007)
-----------------------------
Deutsch (German)
-----------------------------
=> Ankündigungen
=> WebsiteBaker 2.9
===> Ankündigungen
===> Hilfe/Support
=====> Module / Extensions
===> Vorschläge
===> Softwarefehler
===> Erfahrungs und Testberichte
=> Hilfe/Support
=> Module & Snippets
=> Templates & Design
=> Tutorials
=> jQuery
=> Diskussion über WB
=> Off-Topic
=> Archiv für Themen bis 2007
-----------------------------
Nederlands (Dutch)
-----------------------------
=> Aankondigingen
=> Hulp & Ondersteuning
=> Niet-Terzake (Off Topic)
-----------------------------
Francais (French)
-----------------------------
=> Help/Support
-----------------------------
Italiano (Italian)
-----------------------------
=> Help/Support
-----------------------------
Bakery (WB shop module)
-----------------------------
=> Bakery English
=> Bakery Deutsch
-----------------------------
KeepInTouch (Multi Contact Module)
-----------------------------
=> KeepInTouch English
=> KeepInTouch Deutsch
Loading...