Changeset 1196271
- Timestamp:
- 07/10/2015 01:07:18 PM (11 years ago)
- Location:
- limit-posts/trunk
- Files:
-
- 6 edited
-
css/limitposts.css (modified) (1 diff)
-
css/limitposts.css.map (modified) (1 diff)
-
js/LimitPosts.js (modified) (7 diffs)
-
limit-posts.php (modified) (4 diffs)
-
options-page.php (modified) (4 diffs)
-
sass/limitposts.scss (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
limit-posts/trunk/css/limitposts.css
r1194639 r1196271 4 4 * Author: Colin Beeby 5 5 */ 6 /* line 9, ../sass/limitposts.scss */7 6 #add-edit-limit-form ul li { 8 margin-bottom: 12px; 9 } 10 /* line 11, ../sass/limitposts.scss */ 11 #add-edit-limit-form ul li label { 12 vertical-align: top; 13 } 14 /* line 14, ../sass/limitposts.scss */ 15 #add-edit-limit-form ul li input[type="radio"] { 16 vertical-align: top; 17 margin-top: 0.2em; 18 } 19 /* line 18, ../sass/limitposts.scss */ 20 #add-edit-limit-form ul li .narrative { 21 float: left; 22 } 23 /* line 21, ../sass/limitposts.scss */ 24 #add-edit-limit-form ul li input[type="number"] { 25 width: 75px; 26 } 27 /* line 24, ../sass/limitposts.scss */ 28 #add-edit-limit-form ul li #period_denominator { 29 position: relative; 30 top: -2px; 31 } 7 margin-bottom: 12px; } 8 #add-edit-limit-form ul li label { 9 vertical-align: top; } 10 #add-edit-limit-form ul li input[type="radio"] { 11 float: left; 12 margin-top: 0.5em; } 13 #add-edit-limit-form ul li .narrative { 14 float: left; } 15 #add-edit-limit-form ul li input[type="number"] { 16 width: 75px; } 17 #add-edit-limit-form ul li #period_denominator { 18 position: relative; 19 top: -2px; } 20 21 /*# sourceMappingURL=limitposts.css.map */ -
limit-posts/trunk/css/limitposts.css.map
r1194859 r1196271 1 1 { 2 2 "version": 3, 3 "mappings": ";;;;;AAQE,0BAAE;EACD,aAAa,EAAC,IAAI;EAClB,gCAAK;IACJ,cAAc,EAAC,GAAG;EAEnB,8CAAmB;IAClB, cAAc,EAAC,GAAG;IAClB,UAAU,EAAC,KAAK;EAEjB,qCAAU;IACT,KAAK,EAAC,IAAI;EAEX,+CAAoB;IACnB,KAAK,EAAC,IAAI;EAEX,8CAAmB;IAClB,QAAQ,EAAC,QAAQ;IACjB,GAAG,EAAC,IAAI",3 "mappings": ";;;;;AAQE,0BAAE;EACD,aAAa,EAAC,IAAI;EAClB,gCAAK;IACJ,cAAc,EAAC,GAAG;EAEnB,8CAAmB;IAClB,KAAK,EAAC,IAAI;IACV,UAAU,EAAC,KAAK;EAEjB,qCAAU;IACT,KAAK,EAAC,IAAI;EAEX,+CAAoB;IACnB,KAAK,EAAC,IAAI;EAEX,8CAAmB;IAClB,QAAQ,EAAC,QAAQ;IACjB,GAAG,EAAC,IAAI", 4 4 "sources": ["../sass/limitposts.scss"], 5 5 "names": [], -
limit-posts/trunk/js/LimitPosts.js
r1194639 r1196271 17 17 $j('#add_role_submit').css('display', 'block'); 18 18 $j('#edit_role_submit').css('display', 'none'); 19 tb_show('New Limit Posts rule','TB_inline?height=2 30&width=275&inlineId=add-edit-tb');19 tb_show('New Limit Posts rule','TB_inline?height=275&width=275&inlineId=add-edit-tb'); 20 20 return false; 21 21 }); … … 28 28 $j('#period_number').val('24'); 29 29 $j("#period_denominator option[value='Hours']").prop('selected', true); 30 $j("#user_select").prop('disabled', true); 30 31 } 31 32 … … 50 51 var counter = existingRulesCount(); 51 52 53 var userOrRole = $j('input[name="role_or_user"]:checked').val(); 52 54 var userRole = $j('#user_roles_select').find(':selected').text(); 55 var userId = $j('#user_select').find(':selected').val(); 56 var userName = $j('#user_select').find(':selected').text(); 53 57 var limit = $j('#limit_number').val(); 54 58 var postType = $j('#post_types_select').find(':selected').text(); … … 56 60 var periodDenominator = $j('#period_denominator').find(':selected').text(); 57 61 58 tableRow.append('<td>'+ userRole +'<input type="hidden" name="limit_posts[rule][' + counter + '][role]" value="'+userRole+'"></td>'); 62 tableRow.append('<input type="hidden" name="limit_posts[rule][' + counter +'][role_or_user]" value="'+userOrRole+'">'); 63 if(userOrRole == 'user'){ 64 tableRow.append('<td>'+userName+'<input type="hidden" name="limit_posts[rule]['+counter+'][user_id]" value="'+userId+'"><input type="hidden" name="limit_posts[rule]['+counter+'][user_name]" value="'+userName+'"></td>'); 65 } 66 else{ 67 tableRow.append('<td>'+ userRole +'<input type="hidden" name="limit_posts[rule][' + counter + '][role]" value="'+userRole+'"></td>'); 68 } 59 69 tableRow.append('<td>'+ limit +'<input type="hidden" name="limit_posts[rule][' + counter + '][limit]" value="'+limit+'"></td>'); 60 70 tableRow.append('<td>'+ postType +'<input type="hidden" name="limit_posts[rule][' + counter + '][post_type]" value="'+postType+'"></td>'); … … 85 95 $j('#edit_role_submit').css('display', 'block'); 86 96 87 tb_show('Edit Limit Posts rule', 'TB_inline?height=2 30&width=275&inlineId=add-edit-tb');97 tb_show('Edit Limit Posts rule', 'TB_inline?height=275&width=275&inlineId=add-edit-tb'); 88 98 }); 89 99 … … 92 102 var existingValues = new Array(); 93 103 94 $j(currentRow).find('input').each(function(index,value){104 currentRow.find('input').each(function(index,value){ 95 105 existingValues[index] = $j(value).val(); 96 106 }); 97 107 98 $j('#user_roles_select option[value="'+existingValues[0]+'"]').prop('selected', true); 99 $j('#limit_number').val(existingValues[1]); 100 $j('#post_types_select option[value="'+existingValues[2]+'"]').prop('selected', true); 101 $j('#period_number').val(existingValues[3]); 102 $j('#period_denominator option[value="'+existingValues[4]+'"]').prop('selected', true); 108 $j('#user_roles_select').prop('disabled',false); 109 $j('#user_select').prop('disabled', true); 110 111 $userOrRolesSelectIndex = 1; 112 $limitNumberIndex = 2; 113 $postTypesSelectIndex = 3; 114 $periodNumberIndex = 4; 115 $periodDenominatorIndex = 5; 116 117 if(existingValues[0] == 'user'){ 118 $j('#user_radio').prop('checked', true); 119 $j('#user_roles_select').prop('disabled',true); 120 $j('#user_select').prop('disabled', false); 121 $j('#user_select option[value="'+existingValues[$userOrRolesSelectIndex]+'"]').prop('selected', true); 122 $limitNumberIndex = 3; 123 $postTypesSelectIndex = 4; 124 $periodNumberIndex = 5; 125 $periodDenominatorIndex = 6; 126 } 127 else{ 128 $j('#role_radio').prop('checked', true); 129 $j('#user_roles_select').prop('disabled',false); 130 $j('#user_select').prop('disabled', true); 131 $j('#user_roles_select option[value="'+existingValues[$userOrRolesSelectIndex]+'"]').prop('selected', true); 132 } 133 $j('#limit_number').val(existingValues[$limitNumberIndex]); 134 $j('#post_types_select option[value="'+existingValues[$postTypesSelectIndex]+'"]').prop('selected', true); 135 $j('#period_number').val(existingValues[$periodNumberIndex]); 136 $j('#period_denominator option[value="'+existingValues[$periodDenominatorIndex]+'"]').prop('selected', true); 103 137 } 104 138 … … 123 157 var tableRow = getRuleAsTableRow(); 124 158 125 $j(currentRow).replaceWith(tableRow);159 currentRow.replaceWith(tableRow); 126 160 } 127 161 162 $j('#role_radio').on('click', function(e){ 163 $j('#user_roles_select').prop('disabled', false); 164 $j('#user_select').prop('disabled', true); 165 }); 166 167 $j('#user_radio').on('click', function(e){ 168 $j('#user_roles_select').prop('disabled', true); 169 $j('#user_select').prop('disabled', false); 170 }); 171 128 172 }); -
limit-posts/trunk/limit-posts.php
r1194657 r1196271 197 197 //get all relevent rules 198 198 $userRole = $this->getCurrentUserRole(); 199 $userId = $this->getCurrentUserId(); 199 200 global $typenow; 200 $releventRules = $this->getReleventRules($limitPostRules, $userRole, $ typenow);201 $releventRules = $this->getReleventRules($limitPostRules, $userRole, $userId, $typenow); 201 202 if(count($releventRules) <= 0){ 202 203 return false; … … 216 217 } 217 218 218 private function getReleventRules($limitPostRules, $userRole, $typenow){ 219 private function getReleventRules($limitPostRules, $userRole, $userId, $typenow){ 220 219 221 //filter out any rules not for users role 220 222 $rules = $this->filterRulesForUserRole($limitPostRules, $userRole); 221 223 224 //filter out any rules not for user id 225 $rules = $this->filterRulesForUserId($rules, $userId); 226 222 227 //filter out any rules not for post type 223 228 $rules = $this->filterRulesForPostType($rules, $typenow); … … 232 237 233 238 return ucfirst($userRole[0]); 239 } 240 241 private function getCurrentUserId(){ 242 global $current_user; 243 244 $userId = $current_user->ID; 245 246 return $userId; 234 247 } 235 248 … … 239 252 240 253 foreach($inputRules['rule'] as $rule){ 241 if($rule['role'] == $userRole){ 254 $userOrRole = $this->getUserOrRole($rule); 255 if($userOrRole != 'role'){ 242 256 $filteredRules[] = $rule; 257 } 258 else{ 259 if($rule['role'] == $userRole){ 260 $filteredRules[] = $rule; 261 } 262 } 263 } 264 265 return $filteredRules; 266 } 267 268 private function getUserOrRole($rule){ 269 $roleOrUser = 'role'; 270 if(!isset($rule['role_or_user'])){ 271 $roleOrUser = 'role'; 272 } 273 else{ 274 $roleOrUser = $rule['role_or_user']; 275 } 276 277 return $roleOrUser; 278 } 279 280 private function filterRulesForUserId($inputRules, $userId){ 281 $filteredRules = array(); 282 283 foreach($inputRules as $rule){ 284 $userOrRole = $this->getUserOrRole($rule); 285 if($userOrRole != 'user'){ 286 $filteredRules[] = $rule; 287 } 288 else{ 289 if($rule['user_id'] == $userId){ 290 $filteredRules[] = $rule; 291 } 243 292 } 244 293 } -
limit-posts/trunk/options-page.php
r1194639 r1196271 6 6 <ul> 7 7 <li> 8 <input type="radio" name="role_or_user" id="role_radio" value="role" checked> 8 9 <p class="description narrative">Any user whose role is </p> 10 </input> 9 11 <select id="user_roles_select"> 10 12 <?php echo $this->getUserRoles(); ?> 13 </select> 14 </li> 15 <p class="description narrative" style="padding:0;height:10px;position:relative;top:-10px;">Or</p> 16 <li> 17 <input type="radio" name="role_or_user" id="user_radio" value="user"> 18 <p class="description narrative">User </p> 19 </input> 20 <select id="user_select"> 21 <?php echo $this->getUsers(); ?> 11 22 </select> 12 23 </li> … … 45 56 <thead> 46 57 <tr> 47 <th>User Role</th>58 <th>User/Role</th> 48 59 <th>Limit</th> 49 60 <th>Post Type</th> … … 54 65 <tfoot> 55 66 <tr> 56 <th>User Role</th>67 <th>User/Role</th> 57 68 <th>Limit</th> 58 69 <th>Post Type</th> … … 67 78 foreach($limitPostsRules['rule'] as $k => $v){ 68 79 echo '<tr>'; 69 echo '<td>'.$v['role'].'<input type="hidden" name="limit_posts[rule]['.$count.'][role]" value="'.$v['role'].'"></td>'; 80 $role_or_user = 'user'; 81 if(!isset($v['role_or_user'])){ 82 $role_or_user = 'role'; 83 } 84 else{ 85 $role_or_user = $v['role_or_user']; 86 } 87 88 echo '<input type="hidden" name="limit_posts[rule]['.$count.'][role_or_user]" value="'.$role_or_user.'">'; 89 90 if($role_or_user == 'user'){ 91 echo '<td>'.$v['user_name'].'<input type="hidden" name="limit_posts[rule]['.$count.'][user_id]" value="'.$v['user_id'].'"><input type="hidden" name="limit_posts[rule]['.$count.'][user_name]" value="'.$v['user_name'].'"></td>'; 92 } 93 else{ 94 echo '<td>'.$v['role'].'<input type="hidden" name="limit_posts[rule]['.$count.'][role]" value="'.$v['role'].'"></td>'; 95 } 96 97 70 98 echo '<td>'.$v['limit'].'<input type="hidden" name="limit_posts[rule]['.$count.'][limit]" value="'.$v['limit'].'"></td>'; 71 99 echo '<td>'.$v['post_type'].'<input type="hidden" name="limit_posts[rule]['.$count.'][post_type]" value="'.$v['post_type'].'"></td>'; -
limit-posts/trunk/sass/limitposts.scss
r1194639 r1196271 13 13 } 14 14 input[type="radio"]{ 15 vertical-align:top;16 margin-top:0. 2em;15 float:left; 16 margin-top:0.5em; 17 17 } 18 18 .narrative{
Note: See TracChangeset
for help on using the changeset viewer.