Genesis Simple Hooks - Version 2.3.0

Version Description

  • Reorganize plugin based on our standard boilerplate.
  • Update to match WordPress PHP standards.
  • Fix bug where plugin name was empty in the minimum version warning.
  • Increase minimum Genesis version to 2.5.0.
Download this release

Release Info

Developer nathanrice
Plugin Icon 128x128 Genesis Simple Hooks
Version 2.3.0
Comparing to
See all releases

Code changes from version 2.2.1 to 2.3.0

.circleci/config.yml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ version: 2.1
2
+
3
+ jobs:
4
+ test:
5
+ docker:
6
+ - image: circleci/php:7.3.3-stretch-node-browsers
7
+ steps:
8
+ - checkout
9
+ - prepare-environment
10
+ - run: composer phpcs
11
+
12
+ commands:
13
+ prepare-environment:
14
+ description: "Install dependencies."
15
+ steps:
16
+ - run: composer install
17
+
18
+ workflows:
19
+ version: 2
20
+ check-wp-cs:
21
+ jobs:
22
+ - test
composer.json ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "studiopress/genesis-simple-hooks",
3
+ "type": "wordpress-plugin",
4
+ "description": "This plugin creates a new Genesis settings page that allows you to insert code (HTML, Shortcodes, and PHP), and attach it to any of the 50+ action hooks throughout the Genesis Theme Framework, from StudioPress.",
5
+ "homepage": "https://github.com/studiopress/genesis-simple-hooks",
6
+ "license": "GPL-2.0-or-later",
7
+ "require": {
8
+ "php": "^5.3 || ^7",
9
+ "composer/installers": "^1"
10
+ },
11
+ "require-dev": {
12
+ "php": "^5.6 || ^7",
13
+ "dealerdirect/phpcodesniffer-composer-installer": "*",
14
+ "squizlabs/php_codesniffer": "^3.3.1",
15
+ "phpcompatibility/phpcompatibility-wp": "*",
16
+ "wp-coding-standards/wpcs": "^1"
17
+ },
18
+ "config": {
19
+ "sort-order": true
20
+ },
21
+ "minimum-stability": "dev",
22
+ "prefer-stable": true,
23
+ "scripts": {
24
+ "phpcs": "phpcs --standard=WordPress --ignore=vendor/,node_modules/,assets/ --extensions=php -p ./",
25
+ "phpcs-compat": "phpcs --extensions=php --standard=PHPCompatibilityWP --ignore=vendor/,node_modules/,assets/ --runtime-set testVersion 5.6- -p ./",
26
+ "phpcbf": "phpcbf --standard=WordPress --ignore=vendor/,node_modules/,assets/ --extensions=php -p ./",
27
+ "makepot": "wp i18n make-pot . languages/genesis-simple-hooks.pot --headers='{ \"Report-Msgid-Bugs-To\": \"StudioPress <translations@studiopress.com>\" }' --exclude=bin/ --quiet"
28
+ },
29
+ "support": {
30
+ "issues": "https://github.com/studiopress/genesis-simple-hooks/issues",
31
+ "source": "https://github.com/studiopress/genesis-simple-hooks"
32
+ }
33
+ }
composer.lock ADDED
@@ -0,0 +1,461 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_readme": [
3
+ "This file locks the dependencies of your project to a known state",
4
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5
+ "This file is @generated automatically"
6
+ ],
7
+ "content-hash": "c939e1e179a3723b40ed8369820ca4d8",
8
+ "packages": [
9
+ {
10
+ "name": "composer/installers",
11
+ "version": "v1.6.0",
12
+ "source": {
13
+ "type": "git",
14
+ "url": "https://github.com/composer/installers.git",
15
+ "reference": "cfcca6b1b60bc4974324efb5783c13dca6932b5b"
16
+ },
17
+ "dist": {
18
+ "type": "zip",
19
+ "url": "https://api.github.com/repos/composer/installers/zipball/cfcca6b1b60bc4974324efb5783c13dca6932b5b",
20
+ "reference": "cfcca6b1b60bc4974324efb5783c13dca6932b5b",
21
+ "shasum": ""
22
+ },
23
+ "require": {
24
+ "composer-plugin-api": "^1.0"
25
+ },
26
+ "replace": {
27
+ "roundcube/plugin-installer": "*",
28
+ "shama/baton": "*"
29
+ },
30
+ "require-dev": {
31
+ "composer/composer": "1.0.*@dev",
32
+ "phpunit/phpunit": "^4.8.36"
33
+ },
34
+ "type": "composer-plugin",
35
+ "extra": {
36
+ "class": "Composer\\Installers\\Plugin",
37
+ "branch-alias": {
38
+ "dev-master": "1.0-dev"
39
+ }
40
+ },
41
+ "autoload": {
42
+ "psr-4": {
43
+ "Composer\\Installers\\": "src/Composer/Installers"
44
+ }
45
+ },
46
+ "notification-url": "https://packagist.org/downloads/",
47
+ "license": [
48
+ "MIT"
49
+ ],
50
+ "authors": [
51
+ {
52
+ "name": "Kyle Robinson Young",
53
+ "email": "kyle@dontkry.com",
54
+ "homepage": "https://github.com/shama"
55
+ }
56
+ ],
57
+ "description": "A multi-framework Composer library installer",
58
+ "homepage": "https://composer.github.io/installers/",
59
+ "keywords": [
60
+ "Craft",
61
+ "Dolibarr",
62
+ "Eliasis",
63
+ "Hurad",
64
+ "ImageCMS",
65
+ "Kanboard",
66
+ "Lan Management System",
67
+ "MODX Evo",
68
+ "Mautic",
69
+ "Maya",
70
+ "OXID",
71
+ "Plentymarkets",
72
+ "Porto",
73
+ "RadPHP",
74
+ "SMF",
75
+ "Thelia",
76
+ "WolfCMS",
77
+ "agl",
78
+ "aimeos",
79
+ "annotatecms",
80
+ "attogram",
81
+ "bitrix",
82
+ "cakephp",
83
+ "chef",
84
+ "cockpit",
85
+ "codeigniter",
86
+ "concrete5",
87
+ "croogo",
88
+ "dokuwiki",
89
+ "drupal",
90
+ "eZ Platform",
91
+ "elgg",
92
+ "expressionengine",
93
+ "fuelphp",
94
+ "grav",
95
+ "installer",
96
+ "itop",
97
+ "joomla",
98
+ "kohana",
99
+ "laravel",
100
+ "lavalite",
101
+ "lithium",
102
+ "magento",
103
+ "majima",
104
+ "mako",
105
+ "mediawiki",
106
+ "modulework",
107
+ "modx",
108
+ "moodle",
109
+ "osclass",
110
+ "phpbb",
111
+ "piwik",
112
+ "ppi",
113
+ "puppet",
114
+ "pxcms",
115
+ "reindex",
116
+ "roundcube",
117
+ "shopware",
118
+ "silverstripe",
119
+ "sydes",
120
+ "symfony",
121
+ "typo3",
122
+ "wordpress",
123
+ "yawik",
124
+ "zend",
125
+ "zikula"
126
+ ],
127
+ "time": "2018-08-27T06:10:37+00:00"
128
+ }
129
+ ],
130
+ "packages-dev": [
131
+ {
132
+ "name": "dealerdirect/phpcodesniffer-composer-installer",
133
+ "version": "v0.5.0",
134
+ "source": {
135
+ "type": "git",
136
+ "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
137
+ "reference": "e749410375ff6fb7a040a68878c656c2e610b132"
138
+ },
139
+ "dist": {
140
+ "type": "zip",
141
+ "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/e749410375ff6fb7a040a68878c656c2e610b132",
142
+ "reference": "e749410375ff6fb7a040a68878c656c2e610b132",
143
+ "shasum": ""
144
+ },
145
+ "require": {
146
+ "composer-plugin-api": "^1.0",
147
+ "php": "^5.3|^7",
148
+ "squizlabs/php_codesniffer": "^2|^3"
149
+ },
150
+ "require-dev": {
151
+ "composer/composer": "*",
152
+ "phpcompatibility/php-compatibility": "^9.0",
153
+ "sensiolabs/security-checker": "^4.1.0"
154
+ },
155
+ "type": "composer-plugin",
156
+ "extra": {
157
+ "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
158
+ },
159
+ "autoload": {
160
+ "psr-4": {
161
+ "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
162
+ }
163
+ },
164
+ "notification-url": "https://packagist.org/downloads/",
165
+ "license": [
166
+ "MIT"
167
+ ],
168
+ "authors": [
169
+ {
170
+ "name": "Franck Nijhof",
171
+ "email": "franck.nijhof@dealerdirect.com",
172
+ "homepage": "http://www.frenck.nl",
173
+ "role": "Developer / IT Manager"
174
+ }
175
+ ],
176
+ "description": "PHP_CodeSniffer Standards Composer Installer Plugin",
177
+ "homepage": "http://www.dealerdirect.com",
178
+ "keywords": [
179
+ "PHPCodeSniffer",
180
+ "PHP_CodeSniffer",
181
+ "code quality",
182
+ "codesniffer",
183
+ "composer",
184
+ "installer",
185
+ "phpcs",
186
+ "plugin",
187
+ "qa",
188
+ "quality",
189
+ "standard",
190
+ "standards",
191
+ "style guide",
192
+ "stylecheck",
193
+ "tests"
194
+ ],
195
+ "time": "2018-10-26T13:21:45+00:00"
196
+ },
197
+ {
198
+ "name": "phpcompatibility/php-compatibility",
199
+ "version": "9.2.0",
200
+ "source": {
201
+ "type": "git",
202
+ "url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
203
+ "reference": "3db1bf1e28123fd574a4ae2e9a84072826d51b5e"
204
+ },
205
+ "dist": {
206
+ "type": "zip",
207
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/3db1bf1e28123fd574a4ae2e9a84072826d51b5e",
208
+ "reference": "3db1bf1e28123fd574a4ae2e9a84072826d51b5e",
209
+ "shasum": ""
210
+ },
211
+ "require": {
212
+ "php": ">=5.3",
213
+ "squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
214
+ },
215
+ "conflict": {
216
+ "squizlabs/php_codesniffer": "2.6.2"
217
+ },
218
+ "require-dev": {
219
+ "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
220
+ },
221
+ "suggest": {
222
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
223
+ "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
224
+ },
225
+ "type": "phpcodesniffer-standard",
226
+ "notification-url": "https://packagist.org/downloads/",
227
+ "license": [
228
+ "LGPL-3.0-or-later"
229
+ ],
230
+ "authors": [
231
+ {
232
+ "name": "Contributors",
233
+ "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
234
+ },
235
+ {
236
+ "name": "Wim Godden",
237
+ "role": "lead",
238
+ "homepage": "https://github.com/wimg"
239
+ },
240
+ {
241
+ "name": "Juliette Reinders Folmer",
242
+ "role": "lead",
243
+ "homepage": "https://github.com/jrfnl"
244
+ }
245
+ ],
246
+ "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
247
+ "homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
248
+ "keywords": [
249
+ "compatibility",
250
+ "phpcs",
251
+ "standards"
252
+ ],
253
+ "time": "2019-06-27T19:58:56+00:00"
254
+ },
255
+ {
256
+ "name": "phpcompatibility/phpcompatibility-paragonie",
257
+ "version": "1.0.1",
258
+ "source": {
259
+ "type": "git",
260
+ "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git",
261
+ "reference": "9160de79fcd683b5c99e9c4133728d91529753ea"
262
+ },
263
+ "dist": {
264
+ "type": "zip",
265
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/9160de79fcd683b5c99e9c4133728d91529753ea",
266
+ "reference": "9160de79fcd683b5c99e9c4133728d91529753ea",
267
+ "shasum": ""
268
+ },
269
+ "require": {
270
+ "phpcompatibility/php-compatibility": "^9.0"
271
+ },
272
+ "require-dev": {
273
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4"
274
+ },
275
+ "suggest": {
276
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
277
+ "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
278
+ },
279
+ "type": "phpcodesniffer-standard",
280
+ "notification-url": "https://packagist.org/downloads/",
281
+ "license": [
282
+ "LGPL-3.0-or-later"
283
+ ],
284
+ "authors": [
285
+ {
286
+ "name": "Wim Godden",
287
+ "role": "lead"
288
+ },
289
+ {
290
+ "name": "Juliette Reinders Folmer",
291
+ "role": "lead"
292
+ }
293
+ ],
294
+ "description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.",
295
+ "homepage": "http://phpcompatibility.com/",
296
+ "keywords": [
297
+ "compatibility",
298
+ "paragonie",
299
+ "phpcs",
300
+ "polyfill",
301
+ "standards"
302
+ ],
303
+ "time": "2018-12-16T19:10:44+00:00"
304
+ },
305
+ {
306
+ "name": "phpcompatibility/phpcompatibility-wp",
307
+ "version": "2.0.0",
308
+ "source": {
309
+ "type": "git",
310
+ "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git",
311
+ "reference": "cb303f0067cd5b366a41d4fb0e254fb40ff02efd"
312
+ },
313
+ "dist": {
314
+ "type": "zip",
315
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/cb303f0067cd5b366a41d4fb0e254fb40ff02efd",
316
+ "reference": "cb303f0067cd5b366a41d4fb0e254fb40ff02efd",
317
+ "shasum": ""
318
+ },
319
+ "require": {
320
+ "phpcompatibility/php-compatibility": "^9.0",
321
+ "phpcompatibility/phpcompatibility-paragonie": "^1.0"
322
+ },
323
+ "require-dev": {
324
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3"
325
+ },
326
+ "suggest": {
327
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
328
+ "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
329
+ },
330
+ "type": "phpcodesniffer-standard",
331
+ "notification-url": "https://packagist.org/downloads/",
332
+ "license": [
333
+ "LGPL-3.0-or-later"
334
+ ],
335
+ "authors": [
336
+ {
337
+ "name": "Wim Godden",
338
+ "role": "lead"
339
+ },
340
+ {
341
+ "name": "Juliette Reinders Folmer",
342
+ "role": "lead"
343
+ }
344
+ ],
345
+ "description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.",
346
+ "homepage": "http://phpcompatibility.com/",
347
+ "keywords": [
348
+ "compatibility",
349
+ "phpcs",
350
+ "standards",
351
+ "wordpress"
352
+ ],
353
+ "time": "2018-10-07T18:31:37+00:00"
354
+ },
355
+ {
356
+ "name": "squizlabs/php_codesniffer",
357
+ "version": "3.4.2",
358
+ "source": {
359
+ "type": "git",
360
+ "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
361
+ "reference": "b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8"
362
+ },
363
+ "dist": {
364
+ "type": "zip",
365
+ "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8",
366
+ "reference": "b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8",
367
+ "shasum": ""
368
+ },
369
+ "require": {
370
+ "ext-simplexml": "*",
371
+ "ext-tokenizer": "*",
372
+ "ext-xmlwriter": "*",
373
+ "php": ">=5.4.0"
374
+ },
375
+ "require-dev": {
376
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
377
+ },
378
+ "bin": [
379
+ "bin/phpcs",
380
+ "bin/phpcbf"
381
+ ],
382
+ "type": "library",
383
+ "extra": {
384
+ "branch-alias": {
385
+ "dev-master": "3.x-dev"
386
+ }
387
+ },
388
+ "notification-url": "https://packagist.org/downloads/",
389
+ "license": [
390
+ "BSD-3-Clause"
391
+ ],
392
+ "authors": [
393
+ {
394
+ "name": "Greg Sherwood",
395
+ "role": "lead"
396
+ }
397
+ ],
398
+ "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
399
+ "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
400
+ "keywords": [
401
+ "phpcs",
402
+ "standards"
403
+ ],
404
+ "time": "2019-04-10T23:49:02+00:00"
405
+ },
406
+ {
407
+ "name": "wp-coding-standards/wpcs",
408
+ "version": "1.2.1",
409
+ "source": {
410
+ "type": "git",
411
+ "url": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git",
412
+ "reference": "f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c"
413
+ },
414
+ "dist": {
415
+ "type": "zip",
416
+ "url": "https://api.github.com/repos/WordPress-Coding-Standards/WordPress-Coding-Standards/zipball/f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c",
417
+ "reference": "f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c",
418
+ "shasum": ""
419
+ },
420
+ "require": {
421
+ "php": ">=5.3",
422
+ "squizlabs/php_codesniffer": "^2.9.0 || ^3.0.2"
423
+ },
424
+ "require-dev": {
425
+ "phpcompatibility/php-compatibility": "^9.0"
426
+ },
427
+ "suggest": {
428
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically."
429
+ },
430
+ "type": "phpcodesniffer-standard",
431
+ "notification-url": "https://packagist.org/downloads/",
432
+ "license": [
433
+ "MIT"
434
+ ],
435
+ "authors": [
436
+ {
437
+ "name": "Contributors",
438
+ "homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors"
439
+ }
440
+ ],
441
+ "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
442
+ "keywords": [
443
+ "phpcs",
444
+ "standards",
445
+ "wordpress"
446
+ ],
447
+ "time": "2018-12-18T09:43:51+00:00"
448
+ }
449
+ ],
450
+ "aliases": [],
451
+ "minimum-stability": "dev",
452
+ "stability-flags": [],
453
+ "prefer-stable": true,
454
+ "prefer-lowest": false,
455
+ "platform": {
456
+ "php": "^5.3 || ^7"
457
+ },
458
+ "platform-dev": {
459
+ "php": "^5.6 || ^7"
460
+ }
461
+ }
genesis-simple-hooks.php CHANGED
@@ -1,213 +1,32 @@
1
  <?php
 
 
 
 
 
2
 
3
- class Genesis_Simple_Hooks {
4
-
5
- /**
6
- * Plugin version
7
- */
8
- public $plugin_version = '2.2.1';
9
-
10
- /**
11
- * Minimum WordPress version.
12
- */
13
- public $min_wp_version = '4.7.2';
14
-
15
- /**
16
- * Minimum Genesis version.
17
- */
18
- public $min_genesis_version = '2.4.2';
19
-
20
- /**
21
- * The plugin textdomain, for translations.
22
- */
23
- public $plugin_textdomain = 'genesis-simple-hooks';
24
-
25
- /**
26
- * The url to the plugin directory.
27
- */
28
- public $plugin_dir_url;
29
-
30
- /**
31
- * The path to the plugin directory.
32
- */
33
- public $plugin_dir_path;
34
-
35
- /**
36
- * The main settings field for this plugin.
37
- */
38
- public $settings_field = 'simplehooks-settings';
39
-
40
- /**
41
- * Admin menu and settings page.
42
- */
43
- public $admin;
44
-
45
- /**
46
- * Constructor.
47
- *
48
- * @since 2.2.0
49
- */
50
- public function __construct() {
51
-
52
- $this->plugin_dir_url = plugin_dir_url( __FILE__ );
53
- $this->plugin_dir_path = plugin_dir_path( __FILE__ );
54
-
55
- // For backward compatibility
56
- define( 'SIMPLEHOOKS_PLUGIN_DIR', $this->plugin_dir_path );
57
-
58
- }
59
-
60
- /**
61
- * Initialize.
62
- *
63
- * @since 2.2.0
64
- */
65
- public function init() {
66
-
67
- $this->load_plugin_textdomain();
68
-
69
- add_action( 'admin_notices', array( $this, 'requirements_notice' ) );
70
-
71
- // Because this is a Genesis-dependent plugin
72
- add_action( 'genesis_setup', array( $this, 'includes' ) );
73
- add_action( 'genesis_admin_init', array( $this, 'instantiate' ) );
74
- add_action( 'genesis_setup', array( $this, 'execute_hooks' ) );
75
-
76
- }
77
-
78
- /**
79
- * Show admin notice if minimum requirements aren't met.
80
- *
81
- * @since 2.2.0
82
- */
83
- public function requirements_notice() {
84
-
85
- if ( ! defined( 'PARENT_THEME_VERSION' ) || ! version_compare( PARENT_THEME_VERSION, $this->min_genesis_version, '>=' ) ) {
86
-
87
- $plugin = get_plugin_data( $this->plugin_dir_path . 'plugin.php' );
88
-
89
- $action = defined( 'PARENT_THEME_VERSION' ) ? __( 'upgrade to', 'plugin-boilerplate' ) : __( 'install and activate', 'plugin-boilerplate' );
90
-
91
- $message = sprintf( __( '%s requires WordPress %s and <a href="%s" target="_blank">Genesis %s</a>, or greater. Please %s the latest version of Genesis to use this plugin.', 'plugin-boilerplate' ), $plugin['name'], $this->min_wp_version, 'http://my.studiopress.com/?download_id=91046d629e74d525b3f2978e404e7ffa', $this->min_genesis_version, $action );
92
- echo '<div class="notice notice-warning"><p>' . $message . '</p></div>';
93
-
94
- }
95
-
96
- }
97
-
98
- /**
99
- * Load the plugin textdomain, for translation.
100
- *
101
- * @since 2.2.0
102
- */
103
- public function load_plugin_textdomain() {
104
- load_plugin_textdomain( 'genesis-simple-hooks', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
105
- }
106
-
107
- /**
108
- * All general includes.
109
- *
110
- * @since 2.2.0
111
- */
112
- public function includes() {
113
-
114
- require_once( $this->plugin_dir_path . 'includes/functions.php' );
115
- require_once( $this->plugin_dir_path . 'includes/deprecated.php' );
116
-
117
- }
118
-
119
- /**
120
- * Include the class file, instantiate the classes, create objects.
121
- *
122
- * @since 2.2.0
123
- */
124
- public function instantiate() {
125
-
126
- require_once( $this->plugin_dir_path . 'includes/class-genesis-simple-hooks-admin.php' );
127
- $this->admin = new Genesis_Simple_Hooks_Admin;
128
- $this->admin->init();
129
-
130
- }
131
-
132
- /**
133
- * Helper function to retrieve the static object without using globals.
134
- *
135
- * @since 2.2.0
136
- */
137
- public function execute_hooks() {
138
-
139
- $hooks = get_option( $this->settings_field );
140
-
141
- //print_r( $hooks );
142
-
143
- foreach ( (array) $hooks as $hook => $array ) {
144
-
145
- // Add new content to hook
146
- if ( ! empty( $array['content'] ) ) {
147
- add_action( $hook, array( $this, 'execute_hook' ) );
148
- }
149
-
150
- // Unhook stuff
151
- if ( isset( $array['unhook'] ) ) {
152
-
153
- foreach( (array) $array['unhook'] as $function ) {
154
- remove_action( $hook, $function );
155
- }
156
-
157
- }
158
-
159
- }
160
-
161
- }
162
-
163
- /**
164
- * The following function executes any code meant to be hooked.
165
- * It checks to see if shortcodes or PHP should be executed as well.
166
- *
167
- * @uses simplehooks_get_option()
168
- *
169
- * @since 2.2.0
170
- */
171
- public function execute_hook() {
172
-
173
- $hook = current_filter();
174
- $content = simplehooks_get_option( $hook, 'content' );
175
-
176
- if ( ! $hook || ! $content ) {
177
- return;
178
- }
179
-
180
- $shortcodes = simplehooks_get_option( $hook, 'shortcodes' );
181
- $php = simplehooks_get_option( $hook, 'php' );
182
-
183
- $value = $shortcodes ? do_shortcode( $content ) : $content;
184
-
185
- if ( $php ) {
186
- eval( "?>$value " );
187
- } else {
188
- echo $value;
189
- }
190
-
191
- }
192
 
193
- }
194
 
195
  /**
196
  * Helper function to retrieve the static object without using globals.
197
  *
198
  * @since 0.9.0
199
  */
200
- function Genesis_Simple_Hooks() {
201
 
202
  static $object;
203
 
204
- if ( null == $object ) {
205
- $object = new Genesis_Simple_Hooks;
206
  }
207
 
208
  return $object;
209
  }
210
  /**
211
- * Initialize the object on `plugins_loaded`.
212
  */
213
  add_action( 'plugins_loaded', array( Genesis_Simple_Hooks(), 'init' ) );
1
  <?php
2
+ /**
3
+ * This file handles the creation of the Simple Hooks admin menu.
4
+ *
5
+ * @package genesis-simple-hooks
6
+ */
7
 
8
+ define( 'GENESIS_SIMPLE_HOOKS_DIR', plugin_dir_path( __FILE__ ) );
9
+ define( 'GENESIS_SIMPLE_HOOKS_URL', plugins_url( '', __FILE__ ) );
10
+ define( 'GENESIS_SIMPLE_HOOKS_VERSION', '2.3.0' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
+ require_once GENESIS_SIMPLE_HOOKS_DIR . '/includes/class-genesis-simple-hooks.php';
13
 
14
  /**
15
  * Helper function to retrieve the static object without using globals.
16
  *
17
  * @since 0.9.0
18
  */
19
+ function genesis_simple_hooks() {
20
 
21
  static $object;
22
 
23
+ if ( null === $object ) {
24
+ $object = new Genesis_Simple_Hooks();
25
  }
26
 
27
  return $object;
28
  }
29
  /**
30
+ * Initialize the object on `plugins_loaded`.
31
  */
32
  add_action( 'plugins_loaded', array( Genesis_Simple_Hooks(), 'init' ) );
includes/class-genesis-simple-hooks-admin.php CHANGED
@@ -1,9 +1,10 @@
1
  <?php
2
  /**
3
  * This file handles the creation of the Simple Hooks admin menu.
 
 
4
  */
5
 
6
-
7
  /**
8
  * Registers a new admin page, providing content and corresponding menu item
9
  * for the Simple Hooks Settings page.
@@ -16,40 +17,118 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
16
  * Settings field.
17
  *
18
  * @since 2.2.0
 
 
19
  */
20
  public $settings_field = 'simplehooks-settings';
21
 
 
 
 
 
 
 
 
22
  public $wp_hooks;
23
 
 
 
 
 
 
 
 
24
  public $document_hooks;
25
 
 
 
 
 
 
 
 
26
  public $header_hooks;
27
 
 
 
 
 
 
 
 
28
  public $content_hooks;
29
 
 
 
 
 
 
 
 
30
  public $loop_hooks;
31
 
 
 
 
 
 
 
 
32
  public $entry_hooks;
33
 
 
 
 
 
 
 
 
34
  public $post_hooks;
35
 
 
 
 
 
 
 
 
36
  public $comment_hooks;
37
 
 
 
 
 
 
 
 
38
  public $sidebar_hooks;
39
 
 
 
 
 
 
 
 
40
  public $footer_hooks;
41
 
 
 
 
 
 
 
 
42
  public $admin_hooks;
43
 
44
  /**
45
  * Constructor.
46
  *
47
  * @since 1.8.0
48
- *
49
  */
50
  public function __construct() {
51
 
52
- // For backward compatibility
53
  define( 'SIMPLEHOOKS_SETTINGS_FIELD', $this->settings_field );
54
 
55
  $this->define_hooks();
@@ -80,15 +159,15 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
80
  'submenu' => array(
81
  'parent_slug' => 'genesis',
82
  'page_title' => __( 'Genesis - Simple Hooks', 'genesis-simple-hooks' ),
83
- 'menu_title' => __( 'Simple Hooks', 'genesis-simple-hooks' )
84
- )
85
  );
86
 
87
  $page_ops = array(
88
  'screen_icon' => 'plugins',
89
  );
90
 
91
- // Create the page
92
  $this->create( $page_id, $menu_ops, $page_ops, $this->settings_field, $this->get_default_settings() );
93
 
94
  }
@@ -97,11 +176,10 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
97
  * Load the necessary scripts for this admin page.
98
  *
99
  * @since 1.8.0
100
- *
101
  */
102
  public function scripts() {
103
 
104
- // Load parent scripts as well as Genesis admin scripts */
105
  parent::scripts();
106
  genesis_scripts()->enqueue_and_localize_admin_scripts();
107
 
@@ -111,6 +189,9 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
111
  * Save method. Allows for data manipulation and sanitization before saving.
112
  *
113
  * @since 2.2.0
 
 
 
114
  */
115
  public function save( $newvalue, $oldvalue ) {
116
 
@@ -131,7 +212,6 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
131
  $newvalue[ $hook ]['php'] = $oldvalue[ $hook ]['php'];
132
 
133
  }
134
-
135
  }
136
 
137
  return $newvalue;
@@ -146,7 +226,7 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
146
  public function define_hooks() {
147
 
148
  $this->wp_hooks = array(
149
- 'wp_head' => array(
150
  'description' => __( 'Executes immediately before the closing <code>&lt;/head&gt;</code> tag.', 'genesis-simple-hooks' ),
151
  'unhook' => array( 'genesis_load_favicon', 'genesis_do_meta_pingback', 'genesis_paged_rel', 'genesis_meta_name', 'genesis_meta_url', 'genesis_header_scripts', 'genesis_custom_header_style' ),
152
  ),
@@ -161,42 +241,42 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
161
  'description' => __( 'Executes in the document head. Genesis uses this to output the doctype.', 'genesis-simple-hooks' ),
162
  'unhook' => array( 'genesis_do_doctype' ),
163
  ),
164
- 'genesis_title' => array(
165
  'description' => __( 'Executes in the document head. Genesis uses this to output the document title.', 'genesis-simple-hooks' ),
166
  'unhook' => array( 'genesis_do_title' ),
167
  ),
168
- 'genesis_meta' => array(
169
  'description' => __( 'Executes in the document head. Genesis uses this to output meta tags.', 'genesis-simple-hooks' ),
170
- 'unhook' => array( 'genesis_seo_meta_description', 'genesis_seo_meta_keywords', 'genesis_robots_meta', 'genesis_responsive_viewport', ),
171
  ),
172
- 'genesis_before' => array(
173
  'description' => __( 'Executes immediately after the opening <code>&lt;body&gt;</code> tag.', 'genesis-simple-hooks' ),
174
  ),
175
- 'genesis_after' => array(
176
  'description' => __( 'Executes immediately before the closing <code>&lt;/body&gt;</code> tag.', 'genesis-simple-hooks' ),
177
  ),
178
  );
179
 
180
  $this->header_hooks = array(
181
- 'genesis_before_header' => array(
182
- 'description' => __( 'Executes immediately before the header.', 'genesis-simple-hooks' )
183
  ),
184
- 'genesis_header' => array(
185
  'description' => __( 'Genesis uses this hook to output the default header.', 'genesis-simple-hooks' ),
186
  'unhook' => array( 'genesis_do_header' ),
187
  ),
188
- 'genesis_header_right' => array(
189
  'description' => __( 'Executes inside the page header, immediately before the header widget area.', 'genesis-simple-hooks' ),
190
  ),
191
- 'genesis_after_header' => array(
192
- 'description' => __( 'Executes immediately after the header.', 'genesis-simple-hooks' )
193
  ),
194
- 'genesis_site_title' => array(
195
- 'description' => __( 'Executes inside the header. Genesis uses this hook to output the site title.' , 'genesis-simple-hooks' ),
196
  'unhook' => array( 'genesis_seo_site_title' ),
197
  ),
198
  'genesis_site_description' => array(
199
- 'description' => __( 'Executes inside the header. Genesis uses this hook to output the site description.' , 'genesis-simple-hooks' ),
200
  'unhook' => array( 'genesis_seo_site_description' ),
201
  ),
202
  );
@@ -205,37 +285,37 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
205
  'genesis_before_content_sidebar_wrap' => array(
206
  'description' => __( 'Executes before the content-sidebar-wrap opening markup.', 'genesis-simple-hooks' ),
207
  ),
208
- 'genesis_after_content_sidebar_wrap' => array(
209
  'description' => __( 'Executes after the content-sidebar-wrap closing markup.', 'genesis-simple-hooks' ),
210
  ),
211
- 'genesis_before_content' => array(
212
  'description' => __( 'Executes before the content opening markup.', 'genesis-simple-hooks' ),
213
  ),
214
- 'genesis_after_content' => array(
215
  'description' => __( 'Executes after the content closing markup.', 'genesis-simple-hooks' ),
216
  ),
217
  );
218
 
219
  $this->loop_hooks = array(
220
- 'genesis_before_loop' => array(
221
  'description' => __( 'Executes before the loop.', 'genesis-simple-hooks' ),
222
  ),
223
- 'genesis_loop' => array(
224
  'description' => __( 'Executes in the content section. Genesis uses this hook to output the loop.', 'genesis-simple-hooks' ),
225
  'unhook' => array( 'genesis_do_loop' ),
226
  ),
227
- 'genesis_after_loop' => array(
228
  'description' => __( 'Executes after the loop.', 'genesis-simple-hooks' ),
229
  ),
230
  'genesis_after_endwhile' => array(
231
  'description' => __( 'Executes after the WordPress loop endwhile.', 'genesis-simple-hooks' ),
232
  'unhook' => array( 'genesis_posts_nav' ),
233
  ),
234
- 'genesis_loop_else' => array(
235
  'description' => __( "Executes in the loop's else statement.", 'genesis-simple-hooks' ),
236
  'unhook' => array( 'genesis_do_noposts' ),
237
  ),
238
- 'genesis_reset_loops' => array(
239
  'description' => __( 'Executes if the loop actions are reset.', 'genesis-simple-hooks' ),
240
  ),
241
  );
@@ -244,10 +324,10 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
244
  * HTML5 entry hooks
245
  */
246
  $this->entry_hooks = array(
247
- 'genesis_before_entry' => array(
248
  'description' => __( 'Executes before the entry.', 'genesis-simple-hooks' ),
249
  ),
250
- 'genesis_entry_header' => array(
251
  'description' => __( 'Executes as part of the entry. Genesis uses this hook to output the entry header.', 'genesis-simple-hooks' ),
252
  'unhook' => array( 'genesis_do_post_title' ),
253
  ),
@@ -255,141 +335,141 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
255
  'description' => __( 'Executes before the entry content', 'genesis-simple-hooks' ),
256
  'unhook' => array( 'genesis_do_post_content' ),
257
  ),
258
- 'genesis_entry_content' => array(
259
  'description' => __( 'Executes as part of the entry. Genesis uses this hook to output the entry content.', 'genesis-simple-hooks' ),
260
  'unhook' => array( 'genesis_do_post_content' ),
261
  ),
262
- 'genesis_after_entry_content' => array(
263
  'description' => __( 'Executes after the entry content', 'genesis-simple-hooks' ),
264
  'unhook' => array( 'genesis_do_post_content' ),
265
  ),
266
- 'genesis_entry_footer' => array(
267
  'description' => __( 'Executes as part of the entry. Genesis uses this hook to output the entry footer.', 'genesis-simple-hooks' ),
268
  'unhook' => array( 'genesis_post_meta' ),
269
  ),
270
- 'genesis_after_entry' => array(
271
  'description' => __( 'Executes after the entry.', 'genesis-simple-hooks' ),
272
  'unhook' => array( 'genesis_adjacent_entry_nav', 'genesis_get_comments_template' ),
273
  ),
274
  );
275
 
276
  /**
277
- * xHTML post hooks
278
  */
279
  $this->post_hooks = array(
280
- 'genesis_before_post' => array(
281
  'description' => __( 'Executes before the post opening markup.', 'genesis-simple-hooks' ),
282
  ),
283
- 'genesis_after_post' => array(
284
  'description' => __( 'Executes after the post closing markup.', 'genesis-simple-hooks' ),
285
  'unhook' => array( 'genesis_do_author_box_single', 'genesis_get_comments_template' ),
286
  ),
287
- 'genesis_before_post_title' => array(
288
  'description' => __( 'Executes before the post title.', 'genesis-simple-hooks' ),
289
  'unhook' => array( 'genesis_do_post_format_image' ),
290
  ),
291
- 'genesis_post_title' => array(
292
  'description' => __( 'Executes as part of the post. Genesis uses this hook to output the post title.', 'genesis-simple-hooks' ),
293
  'unhook' => array( 'genesis_do_post_title' ),
294
  ),
295
- 'genesis_after_post_title' => array(
296
  'description' => __( 'Executes after the post title.', 'genesis-simple-hooks' ),
297
  ),
298
  'genesis_before_post_content' => array(
299
  'description' => __( 'Executes before the post content.', 'genesis-simple-hooks' ),
300
  'unhook' => array( 'genesis_post_info' ),
301
  ),
302
- 'genesis_post_content' => array(
303
  'description' => __( 'Executes as part of the post. Genesis uses this hook to output the post content.', 'genesis-simple-hooks' ),
304
  'unhook' => array( 'genesis_do_post_image', 'genesis_do_post_content', 'genesis_do_post_permalink', 'genesis_do_post_content_nav' ),
305
  ),
306
- 'genesis_after_post_content' => array(
307
  'description' => __( 'Executes after the post content.', 'genesis-simple-hooks' ),
308
  'unhook' => array( 'genesis_post_meta' ),
309
  ),
310
  );
311
 
312
  $this->comment_hooks = array(
313
- 'genesis_before_comments' => array(
314
  'description' => __( 'Executes before the comments section opening markup.', 'genesis-simple-hooks' ),
315
  ),
316
- 'genesis_comments' => array(
317
  'description' => __( 'Executes after an entry. Genesis uses this hook to output the comments section.', 'genesis-simple-hooks' ),
318
  'unhook' => array( 'genesis_do_comments' ),
319
  ),
320
- 'genesis_list_comments' => array(
321
  'description' => __( 'Executes in the comments section. Genesis uses this hook to output the comment list.', 'genesis-simple-hooks' ),
322
  'unhook' => array( 'genesis_default_list_comments' ),
323
  ),
324
- 'genesis_after_comments' => array(
325
  'description' => __( 'Executes after the comments section closing markup.', 'genesis-simple-hooks' ),
326
  ),
327
- 'genesis_before_pings' => array(
328
  'description' => __( 'Executes before the pings section opening markup.', 'genesis-simple-hooks' ),
329
  ),
330
- 'genesis_pings' => array(
331
  'description' => __( 'Executes after an entry. Genesis uses this hook to output the pings section.', 'genesis-simple-hooks' ),
332
  'unhook' => array( 'genesis_do_pings' ),
333
  ),
334
- 'genesis_list_pings' => array(
335
  'description' => __( 'Executes in the pings section. Genesis uses this hook to output the ping list.', 'genesis-simple-hooks' ),
336
  'unhook' => array( 'genesis_default_list_pings' ),
337
  ),
338
- 'genesis_after_pings' => array(
339
  'description' => __( 'Executes after the ping section closing markup.', 'genesis-simple-hooks' ),
340
  ),
341
- 'genesis_before_comment' => array(
342
  'description' => __( 'Executes before a single comment.', 'genesis-simple-hooks' ),
343
  ),
344
- 'genesis_comment' => array(
345
  'description' => __( 'Executes in the comment list. Genesis uses this hook to output a single comment.', 'genesis-simple-hooks' ),
346
  ),
347
- 'genesis_after_comment' => array(
348
  'description' => __( 'Executes after a single comment.', 'genesis-simple-hooks' ),
349
  ),
350
  'genesis_before_comment_form' => array(
351
  'description' => __( 'Executes before the comment form.', 'genesis-simple-hooks' ),
352
  ),
353
- 'genesis_comment_form' => array(
354
  'description' => __( 'Executes after the comment and ping list. Genesis uses this hook to output the comment form.', 'genesis-simple-hooks' ),
355
  'unhook' => array( 'genesis_do_comment_form' ),
356
  ),
357
- 'genesis_after_comment_form' => array(
358
  'description' => __( 'Executes after the comment form.', 'genesis-simple-hooks' ),
359
  ),
360
  );
361
 
362
  $this->sidebar_hooks = array(
363
- 'genesis_before_sidebar' => array(
364
  'description' => __( 'Executes before the primary sidebar.', 'genesis-simple-hooks' ),
365
  ),
366
- 'genesis_sidebar' => array(
367
  'description' => __( 'Executes after the content section in 2+ column layouts. Genesis uses this hook to output the primary sidebar.', 'genesis-simple-hooks' ),
368
  'unhook' => array( 'genesis_do_sidebar' ),
369
  ),
370
- 'genesis_after_sidebar' => array(
371
  'description' => __( 'Executes after the primary sidebar.', 'genesis-simple-hooks' ),
372
  ),
373
- 'genesis_before_sidebar_widget_area' => array(
374
  'description' => __( 'Executes before the primary sidebar widget area.', 'genesis-simple-hooks' ),
375
  ),
376
- 'genesis_after_sidebar_widget_area' => array(
377
  'description' => __( 'Executes after the primary sidebar widget area.', 'genesis-simple-hooks' ),
378
  ),
379
- 'genesis_before_sidebar_alt' => array(
380
  'description' => __( 'Executes before the secondary sidebar.', 'genesis-simple-hooks' ),
381
  ),
382
- 'genesis_sidebar_alt' => array(
383
  'description' => __( 'Executes after the primary sidebar in 3+ column layouts. Genesis uses this hook to output the secondary sidebar.', 'genesis-simple-hooks' ),
384
  'unhook' => array( 'genesis_do_sidebar_alt' ),
385
  ),
386
- 'genesis_after_sidebar_alt' => array(
387
  'description' => __( 'Executes after the secondary sidebar.', 'genesis-simple-hooks' ),
388
  ),
389
  'genesis_before_sidebar_alt_widget_area' => array(
390
  'description' => __( 'Executes before the secondary sidebar widget area.', 'genesis-simple-hooks' ),
391
  ),
392
- 'genesis_after_sidebar_alt_widget_area' => array(
393
  'description' => __( 'Executes after the secondary sidebar widget area.', 'genesis-simple-hooks' ),
394
  ),
395
  );
@@ -398,29 +478,29 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
398
  'genesis_before_footer' => array(
399
  'description' => __( 'Executes before the site footer.', 'genesis-simple-hooks' ),
400
  ),
401
- 'genesis_footer' => array(
402
  'description' => __( 'Executes after the content and sidebars. Genesis uses this hook to output the site footer.', 'genesis-simple-hooks' ),
403
  'unhook' => array( 'genesis_do_footer' ),
404
  ),
405
- 'genesis_after_footer' => array(
406
  'description' => __( 'Executes after the site footer.', 'genesis-simple-hooks' ),
407
  ),
408
  );
409
 
410
  $this->admin_hooks = array(
411
- 'genesis_import_export_form' => array(
412
  'description' => __( 'Executes after the form on the the import/export screen.', 'genesis-simple-hooks' ),
413
  ),
414
- 'genesis_export' => array(
415
  'description' => __( 'Executes during the export function.', 'genesis-simple-hooks' ),
416
  ),
417
- 'genesis_import' => array(
418
  'description' => __( 'Executes during the import function.', 'genesis-simple-hooks' ),
419
  ),
420
  'genesis_theme_settings_metaboxes' => array(
421
  'description' => __( 'Executes in the function that adds metaboxes to the theme settings screen.', 'genesis-simple-hooks' ),
422
  ),
423
- 'genesis_upgrade' => array(
424
  'description' => __( 'Executes after Genesis upgrades itself.', 'genesis-simple-hooks' ),
425
  'unhook' => array( 'genesis_upgrade_redirect' ),
426
  ),
@@ -435,7 +515,14 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
435
  */
436
  public function get_default_settings() {
437
 
438
- return array_fill_keys( $this->get_hooks(), array( 'content' => '', 'php' => 0, 'shortcodes' => 0 ) );
 
 
 
 
 
 
 
439
 
440
  }
441
 
@@ -446,7 +533,7 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
446
  */
447
  public function get_hooks() {
448
 
449
- // Merge all hooks arrays
450
  $hooks = array_merge(
451
  $this->wp_hooks,
452
  $this->document_hooks,
@@ -461,7 +548,7 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
461
  $this->admin_hooks
462
  );
463
 
464
- // Just the keys
465
  $hooks = array_keys( $hooks );
466
 
467
  return $hooks;
@@ -472,55 +559,62 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
472
  * Generate form markup from an array of hooks.
473
  *
474
  * @since 2.2.0
 
 
475
  */
476
  public function generate_form_markup_from_hooks( $hooks ) {
477
 
478
  foreach ( (array) $hooks as $hook => $info ) {
479
 
480
- // Check for existence in hooks array
481
- if ( ! in_array( $hook, $this->get_hooks() ) ) {
482
  continue;
483
  }
484
 
485
- printf( '<h4><code>%s</code> %s</h4>', esc_html( $hook ), __( 'Hook', 'genesis-simple-hooks' ) );
486
- printf( '<p><span class="description">%s</span></p>', $info['description'] );
487
 
488
  if ( isset( $info['unhook'] ) ) {
489
-
 
 
 
 
 
490
  foreach ( (array) $info['unhook'] as $function ) {
491
  printf(
492
  '<label><input type="checkbox" name="%s" id="%s" value="%s" %s/> %s</label><br />',
493
  $this->settings_field . "[{$hook}][unhook][]",
494
  $this->settings_field . "[{$hook}][unhook][]",
495
  $function,
496
- in_array( $function, (array) simplehooks_get_option( $hook, 'unhook' ) ) ? 'checked' : '',
497
- sprintf( __( 'Unhook <code>%s()</code> function from this hook?', 'genesis-simple-hooks' ), $function )
 
498
  );
499
  }
500
-
501
  }
502
 
503
  printf(
504
  '<p><textarea name="%s" cols="70" rows="5">%s</textarea></p>',
505
- $this->settings_field . "[{$hook}][content]",
506
- htmlentities( simplehooks_get_option( $hook, 'content' ), ENT_QUOTES, 'UTF-8' )
507
  );
508
 
509
  echo '<p>';
510
 
511
  printf(
512
  '<input type="checkbox" name="%1$s" id="%1$s" value="1" %2$s/> <label for="%1$s">%3$s</label><br />',
513
- $this->settings_field . "[{$hook}][shortcodes]",
514
  checked( 1, simplehooks_get_option( $hook, 'shortcodes' ), 0 ),
515
- __( 'Execute Shortcodes on this hook?', 'genesis-simple-hooks' )
516
  );
517
 
518
  if ( current_user_can( 'unfiltered_html' ) ) {
519
  printf(
520
  '<input type="checkbox" name="%1$s" id="%1$s" value="1" %2$s/> <label for="%1$s">%3$s</label><br />',
521
- $this->settings_field . "[{$hook}][php]",
522
  checked( 1, simplehooks_get_option( $hook, 'php' ), 0 ),
523
- __( 'Execute PHP on this hook?', 'genesis-simple-hooks' )
524
  );
525
  }
526
 
@@ -533,11 +627,10 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
533
  }
534
 
535
  /**
536
- * Register meta boxes on the Simple Hooks Settings page.
537
- *
538
- * @since 1.8.0
539
- *
540
- */
541
  public function metaboxes() {
542
 
543
  add_meta_box( 'simplehooks-wp-hooks', __( 'WordPress Hooks', 'genesis-simple-hooks' ), array( $this, 'wp_hooks_box' ), $this->pagehook, 'main' );
@@ -546,10 +639,11 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
546
  add_meta_box( 'simplehooks-content-hooks', __( 'Content Hooks', 'genesis-simple-hooks' ), array( $this, 'content_hooks_box' ), $this->pagehook, 'main' );
547
  add_meta_box( 'simplehooks-loop-hooks', __( 'Loop Hooks', 'genesis-simple-hooks' ), array( $this, 'loop_hooks_box' ), $this->pagehook, 'main' );
548
 
549
- if ( current_theme_supports( 'html5' ) )
550
  add_meta_box( 'simplehooks-entry-hooks', __( 'Entry Hooks', 'genesis-simple-hooks' ), array( $this, 'html5_entry_hooks_box' ), $this->pagehook, 'main' );
551
- else
552
  add_meta_box( 'simplehooks-post-hooks', __( 'Post/Page Hooks', 'genesis-simple-hooks' ), array( $this, 'post_hooks_box' ), $this->pagehook, 'main' );
 
553
 
554
  add_meta_box( 'simplehooks-comment-hooks', __( 'Comment Hooks', 'genesis-simple-hooks' ), array( $this, 'comment_hooks_box' ), $this->pagehook, 'main' );
555
  add_meta_box( 'simplehooks-sidebar-hooks', __( 'Sidebar Hooks', 'genesis-simple-hooks' ), array( $this, 'sidebar_hooks_box' ), $this->pagehook, 'main' );
@@ -557,6 +651,9 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
557
 
558
  }
559
 
 
 
 
560
  public function wp_hooks_box() {
561
 
562
  $this->generate_form_markup_from_hooks( $this->wp_hooks );
@@ -565,6 +662,9 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
565
 
566
  }
567
 
 
 
 
568
  public function internal_hooks_box() {
569
 
570
  $this->generate_form_markup_from_hooks( $this->internal_hooks );
@@ -573,6 +673,9 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
573
 
574
  }
575
 
 
 
 
576
  public function document_hooks_box() {
577
 
578
  $this->generate_form_markup_from_hooks( $this->document_hooks );
@@ -581,6 +684,9 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
581
 
582
  }
583
 
 
 
 
584
  public function header_hooks_box() {
585
 
586
  $this->generate_form_markup_from_hooks( $this->header_hooks );
@@ -589,6 +695,9 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
589
 
590
  }
591
 
 
 
 
592
  public function content_hooks_box() {
593
 
594
  $this->generate_form_markup_from_hooks( $this->content_hooks );
@@ -597,6 +706,9 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
597
 
598
  }
599
 
 
 
 
600
  public function loop_hooks_box() {
601
 
602
  $this->generate_form_markup_from_hooks( $this->loop_hooks );
@@ -605,6 +717,9 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
605
 
606
  }
607
 
 
 
 
608
  public function html5_entry_hooks_box() {
609
 
610
  $this->generate_form_markup_from_hooks( $this->entry_hooks );
@@ -613,6 +728,9 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
613
 
614
  }
615
 
 
 
 
616
  public function post_hooks_box() {
617
 
618
  $this->generate_form_markup_from_hooks( $this->post_hooks );
@@ -621,6 +739,9 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
621
 
622
  }
623
 
 
 
 
624
  public function comment_hooks_box() {
625
 
626
  $this->generate_form_markup_from_hooks( $this->comment_hooks );
@@ -629,6 +750,9 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
629
 
630
  }
631
 
 
 
 
632
  public function sidebar_hooks_box() {
633
 
634
  $this->generate_form_markup_from_hooks( $this->sidebar_hooks );
@@ -637,6 +761,9 @@ class Genesis_Simple_Hooks_Admin extends Genesis_Admin_Boxes {
637
 
638
  }
639
 
 
 
 
640
  public function footer_hooks_box() {
641
 
642
  $this->generate_form_markup_from_hooks( $this->footer_hooks );
1
  <?php
2
  /**
3
  * This file handles the creation of the Simple Hooks admin menu.
4
+ *
5
+ * @package genesis-simple-hooks
6
  */
7
 
 
8
  /**
9
  * Registers a new admin page, providing content and corresponding menu item
10
  * for the Simple Hooks Settings page.
17
  * Settings field.
18
  *
19
  * @since 2.2.0
20
+ *
21
+ * @var $settings_field Settings Field
22
  */
23
  public $settings_field = 'simplehooks-settings';
24
 
25
+ /**
26
+ * WP Hooks.
27
+ *
28
+ * @since 2.2.0
29
+ *
30
+ * @var $wp_hooks WP Hooks
31
+ */
32
  public $wp_hooks;
33
 
34
+ /**
35
+ * Document Hooks.
36
+ *
37
+ * @since 2.2.0
38
+ *
39
+ * @var $document_hooks Document Hooks
40
+ */
41
  public $document_hooks;
42
 
43
+ /**
44
+ * Header Hooks.
45
+ *
46
+ * @since 2.2.0
47
+ *
48
+ * @var $header_hooks Header Hooks
49
+ */
50
  public $header_hooks;
51
 
52
+ /**
53
+ * Content Hooks.
54
+ *
55
+ * @since 2.2.0
56
+ *
57
+ * @var $content_hooks Content Hooks
58
+ */
59
  public $content_hooks;
60
 
61
+ /**
62
+ * Loop Hooks.
63
+ *
64
+ * @since 2.2.0
65
+ *
66
+ * @var $loop_hooks Loop Hooks
67
+ */
68
  public $loop_hooks;
69
 
70
+ /**
71
+ * Entry Hooks.
72
+ *
73
+ * @since 2.2.0
74
+ *
75
+ * @var $settings_field Entry Hooks
76
+ */
77
  public $entry_hooks;
78
 
79
+ /**
80
+ * Post Hooks.
81
+ *
82
+ * @since 2.2.0
83
+ *
84
+ * @var $settings_field Post Hooks
85
+ */
86
  public $post_hooks;
87
 
88
+ /**
89
+ * Comment Hooks.
90
+ *
91
+ * @since 2.2.0
92
+ *
93
+ * @var $comment_hooks Comment Hooks
94
+ */
95
  public $comment_hooks;
96
 
97
+ /**
98
+ * Sidebar Hooks.
99
+ *
100
+ * @since 2.2.0
101
+ *
102
+ * @var $sidebar_hooks Sidebar Hooks
103
+ */
104
  public $sidebar_hooks;
105
 
106
+ /**
107
+ * Footer Hooks.
108
+ *
109
+ * @since 2.2.0
110
+ *
111
+ * @var $footer_hooks Footer Hooks
112
+ */
113
  public $footer_hooks;
114
 
115
+ /**
116
+ * Admin Hooks.
117
+ *
118
+ * @since 2.2.0
119
+ *
120
+ * @var $admin_hooks Admin Hooks
121
+ */
122
  public $admin_hooks;
123
 
124
  /**
125
  * Constructor.
126
  *
127
  * @since 1.8.0
 
128
  */
129
  public function __construct() {
130
 
131
+ // For backward compatibility.
132
  define( 'SIMPLEHOOKS_SETTINGS_FIELD', $this->settings_field );
133
 
134
  $this->define_hooks();
159
  'submenu' => array(
160
  'parent_slug' => 'genesis',
161
  'page_title' => __( 'Genesis - Simple Hooks', 'genesis-simple-hooks' ),
162
+ 'menu_title' => __( 'Simple Hooks', 'genesis-simple-hooks' ),
163
+ ),
164
  );
165
 
166
  $page_ops = array(
167
  'screen_icon' => 'plugins',
168
  );
169
 
170
+ // Create the page.
171
  $this->create( $page_id, $menu_ops, $page_ops, $this->settings_field, $this->get_default_settings() );
172
 
173
  }
176
  * Load the necessary scripts for this admin page.
177
  *
178
  * @since 1.8.0
 
179
  */
180
  public function scripts() {
181
 
182
+ // Load parent scripts as well as Genesis admin scripts.
183
  parent::scripts();
184
  genesis_scripts()->enqueue_and_localize_admin_scripts();
185
 
189
  * Save method. Allows for data manipulation and sanitization before saving.
190
  *
191
  * @since 2.2.0
192
+ *
193
+ * @param Array $newvalue New value.
194
+ * @param Array $oldvalue Old value.
195
  */
196
  public function save( $newvalue, $oldvalue ) {
197
 
212
  $newvalue[ $hook ]['php'] = $oldvalue[ $hook ]['php'];
213
 
214
  }
 
215
  }
216
 
217
  return $newvalue;
226
  public function define_hooks() {
227
 
228
  $this->wp_hooks = array(
229
+ 'wp_head' => array(
230
  'description' => __( 'Executes immediately before the closing <code>&lt;/head&gt;</code> tag.', 'genesis-simple-hooks' ),
231
  'unhook' => array( 'genesis_load_favicon', 'genesis_do_meta_pingback', 'genesis_paged_rel', 'genesis_meta_name', 'genesis_meta_url', 'genesis_header_scripts', 'genesis_custom_header_style' ),
232
  ),
241
  'description' => __( 'Executes in the document head. Genesis uses this to output the doctype.', 'genesis-simple-hooks' ),
242
  'unhook' => array( 'genesis_do_doctype' ),
243
  ),
244
+ 'genesis_title' => array(
245
  'description' => __( 'Executes in the document head. Genesis uses this to output the document title.', 'genesis-simple-hooks' ),
246
  'unhook' => array( 'genesis_do_title' ),
247
  ),
248
+ 'genesis_meta' => array(
249
  'description' => __( 'Executes in the document head. Genesis uses this to output meta tags.', 'genesis-simple-hooks' ),
250
+ 'unhook' => array( 'genesis_seo_meta_description', 'genesis_seo_meta_keywords', 'genesis_robots_meta', 'genesis_responsive_viewport' ),
251
  ),
252
+ 'genesis_before' => array(
253
  'description' => __( 'Executes immediately after the opening <code>&lt;body&gt;</code> tag.', 'genesis-simple-hooks' ),
254
  ),
255
+ 'genesis_after' => array(
256
  'description' => __( 'Executes immediately before the closing <code>&lt;/body&gt;</code> tag.', 'genesis-simple-hooks' ),
257
  ),
258
  );
259
 
260
  $this->header_hooks = array(
261
+ 'genesis_before_header' => array(
262
+ 'description' => __( 'Executes immediately before the header.', 'genesis-simple-hooks' ),
263
  ),
264
+ 'genesis_header' => array(
265
  'description' => __( 'Genesis uses this hook to output the default header.', 'genesis-simple-hooks' ),
266
  'unhook' => array( 'genesis_do_header' ),
267
  ),
268
+ 'genesis_header_right' => array(
269
  'description' => __( 'Executes inside the page header, immediately before the header widget area.', 'genesis-simple-hooks' ),
270
  ),
271
+ 'genesis_after_header' => array(
272
+ 'description' => __( 'Executes immediately after the header.', 'genesis-simple-hooks' ),
273
  ),
274
+ 'genesis_site_title' => array(
275
+ 'description' => __( 'Executes inside the header. Genesis uses this hook to output the site title.', 'genesis-simple-hooks' ),
276
  'unhook' => array( 'genesis_seo_site_title' ),
277
  ),
278
  'genesis_site_description' => array(
279
+ 'description' => __( 'Executes inside the header. Genesis uses this hook to output the site description.', 'genesis-simple-hooks' ),
280
  'unhook' => array( 'genesis_seo_site_description' ),
281
  ),
282
  );
285
  'genesis_before_content_sidebar_wrap' => array(
286
  'description' => __( 'Executes before the content-sidebar-wrap opening markup.', 'genesis-simple-hooks' ),
287
  ),
288
+ 'genesis_after_content_sidebar_wrap' => array(
289
  'description' => __( 'Executes after the content-sidebar-wrap closing markup.', 'genesis-simple-hooks' ),
290
  ),
291
+ 'genesis_before_content' => array(
292
  'description' => __( 'Executes before the content opening markup.', 'genesis-simple-hooks' ),
293
  ),
294
+ 'genesis_after_content' => array(
295
  'description' => __( 'Executes after the content closing markup.', 'genesis-simple-hooks' ),
296
  ),
297
  );
298
 
299
  $this->loop_hooks = array(
300
+ 'genesis_before_loop' => array(
301
  'description' => __( 'Executes before the loop.', 'genesis-simple-hooks' ),
302
  ),
303
+ 'genesis_loop' => array(
304
  'description' => __( 'Executes in the content section. Genesis uses this hook to output the loop.', 'genesis-simple-hooks' ),
305
  'unhook' => array( 'genesis_do_loop' ),
306
  ),
307
+ 'genesis_after_loop' => array(
308
  'description' => __( 'Executes after the loop.', 'genesis-simple-hooks' ),
309
  ),
310
  'genesis_after_endwhile' => array(
311
  'description' => __( 'Executes after the WordPress loop endwhile.', 'genesis-simple-hooks' ),
312
  'unhook' => array( 'genesis_posts_nav' ),
313
  ),
314
+ 'genesis_loop_else' => array(
315
  'description' => __( "Executes in the loop's else statement.", 'genesis-simple-hooks' ),
316
  'unhook' => array( 'genesis_do_noposts' ),
317
  ),
318
+ 'genesis_reset_loops' => array(
319
  'description' => __( 'Executes if the loop actions are reset.', 'genesis-simple-hooks' ),
320
  ),
321
  );
324
  * HTML5 entry hooks
325
  */
326
  $this->entry_hooks = array(
327
+ 'genesis_before_entry' => array(
328
  'description' => __( 'Executes before the entry.', 'genesis-simple-hooks' ),
329
  ),
330
+ 'genesis_entry_header' => array(
331
  'description' => __( 'Executes as part of the entry. Genesis uses this hook to output the entry header.', 'genesis-simple-hooks' ),
332
  'unhook' => array( 'genesis_do_post_title' ),
333
  ),
335
  'description' => __( 'Executes before the entry content', 'genesis-simple-hooks' ),
336
  'unhook' => array( 'genesis_do_post_content' ),
337
  ),
338
+ 'genesis_entry_content' => array(
339
  'description' => __( 'Executes as part of the entry. Genesis uses this hook to output the entry content.', 'genesis-simple-hooks' ),
340
  'unhook' => array( 'genesis_do_post_content' ),
341
  ),
342
+ 'genesis_after_entry_content' => array(
343
  'description' => __( 'Executes after the entry content', 'genesis-simple-hooks' ),
344
  'unhook' => array( 'genesis_do_post_content' ),
345
  ),
346
+ 'genesis_entry_footer' => array(
347
  'description' => __( 'Executes as part of the entry. Genesis uses this hook to output the entry footer.', 'genesis-simple-hooks' ),
348
  'unhook' => array( 'genesis_post_meta' ),
349
  ),
350
+ 'genesis_after_entry' => array(
351
  'description' => __( 'Executes after the entry.', 'genesis-simple-hooks' ),
352
  'unhook' => array( 'genesis_adjacent_entry_nav', 'genesis_get_comments_template' ),
353
  ),
354
  );
355
 
356
  /**
357
+ * The xHTML post hooks
358
  */
359
  $this->post_hooks = array(
360
+ 'genesis_before_post' => array(
361
  'description' => __( 'Executes before the post opening markup.', 'genesis-simple-hooks' ),
362
  ),
363
+ 'genesis_after_post' => array(
364
  'description' => __( 'Executes after the post closing markup.', 'genesis-simple-hooks' ),
365
  'unhook' => array( 'genesis_do_author_box_single', 'genesis_get_comments_template' ),
366
  ),
367
+ 'genesis_before_post_title' => array(
368
  'description' => __( 'Executes before the post title.', 'genesis-simple-hooks' ),
369
  'unhook' => array( 'genesis_do_post_format_image' ),
370
  ),
371
+ 'genesis_post_title' => array(
372
  'description' => __( 'Executes as part of the post. Genesis uses this hook to output the post title.', 'genesis-simple-hooks' ),
373
  'unhook' => array( 'genesis_do_post_title' ),
374
  ),
375
+ 'genesis_after_post_title' => array(
376
  'description' => __( 'Executes after the post title.', 'genesis-simple-hooks' ),
377
  ),
378
  'genesis_before_post_content' => array(
379
  'description' => __( 'Executes before the post content.', 'genesis-simple-hooks' ),
380
  'unhook' => array( 'genesis_post_info' ),
381
  ),
382
+ 'genesis_post_content' => array(
383
  'description' => __( 'Executes as part of the post. Genesis uses this hook to output the post content.', 'genesis-simple-hooks' ),
384
  'unhook' => array( 'genesis_do_post_image', 'genesis_do_post_content', 'genesis_do_post_permalink', 'genesis_do_post_content_nav' ),
385
  ),
386
+ 'genesis_after_post_content' => array(
387
  'description' => __( 'Executes after the post content.', 'genesis-simple-hooks' ),
388
  'unhook' => array( 'genesis_post_meta' ),
389
  ),
390
  );
391
 
392
  $this->comment_hooks = array(
393
+ 'genesis_before_comments' => array(
394
  'description' => __( 'Executes before the comments section opening markup.', 'genesis-simple-hooks' ),
395
  ),
396
+ 'genesis_comments' => array(
397
  'description' => __( 'Executes after an entry. Genesis uses this hook to output the comments section.', 'genesis-simple-hooks' ),
398
  'unhook' => array( 'genesis_do_comments' ),
399
  ),
400
+ 'genesis_list_comments' => array(
401
  'description' => __( 'Executes in the comments section. Genesis uses this hook to output the comment list.', 'genesis-simple-hooks' ),
402
  'unhook' => array( 'genesis_default_list_comments' ),
403
  ),
404
+ 'genesis_after_comments' => array(
405
  'description' => __( 'Executes after the comments section closing markup.', 'genesis-simple-hooks' ),
406
  ),
407
+ 'genesis_before_pings' => array(
408
  'description' => __( 'Executes before the pings section opening markup.', 'genesis-simple-hooks' ),
409
  ),
410
+ 'genesis_pings' => array(
411
  'description' => __( 'Executes after an entry. Genesis uses this hook to output the pings section.', 'genesis-simple-hooks' ),
412
  'unhook' => array( 'genesis_do_pings' ),
413
  ),
414
+ 'genesis_list_pings' => array(
415
  'description' => __( 'Executes in the pings section. Genesis uses this hook to output the ping list.', 'genesis-simple-hooks' ),
416
  'unhook' => array( 'genesis_default_list_pings' ),
417
  ),
418
+ 'genesis_after_pings' => array(
419
  'description' => __( 'Executes after the ping section closing markup.', 'genesis-simple-hooks' ),
420
  ),
421
+ 'genesis_before_comment' => array(
422
  'description' => __( 'Executes before a single comment.', 'genesis-simple-hooks' ),
423
  ),
424
+ 'genesis_comment' => array(
425
  'description' => __( 'Executes in the comment list. Genesis uses this hook to output a single comment.', 'genesis-simple-hooks' ),
426
  ),
427
+ 'genesis_after_comment' => array(
428
  'description' => __( 'Executes after a single comment.', 'genesis-simple-hooks' ),
429
  ),
430
  'genesis_before_comment_form' => array(
431
  'description' => __( 'Executes before the comment form.', 'genesis-simple-hooks' ),
432
  ),
433
+ 'genesis_comment_form' => array(
434
  'description' => __( 'Executes after the comment and ping list. Genesis uses this hook to output the comment form.', 'genesis-simple-hooks' ),
435
  'unhook' => array( 'genesis_do_comment_form' ),
436
  ),
437
+ 'genesis_after_comment_form' => array(
438
  'description' => __( 'Executes after the comment form.', 'genesis-simple-hooks' ),
439
  ),
440
  );
441
 
442
  $this->sidebar_hooks = array(
443
+ 'genesis_before_sidebar' => array(
444
  'description' => __( 'Executes before the primary sidebar.', 'genesis-simple-hooks' ),
445
  ),
446
+ 'genesis_sidebar' => array(
447
  'description' => __( 'Executes after the content section in 2+ column layouts. Genesis uses this hook to output the primary sidebar.', 'genesis-simple-hooks' ),
448
  'unhook' => array( 'genesis_do_sidebar' ),
449
  ),
450
+ 'genesis_after_sidebar' => array(
451
  'description' => __( 'Executes after the primary sidebar.', 'genesis-simple-hooks' ),
452
  ),
453
+ 'genesis_before_sidebar_widget_area' => array(
454
  'description' => __( 'Executes before the primary sidebar widget area.', 'genesis-simple-hooks' ),
455
  ),
456
+ 'genesis_after_sidebar_widget_area' => array(
457
  'description' => __( 'Executes after the primary sidebar widget area.', 'genesis-simple-hooks' ),
458
  ),
459
+ 'genesis_before_sidebar_alt' => array(
460
  'description' => __( 'Executes before the secondary sidebar.', 'genesis-simple-hooks' ),
461
  ),
462
+ 'genesis_sidebar_alt' => array(
463
  'description' => __( 'Executes after the primary sidebar in 3+ column layouts. Genesis uses this hook to output the secondary sidebar.', 'genesis-simple-hooks' ),
464
  'unhook' => array( 'genesis_do_sidebar_alt' ),
465
  ),
466
+ 'genesis_after_sidebar_alt' => array(
467
  'description' => __( 'Executes after the secondary sidebar.', 'genesis-simple-hooks' ),
468
  ),
469
  'genesis_before_sidebar_alt_widget_area' => array(
470
  'description' => __( 'Executes before the secondary sidebar widget area.', 'genesis-simple-hooks' ),
471
  ),
472
+ 'genesis_after_sidebar_alt_widget_area' => array(
473
  'description' => __( 'Executes after the secondary sidebar widget area.', 'genesis-simple-hooks' ),
474
  ),
475
  );
478
  'genesis_before_footer' => array(
479
  'description' => __( 'Executes before the site footer.', 'genesis-simple-hooks' ),
480
  ),
481
+ 'genesis_footer' => array(
482
  'description' => __( 'Executes after the content and sidebars. Genesis uses this hook to output the site footer.', 'genesis-simple-hooks' ),
483
  'unhook' => array( 'genesis_do_footer' ),
484
  ),
485
+ 'genesis_after_footer' => array(
486
  'description' => __( 'Executes after the site footer.', 'genesis-simple-hooks' ),
487
  ),
488
  );
489
 
490
  $this->admin_hooks = array(
491
+ 'genesis_import_export_form' => array(
492
  'description' => __( 'Executes after the form on the the import/export screen.', 'genesis-simple-hooks' ),
493
  ),
494
+ 'genesis_export' => array(
495
  'description' => __( 'Executes during the export function.', 'genesis-simple-hooks' ),
496
  ),
497
+ 'genesis_import' => array(
498
  'description' => __( 'Executes during the import function.', 'genesis-simple-hooks' ),
499
  ),
500
  'genesis_theme_settings_metaboxes' => array(
501
  'description' => __( 'Executes in the function that adds metaboxes to the theme settings screen.', 'genesis-simple-hooks' ),
502
  ),
503
+ 'genesis_upgrade' => array(
504
  'description' => __( 'Executes after Genesis upgrades itself.', 'genesis-simple-hooks' ),
505
  'unhook' => array( 'genesis_upgrade_redirect' ),
506
  ),
515
  */
516
  public function get_default_settings() {
517
 
518
+ return array_fill_keys(
519
+ $this->get_hooks(),
520
+ array(
521
+ 'content' => '',
522
+ 'php' => 0,
523
+ 'shortcodes' => 0,
524
+ )
525
+ );
526
 
527
  }
528
 
533
  */
534
  public function get_hooks() {
535
 
536
+ // Merge all hooks arrays.
537
  $hooks = array_merge(
538
  $this->wp_hooks,
539
  $this->document_hooks,
548
  $this->admin_hooks
549
  );
550
 
551
+ // Just the keys.
552
  $hooks = array_keys( $hooks );
553
 
554
  return $hooks;
559
  * Generate form markup from an array of hooks.
560
  *
561
  * @since 2.2.0
562
+ *
563
+ * @param Array $hooks Hooks.
564
  */
565
  public function generate_form_markup_from_hooks( $hooks ) {
566
 
567
  foreach ( (array) $hooks as $hook => $info ) {
568
 
569
+ // Check for existence in hooks array.
570
+ if ( ! in_array( $hook, $this->get_hooks(), true ) ) {
571
  continue;
572
  }
573
 
574
+ printf( '<h4><code>%s</code> %s</h4>', esc_html( $hook ), esc_html( __( 'Hook', 'genesis-simple-hooks' ) ) );
575
+ printf( '<p><span class="description">%s</span></p>', esc_html( $info['description'] ) );
576
 
577
  if ( isset( $info['unhook'] ) ) {
578
+ $allowed_html = array(
579
+ 'a' => array(
580
+ 'href' => array(),
581
+ 'target' => array(),
582
+ ),
583
+ );
584
  foreach ( (array) $info['unhook'] as $function ) {
585
  printf(
586
  '<label><input type="checkbox" name="%s" id="%s" value="%s" %s/> %s</label><br />',
587
  $this->settings_field . "[{$hook}][unhook][]",
588
  $this->settings_field . "[{$hook}][unhook][]",
589
  $function,
590
+ in_array( $function, (array) simplehooks_get_option( $hook, 'unhook' ), true ) ? 'checked' : '',
591
+ // Translators: The string is the name of a function.
592
+ sprintf( wp_kses( __( 'Unhook <code>%s()</code> function from this hook?', 'genesis-simple-hooks' ), $allowed_html ), esc_html( $function ) )
593
  );
594
  }
 
595
  }
596
 
597
  printf(
598
  '<p><textarea name="%s" cols="70" rows="5">%s</textarea></p>',
599
+ esc_attr( $this->settings_field . "[{$hook}][content]" ),
600
+ esc_html( htmlentities( simplehooks_get_option( $hook, 'content' ), ENT_QUOTES, 'UTF-8' ) )
601
  );
602
 
603
  echo '<p>';
604
 
605
  printf(
606
  '<input type="checkbox" name="%1$s" id="%1$s" value="1" %2$s/> <label for="%1$s">%3$s</label><br />',
607
+ esc_attr( $this->settings_field . "[{$hook}][shortcodes]" ),
608
  checked( 1, simplehooks_get_option( $hook, 'shortcodes' ), 0 ),
609
+ esc_html( __( 'Execute Shortcodes on this hook?', 'genesis-simple-hooks' ) )
610
  );
611
 
612
  if ( current_user_can( 'unfiltered_html' ) ) {
613
  printf(
614
  '<input type="checkbox" name="%1$s" id="%1$s" value="1" %2$s/> <label for="%1$s">%3$s</label><br />',
615
+ esc_attr( $this->settings_field . "[{$hook}][php]" ),
616
  checked( 1, simplehooks_get_option( $hook, 'php' ), 0 ),
617
+ esc_html( __( 'Execute PHP on this hook?', 'genesis-simple-hooks' ) )
618
  );
619
  }
620
 
627
  }
628
 
629
  /**
630
+ * Register meta boxes on the Simple Hooks Settings page.
631
+ *
632
+ * @since 1.8.0
633
+ */
 
634
  public function metaboxes() {
635
 
636
  add_meta_box( 'simplehooks-wp-hooks', __( 'WordPress Hooks', 'genesis-simple-hooks' ), array( $this, 'wp_hooks_box' ), $this->pagehook, 'main' );
639
  add_meta_box( 'simplehooks-content-hooks', __( 'Content Hooks', 'genesis-simple-hooks' ), array( $this, 'content_hooks_box' ), $this->pagehook, 'main' );
640
  add_meta_box( 'simplehooks-loop-hooks', __( 'Loop Hooks', 'genesis-simple-hooks' ), array( $this, 'loop_hooks_box' ), $this->pagehook, 'main' );
641
 
642
+ if ( current_theme_supports( 'html5' ) ) {
643
  add_meta_box( 'simplehooks-entry-hooks', __( 'Entry Hooks', 'genesis-simple-hooks' ), array( $this, 'html5_entry_hooks_box' ), $this->pagehook, 'main' );
644
+ } else {
645
  add_meta_box( 'simplehooks-post-hooks', __( 'Post/Page Hooks', 'genesis-simple-hooks' ), array( $this, 'post_hooks_box' ), $this->pagehook, 'main' );
646
+ }
647
 
648
  add_meta_box( 'simplehooks-comment-hooks', __( 'Comment Hooks', 'genesis-simple-hooks' ), array( $this, 'comment_hooks_box' ), $this->pagehook, 'main' );
649
  add_meta_box( 'simplehooks-sidebar-hooks', __( 'Sidebar Hooks', 'genesis-simple-hooks' ), array( $this, 'sidebar_hooks_box' ), $this->pagehook, 'main' );
651
 
652
  }
653
 
654
+ /**
655
+ * WP Hooks Box
656
+ */
657
  public function wp_hooks_box() {
658
 
659
  $this->generate_form_markup_from_hooks( $this->wp_hooks );
662
 
663
  }
664
 
665
+ /**
666
+ * Internal Hooks Box
667
+ */
668
  public function internal_hooks_box() {
669
 
670
  $this->generate_form_markup_from_hooks( $this->internal_hooks );
673
 
674
  }
675
 
676
+ /**
677
+ * Document Hooks Box
678
+ */
679
  public function document_hooks_box() {
680
 
681
  $this->generate_form_markup_from_hooks( $this->document_hooks );
684
 
685
  }
686
 
687
+ /**
688
+ * Header Hooks Box
689
+ */
690
  public function header_hooks_box() {
691
 
692
  $this->generate_form_markup_from_hooks( $this->header_hooks );
695
 
696
  }
697
 
698
+ /**
699
+ * Content Hooks Box
700
+ */
701
  public function content_hooks_box() {
702
 
703
  $this->generate_form_markup_from_hooks( $this->content_hooks );
706
 
707
  }
708
 
709
+ /**
710
+ * Loop Hooks Box
711
+ */
712
  public function loop_hooks_box() {
713
 
714
  $this->generate_form_markup_from_hooks( $this->loop_hooks );
717
 
718
  }
719
 
720
+ /**
721
+ * HTML5 Entry Hooks Box
722
+ */
723
  public function html5_entry_hooks_box() {
724
 
725
  $this->generate_form_markup_from_hooks( $this->entry_hooks );
728
 
729
  }
730
 
731
+ /**
732
+ * Post Hooks Box
733
+ */
734
  public function post_hooks_box() {
735
 
736
  $this->generate_form_markup_from_hooks( $this->post_hooks );
739
 
740
  }
741
 
742
+ /**
743
+ * Comment Hooks Box
744
+ */
745
  public function comment_hooks_box() {
746
 
747
  $this->generate_form_markup_from_hooks( $this->comment_hooks );
750
 
751
  }
752
 
753
+ /**
754
+ * Sidebar Hooks Box
755
+ */
756
  public function sidebar_hooks_box() {
757
 
758
  $this->generate_form_markup_from_hooks( $this->sidebar_hooks );
761
 
762
  }
763
 
764
+ /**
765
+ * Footer Hooks Box
766
+ */
767
  public function footer_hooks_box() {
768
 
769
  $this->generate_form_markup_from_hooks( $this->footer_hooks );
includes/class-genesis-simple-hooks.php ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * This file handles the creation of the Simple Hooks admin menu.
4
+ *
5
+ * @package genesis-simple-hooks
6
+ */
7
+
8
+ /**
9
+ * Plugin Name: Genesis Simple Hooks
10
+ * Plugin URI: http://www.studiopress.com/plugins/simple-hooks
11
+ *
12
+ * Description: Genesis Simple Hooks allows you easy access to the 50+ Action Hooks in the Genesis Theme.
13
+ *
14
+ * Author: StudioPress
15
+ * Author URI: http://www.studiopress.com/
16
+ *
17
+ * Version: 2.3.0
18
+ *
19
+ * Text Domain: genesis-simple-hooks
20
+ * Domain Path: /languages
21
+ *
22
+ * License: GNU General Public License v2.0 (or later)
23
+ * License URI: http://www.opensource.org/licenses/gpl-license.php
24
+ */
25
+ class Genesis_Simple_Hooks {
26
+
27
+ /**
28
+ * Plugin version
29
+ *
30
+ * @var $plugin_version The plugin version
31
+ */
32
+ public $plugin_version = GENESIS_SIMPLE_HOOKS_VERSION;
33
+
34
+ /**
35
+ * Minimum WordPress version.
36
+ *
37
+ * @var $min_wp_version The minimum WordPress version
38
+ */
39
+ public $min_wp_version = '4.7.2';
40
+
41
+ /**
42
+ * Minimum Genesis version.
43
+ *
44
+ * @var $min_wp_version The minimum WordPress version
45
+ */
46
+ public $min_genesis_version = '2.5.0';
47
+
48
+ /**
49
+ * The plugin textdomain, for translations.
50
+ *
51
+ * @var $plugin_textdomain The plugin text domain
52
+ */
53
+ public $plugin_textdomain = 'genesis-simple-hooks';
54
+
55
+ /**
56
+ * The url to the plugin directory.
57
+ *
58
+ * @var $plugin_dir_url The plugin directory url
59
+ */
60
+ public $plugin_dir_url;
61
+
62
+ /**
63
+ * The path to the plugin directory.
64
+ *
65
+ * @var $plugin_dir_path The plugin directory path
66
+ */
67
+ public $plugin_dir_path;
68
+
69
+ /**
70
+ * The main settings field for this plugin.
71
+ *
72
+ * @var $settings_field The minimum settings field
73
+ */
74
+ public $settings_field = 'simplehooks-settings';
75
+
76
+ /**
77
+ * Admin menu and settings page.
78
+ *
79
+ * @var $admin The minimum WordPress version
80
+ */
81
+ public $admin;
82
+
83
+ /**
84
+ * Constructor.
85
+ *
86
+ * @since 2.2.0
87
+ */
88
+ public function __construct() {
89
+
90
+ $this->plugin_dir_url = GENESIS_SIMPLE_HOOKS_URL;
91
+ $this->plugin_dir_path = GENESIS_SIMPLE_HOOKS_DIR;
92
+
93
+ // For backward compatibility.
94
+ define( 'SIMPLEHOOKS_PLUGIN_DIR', $this->plugin_dir_path );
95
+
96
+ }
97
+
98
+ /**
99
+ * Initialize.
100
+ *
101
+ * @since 2.2.0
102
+ */
103
+ public function init() {
104
+
105
+ $this->load_plugin_textdomain();
106
+
107
+ add_action( 'admin_notices', array( $this, 'requirements_notice' ) );
108
+
109
+ // Because this is a Genesis-dependent plugin.
110
+ add_action( 'genesis_setup', array( $this, 'includes' ) );
111
+ add_action( 'genesis_admin_init', array( $this, 'instantiate' ) );
112
+ add_action( 'genesis_setup', array( $this, 'execute_hooks' ) );
113
+
114
+ }
115
+
116
+ /**
117
+ * Show admin notice if minimum requirements aren't met.
118
+ *
119
+ * @since 2.2.0
120
+ */
121
+ public function requirements_notice() {
122
+
123
+ if ( ! defined( 'PARENT_THEME_VERSION' ) || ! version_compare( PARENT_THEME_VERSION, $this->min_genesis_version, '>=' ) ) {
124
+
125
+ $plugin = get_plugin_data( $this->plugin_dir_path . 'includes/class-genesis-simple-hooks.php' );
126
+
127
+ $action = defined( 'PARENT_THEME_VERSION' ) ? __( 'upgrade to', 'plugin-boilerplate' ) : __( 'install and activate', 'plugin-boilerplate' );
128
+
129
+ // Translators: String 1 is the name of the plugin, String 2 is the minimum required version of WordPress, String 3 is a url, String 4 is the minimum required version of Genesis, and String 5 is an expected action.
130
+ $message = sprintf( __( '%1$s requires WordPress %2$s and <a href="%3$s" target="_blank">Genesis %4$s</a>, or greater. Please %5$s the latest version of Genesis to use this plugin.', 'plugin-boilerplate' ), $plugin['Name'], $this->min_wp_version, 'http://my.studiopress.com/?download_id=91046d629e74d525b3f2978e404e7ffa', $this->min_genesis_version, $action );
131
+ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- html in $message required for hyperlinks
132
+ echo '<div class="notice notice-warning"><p>' . $message . '</p></div>';
133
+
134
+ }
135
+
136
+ }
137
+
138
+ /**
139
+ * Load the plugin textdomain, for translation.
140
+ *
141
+ * @since 2.2.0
142
+ */
143
+ public function load_plugin_textdomain() {
144
+ load_plugin_textdomain( 'genesis-simple-hooks', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
145
+ }
146
+
147
+ /**
148
+ * All general includes.
149
+ *
150
+ * @since 2.2.0
151
+ */
152
+ public function includes() {
153
+
154
+ require_once $this->plugin_dir_path . 'includes/functions.php';
155
+ require_once $this->plugin_dir_path . 'includes/deprecated.php';
156
+
157
+ }
158
+
159
+ /**
160
+ * Include the class file, instantiate the classes, create objects.
161
+ *
162
+ * @since 2.2.0
163
+ */
164
+ public function instantiate() {
165
+
166
+ require_once $this->plugin_dir_path . 'includes/class-genesis-simple-hooks-admin.php';
167
+ $this->admin = new Genesis_Simple_Hooks_Admin();
168
+ $this->admin->init();
169
+
170
+ }
171
+
172
+ /**
173
+ * Helper function to retrieve the static object without using globals.
174
+ *
175
+ * @since 2.2.0
176
+ */
177
+ public function execute_hooks() {
178
+
179
+ $hooks = get_option( $this->settings_field );
180
+
181
+ foreach ( (array) $hooks as $hook => $array ) {
182
+
183
+ // Add new content to hook.
184
+ if ( ! empty( $array['content'] ) ) {
185
+ add_action( $hook, array( $this, 'execute_hook' ) );
186
+ }
187
+
188
+ // Unhook stuff.
189
+ if ( isset( $array['unhook'] ) ) {
190
+
191
+ foreach ( (array) $array['unhook'] as $function ) {
192
+ remove_action( $hook, $function );
193
+ }
194
+ }
195
+ }
196
+
197
+ }
198
+
199
+ /**
200
+ * The following function executes any code meant to be hooked.
201
+ * It checks to see if shortcodes or PHP should be executed as well.
202
+ *
203
+ * @uses simplehooks_get_option()
204
+ *
205
+ * @since 2.2.0
206
+ */
207
+ public function execute_hook() {
208
+
209
+ $hook = current_filter();
210
+ $content = simplehooks_get_option( $hook, 'content' );
211
+
212
+ if ( ! $hook || ! $content ) {
213
+ return;
214
+ }
215
+
216
+ $shortcodes = simplehooks_get_option( $hook, 'shortcodes' );
217
+ $php = simplehooks_get_option( $hook, 'php' );
218
+
219
+ $value = $shortcodes ? do_shortcode( $content ) : $content;
220
+
221
+ if ( $php ) {
222
+ //phpcs:ignore
223
+ eval( "?>$value " );
224
+ } else {
225
+ //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
226
+ echo ( $value );
227
+ }
228
+
229
+ }
230
+
231
+ }
includes/deprecated.php CHANGED
@@ -1,4 +1,9 @@
1
  <?php
 
 
 
 
 
2
 
3
  /**
4
  * Deprecated. Instantiate the admin menu.
1
  <?php
2
+ /**
3
+ * A deprecated instance of simple hooks
4
+ *
5
+ * @package genesis-simple-hooks
6
+ */
7
 
8
  /**
9
  * Deprecated. Instantiate the admin menu.
includes/functions.php CHANGED
@@ -1,9 +1,18 @@
1
  <?php
 
 
 
 
 
2
 
3
  /**
4
  * Pull an Simple Hooks option from the database, return value
5
  *
6
  * @since 0.1
 
 
 
 
7
  */
8
  function simplehooks_get_option( $hook = null, $field = null, $all = false ) {
9
 
@@ -15,10 +24,11 @@ function simplehooks_get_option( $hook = null, $field = null, $all = false ) {
15
  return $options;
16
  }
17
 
18
- if ( ! array_key_exists( $hook, (array) $options ) )
19
  return '';
 
20
 
21
- $option = isset( $options[$hook][$field] ) ? $options[$hook][$field] : '';
22
 
23
  return wp_kses_stripslashes( wp_kses_decode_entities( $option ) );
24
 
@@ -27,9 +37,13 @@ function simplehooks_get_option( $hook = null, $field = null, $all = false ) {
27
  * Pull an EasyHook option from the database, echo value
28
  *
29
  * @since 0.1
 
 
 
30
  */
31
- function simplehooks_option($hook = null, $field = null) {
32
 
 
33
  echo simplehooks_get_option( $hook, $field );
34
 
35
  }
1
  <?php
2
+ /**
3
+ * Additional Functions for Simple Hooks
4
+ *
5
+ * @package genesis-simple-hooks
6
+ */
7
 
8
  /**
9
  * Pull an Simple Hooks option from the database, return value
10
  *
11
  * @since 0.1
12
+ *
13
+ * @param Array $hook Hook.
14
+ * @param Array $field Field.
15
+ * @param Array $all All.
16
  */
17
  function simplehooks_get_option( $hook = null, $field = null, $all = false ) {
18
 
24
  return $options;
25
  }
26
 
27
+ if ( ! array_key_exists( $hook, (array) $options ) ) {
28
  return '';
29
+ }
30
 
31
+ $option = isset( $options[ $hook ][ $field ] ) ? $options[ $hook ][ $field ] : '';
32
 
33
  return wp_kses_stripslashes( wp_kses_decode_entities( $option ) );
34
 
37
  * Pull an EasyHook option from the database, echo value
38
  *
39
  * @since 0.1
40
+ *
41
+ * @param Array $hook Hook.
42
+ * @param Array $field Field.
43
  */
44
+ function simplehooks_option( $hook = null, $field = null ) {
45
 
46
+ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
47
  echo simplehooks_get_option( $hook, $field );
48
 
49
  }
languages/genesis-simple-hooks.pot CHANGED
@@ -1,425 +1,391 @@
1
- # Copyright (C) 2017
2
- # This file is distributed under the same license as the package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: \n"
6
  "Report-Msgid-Bugs-To: StudioPress <translations@studiopress.com>\n"
7
- "POT-Creation-Date: 2017-03-09 03:54:49+00:00\n"
 
8
  "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
12
- "Last-Translator: StudioPress <translations@studiopress.com>\n"
13
- "Language-Team: English <translations@studiopress.com>\n"
14
- "X-Generator: grunt-wp-i18n 0.4.4\n"
15
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
16
- "X-Poedit-Basepath: .\n"
17
- "X-Poedit-Language: English\n"
18
- "X-Poedit-Country: UNITED STATES\n"
19
- "X-Poedit-SourceCharset: utf-8\n"
20
- "X-Poedit-KeywordsList: "
21
- "__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
22
- "attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
23
- "X-Poedit-Bookmarks: \n"
24
- "X-Poedit-SearchPath-0: .\n"
25
- "X-Textdomain-Support: yes\n"
26
-
27
- #: genesis-simple-hooks.php:87
28
- msgid "upgrade to"
29
- msgstr ""
30
-
31
- #: genesis-simple-hooks.php:87
32
- msgid "install and activate"
33
- msgstr ""
34
-
35
- #: genesis-simple-hooks.php:89
36
- msgid ""
37
- "Genesis Simple Hooks requires WordPress %s and Genesis %s, or greater. "
38
- "Please %s the latest version of <a href=\"%s\" "
39
- "target=\"_blank\">Genesis</a> to use this plugin."
40
  msgstr ""
41
 
42
- #: includes/class-genesis-simple-hooks-admin.php:82
 
 
 
 
 
 
 
 
 
 
 
 
43
  msgid "Genesis - Simple Hooks"
44
  msgstr ""
45
 
46
- #: includes/class-genesis-simple-hooks-admin.php:83
47
  msgid "Simple Hooks"
48
  msgstr ""
49
 
50
- #: includes/class-genesis-simple-hooks-admin.php:150
51
  msgid "Executes immediately before the closing <code>&lt;/head&gt;</code> tag."
52
  msgstr ""
53
 
54
- #: includes/class-genesis-simple-hooks-admin.php:154
55
- #: includes/class-genesis-simple-hooks-admin.php:176
56
  msgid "Executes immediately before the closing <code>&lt;/body&gt;</code> tag."
57
  msgstr ""
58
 
59
- #: includes/class-genesis-simple-hooks-admin.php:161
60
  msgid "Executes in the document head. Genesis uses this to output the doctype."
61
  msgstr ""
62
 
63
- #: includes/class-genesis-simple-hooks-admin.php:165
64
- msgid ""
65
- "Executes in the document head. Genesis uses this to output the document "
66
- "title."
67
  msgstr ""
68
 
69
- #: includes/class-genesis-simple-hooks-admin.php:169
70
  msgid "Executes in the document head. Genesis uses this to output meta tags."
71
  msgstr ""
72
 
73
- #: includes/class-genesis-simple-hooks-admin.php:173
74
  msgid "Executes immediately after the opening <code>&lt;body&gt;</code> tag."
75
  msgstr ""
76
 
77
- #: includes/class-genesis-simple-hooks-admin.php:182
78
  msgid "Executes immediately before the header."
79
  msgstr ""
80
 
81
- #: includes/class-genesis-simple-hooks-admin.php:185
82
  msgid "Genesis uses this hook to output the default header."
83
  msgstr ""
84
 
85
- #: includes/class-genesis-simple-hooks-admin.php:189
86
  msgid "Executes inside the page header, immediately before the header widget area."
87
  msgstr ""
88
 
89
- #: includes/class-genesis-simple-hooks-admin.php:192
90
  msgid "Executes immediately after the header."
91
  msgstr ""
92
 
93
- #: includes/class-genesis-simple-hooks-admin.php:195
94
  msgid "Executes inside the header. Genesis uses this hook to output the site title."
95
  msgstr ""
96
 
97
- #: includes/class-genesis-simple-hooks-admin.php:199
98
- msgid ""
99
- "Executes inside the header. Genesis uses this hook to output the site "
100
- "description."
101
  msgstr ""
102
 
103
- #: includes/class-genesis-simple-hooks-admin.php:206
104
  msgid "Executes before the content-sidebar-wrap opening markup."
105
  msgstr ""
106
 
107
- #: includes/class-genesis-simple-hooks-admin.php:209
108
  msgid "Executes after the content-sidebar-wrap closing markup."
109
  msgstr ""
110
 
111
- #: includes/class-genesis-simple-hooks-admin.php:212
112
  msgid "Executes before the content opening markup."
113
  msgstr ""
114
 
115
- #: includes/class-genesis-simple-hooks-admin.php:215
116
  msgid "Executes after the content closing markup."
117
  msgstr ""
118
 
119
- #: includes/class-genesis-simple-hooks-admin.php:221
120
  msgid "Executes before the loop."
121
  msgstr ""
122
 
123
- #: includes/class-genesis-simple-hooks-admin.php:224
124
  msgid "Executes in the content section. Genesis uses this hook to output the loop."
125
  msgstr ""
126
 
127
- #: includes/class-genesis-simple-hooks-admin.php:228
128
  msgid "Executes after the loop."
129
  msgstr ""
130
 
131
- #: includes/class-genesis-simple-hooks-admin.php:231
132
  msgid "Executes after the WordPress loop endwhile."
133
  msgstr ""
134
 
135
- #: includes/class-genesis-simple-hooks-admin.php:235
136
  msgid "Executes in the loop's else statement."
137
  msgstr ""
138
 
139
- #: includes/class-genesis-simple-hooks-admin.php:239
140
  msgid "Executes if the loop actions are reset."
141
  msgstr ""
142
 
143
- #: includes/class-genesis-simple-hooks-admin.php:248
144
  msgid "Executes before the entry."
145
  msgstr ""
146
 
147
- #: includes/class-genesis-simple-hooks-admin.php:251
148
- msgid ""
149
- "Executes as part of the entry. Genesis uses this hook to output the entry "
150
- "header."
151
  msgstr ""
152
 
153
- #: includes/class-genesis-simple-hooks-admin.php:255
154
  msgid "Executes before the entry content"
155
  msgstr ""
156
 
157
- #: includes/class-genesis-simple-hooks-admin.php:259
158
- msgid ""
159
- "Executes as part of the entry. Genesis uses this hook to output the entry "
160
- "content."
161
  msgstr ""
162
 
163
- #: includes/class-genesis-simple-hooks-admin.php:263
164
  msgid "Executes after the entry content"
165
  msgstr ""
166
 
167
- #: includes/class-genesis-simple-hooks-admin.php:267
168
- msgid ""
169
- "Executes as part of the entry. Genesis uses this hook to output the entry "
170
- "footer."
171
  msgstr ""
172
 
173
- #: includes/class-genesis-simple-hooks-admin.php:271
174
  msgid "Executes after the entry."
175
  msgstr ""
176
 
177
- #: includes/class-genesis-simple-hooks-admin.php:281
178
  msgid "Executes before the post opening markup."
179
  msgstr ""
180
 
181
- #: includes/class-genesis-simple-hooks-admin.php:284
182
  msgid "Executes after the post closing markup."
183
  msgstr ""
184
 
185
- #: includes/class-genesis-simple-hooks-admin.php:288
186
  msgid "Executes before the post title."
187
  msgstr ""
188
 
189
- #: includes/class-genesis-simple-hooks-admin.php:292
190
- msgid ""
191
- "Executes as part of the post. Genesis uses this hook to output the post "
192
- "title."
193
  msgstr ""
194
 
195
- #: includes/class-genesis-simple-hooks-admin.php:296
196
  msgid "Executes after the post title."
197
  msgstr ""
198
 
199
- #: includes/class-genesis-simple-hooks-admin.php:299
200
  msgid "Executes before the post content."
201
  msgstr ""
202
 
203
- #: includes/class-genesis-simple-hooks-admin.php:303
204
- msgid ""
205
- "Executes as part of the post. Genesis uses this hook to output the post "
206
- "content."
207
  msgstr ""
208
 
209
- #: includes/class-genesis-simple-hooks-admin.php:307
210
  msgid "Executes after the post content."
211
  msgstr ""
212
 
213
- #: includes/class-genesis-simple-hooks-admin.php:314
214
  msgid "Executes before the comments section opening markup."
215
  msgstr ""
216
 
217
- #: includes/class-genesis-simple-hooks-admin.php:317
218
- msgid ""
219
- "Executes after an entry. Genesis uses this hook to output the comments "
220
- "section."
221
  msgstr ""
222
 
223
- #: includes/class-genesis-simple-hooks-admin.php:321
224
- msgid ""
225
- "Executes in the comments section. Genesis uses this hook to output the "
226
- "comment list."
227
  msgstr ""
228
 
229
- #: includes/class-genesis-simple-hooks-admin.php:325
230
  msgid "Executes after the comments section closing markup."
231
  msgstr ""
232
 
233
- #: includes/class-genesis-simple-hooks-admin.php:328
234
  msgid "Executes before the pings section opening markup."
235
  msgstr ""
236
 
237
- #: includes/class-genesis-simple-hooks-admin.php:331
238
  msgid "Executes after an entry. Genesis uses this hook to output the pings section."
239
  msgstr ""
240
 
241
- #: includes/class-genesis-simple-hooks-admin.php:335
242
- msgid ""
243
- "Executes in the pings section. Genesis uses this hook to output the ping "
244
- "list."
245
  msgstr ""
246
 
247
- #: includes/class-genesis-simple-hooks-admin.php:339
248
  msgid "Executes after the ping section closing markup."
249
  msgstr ""
250
 
251
- #: includes/class-genesis-simple-hooks-admin.php:342
252
  msgid "Executes before a single comment."
253
  msgstr ""
254
 
255
- #: includes/class-genesis-simple-hooks-admin.php:345
256
- msgid ""
257
- "Executes in the comment list. Genesis uses this hook to output a single "
258
- "comment."
259
  msgstr ""
260
 
261
- #: includes/class-genesis-simple-hooks-admin.php:348
262
  msgid "Executes after a single comment."
263
  msgstr ""
264
 
265
- #: includes/class-genesis-simple-hooks-admin.php:351
266
  msgid "Executes before the comment form."
267
  msgstr ""
268
 
269
- #: includes/class-genesis-simple-hooks-admin.php:354
270
- msgid ""
271
- "Executes after the comment and ping list. Genesis uses this hook to output "
272
- "the comment form."
273
  msgstr ""
274
 
275
- #: includes/class-genesis-simple-hooks-admin.php:358
276
  msgid "Executes after the comment form."
277
  msgstr ""
278
 
279
- #: includes/class-genesis-simple-hooks-admin.php:364
280
  msgid "Executes before the primary sidebar."
281
  msgstr ""
282
 
283
- #: includes/class-genesis-simple-hooks-admin.php:367
284
- msgid ""
285
- "Executes after the content section in 2+ column layouts. Genesis uses this "
286
- "hook to output the primary sidebar."
287
  msgstr ""
288
 
289
- #: includes/class-genesis-simple-hooks-admin.php:371
290
  msgid "Executes after the primary sidebar."
291
  msgstr ""
292
 
293
- #: includes/class-genesis-simple-hooks-admin.php:374
294
  msgid "Executes before the primary sidebar widget area."
295
  msgstr ""
296
 
297
- #: includes/class-genesis-simple-hooks-admin.php:377
298
  msgid "Executes after the primary sidebar widget area."
299
  msgstr ""
300
 
301
- #: includes/class-genesis-simple-hooks-admin.php:380
302
  msgid "Executes before the secondary sidebar."
303
  msgstr ""
304
 
305
- #: includes/class-genesis-simple-hooks-admin.php:383
306
- msgid ""
307
- "Executes after the primary sidebar in 3+ column layouts. Genesis uses this "
308
- "hook to output the secondary sidebar."
309
  msgstr ""
310
 
311
- #: includes/class-genesis-simple-hooks-admin.php:387
312
  msgid "Executes after the secondary sidebar."
313
  msgstr ""
314
 
315
- #: includes/class-genesis-simple-hooks-admin.php:390
316
  msgid "Executes before the secondary sidebar widget area."
317
  msgstr ""
318
 
319
- #: includes/class-genesis-simple-hooks-admin.php:393
320
  msgid "Executes after the secondary sidebar widget area."
321
  msgstr ""
322
 
323
- #: includes/class-genesis-simple-hooks-admin.php:399
324
  msgid "Executes before the site footer."
325
  msgstr ""
326
 
327
- #: includes/class-genesis-simple-hooks-admin.php:402
328
- msgid ""
329
- "Executes after the content and sidebars. Genesis uses this hook to output "
330
- "the site footer."
331
  msgstr ""
332
 
333
- #: includes/class-genesis-simple-hooks-admin.php:406
334
  msgid "Executes after the site footer."
335
  msgstr ""
336
 
337
- #: includes/class-genesis-simple-hooks-admin.php:412
338
  msgid "Executes after the form on the the import/export screen."
339
  msgstr ""
340
 
341
- #: includes/class-genesis-simple-hooks-admin.php:415
342
  msgid "Executes during the export function."
343
  msgstr ""
344
 
345
- #: includes/class-genesis-simple-hooks-admin.php:418
346
  msgid "Executes during the import function."
347
  msgstr ""
348
 
349
- #: includes/class-genesis-simple-hooks-admin.php:421
350
  msgid "Executes in the function that adds metaboxes to the theme settings screen."
351
  msgstr ""
352
 
353
- #: includes/class-genesis-simple-hooks-admin.php:424
354
  msgid "Executes after Genesis upgrades itself."
355
  msgstr ""
356
 
357
- #: includes/class-genesis-simple-hooks-admin.php:485
358
  msgid "Hook"
359
  msgstr ""
360
 
361
- #: includes/class-genesis-simple-hooks-admin.php:497
 
362
  msgid "Unhook <code>%s()</code> function from this hook?"
363
  msgstr ""
364
 
365
- #: includes/class-genesis-simple-hooks-admin.php:515
366
  msgid "Execute Shortcodes on this hook?"
367
  msgstr ""
368
 
369
- #: includes/class-genesis-simple-hooks-admin.php:523
370
  msgid "Execute PHP on this hook?"
371
  msgstr ""
372
 
373
- #: includes/class-genesis-simple-hooks-admin.php:543
374
  msgid "WordPress Hooks"
375
  msgstr ""
376
 
377
- #: includes/class-genesis-simple-hooks-admin.php:544
378
  msgid "Document Hooks"
379
  msgstr ""
380
 
381
- #: includes/class-genesis-simple-hooks-admin.php:545
382
  msgid "Header Hooks"
383
  msgstr ""
384
 
385
- #: includes/class-genesis-simple-hooks-admin.php:546
386
  msgid "Content Hooks"
387
  msgstr ""
388
 
389
- #: includes/class-genesis-simple-hooks-admin.php:547
390
  msgid "Loop Hooks"
391
  msgstr ""
392
 
393
- #: includes/class-genesis-simple-hooks-admin.php:550
394
  msgid "Entry Hooks"
395
  msgstr ""
396
 
397
- #: includes/class-genesis-simple-hooks-admin.php:552
398
  msgid "Post/Page Hooks"
399
  msgstr ""
400
 
401
- #: includes/class-genesis-simple-hooks-admin.php:554
402
  msgid "Comment Hooks"
403
  msgstr ""
404
 
405
- #: includes/class-genesis-simple-hooks-admin.php:555
406
  msgid "Sidebar Hooks"
407
  msgstr ""
408
 
409
- #: includes/class-genesis-simple-hooks-admin.php:556
410
  msgid "Footer Hooks"
411
  msgstr ""
412
 
413
- #: includes/class-genesis-simple-hooks-admin.php:564
414
- #: includes/class-genesis-simple-hooks-admin.php:572
415
- #: includes/class-genesis-simple-hooks-admin.php:580
416
- #: includes/class-genesis-simple-hooks-admin.php:588
417
- #: includes/class-genesis-simple-hooks-admin.php:596
418
- #: includes/class-genesis-simple-hooks-admin.php:604
419
- #: includes/class-genesis-simple-hooks-admin.php:612
420
- #: includes/class-genesis-simple-hooks-admin.php:620
421
- #: includes/class-genesis-simple-hooks-admin.php:628
422
- #: includes/class-genesis-simple-hooks-admin.php:636
423
- #: includes/class-genesis-simple-hooks-admin.php:644
424
  msgid "Save Changes"
425
- msgstr ""
1
+ # Copyright (C) 2019 StudioPress
2
+ # This file is distributed under the same license as the Genesis Simple Hooks plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Genesis Simple Hooks 2.3.0\n"
6
  "Report-Msgid-Bugs-To: StudioPress <translations@studiopress.com>\n"
7
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
+ "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2019-08-02T15:09:40+00:00\n"
13
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
+ "X-Generator: WP-CLI 2.2.0\n"
15
+ "X-Domain: genesis-simple-hooks\n"
16
+
17
+ #. Plugin Name of the plugin
18
+ msgid "Genesis Simple Hooks"
19
+ msgstr ""
20
+
21
+ #. Plugin URI of the plugin
22
+ msgid "http://www.studiopress.com/plugins/simple-hooks"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  msgstr ""
24
 
25
+ #. Description of the plugin
26
+ msgid "Genesis Simple Hooks allows you easy access to the 50+ Action Hooks in the Genesis Theme."
27
+ msgstr ""
28
+
29
+ #. Author of the plugin
30
+ msgid "StudioPress"
31
+ msgstr ""
32
+
33
+ #. Author URI of the plugin
34
+ msgid "http://www.studiopress.com/"
35
+ msgstr ""
36
+
37
+ #: includes/class-genesis-simple-hooks-admin.php:161
38
  msgid "Genesis - Simple Hooks"
39
  msgstr ""
40
 
41
+ #: includes/class-genesis-simple-hooks-admin.php:162
42
  msgid "Simple Hooks"
43
  msgstr ""
44
 
45
+ #: includes/class-genesis-simple-hooks-admin.php:230
46
  msgid "Executes immediately before the closing <code>&lt;/head&gt;</code> tag."
47
  msgstr ""
48
 
49
+ #: includes/class-genesis-simple-hooks-admin.php:234
50
+ #: includes/class-genesis-simple-hooks-admin.php:256
51
  msgid "Executes immediately before the closing <code>&lt;/body&gt;</code> tag."
52
  msgstr ""
53
 
54
+ #: includes/class-genesis-simple-hooks-admin.php:241
55
  msgid "Executes in the document head. Genesis uses this to output the doctype."
56
  msgstr ""
57
 
58
+ #: includes/class-genesis-simple-hooks-admin.php:245
59
+ msgid "Executes in the document head. Genesis uses this to output the document title."
 
 
60
  msgstr ""
61
 
62
+ #: includes/class-genesis-simple-hooks-admin.php:249
63
  msgid "Executes in the document head. Genesis uses this to output meta tags."
64
  msgstr ""
65
 
66
+ #: includes/class-genesis-simple-hooks-admin.php:253
67
  msgid "Executes immediately after the opening <code>&lt;body&gt;</code> tag."
68
  msgstr ""
69
 
70
+ #: includes/class-genesis-simple-hooks-admin.php:262
71
  msgid "Executes immediately before the header."
72
  msgstr ""
73
 
74
+ #: includes/class-genesis-simple-hooks-admin.php:265
75
  msgid "Genesis uses this hook to output the default header."
76
  msgstr ""
77
 
78
+ #: includes/class-genesis-simple-hooks-admin.php:269
79
  msgid "Executes inside the page header, immediately before the header widget area."
80
  msgstr ""
81
 
82
+ #: includes/class-genesis-simple-hooks-admin.php:272
83
  msgid "Executes immediately after the header."
84
  msgstr ""
85
 
86
+ #: includes/class-genesis-simple-hooks-admin.php:275
87
  msgid "Executes inside the header. Genesis uses this hook to output the site title."
88
  msgstr ""
89
 
90
+ #: includes/class-genesis-simple-hooks-admin.php:279
91
+ msgid "Executes inside the header. Genesis uses this hook to output the site description."
 
 
92
  msgstr ""
93
 
94
+ #: includes/class-genesis-simple-hooks-admin.php:286
95
  msgid "Executes before the content-sidebar-wrap opening markup."
96
  msgstr ""
97
 
98
+ #: includes/class-genesis-simple-hooks-admin.php:289
99
  msgid "Executes after the content-sidebar-wrap closing markup."
100
  msgstr ""
101
 
102
+ #: includes/class-genesis-simple-hooks-admin.php:292
103
  msgid "Executes before the content opening markup."
104
  msgstr ""
105
 
106
+ #: includes/class-genesis-simple-hooks-admin.php:295
107
  msgid "Executes after the content closing markup."
108
  msgstr ""
109
 
110
+ #: includes/class-genesis-simple-hooks-admin.php:301
111
  msgid "Executes before the loop."
112
  msgstr ""
113
 
114
+ #: includes/class-genesis-simple-hooks-admin.php:304
115
  msgid "Executes in the content section. Genesis uses this hook to output the loop."
116
  msgstr ""
117
 
118
+ #: includes/class-genesis-simple-hooks-admin.php:308
119
  msgid "Executes after the loop."
120
  msgstr ""
121
 
122
+ #: includes/class-genesis-simple-hooks-admin.php:311
123
  msgid "Executes after the WordPress loop endwhile."
124
  msgstr ""
125
 
126
+ #: includes/class-genesis-simple-hooks-admin.php:315
127
  msgid "Executes in the loop's else statement."
128
  msgstr ""
129
 
130
+ #: includes/class-genesis-simple-hooks-admin.php:319
131
  msgid "Executes if the loop actions are reset."
132
  msgstr ""
133
 
134
+ #: includes/class-genesis-simple-hooks-admin.php:328
135
  msgid "Executes before the entry."
136
  msgstr ""
137
 
138
+ #: includes/class-genesis-simple-hooks-admin.php:331
139
+ msgid "Executes as part of the entry. Genesis uses this hook to output the entry header."
 
 
140
  msgstr ""
141
 
142
+ #: includes/class-genesis-simple-hooks-admin.php:335
143
  msgid "Executes before the entry content"
144
  msgstr ""
145
 
146
+ #: includes/class-genesis-simple-hooks-admin.php:339
147
+ msgid "Executes as part of the entry. Genesis uses this hook to output the entry content."
 
 
148
  msgstr ""
149
 
150
+ #: includes/class-genesis-simple-hooks-admin.php:343
151
  msgid "Executes after the entry content"
152
  msgstr ""
153
 
154
+ #: includes/class-genesis-simple-hooks-admin.php:347
155
+ msgid "Executes as part of the entry. Genesis uses this hook to output the entry footer."
 
 
156
  msgstr ""
157
 
158
+ #: includes/class-genesis-simple-hooks-admin.php:351
159
  msgid "Executes after the entry."
160
  msgstr ""
161
 
162
+ #: includes/class-genesis-simple-hooks-admin.php:361
163
  msgid "Executes before the post opening markup."
164
  msgstr ""
165
 
166
+ #: includes/class-genesis-simple-hooks-admin.php:364
167
  msgid "Executes after the post closing markup."
168
  msgstr ""
169
 
170
+ #: includes/class-genesis-simple-hooks-admin.php:368
171
  msgid "Executes before the post title."
172
  msgstr ""
173
 
174
+ #: includes/class-genesis-simple-hooks-admin.php:372
175
+ msgid "Executes as part of the post. Genesis uses this hook to output the post title."
 
 
176
  msgstr ""
177
 
178
+ #: includes/class-genesis-simple-hooks-admin.php:376
179
  msgid "Executes after the post title."
180
  msgstr ""
181
 
182
+ #: includes/class-genesis-simple-hooks-admin.php:379
183
  msgid "Executes before the post content."
184
  msgstr ""
185
 
186
+ #: includes/class-genesis-simple-hooks-admin.php:383
187
+ msgid "Executes as part of the post. Genesis uses this hook to output the post content."
 
 
188
  msgstr ""
189
 
190
+ #: includes/class-genesis-simple-hooks-admin.php:387
191
  msgid "Executes after the post content."
192
  msgstr ""
193
 
194
+ #: includes/class-genesis-simple-hooks-admin.php:394
195
  msgid "Executes before the comments section opening markup."
196
  msgstr ""
197
 
198
+ #: includes/class-genesis-simple-hooks-admin.php:397
199
+ msgid "Executes after an entry. Genesis uses this hook to output the comments section."
 
 
200
  msgstr ""
201
 
202
+ #: includes/class-genesis-simple-hooks-admin.php:401
203
+ msgid "Executes in the comments section. Genesis uses this hook to output the comment list."
 
 
204
  msgstr ""
205
 
206
+ #: includes/class-genesis-simple-hooks-admin.php:405
207
  msgid "Executes after the comments section closing markup."
208
  msgstr ""
209
 
210
+ #: includes/class-genesis-simple-hooks-admin.php:408
211
  msgid "Executes before the pings section opening markup."
212
  msgstr ""
213
 
214
+ #: includes/class-genesis-simple-hooks-admin.php:411
215
  msgid "Executes after an entry. Genesis uses this hook to output the pings section."
216
  msgstr ""
217
 
218
+ #: includes/class-genesis-simple-hooks-admin.php:415
219
+ msgid "Executes in the pings section. Genesis uses this hook to output the ping list."
 
 
220
  msgstr ""
221
 
222
+ #: includes/class-genesis-simple-hooks-admin.php:419
223
  msgid "Executes after the ping section closing markup."
224
  msgstr ""
225
 
226
+ #: includes/class-genesis-simple-hooks-admin.php:422
227
  msgid "Executes before a single comment."
228
  msgstr ""
229
 
230
+ #: includes/class-genesis-simple-hooks-admin.php:425
231
+ msgid "Executes in the comment list. Genesis uses this hook to output a single comment."
 
 
232
  msgstr ""
233
 
234
+ #: includes/class-genesis-simple-hooks-admin.php:428
235
  msgid "Executes after a single comment."
236
  msgstr ""
237
 
238
+ #: includes/class-genesis-simple-hooks-admin.php:431
239
  msgid "Executes before the comment form."
240
  msgstr ""
241
 
242
+ #: includes/class-genesis-simple-hooks-admin.php:434
243
+ msgid "Executes after the comment and ping list. Genesis uses this hook to output the comment form."
 
 
244
  msgstr ""
245
 
246
+ #: includes/class-genesis-simple-hooks-admin.php:438
247
  msgid "Executes after the comment form."
248
  msgstr ""
249
 
250
+ #: includes/class-genesis-simple-hooks-admin.php:444
251
  msgid "Executes before the primary sidebar."
252
  msgstr ""
253
 
254
+ #: includes/class-genesis-simple-hooks-admin.php:447
255
+ msgid "Executes after the content section in 2+ column layouts. Genesis uses this hook to output the primary sidebar."
 
 
256
  msgstr ""
257
 
258
+ #: includes/class-genesis-simple-hooks-admin.php:451
259
  msgid "Executes after the primary sidebar."
260
  msgstr ""
261
 
262
+ #: includes/class-genesis-simple-hooks-admin.php:454
263
  msgid "Executes before the primary sidebar widget area."
264
  msgstr ""
265
 
266
+ #: includes/class-genesis-simple-hooks-admin.php:457
267
  msgid "Executes after the primary sidebar widget area."
268
  msgstr ""
269
 
270
+ #: includes/class-genesis-simple-hooks-admin.php:460
271
  msgid "Executes before the secondary sidebar."
272
  msgstr ""
273
 
274
+ #: includes/class-genesis-simple-hooks-admin.php:463
275
+ msgid "Executes after the primary sidebar in 3+ column layouts. Genesis uses this hook to output the secondary sidebar."
 
 
276
  msgstr ""
277
 
278
+ #: includes/class-genesis-simple-hooks-admin.php:467
279
  msgid "Executes after the secondary sidebar."
280
  msgstr ""
281
 
282
+ #: includes/class-genesis-simple-hooks-admin.php:470
283
  msgid "Executes before the secondary sidebar widget area."
284
  msgstr ""
285
 
286
+ #: includes/class-genesis-simple-hooks-admin.php:473
287
  msgid "Executes after the secondary sidebar widget area."
288
  msgstr ""
289
 
290
+ #: includes/class-genesis-simple-hooks-admin.php:479
291
  msgid "Executes before the site footer."
292
  msgstr ""
293
 
294
+ #: includes/class-genesis-simple-hooks-admin.php:482
295
+ msgid "Executes after the content and sidebars. Genesis uses this hook to output the site footer."
 
 
296
  msgstr ""
297
 
298
+ #: includes/class-genesis-simple-hooks-admin.php:486
299
  msgid "Executes after the site footer."
300
  msgstr ""
301
 
302
+ #: includes/class-genesis-simple-hooks-admin.php:492
303
  msgid "Executes after the form on the the import/export screen."
304
  msgstr ""
305
 
306
+ #: includes/class-genesis-simple-hooks-admin.php:495
307
  msgid "Executes during the export function."
308
  msgstr ""
309
 
310
+ #: includes/class-genesis-simple-hooks-admin.php:498
311
  msgid "Executes during the import function."
312
  msgstr ""
313
 
314
+ #: includes/class-genesis-simple-hooks-admin.php:501
315
  msgid "Executes in the function that adds metaboxes to the theme settings screen."
316
  msgstr ""
317
 
318
+ #: includes/class-genesis-simple-hooks-admin.php:504
319
  msgid "Executes after Genesis upgrades itself."
320
  msgstr ""
321
 
322
+ #: includes/class-genesis-simple-hooks-admin.php:574
323
  msgid "Hook"
324
  msgstr ""
325
 
326
+ #. Translators: The string is the name of a function.
327
+ #: includes/class-genesis-simple-hooks-admin.php:592
328
  msgid "Unhook <code>%s()</code> function from this hook?"
329
  msgstr ""
330
 
331
+ #: includes/class-genesis-simple-hooks-admin.php:609
332
  msgid "Execute Shortcodes on this hook?"
333
  msgstr ""
334
 
335
+ #: includes/class-genesis-simple-hooks-admin.php:617
336
  msgid "Execute PHP on this hook?"
337
  msgstr ""
338
 
339
+ #: includes/class-genesis-simple-hooks-admin.php:636
340
  msgid "WordPress Hooks"
341
  msgstr ""
342
 
343
+ #: includes/class-genesis-simple-hooks-admin.php:637
344
  msgid "Document Hooks"
345
  msgstr ""
346
 
347
+ #: includes/class-genesis-simple-hooks-admin.php:638
348
  msgid "Header Hooks"
349
  msgstr ""
350
 
351
+ #: includes/class-genesis-simple-hooks-admin.php:639
352
  msgid "Content Hooks"
353
  msgstr ""
354
 
355
+ #: includes/class-genesis-simple-hooks-admin.php:640
356
  msgid "Loop Hooks"
357
  msgstr ""
358
 
359
+ #: includes/class-genesis-simple-hooks-admin.php:643
360
  msgid "Entry Hooks"
361
  msgstr ""
362
 
363
+ #: includes/class-genesis-simple-hooks-admin.php:645
364
  msgid "Post/Page Hooks"
365
  msgstr ""
366
 
367
+ #: includes/class-genesis-simple-hooks-admin.php:648
368
  msgid "Comment Hooks"
369
  msgstr ""
370
 
371
+ #: includes/class-genesis-simple-hooks-admin.php:649
372
  msgid "Sidebar Hooks"
373
  msgstr ""
374
 
375
+ #: includes/class-genesis-simple-hooks-admin.php:650
376
  msgid "Footer Hooks"
377
  msgstr ""
378
 
379
+ #: includes/class-genesis-simple-hooks-admin.php:661
380
+ #: includes/class-genesis-simple-hooks-admin.php:672
381
+ #: includes/class-genesis-simple-hooks-admin.php:683
382
+ #: includes/class-genesis-simple-hooks-admin.php:694
383
+ #: includes/class-genesis-simple-hooks-admin.php:705
384
+ #: includes/class-genesis-simple-hooks-admin.php:716
385
+ #: includes/class-genesis-simple-hooks-admin.php:727
386
+ #: includes/class-genesis-simple-hooks-admin.php:738
387
+ #: includes/class-genesis-simple-hooks-admin.php:749
388
+ #: includes/class-genesis-simple-hooks-admin.php:760
389
+ #: includes/class-genesis-simple-hooks-admin.php:771
390
  msgid "Save Changes"
391
+ msgstr ""
package-lock.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ {
2
+ "name": "genesis-simple-hooks",
3
+ "lockfileVersion": 1
4
+ }
package.json CHANGED
@@ -6,22 +6,8 @@
6
  "url": "https://github.com/copyblogger/genesis-simple-hooks"
7
  },
8
  "dependencies": {},
9
- "devDependencies": {
10
- "grunt": "*",
11
- "grunt-autoprefixer": "*",
12
- "grunt-checktextdomain": "*",
13
- "grunt-contrib-cssmin": "*",
14
- "grunt-contrib-imagemin": "*",
15
- "grunt-contrib-jshint": "*",
16
- "grunt-contrib-uglify": "*",
17
- "grunt-contrib-watch": "*",
18
- "grunt-csscomb": "*",
19
- "grunt-jsbeautifier": "*",
20
- "grunt-jsvalidate": "*",
21
- "grunt-phplint": "*",
22
- "grunt-styledocco": "*",
23
- "grunt-wp-i18n": "*",
24
- "load-grunt-tasks": "*"
25
  },
26
  "plugin": {
27
  "name": "Genesis Simple Hooks",
@@ -29,7 +15,7 @@
29
  "description": "Genesis Simple Hooks allows you easy access to the 50+ Action Hooks in the Genesis Theme.",
30
  "author": "StudioPress",
31
  "authoruri": "http://www.studiopress.com/",
32
- "version": "2.2.1",
33
  "license": "GPL-2.0+",
34
  "licenseuri": "http://www.gnu.org/licenses/gpl-2.0.html",
35
  "textdomain": "genesis-simple-hooks"
6
  "url": "https://github.com/copyblogger/genesis-simple-hooks"
7
  },
8
  "dependencies": {},
9
+ "scripts": {
10
+ "makepot": "composer makepot"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  },
12
  "plugin": {
13
  "name": "Genesis Simple Hooks",
15
  "description": "Genesis Simple Hooks allows you easy access to the 50+ Action Hooks in the Genesis Theme.",
16
  "author": "StudioPress",
17
  "authoruri": "http://www.studiopress.com/",
18
+ "version": "2.3.0",
19
  "license": "GPL-2.0+",
20
  "licenseuri": "http://www.gnu.org/licenses/gpl-2.0.html",
21
  "textdomain": "genesis-simple-hooks"
plugin.php CHANGED
@@ -1,20 +1,20 @@
1
- <?php
2
- /*
3
- Plugin Name: Genesis Simple Hooks
4
- Plugin URI: http://www.studiopress.com/plugins/simple-hooks
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
- Description: Genesis Simple Hooks allows you easy access to the 50+ Action Hooks in the Genesis Theme.
7
-
8
- Author: StudioPress
9
- Author URI: http://www.studiopress.com/
10
-
11
- Version: 2.2.1
12
-
13
- Text Domain: genesis-simple-hooks
14
- Domain Path: /languages
15
-
16
- License: GNU General Public License v2.0 (or later)
17
- License URI: http://www.opensource.org/licenses/gpl-license.php
18
- */
19
-
20
- require_once( plugin_dir_path( __FILE__ ) . 'genesis-simple-hooks.php' );
1
+ <?php //phpcs:ignore
2
+ /**
3
+ * Plugin Name: Genesis Simple Hooks
4
+ * Plugin URI: http://www.studiopress.com/plugins/simple-hooks
5
+ *
6
+ * Description: Genesis Simple Hooks allows you easy access to the 50+ Action Hooks in the Genesis Theme.
7
+ *
8
+ * Author: StudioPress
9
+ * Author URI: http://www.studiopress.com/
10
+ *
11
+ * Version: 2.3.0
12
+ *
13
+ * Text Domain: genesis-simple-hooks
14
+ * Domain Path: /languages
15
+ *
16
+ * License: GNU General Public License v2.0 (or later)
17
+ * License URI: http://www.opensource.org/licenses/gpl-license.php
18
+ */
19
 
20
+ require_once plugin_dir_path( __FILE__ ) . 'genesis-simple-hooks.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: nathanrice, studiopress
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5553118
4
  Tags: hooks, genesis, genesiswp, studiopress
5
- Requires at least: 4.9.0
6
- Tested up to: 4.9.4
7
- Stable tag: 2.2.1
8
 
9
  This plugin creates a new Genesis settings page that allows you to insert code (HTML, Shortcodes, and PHP), and attach it to any of the 50+ action hooks throughout the Genesis Theme Framework, from StudioPress.
10
 
@@ -47,14 +47,14 @@ The most common request from Genesis users is how to properly modify their foote
47
  **Modifying the post-info**
48
  `
49
  <div class="post-info">
50
- <span class="time"><?php the_time('F j, Y'); ?></span> <span class="author">by <?php the_author_posts_link(); ?></span> <span class="post-comments"><a href="<?php the_permalink(); ?>#respond"><?php comments_number('Leave a Comment', '1 Comment', '% Comments'); ?></a></span> <a class="post-edit-link"><?php edit_post_link('(Edit)', '', ''); ?></a>
51
  </div>
52
  `
53
 
54
  **Modifying the post-meta**
55
  `
56
  <div class="post-meta">
57
- <span class="categories">Filed under: <?php the_category(', ') ?></span> <span class="tags">Tagged with <?php the_tags('') ?></span>
58
  </div>
59
  `
60
 
@@ -72,6 +72,12 @@ The most common request from Genesis users is how to properly modify their foote
72
 
73
  == Changelog ==
74
 
 
 
 
 
 
 
75
  = 2.2.1 =
76
  * Genesis 2.6+ compatibility (prevents white screen).
77
  * Remove reference to deprecated function.
@@ -149,11 +155,3 @@ The most common request from Genesis users is how to properly modify their foote
149
 
150
  = 0.1 =
151
  * Initial Release
152
-
153
-
154
-
155
-
156
-
157
-
158
-
159
-
2
  Contributors: nathanrice, studiopress
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5553118
4
  Tags: hooks, genesis, genesiswp, studiopress
5
+ Requires at least: 4.7.2
6
+ Tested up to: 5.2.2
7
+ Stable tag: 2.3.0
8
 
9
  This plugin creates a new Genesis settings page that allows you to insert code (HTML, Shortcodes, and PHP), and attach it to any of the 50+ action hooks throughout the Genesis Theme Framework, from StudioPress.
10
 
47
  **Modifying the post-info**
48
  `
49
  <div class="post-info">
50
+ <span class="time"><?php the_time('F j, Y'); ?></span> <span class="author">by <?php the_author_posts_link(); ?></span> <span class="post-comments"><a href="<?php the_permalink(); ?>#respond"><?php comments_number('Leave a Comment', '1 Comment', '% Comments'); ?></a></span> <a class="post-edit-link"><?php edit_post_link('(Edit)', '', ''); ?></a>
51
  </div>
52
  `
53
 
54
  **Modifying the post-meta**
55
  `
56
  <div class="post-meta">
57
+ <span class="categories">Filed under: <?php the_category(', ') ?></span> <span class="tags">Tagged with <?php the_tags('') ?></span>
58
  </div>
59
  `
60
 
72
 
73
  == Changelog ==
74
 
75
+ = 2.3.0 =
76
+ * Reorganize plugin based on our standard boilerplate.
77
+ * Update to match WordPress PHP standards.
78
+ * Fix bug where plugin name was empty in the minimum version warning.
79
+ * Increase minimum Genesis version to 2.5.0.
80
+
81
  = 2.2.1 =
82
  * Genesis 2.6+ compatibility (prevents white screen).
83
  * Remove reference to deprecated function.
155
 
156
  = 0.1 =
157
  * Initial Release