]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Added ability for ECML keyword definitions to restrict themselves to specific views.
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Thu, 15 Apr 2010 19:01:51 +0000 (19:01 +0000)
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Thu, 15 Apr 2010 19:01:51 +0000 (19:01 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@5750 36083f99-b078-4883-b0ff-0f9b5a30f544

mod/ecml/ecml_functions.php
mod/ecml/views/default/ecml/admin/ecml_admin.php

index 58395aa7b38792879c2b37c1ceb8e3cae861a6fd..7a30cde16c49904c6c30c4518ee91dfadeb8ef33 100644 (file)
@@ -203,6 +203,12 @@ function ecml_is_valid_keyword($keyword, $view = NULL) {
                return FALSE;
        }
 
+       // this keyword is restricted to certain views
+       if (isset($CONFIG->ecml_keywords[$keyword]['restricted'])
+       && !in_array($view, $CONFIG->ecml_keywords[$keyword]['restricted'])) {
+               return FALSE;
+       }
+
        $views = $CONFIG->ecml_permissions;
 
        // this is a blacklist, so return TRUE by default.
index bb2cd7f05d9e9d73d3160bfbd22de20899d40fad..2a56633271c8a0511d2b2b98e994ed3a0ed6c24e 100644 (file)
@@ -40,11 +40,17 @@ foreach ($views as $view => $desc) {
                <td class=\"ecml_view_desc\">$desc</td>
 ";
        foreach ($keywords as $keyword => $info) {
-               $checked = (in_array($keyword, $perms[$view])) ? 'checked="checked"' : '';
+               // if this is restricted and we're not on the specified view don't allow changes
+               // since we don't save this, no need to pass a name
+               if (isset($info['restricted']) && !in_array($view, $info['restricted'])) {
+                       $form_body .= "<td><input type=\"checkbox\" checked=\"checked\" disabled=\"disabled\"/></td>";
+               } else {
+                       $checked = (in_array($keyword, $perms[$view])) ? 'checked="checked"' : '';
 
-               // ooook. input/checkboxes isn't overly useful.
-               // do it ourself.
-               $form_body .= "<td><input type=\"checkbox\" name=\"perms[$view][]\" value=\"$keyword\" $checked /></td>";
+                       // ooook. input/checkboxes isn't overly useful.
+                       // do it ourself.
+                       $form_body .= "<td><input type=\"checkbox\" name=\"perms[$view][]\" value=\"$keyword\" $checked /></td>";
+               }
        }
        $form_body .= '</tr>';