CTRL+SHIFT+U - Clear Cache
CTRL+SHIFT+H - Hiding Heft Panel
CTRL+SHIFT+N - Fast Create Resource
CTRL+ALT+P - Preview Recource (in edit resorce window)
CTRL+ALT+S - Save
OK j’ai une version du snippet sur mon DD, le voici, peut-être pas la dernière attention !
Quelqu’un a remonté ça à Zi ?
.: COO - Commerce Guys - Community Driven Innovation :.
MODx est l'outil id
c’est le bon, a la ligne 17 :
# Jan 03, 07 -- converted to check for manager user (sottwell)
;)
CTRL+SHIFT+U - Clear Cache
CTRL+SHIFT+H - Hiding Heft Panel
CTRL+SHIFT+N - Fast Create Resource
CTRL+ALT+P - Preview Recource (in edit resorce window)
CTRL+ALT+S - Save
Juste quand j’allais poster cette ligne du snippet...
.: COO - Commerce Guys - Community Driven Innovation :.
MODx est l'outil id
Après plusieurs tests, je ne parviens pas à arriver à ce que je veux...
Avec tout le respect que je peux avoir pour sottwell (que je ne connais toutefois que trop peu!), j’ai l’impression que le snippet ManagerCheck a été transformé un peu à la va-vite.
Pas moyen de checker si je suis connecté au manager en tant qu’admin ou pas.
MemberCheck se base sur les Utilisateurs Web, et pas sur les Utilisateurs (tout court).
Et après examen du code (avec mes faibles compétences en code php), je ne vois pas trop de changement entre MemberCheck et ManagerCheck...
Ce dernier devrait en théorie permettre de tester l’appartenance à un groupe Utilisateur en plus de tester l’appartenance à un groupe Utilisateur Web.
Je me trompe ?
Parce que finalement je pensais mon besoin assez simple : je cherche juste à faire s’afficher un chunk si je suis connecté au manager...
davidm : tu y es parvenu toi grâce à ManagerCheck ?
ManagerCheck est une variante de MemberCheck que Susan a gentimment écrit suite à une demande d’adaptation du snippet sur le forum, c’est donc un peu logique que le code ne soit pas aussi léché qu’on a l’habitude de le voir venant de sa part (Susan est sans aucun doute l’un des pilliers du projet même si en ce moment elle ne peut plus contribuer en raison de problèmes de santé importants).
Ceci dit effectivement ManagerCheck vérifie si on appartient à un ou plusieurs groupe utilisateur et non si on est connecté au manager, pour ça il faudra tirer partie de l’API :
http://wiki.modxcms.com/index.php/API:userLoggedIn
Je ne connais pas de snippet qui gère ça, ni même de modifier PHx malheureusement...
.: COO - Commerce Guys - Community Driven Innovation :.
MODx est l'outil id
salut,
alors, j’ai retrouvé une modification du snippet de sottwell qui affiche un chunk si le manager fait partie du groupe qui peut modifier la page.
<?php
#::::::::::::::::::::::::::::::::::::::::
# Snippet name: DocumentManagerCheck
# Based on ManagerCheck by Ryan Thrash (vertexworks.com)
#
# Params:
# &chunk [string] (REQUIRED)
# name of the chunk to use if passes the check
#
# &default [string] (optional)
# name of the chunk to use if no webuser group-names match
#
# &ph [string] (optional)
# name of the placeholder to set instead of directly retuning chunk
#
# &debug [boolean] (optional | false)
# turn on debug mode for extra troubleshooting
#
# Example Usage:
#
# [[DocumentManagerCheck? &chunk=`privateSiteNav` &default=`publicSiteNav` &ph=`MemberMenu` &debug=`true`]]
#
#::::::::::::::::::::::::::::::::::::::::
# debug parameter
$debug = isset ($debug) ? $debug : false;
# check if inside manager
if ($m = $modx->insideManager()) {
return ''; # don't go any further when inside manager
}
$groups = $_SESSION['mgrShortname'];
if (!isset ($chunk)) {
return $debug ? '<p>Error: No Chunk Specified</p>' : '';
}
# check if default is set, if not sets value
$default = (isset($default))? $default : '';
# turn comma-delimited list of groups into an array
$groups = explode(',', $groups);
if (!class_exists('MemberCheck')) {
class MemberCheck {
var $allGroups = NULL;
var $debug;
function getInstance($debug) {
static $instance;
if (!isset ($instance)) {
$instance = new MemberCheck($debug);
}
return $instance;
}
function MemberCheck($debug = false) {
global $modx;
$this->debug = $debug;
if ($debug) {
$this->allGroups = array ();
$tableName = $modx->getFullTableName('documentgroup_names');
$sql = "SELECT name FROM $tableName";
if ($rs = $modx->db->query($sql)) {
while ($row = $modx->db->getRow($rs)) {
array_push($this->allGroups, stripslashes($row['name']));
}
}
}
}
function isValidGroup($groupName) {
$isValid = !(array_search($groupName, $this->allGroups) === false);
return $isValid;
}
function isMemberOfGroup($groups) {
global $modx;
if (isset ($_SESSION['mgrDocgroups']) && isset ($_SESSION['mgrValidated'])) {
$dg= $_SESSION['mgrDocgroups'];
$dgn= $_SESSION['mgrDocgrpNames'];
} else { return false; }
if (is_array($dg)) {
// resolve ids to names
$dgn= array ();
$tbl= $modx->getFullTableName("document_groups");
$ds= $modx->dbQuery("SELECT document FROM $tbl WHERE document_group IN (" . implode(",", $dg) . ")");
while ($row= $modx->fetchRow($ds)) {
if( $row['document'] == $modx->documentIdentifier ) return true;
}
}
return false;
}
function getMemberChunk(& $groups, $chunk, $default) {
global $modx;
$o = '';
if (is_array($groups)) {
for ($i = 0; $i < count($groups); $i++) {
$groups[$i] = trim($groups[$i]);
if ($this->debug) {
if (!$this->isValidGroup($groups[$i])) {
return "<p>The group <strong>" . $groups[$i] . "</strong> could not be found...</p>";
}
}
}
$check = $this->isMemberOfGroup($groups);
$chunkcheck = $modx->getChunk($chunk);
$defaultcheck = $modx->getChunk($default);
if ( $check ) {
$o .= ($check && $chunkcheck) ? $chunkcheck : '';
if (!$chunkcheck)
$o .= $this->debug ? "<p>The chunk <strong>$chunk</strong> not found...</p>" : '';
}
else
{
if ($defaultcheck && (strlen($default) >= 1)) {
$o .= ($defaultcheck) ? $defaultcheck : '';
}
if (!$defaultcheck && (strlen($default) >= 1)) {
$o .= $this->debug ? "<p>The default chunk <strong>$default</strong> not found...</p>" : '';
}
}
} else {
$o .= "<p>No valid group names were specified!</p>";
}
return $o;
}
}
}
$memberCheck = MemberCheck :: getInstance($debug);
if (!isset ($ph)) {
return $memberCheck->getMemberChunk($groups, $chunk, $default);
} else {
$modx->setPlaceholder($ph, $memberCheck->getMemberChunk($groups, $chunk, $default));
return '';
}
?>
CTRL+SHIFT+U - Clear Cache
CTRL+SHIFT+H - Hiding Heft Panel
CTRL+SHIFT+N - Fast Create Resource
CTRL+ALT+P - Preview Recource (in edit resorce window)
CTRL+ALT+S - Save