Menu Icons by ThemeIsle - Version 0.1.0

Version Description

  • Initial public release
Download this release

Release Info

Developer kucrut
Plugin Icon 128x128 Menu Icons by ThemeIsle
Version 0.1.0
Comparing to
See all releases

Version 0.1.0

LICENSE ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
5
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Lesser General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+
124
+ Thus, it is not the intent of this section to claim rights or contest
125
+ your rights to work written entirely by you; rather, the intent is to
126
+ exercise the right to control the distribution of derivative or
127
+ collective works based on the Program.
128
+
129
+ In addition, mere aggregation of another work not based on the Program
130
+ with the Program (or with a work based on the Program) on a volume of
131
+ a storage or distribution medium does not bring the other work under
132
+ the scope of this License.
133
+
134
+ 3. You may copy and distribute the Program (or a work based on it,
135
+ under Section 2) in object code or executable form under the terms of
136
+ Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+ a) Accompany it with the complete corresponding machine-readable
139
+ source code, which must be distributed under the terms of Sections
140
+ 1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+ b) Accompany it with a written offer, valid for at least three
143
+ years, to give any third party, for a charge no more than your
144
+ cost of physically performing source distribution, a complete
145
+ machine-readable copy of the corresponding source code, to be
146
+ distributed under the terms of Sections 1 and 2 above on a medium
147
+ customarily used for software interchange; or,
148
+
149
+ c) Accompany it with the information you received as to the offer
150
+ to distribute corresponding source code. (This alternative is
151
+ allowed only for noncommercial distribution and only if you
152
+ received the program in object code or executable form with such
153
+ an offer, in accord with Subsection b above.)
154
+
155
+ The source code for a work means the preferred form of the work for
156
+ making modifications to it. For an executable work, complete source
157
+ code means all the source code for all modules it contains, plus any
158
+ associated interface definition files, plus the scripts used to
159
+ control compilation and installation of the executable. However, as a
160
+ special exception, the source code distributed need not include
161
+ anything that is normally distributed (in either source or binary
162
+ form) with the major components (compiler, kernel, and so on) of the
163
+ operating system on which the executable runs, unless that component
164
+ itself accompanies the executable.
165
+
166
+ If distribution of executable or object code is made by offering
167
+ access to copy from a designated place, then offering equivalent
168
+ access to copy the source code from the same place counts as
169
+ distribution of the source code, even though third parties are not
170
+ compelled to copy the source along with the object code.
171
+
172
+ 4. You may not copy, modify, sublicense, or distribute the Program
173
+ except as expressly provided under this License. Any attempt
174
+ otherwise to copy, modify, sublicense or distribute the Program is
175
+ void, and will automatically terminate your rights under this License.
176
+ However, parties who have received copies, or rights, from you under
177
+ this License will not have their licenses terminated so long as such
178
+ parties remain in full compliance.
179
+
180
+ 5. You are not required to accept this License, since you have not
181
+ signed it. However, nothing else grants you permission to modify or
182
+ distribute the Program or its derivative works. These actions are
183
+ prohibited by law if you do not accept this License. Therefore, by
184
+ modifying or distributing the Program (or any work based on the
185
+ Program), you indicate your acceptance of this License to do so, and
186
+ all its terms and conditions for copying, distributing or modifying
187
+ the Program or works based on it.
188
+
189
+ 6. Each time you redistribute the Program (or any work based on the
190
+ Program), the recipient automatically receives a license from the
191
+ original licensor to copy, distribute or modify the Program subject to
192
+ these terms and conditions. You may not impose any further
193
+ restrictions on the recipients' exercise of the rights granted herein.
194
+ You are not responsible for enforcing compliance by third parties to
195
+ this License.
196
+
197
+ 7. If, as a consequence of a court judgment or allegation of patent
198
+ infringement or for any other reason (not limited to patent issues),
199
+ conditions are imposed on you (whether by court order, agreement or
200
+ otherwise) that contradict the conditions of this License, they do not
201
+ excuse you from the conditions of this License. If you cannot
202
+ distribute so as to satisfy simultaneously your obligations under this
203
+ License and any other pertinent obligations, then as a consequence you
204
+ may not distribute the Program at all. For example, if a patent
205
+ license would not permit royalty-free redistribution of the Program by
206
+ all those who receive copies directly or indirectly through you, then
207
+ the only way you could satisfy both it and this License would be to
208
+ refrain entirely from distribution of the Program.
209
+
210
+ If any portion of this section is held invalid or unenforceable under
211
+ any particular circumstance, the balance of the section is intended to
212
+ apply and the section as a whole is intended to apply in other
213
+ circumstances.
214
+
215
+ It is not the purpose of this section to induce you to infringe any
216
+ patents or other property right claims or to contest validity of any
217
+ such claims; this section has the sole purpose of protecting the
218
+ integrity of the free software distribution system, which is
219
+ implemented by public license practices. Many people have made
220
+ generous contributions to the wide range of software distributed
221
+ through that system in reliance on consistent application of that
222
+ system; it is up to the author/donor to decide if he or she is willing
223
+ to distribute software through any other system and a licensee cannot
224
+ impose that choice.
225
+
226
+ This section is intended to make thoroughly clear what is believed to
227
+ be a consequence of the rest of this License.
228
+
229
+ 8. If the distribution and/or use of the Program is restricted in
230
+ certain countries either by patents or by copyrighted interfaces, the
231
+ original copyright holder who places the Program under this License
232
+ may add an explicit geographical distribution limitation excluding
233
+ those countries, so that distribution is permitted only in or among
234
+ countries not thus excluded. In such case, this License incorporates
235
+ the limitation as if written in the body of this License.
236
+
237
+ 9. The Free Software Foundation may publish revised and/or new versions
238
+ of the General Public License from time to time. Such new versions will
239
+ be similar in spirit to the present version, but may differ in detail to
240
+ address new problems or concerns.
241
+
242
+ Each version is given a distinguishing version number. If the Program
243
+ specifies a version number of this License which applies to it and "any
244
+ later version", you have the option of following the terms and conditions
245
+ either of that version or of any later version published by the Free
246
+ Software Foundation. If the Program does not specify a version number of
247
+ this License, you may choose any version ever published by the Free Software
248
+ Foundation.
249
+
250
+ 10. If you wish to incorporate parts of the Program into other free
251
+ programs whose distribution conditions are different, write to the author
252
+ to ask for permission. For software which is copyrighted by the Free
253
+ Software Foundation, write to the Free Software Foundation; we sometimes
254
+ make exceptions for this. Our decision will be guided by the two goals
255
+ of preserving the free status of all derivatives of our free software and
256
+ of promoting the sharing and reuse of software generally.
257
+
258
+ NO WARRANTY
259
+
260
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+ REPAIR OR CORRECTION.
269
+
270
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+ POSSIBILITY OF SUCH DAMAGES.
279
+
280
+ END OF TERMS AND CONDITIONS
281
+
282
+ How to Apply These Terms to Your New Programs
283
+
284
+ If you develop a new program, and you want it to be of the greatest
285
+ possible use to the public, the best way to achieve this is to make it
286
+ free software which everyone can redistribute and change under these terms.
287
+
288
+ To do so, attach the following notices to the program. It is safest
289
+ to attach them to the start of each source file to most effectively
290
+ convey the exclusion of warranty; and each file should have at least
291
+ the "copyright" line and a pointer to where the full notice is found.
292
+
293
+ {description}
294
+ Copyright (C) {year} {fullname}
295
+
296
+ This program is free software; you can redistribute it and/or modify
297
+ it under the terms of the GNU General Public License as published by
298
+ the Free Software Foundation; either version 2 of the License, or
299
+ (at your option) any later version.
300
+
301
+ This program is distributed in the hope that it will be useful,
302
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
303
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
+ GNU General Public License for more details.
305
+
306
+ You should have received a copy of the GNU General Public License along
307
+ with this program; if not, write to the Free Software Foundation, Inc.,
308
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
+
310
+ Also add information on how to contact you by electronic and paper mail.
311
+
312
+ If the program is interactive, make it output a short notice like this
313
+ when it starts in an interactive mode:
314
+
315
+ Gnomovision version 69, Copyright (C) year name of author
316
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
+ This is free software, and you are welcome to redistribute it
318
+ under certain conditions; type `show c' for details.
319
+
320
+ The hypothetical commands `show w' and `show c' should show the appropriate
321
+ parts of the General Public License. Of course, the commands you use may
322
+ be called something other than `show w' and `show c'; they could even be
323
+ mouse-clicks or menu items--whatever suits your program.
324
+
325
+ You should also get your employer (if you work as a programmer) or your
326
+ school, if any, to sign a "copyright disclaimer" for the program, if
327
+ necessary. Here is a sample; alter the names:
328
+
329
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
+
332
+ {signature of Ty Coon}, 1 April 1989
333
+ Ty Coon, President of Vice
334
+
335
+ This General Public License does not permit incorporating your program into
336
+ proprietary programs. If your program is a subroutine library, you may
337
+ consider it more useful to permit linking proprietary applications with the
338
+ library. If this is what you want to do, use the GNU Lesser General
339
+ Public License instead of this License.
css/extra.css ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .menu .dashicons,
2
+ .nav-menu .dashicons,
3
+ .menu .genericon,
4
+ .nav-menu .genericon {
5
+ display: inline;
6
+ width: auto;
7
+ height: auto;
8
+ font-size: 1.2em;
9
+ margin-right: .25em;
10
+ line-height: 1;
11
+ }
12
+ .menu .dashicons,
13
+ .nav-menu .dashicons {
14
+ vertical-align: sub;
15
+ }
16
+ .menu .genericon,
17
+ .nav-menu .genericon {
18
+ vertical-align: middle;
19
+ }
css/font/genericons-regular-webfont.eot ADDED
Binary file
css/font/genericons-regular-webfont.svg ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata></metadata>
5
+ <defs>
6
+ <font id="genericonsregular" horiz-adv-x="2048" >
7
+ <font-face units-per-em="2048" ascent="1638" descent="-410" />
8
+ <missing-glyph horiz-adv-x="500" />
9
+ <glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
10
+ <glyph unicode="&#xf100;" d="M512 512v128h768v-128h-768zM512 768v128h256v-128h-256zM512 1024v128h640v-128h-640zM512 1280v128h1024v-128h-1024zM896 768v128h640v-128h-640zM1280 1024v128h256v-128h-256z" />
11
+ <glyph unicode="&#xf101;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM768 1024q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
12
+ <glyph unicode="&#xf102;" d="M128 384v896l512 128l128 256h512l128 -256l512 -128v-896h-1792zM256 1440v160h256v-96zM576 960q0 -185 131.5 -316.5t316.5 -131.5q186 0 317 131.5t131 316.5q0 186 -131 317t-317 131q-185 0 -316.5 -131t-131.5 -317zM704 960q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5q0 -132 -93.5 -226t-226.5 -94t-226.5 94t-93.5 226z" />
13
+ <glyph unicode="&#xf103;" d="M128 512v384h384v-384h-384zM128 1024v384h896v-384h-896zM640 512v384h384v-384h-384zM1152 512v896h896v-896h-896z" />
14
+ <glyph unicode="&#xf104;" d="M512 384v1280l1152 -640z" />
15
+ <glyph unicode="&#xf105;" d="M640 1408q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5q0 -124 -71.5 -222t-184.5 -138v-536l-256 -128v664q-113 40 -184.5 138t-71.5 222z" />
16
+ <glyph unicode="&#xf106;" d="M256 896v640h640v-640q0 -212 -150 -362t-362 -150v256q106 0 181 75t75 181h-384zM1152 896v640h640v-640q0 -212 -150 -362t-362 -150v256q106 0 181 75t75 181h-384z" />
17
+ <glyph unicode="&#xf107;" d="M512 704v384q0 97 53 176.5t139 116.5v-151q-64 -57 -64 -142v-384q0 -80 56 -136t136 -56t136 56t56 136v384q0 85 -64 142v151q86 -37 139 -116.5t53 -176.5v-384q0 -133 -93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5zM768 1088v384q0 133 93.5 226.5 t226.5 93.5t226.5 -93.5t93.5 -226.5v-384q0 -97 -53 -176.5t-139 -116.5v151q64 57 64 142v384q0 80 -56 136t-136 56t-136 -56t-56 -136v-384q0 -85 64 -142v-151q-86 37 -139 116.5t-53 176.5z" />
18
+ <glyph unicode="&#xf108;" d="M0 1152v384q0 96 80 176t176 80h1024q96 0 176 -80t80 -176v-384q0 -96 -80 -176t-176 -80h-448l-448 -448v448h-128q-96 0 -176 80t-80 176zM768 640l128 128h384q168 0 276 108t108 276v384q96 0 176 -80t80 -176v-384q0 -96 -80 -176t-176 -80h-128v-448l-448 448 h-320z" />
19
+ <glyph unicode="&#xf109;" d="M256 768v512h384l384 384v-1280l-384 384h-384zM1205 843q75 75 75 181t-75 181l91 91q26 -27 46.5 -57.5t35 -65t22.5 -72.5t8 -77q0 -78 -29.5 -148t-82.5 -124zM1386 662q71 71 110.5 164.5t39.5 197.5t-39.5 197.5t-110.5 164.5l91 91q88 -89 137.5 -206t49.5 -247 q0 -87 -23 -170t-64.5 -153.5t-99.5 -129.5z" />
20
+ <glyph unicode="&#xf200;" d="M0 1024q0 208 81 398t218.5 327t327 218t397.5 81q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5q0 -335 -195.5 -601.5t-504.5 -369.5q-36 -7 -53 8.5t-17 40.5q0 4 0.5 102t0.5 179q0 130 -69 189q77 9 137.5 24.5t124.5 51.5t107 89t70.5 140t27.5 201 q0 161 -105 274q6 15 11 35t9 56t-3.5 83.5t-26.5 96.5q-4 1 -10.5 2t-32 -1t-55.5 -11t-79.5 -33.5t-104.5 -61.5q-118 33 -256 35q-138 -2 -256 -35q-55 37 -104 61.5t-80 33t-54.5 11.5t-33.5 1l-10 -2q-58 -146 -10 -271q-105 -115 -105 -274q0 -114 27.5 -201 t70.5 -140t107 -89t124.5 -52t136.5 -24q-53 -47 -65 -137q-28 -13 -59.5 -20t-75.5 -6.5t-87.5 28.5t-75.5 83q-2 4 -6.5 10.5t-19 24t-31.5 31t-44 25.5t-56 14h-10t-18.5 -3.5t-17 -9t4 -18.5t34.5 -31q3 -1 7.5 -4t19 -14.5t27.5 -27t30 -43.5t30 -61q1 -3 2.5 -7t8 -17 t15.5 -25.5t24.5 -28t33.5 -28t45 -23.5t57.5 -16t71.5 -3.5t87 11.5q0 -50 0.5 -110t0.5 -64q0 -24 -17 -40t-53 -10q-309 103 -504.5 370t-195.5 602z" />
21
+ <glyph unicode="&#xf201;" d="M0 1024q0 206 82 395.5t219.5 327t327 219.5t395.5 82t395.5 -82t327 -219.5t219.5 -327t82 -395.5t-82 -395.5t-219.5 -327t-327 -219.5t-395.5 -82t-395.5 82t-327 219.5t-219.5 327t-82 395.5zM128 1024q0 -167 58 -319.5t166 -272.5q125 205 339 360t445 232 q-16 48 -80 176q-282 -86 -481.5 -111t-446.5 -1v-64zM160 1232q194 -22 444 14t388 82q-141 282 -320 528q-194 -85 -329.5 -247.5t-182.5 -376.5zM480 320q216 -192 544 -192q181 0 368 80q-33 300 -208 688q-222 -74 -410 -225.5t-294 -350.5zM832 1904 q102 -166 304 -512q6 2 86 31t118.5 45t108 47t122 64t93.5 69q-126 126 -290.5 199t-349.5 73q-32 0 -96 -8t-96 -8zM1200 1248q22 -29 36.5 -54.5t34 -67.5t25.5 -54q170 33 336 30t288 -30q-26 285 -160 464q-71 -57 -162 -104.5t-214.5 -100.5t-183.5 -83zM1344 928 q14 -27 43 -103t74.5 -231t74.5 -306q156 108 258 278t126 362q-276 46 -576 0z" />
22
+ <glyph unicode="&#xf202;" d="M128 465q48 -5 88 -5q256 0 456 157q-119 2 -213 73.5t-130 182.5q39 -7 69 -7q47 0 97 13q-127 26 -211 127t-84 233v5q80 -43 167 -46q-76 50 -120 131t-44 175q0 101 50 185q138 -170 335 -271.5t423 -112.5q-10 39 -10 84q0 152 108 259.5t260 107.5q160 0 268 -116 q128 26 233 89q-42 -132 -161 -203q109 13 211 58q-73 -111 -183 -191q0 -7 0.5 -23t0.5 -24q0 -122 -31 -246t-89.5 -241t-149.5 -218.5t-204 -177.5t-260.5 -119.5t-311.5 -43.5q-305 0 -564 165z" />
23
+ <glyph unicode="&#xf203;" d="M128 384v1280q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-282v711h270l12 260h-282v192v12q0 60 21.5 87.5t87.5 27.5l166 -1l6 242q-78 10 -183 10q-94 0 -167 -27.5t-117 -74.5t-66 -105.5t-22 -126.5v-236h-254v-260h254v-711 h-724q-106 0 -181 75t-75 181z" />
24
+ <glyph unicode="&#xf204;" d="M640 969v303h222v258q0 78 26 147t77 124t136.5 87t194.5 32q55 0 108 -3t79 -6l26 -3l-7 -282h-193q-76 0 -101.5 -32t-25.5 -101v-14v-207h329l-14 -303h-315v-841h-320v841h-222z" />
25
+ <glyph unicode="&#xf205;" d="M128 1024q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM218 1024q0 -236 125 -430.5t330 -294.5l-385 1053q-70 -156 -70 -328zM351 1466h52q37 0 91 2.5t89 4.5 l34 3q21 1 30.5 -14.5t2.5 -32.5t-27 -20q-44 -5 -93 -7l294 -873l176 529l-125 344l-85 7q-20 2 -27.5 19t2.5 33t30 15q133 -10 212 -10q38 0 91.5 2.5t88.5 4.5l35 3q16 1 25.5 -8.5t10 -22t-7 -23.5t-23.5 -13q-43 -5 -92 -7l291 -866l81 268q24 79 32.5 107.5 t18.5 74.5t10 79q0 46 -11.5 90.5t-23.5 71t-32 60.5q-2 4 -11.5 19t-12 20t-10.5 18.5t-11 19t-9 17.5t-8.5 19t-6.5 18t-5.5 19.5t-3 18.5t-1.5 20q0 57 39 100t97 43l10 -1q-110 101 -249.5 156.5t-294.5 55.5q-207 0 -385 -98t-288 -266zM796 251q112 -33 228 -33 q138 0 268 46q-4 6 -6 11l-248 679zM1429 328q183 106 292 291.5t109 404.5q0 207 -99 386q5 -40 5 -82q0 -135 -61 -289z" />
26
+ <glyph unicode="&#xf206;" d="M128 486v485q125 -127 330 -127q30 0 59 3q-32 -61 -32 -118q0 -33 13 -63t28.5 -48.5t45.5 -47.5q-18 0 -54.5 -0.5t-55.5 -0.5q-183 0 -334 -83zM128 1599v65q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-128h-256v256h-128v-256h-256v-128h256v-256h128v256h256 v-1024q0 -106 -75 -181t-181 -75h-507q5 28 5 50q0 143 -46.5 230t-189.5 194q-3 2 -20.5 15t-25 19t-25.5 20t-27.5 22.5t-24 22t-23 23.5t-17 22t-12.5 22.5t-4 20.5q0 52 23 87t99 94q180 141 180 324q0 113 -45 204.5t-128 139.5h160l135 142h-607q-127 0 -241.5 -49 t-194.5 -132zM139 309q57 85 166 137.5t237 51.5q84 -1 158 -26q19 -13 62 -42.5t61 -42t48 -37t44.5 -41.5t29 -41.5t21.5 -49.5q7 -29 7 -66q0 -16 -1 -24h-588q-85 0 -153 50.5t-92 130.5zM228 1307q-21 161 50.5 269.5t194.5 104.5q121 -4 215.5 -118.5t116.5 -277.5 q21 -160 -43 -256t-187 -92q-125 4 -225.5 108t-121.5 262z" />
27
+ <glyph unicode="&#xf207;" d="M256 1553q0 -73 50.5 -122t131.5 -49h2q84 0 135 49t51 122q-1 75 -51 123t-133 48t-134.5 -48.5t-51.5 -122.5zM275 256h330v991h-330v-991zM787 256h329v553q0 54 11 81q20 50 63 85t106 35q58 0 96 -29t54.5 -77.5t16.5 -117.5v-530h329v568q0 112 -28.5 198 t-80 139.5t-120 81t-150.5 27.5q-36 0 -69 -5.5t-58.5 -15t-49 -23t-40 -27t-32.5 -31t-26.5 -31.5t-21.5 -31v141h-329q1 -26 1.5 -138t0.5 -252.5t-0.5 -277.5t-1.5 -230v-93z" />
28
+ <glyph unicode="&#xf208;" d="M128 384v1280q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM384 1422q0 -58 40.5 -97.5t105.5 -39.5h1q67 0 108.5 39.5t41.5 97.5q-2 60 -42 98.5t-106 38.5q-67 0 -108 -39t-41 -98zM400 384h263 v793h-263v-793zM809 384h264v443q0 45 8 64q16 40 50.5 68t85.5 28q133 0 133 -179v-424h264v455q0 175 -83.5 266t-220.5 91q-50 0 -90.5 -12t-68.5 -34t-45 -41t-33 -44v112h-264v-793z" />
29
+ <glyph unicode="&#xf209;" d="M171 1260q0 109 35.5 219t110 213t179 182t254 126.5t323.5 47.5q176 0 327.5 -60.5t253.5 -161t160 -231t58 -270.5q0 -246 -85 -443t-241 -309.5t-355 -112.5q-99 0 -186.5 46.5t-121.5 110.5q-73 -290 -89 -347q-34 -123 -127 -270l-149 54q-7 167 22 290l162 688 q-40 81 -40 200q0 139 70.5 232.5t172.5 93.5q83 0 127 -53.5t44 -135.5q0 -51 -18.5 -124t-49 -170t-44.5 -154q-23 -99 37.5 -171t161.5 -72q117 0 209.5 92t142 244.5t49.5 334.5q0 214 -139 349t-387 135q-139 0 -257.5 -49.5t-197 -133t-122.5 -193t-44 -229.5 q0 -147 83 -247q18 -21 21.5 -34t-3.5 -37q-16 -61 -25 -101q-7 -24 -24.5 -32t-39.5 1q-127 51 -192.5 181.5t-65.5 300.5z" />
30
+ <glyph unicode="&#xf210;" d="M0 1024q0 208 81 398t218.5 327t327 218t397.5 81q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5t-81 -398.5t-218 -326.5t-326.5 -218t-398.5 -81q-147 0 -290 42q74 116 103 219l72 282q28 -53 99 -90.5t151 -37.5q162 0 288.5 91.5t195.5 251t69 359.5 q0 114 -47 220t-130 187.5t-206.5 130.5t-265.5 49q-141 0 -262 -38.5t-205.5 -103t-145.5 -147.5t-89.5 -172.5t-28.5 -178.5q0 -138 53 -243.5t156 -147.5q18 -8 32.5 -1t18.5 26q2 9 10 41t11 41q5 19 2.5 30t-16.5 28q-68 78 -68 200q0 97 35.5 186t99.5 156.5t160 108 t209 40.5q201 0 313.5 -109.5t112.5 -283.5q0 -148 -40 -271.5t-115 -198t-169 -74.5q-82 0 -131.5 58.5t-30.5 138.5q11 46 35.5 125t39.5 138t15 101q0 66 -35.5 109.5t-102.5 43.5q-82 0 -139.5 -76t-57.5 -189q0 -43 8 -83.5t16 -59.5l9 -19q-113 -475 -132 -558 q-24 -97 -18 -235q-275 120 -444 374t-169 564z" />
31
+ <glyph unicode="&#xf211;" d="M160 1024q0 -172 122 -294t294 -122t294 122t122 294t-122 294t-294 122t-294 -122t-122 -294zM1056 1024q0 -172 122 -294t294 -122t294 122t122 294t-122 294t-294 122t-294 -122t-122 -294z" />
32
+ <glyph unicode="&#xf212;" d="M128 1379l84 -108q121 84 141 84q92 0 173 -287l144 -525q108 -287 265 -287q253 0 619 471q353 451 365 710q16 347 -260 355q-373 12 -505 -417q69 29 133 29q136 0 120 -152q-8 -92 -120 -268q-113 -176 -169 -176q-73 0 -133 271q-20 79 -72 407q-49 303 -258 284 q-89 -8 -265 -160q-127 -113 -262 -231z" />
33
+ <glyph unicode="&#xf213;" d="M128 768v512q0 159 112.5 271.5t271.5 112.5h1024q159 0 271.5 -112.5t112.5 -271.5v-512q0 -159 -112.5 -271.5t-271.5 -112.5h-1024q-159 0 -271.5 112.5t-112.5 271.5zM768 640l640 384l-640 384v-768z" />
34
+ <glyph unicode="&#xf214;" d="M472 1186h198v-629q0 -121 26 -187q26 -65 92 -122t161 -89q93 -31 218 -31q110 0 201 22q88 20 208 76v282q-134 -88 -271 -88q-76 0 -136 36q-44 25 -61 70q-17 46 -17 200v460h426v281h-426v453h-255q-17 -139 -62 -228q-48 -93 -121 -154q-74 -64 -181 -99v-253z" />
35
+ <glyph unicode="&#xf215;" d="M128 384v1280q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM256 384q0 -53 37.5 -90.5t90.5 -37.5h1280q53 0 90.5 37.5t37.5 90.5v768h-272q16 -66 16 -128q0 -212 -150 -362t-362 -150t-362 150 t-150 362q0 62 16 128h-272v-768zM640 1024q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM1408 1536q0 -53 37.5 -90.5t90.5 -37.5h128q53 0 90.5 37.5t37.5 90.5v128q0 53 -37.5 90.5t-90.5 37.5 h-128q-53 0 -90.5 -37.5t-37.5 -90.5v-128z" />
36
+ <glyph unicode="&#xf216;" d="M256 790v467q0 31 29 55l702 467q17 11 37 11t37 -11l702 -467q29 -24 29 -55v-467q0 -32 -29 -54l-702 -468q-17 -11 -37 -11q-18 0 -37 11l-702 468q-29 22 -29 54zM388 914l165 110l-165 110v-220zM441 790l517 -344v308l-286 191zM441 1257l231 -154l286 191v307z M791 1024l233 -156l234 156l-234 156zM1090 446l517 344l-231 155l-286 -191v-308zM1090 1294l286 -191l231 154l-517 344v-307zM1495 1024l165 -110v220z" />
37
+ <glyph unicode="&#xf217;" d="M128 1024q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM208 1024q0 -221 109.5 -409t297.5 -297.5t409 -109.5q236 0 432 123.5t298 327.5q59 136 59 266 q0 117 -43.5 221.5t-118.5 182.5t-175.5 131t-215.5 73q116 -48 204 -145t127 -218q54 -151 17.5 -320t-150.5 -289q-111 -123 -276 -179t-332 -27q-168 27 -307 138t-210 270q-74 156 -67.5 338.5t93.5 335.5q88 155 238.5 260t328.5 135q2 0 35 6q-208 -16 -380.5 -128 t-272.5 -293.5t-100 -392.5zM359 998q17 -148 100 -275.5t207 -200.5q120 -71 264 -78.5t267 49.5q-76 -21 -148 -21q-149 0 -275.5 74t-200.5 201t-74 276q0 214 146 373l3 3l14 14l1 1q98 114 235 178t293 64q163 0 306 -70t241 -193q-36 57 -70 96q-104 126 -250 200.5 t-305 80.5q-157 7 -306.5 -51.5t-258.5 -169.5q-109 -107 -159 -254.5t-30 -296.5zM612 1025q8 -119 85 -217t186 -128q110 -33 221.5 8.5t170.5 134.5q61 91 50 204t-86 187q-70 77 -179.5 87t-188.5 -50q-85 -62 -105 -157q-21 -98 30 -182q50 -84 142 -108q92 -23 172 26 q38 23 64 58.5t34 76.5q17 88 -34 159q-52 72 -136 77q-83 6 -142 -54q-57 -55 -45 -138q6 -37 27.5 -68.5t52.5 -47.5q40 -21 87 -16q-46 1 -82 29t-49 71l-2 3q-14 30 -9.5 67t25.5 66q22 30 56.5 46.5t72.5 14.5t73.5 -23.5t54.5 -55.5q46 -76 8 -158 q-18 -39 -53.5 -66.5t-78.5 -35.5q-43 -9 -88.5 3.5t-78.5 43.5q-74 68 -68 169q2 65 45 118.5t109.5 77t132.5 5.5q68 -16 118.5 -70.5t65 -124.5t-9.5 -144q-37 -107 -150 -158.5t-224 -8.5q-114 43 -170 158q-55 117 -17 238q35 121 152 191t246 47q131 -19 223 -128 t95 -246q6 -142 -81 -257q-86 -115 -225 -157q-114 -35 -234 -7q83 -34 174 -34q195 0 333.5 138.5t138.5 333.5v2q-10 107 -63.5 202.5t-137.5 157.5q-102 77 -236 87t-243 -49q-116 -62 -177 -167q-61 -107 -52 -231z" />
38
+ <glyph unicode="&#xf218;" d="M128 464q0 -66 32 -125.5t92.5 -107t159 -75.5t222.5 -28q117 0 218.5 25t174 68t124 99.5t76.5 120.5t25 131q0 40 -6.5 74.5t-22.5 65t-30.5 53t-41.5 50t-45 43t-51 44.5l-85 66q-19 15 -28.5 24.5t-21 31t-11.5 45.5t12 47.5t21.5 34.5t32.5 33q37 29 59 48t52 52 t46 64t28 75.5t12 94.5q0 43 -8 82t-23.5 70.5t-30.5 55.5t-38 47.5t-35 34.5t-32 27h146l151 85h-485q-264 0 -421 -129q-73 -64 -111.5 -147.5t-38.5 -167.5q0 -56 16 -109.5t49.5 -100.5t79.5 -82.5t109 -56.5t136 -21q19 0 75 5q0 -2 -4 -10.5t-4.5 -10.5t-3.5 -9.5 t-4 -11l-3 -10.5t-2.5 -12.5t-1 -13t-0.5 -14.5q0 -26 5 -48t18.5 -45t20.5 -32.5t26 -34.5q-61 -4 -98 -7.5t-107 -14.5t-131.5 -32.5t-112.5 -53.5q-50 -29 -86.5 -66.5t-56.5 -76.5t-29 -74.5t-9 -69.5zM335 514q0 47 17 87.5t38.5 64.5t54 45t50.5 28.5t42 16.5 q35 11 76.5 19.5t77.5 12t58.5 5t34.5 1.5q35 0 54 -3q51 -36 82 -59t63.5 -50.5t50.5 -48.5t33.5 -46t21.5 -50.5t6 -55.5q0 -113 -91 -183.5t-255 -70.5q-187 0 -300.5 80t-113.5 207zM453 1591q0 110 51 174q28 35 73.5 56t91.5 21q56 0 105.5 -28.5t83.5 -74.5 t59 -103.5t36.5 -115.5t11.5 -110q0 -113 -59 -172q-18 -19 -44 -33.5t-56.5 -23.5t-58.5 -9q-58 0 -108 28.5t-83.5 73.5t-57.5 101.5t-34.5 111.5t-10.5 104zM1408 1024v128h256v256h128v-256h256v-128h-256v-256h-128v256h-256z" />
39
+ <glyph unicode="&#xf219;" d="M134.5 1267.5q5.5 80.5 41 179.5t102.5 191q70 78 153.5 135t167 86.5t172 45.5t169 15t156.5 -8t137.5 -21t107.5 -26.5t72 -22.5l25 -9q12 -5 32 -14.5t74.5 -45.5t101 -78.5t97 -114.5t78 -153t27.5 -194.5t-40 -238.5q-43 -89 -97 -157.5t-109.5 -110t-115.5 -69 t-115.5 -37t-107.5 -12t-95.5 4t-76 13t-49.5 13.5l-18 6v-277q-1 -3 -2 -9t-6.5 -23t-14 -34t-24.5 -39.5t-36 -42t-51.5 -39.5t-68.5 -33q-52 -19 -107 -20t-97 11.5t-76.5 27.5t-53.5 27l-18 13v280q33 -34 67 -55.5t67.5 -28.5t61.5 11t44 63v946h312v-538l65 -13 q206 -32 329 60q105 78 128 243q2 76 -15.5 141t-49 110.5t-72.5 82.5t-86.5 59.5t-91.5 39t-87.5 24t-73.5 11.5t-52 5h-19l-66 -2q-217 -16 -359 -141q-57 -50 -97 -115q-27 -45 -39.5 -93t-11 -88t10 -78.5t22 -67.5t25.5 -51t21 -33l9 -12l-225 -201q-7 9 -18.5 25 t-40.5 68.5t-49.5 107.5t-34.5 137.5t-8.5 163z" />
40
+ <glyph unicode="&#xf220;" d="M141 1431q0 133 65.5 245.5t178 178t245.5 65.5q141 0 260 -75q69 12 144 12q171 0 327 -66.5t269 -179.5t179.5 -269t66.5 -327q0 -96 -19 -181q51 -106 50 -217q0 -133 -65.5 -245.5t-178 -178t-244.5 -65.5q-123 0 -231 58q-79 -14 -155 -14q-171 0 -327 67t-269 180 t-179.5 269t-66.5 327q0 86 17 169q-67 116 -67 247zM537 775q0 -75 54 -153q52 -76 139 -123q119 -63 302 -63q150 0 263 46q111 46 171 130q59 85 59 188q0 88 -34 149q-35 62 -96 100q-58 39 -143 66q-77 25 -187 49q-89 20 -116 28q-35 9 -68 27q-33 15 -50 38 q-17 20 -17 49q0 46 52 80q54 36 146 36q97 0 141 -32q43 -32 75 -94q30 -48 51 -67q25 -22 72 -22q53 0 87 36q34 35 34 81t-25 96q-24 47 -82 92q-57 45 -139 70q-86 26 -197 26q-139 0 -247 -40q-107 -39 -164 -113q-57 -73 -57 -170q0 -102 55 -170q52 -65 144 -105 q95 -40 221 -66q93 -20 154 -38q57 -19 90 -50q33 -30 33 -80q0 -64 -62 -105q-65 -44 -170 -44q-78 0 -123 22q-47 22 -70 54q-27 34 -49 86q-21 49 -49 72q-32 26 -75 26q-52 0 -87 -33q-36 -33 -36 -79z" />
41
+ <glyph unicode="&#xf221;" d="M384 384v640h192q49 0 104 47t103.5 127.5t80.5 204.5t32 261q0 5 0.5 13.5t4 31t9.5 39t19 30.5t31 14q33 0 77.5 -42t79.5 -119t35 -159q0 -85 -8 -165t-16 -117l-8 -38h416q53 0 90.5 -37.5t37.5 -90.5q0 -41 -24 -74t-62 -46q22 -33 22 -72q0 -41 -24 -74t-62 -46 q22 -33 22 -72q0 -53 -37.5 -90.5t-90.5 -37.5h-64q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-448q-65 0 -123 20t-93.5 44t-80.5 44t-87 20h-128z" />
42
+ <glyph unicode="&#xf222;" d="M205 1168q0 83 59 142t142 59q100 0 160 -83q183 97 412 106l92 457q5 22 23 33q18 12 39 7l313 -72q24 41 65.5 65.5t89.5 24.5q74 0 126.5 -52.5t52.5 -126.5t-52.5 -126.5t-126.5 -52.5q-71 0 -122 48.5t-56 119.5l-262 60l-77 -386q222 -12 397 -108q60 86 163 86 q83 0 141.5 -59t58.5 -142q0 -55 -28 -100.5t-74 -72.5q14 -50 14 -99q0 -135 -98.5 -250t-267.5 -181.5t-368 -66.5t-368.5 66.5t-268 181t-98.5 249.5q0 50 16 104q-44 27 -70.5 71.5t-26.5 97.5zM307 1168q0 -47 40 -75q47 75 132 137q-29 36 -73 36q-41 0 -70 -28.5 t-29 -69.5zM388 896q0 -107 85 -198t230.5 -144t317.5 -53q171 0 316.5 53t230.5 143.5t85 197.5q0 108 -85 199t-230.5 144t-316.5 53q-172 0 -317.5 -53t-230.5 -144t-85 -198zM672 982q0 46 32.5 79t78.5 33q47 0 79.5 -33t32.5 -79t-33 -79t-79 -33t-78.5 33t-32.5 79z M737 739.5q0 21.5 15 36.5t36 15t36 -15q56 -56 199 -56q145 0 201 56q15 15 36 15t36 -15t15 -36.5t-15 -36.5q-86 -86 -271 -86q-187 0 -273 86q-15 15 -15 36.5zM1153 982q0 46 32.5 79t79.5 33t79.5 -33t32.5 -79t-33 -79t-79 -33t-79 33t-33 79zM1523 1728 q0 -32 22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5t-54.5 -22.5t-22.5 -54.5zM1567 1227q83 -61 131 -138q43 31 43 79q0 40 -28.5 69t-69.5 29q-45 0 -76 -39z" />
43
+ <glyph unicode="&#xf223;" d="M256 849v209h263v-206q0 -33 23.5 -56.5t57.5 -23.5t57.5 23.5t23.5 56.5v487q5 136 104.5 230.5t238.5 94.5t238.5 -95.5t104.5 -231.5v-107l-157 -45l-105 48v92q0 34 -23.5 57t-57.5 23t-57.5 -23t-23.5 -57l-1 -481q-1 -138 -101.5 -235t-241.5 -97q-142 0 -242.5 99 t-100.5 238zM1105 846v210l105 -48l157 46v-212q0 -33 23.5 -56.5t57.5 -23.5t57.5 23.5t23.5 56.5v216h263v-209q0 -139 -100.5 -238t-242.5 -99t-242 97.5t-102 236.5z" />
44
+ <glyph unicode="&#xf224;" d="M256 1152v384q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-384q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 1281q0 -53 38 -91l362 -362l4 4q37 -64 108 -64t108 64l5 -4l362 362q37 38 37 91t-37 90t-91 37 q-53 0 -90 -37l-294 -294l-293 294q-37 37 -91 37t-90 -37q-38 -37 -38 -90z" />
45
+ <glyph unicode="&#xf225;" d="M128 930l365 291l531 -328l-369 -308zM128 1513l527 345l369 -308l-531 -329zM497 508v115l158 -103l370 307l370 -307l158 103v-115l-528 -317zM1024 893l532 328l364 -291l-527 -345zM1024 1550l369 308l527 -345l-364 -292z" />
46
+ <glyph unicode="&#xf300;" d="M256 896v384q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-384q0 -106 -75 -181t-181 -75h-448l-448 -448v448h-128q-106 0 -181 75t-75 181z" />
47
+ <glyph unicode="&#xf301;" d="M384 512v1024h384l64 -128h448v-128h-640l-128 -256h128l64 128h960l-256 -640h-1024z" />
48
+ <glyph unicode="&#xf302;" d="M256 768l768 768h512v-512l-768 -768zM1152 1280q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
49
+ <glyph unicode="&#xf303;" d="M256 1088q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5t-55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5zM384 1088q0 -117 45.5 -223.5t123 -184t184 -123t223.5 -45.5 t223.5 45.5t184 123t123 184t45.5 223.5t-45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5zM896 1062v474h128v-421l298 -298l-90 -91z" />
50
+ <glyph unicode="&#xf304;" d="M512 384v256q0 159 112.5 271.5t271.5 112.5h256q159 0 271.5 -112.5t112.5 -271.5v-256h-1024zM768 1408q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
51
+ <glyph unicode="&#xf305;" d="M256 384v1280h256v128h128v-128h640v128h128v-128h256v-1280h-1408zM384 640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640zM768 1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45 v-512q0 -26 -19 -45t-45 -19t-45 19t-19 45v448h-64q-26 0 -45 19t-19 45z" />
52
+ <glyph unicode="&#xf306;" d="M256 384v1280h256v128h128v-128h640v128h128v-128h256v-1280h-1408zM384 640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640zM768 1216q0 26 19 45t45 19h256h2h1h3 q22 -2 38.5 -18t19.5 -39v-2v-2v-1v-2q0 -5 -2 -15l-128 -512q-6 -26 -28.5 -40t-48.5 -7q-26 6 -40 28.5t-7 48.5l108 433h-174q-26 0 -45 19t-19 45z" />
53
+ <glyph unicode="&#xf307;" d="M256 384v1280h256v128h128v-128h640v128h128v-128h256v-1280h-1408zM384 640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640zM512 640v128h128v-128h-128zM512 896v128h128v-128 h-128zM768 640v128h128v-128h-128zM768 896v128h128v-128h-128zM768 1152v128h128v-128h-128zM1024 640v128h128v-128h-128zM1024 896v128h128v-128h-128zM1024 1152v128h128v-128h-128zM1280 896v128h128v-128h-128zM1280 1152v128h128v-128h-128z" />
54
+ <glyph unicode="&#xf308;" d="M342 342q12 45 22 71t38 66.5t76 88.5l395 395l-227 227l181 181q37 -37 90.5 -37t91.5 37l181 181q38 38 38 91t-38 90l181 181l543 -543l-181 -181q-37 38 -90 38t-91 -38l-181 -181q-37 -37 -37 -90t37 -91l-181 -181l-227 226l-395 -395q-68 -68 -113.5 -93 t-112.5 -43z" />
55
+ <glyph unicode="&#xf400;" d="M256 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5zM384 1216q0 -185 131.5 -316.5 t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5z" />
56
+ <glyph unicode="&#xf401;" d="M256 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5zM384 1216q0 -185 131.5 -316.5 t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5zM512 1152v128h640v-128h-640z" />
57
+ <glyph unicode="&#xf402;" d="M256 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5zM384 1216q0 -185 131.5 -316.5 t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5zM512 1152v128h256v256h128v-256h256v-128h-256v-256h-128v256h-256z" />
58
+ <glyph unicode="&#xf403;" d="M0 1024l506 506q101 103 234.5 160.5t283.5 57.5t283.5 -57.5t233.5 -159.5l507 -507l-506 -507q-101 -103 -234.5 -160t-283.5 -57t-283.5 57.5t-233.5 160.5zM272 1024l370 -371q77 -78 175.5 -119.5t206.5 -41.5t206 41.5t174 118.5l373 372l-371 371 q-158 161 -382 161q-108 0 -206.5 -41t-173.5 -119zM640 1024q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5zM1024 1152q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5z" />
59
+ <glyph unicode="&#xf404;" d="M0 1024l506 506q101 103 234.5 160.5t283.5 57.5q193 0 358 -95l-143 -143q-103 46 -215 46q-108 0 -206.5 -41t-173.5 -119l-372 -372l240 -240l-136 -136zM339 429l90 -90l1280 1280l-90 90zM640 1024q0 159 112.5 271.5t271.5 112.5q44 0 98 -14l-468 -468 q-14 54 -14 98zM666 395l143 143q103 -46 215 -46q108 0 206 41.5t174 118.5l373 372l-241 241l136 135l376 -376l-506 -507q-101 -103 -234.5 -160t-283.5 -57q-193 0 -358 95zM926 654l468 468q14 -54 14 -98q0 -159 -112.5 -271.5t-271.5 -112.5q-44 0 -98 14z" />
60
+ <glyph unicode="&#xf405;" d="M640 768l320 320l-320 320l128 128l320 -320l320 320l128 -128l-320 -320l320 -320l-128 -128l-320 320l-320 -320z" />
61
+ <glyph unicode="&#xf406;" d="M128 256l832 832l-832 832l128 128l832 -832l832 832l128 -128l-832 -832l832 -832l-128 -128l-832 832l-832 -832z" />
62
+ <glyph unicode="&#xf407;" d="M384 1280v128l256 128q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5l256 -128v-128h-1152zM512 512v704h128v-704h128v704h128v-704h128v704h128v-704h128v704h128v-704q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM768 1472 q0 -26 19 -45t45 -19h256q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45z" />
63
+ <glyph unicode="&#xf408;" d="M256 1151l476 -330l-183 -535l475 332l475 -332l-183 535l476 330l-587 -1l-181 535l-180 -535z" />
64
+ <glyph unicode="&#xf409;" d="M384 1152l640 512l640 -512l-128 -128v-512h-1024v512zM896 576h256v448h-256v-448z" />
65
+ <glyph unicode="&#xf410;" d="M256 512v704l768 -384l768 384v-704h-1536zM256 1408v128h1536v-128l-768 -384z" />
66
+ <glyph unicode="&#xf411;" d="M384 384v448l896 896l448 -448l-896 -896h-448zM512 768l256 -256l128 128l-256 256zM685 941l96 -96l595 595l-96 96zM845 781l96 -96l595 595l-96 96z" />
67
+ <glyph unicode="&#xf412;" d="M256 640v704l384 384v-704h640v448l640 -640l-640 -640v448h-1024z" />
68
+ <glyph unicode="&#xf413;" d="M256 448q0 -80 56 -136t136 -56t136 56t56 136t-56 136t-136 56t-136 -56t-56 -136zM256 1024v256q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5h-256q0 209 -103 385.5t-279.5 279.5t-385.5 103zM256 1536v256q209 0 408 -55t367.5 -154t310.5 -241t241 -310.5 t154 -367.5t55 -408h-256q0 260 -101.5 497t-273 408.5t-408.5 273t-497 101.5z" />
69
+ <glyph unicode="&#xf414;" d="M21 358q-57 102 31 244l760 1237q57 93 134.5 126.5t155 0t135.5 -126.5l759 -1237q88 -142 31 -244t-224 -102h-1557q-168 0 -225 102zM883 1536l51 -640h179l52 640h-282zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5z" />
70
+ <glyph unicode="&#xf415;" d="M128 1024v256h310q75 172 233.5 278t352.5 106q130 0 246.5 -50t204.5 -139q37 -37 37 -90t-37 -91t-90 -38t-91 38q-116 114 -270 114q-159 0 -271.5 -112.5t-112.5 -271.5h-512zM536 665q0 53 38 90t91 37t90 -37q113 -115 269 -115q159 0 271.5 112.5t112.5 271.5h512 v-256h-310q-75 -172 -233.5 -278t-352.5 -106q-130 0 -246 50t-205 139l1 1q-38 38 -38 91zM832 1024q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136z" />
71
+ <glyph unicode="&#xf416;" d="M512 832v320h128v-320q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5v640q0 80 -56 136t-136 56t-136 -56t-56 -136v-512q0 -26 19 -45t45 -19t45 19t19 45v452h128v-452q0 -80 -56 -136t-136 -56t-136 56t-56 136v512q0 133 93.5 226.5t226.5 93.5t226.5 -93.5 t93.5 -226.5v-640q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5z" />
72
+ <glyph unicode="&#xf417;" d="M384 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5t-44.5 -222.5t-124.5 -185.5l-407 -406l-407 406q-80 80 -124.5 185.5t-44.5 222.5zM640 1216q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5t-93.5 226.5 t-226.5 93.5t-226.5 -93.5t-93.5 -226.5z" />
73
+ <glyph unicode="&#xf418;" d="M608 1056l128 128l224 -192l448 512l128 -96l-512 -768h-128z" />
74
+ <glyph unicode="&#xf419;" d="M0 256v256h2048v-256h-2048zM0 896v256h2048v-256h-2048zM0 1536v256h2048v-256h-2048z" />
75
+ <glyph unicode="&#xf420;" d="M256 1024q0 155 60 294.5t167 246.5l-227 227h640v-640l-232 232q-72 -71 -112 -163.5t-40 -196.5q0 -176 108.5 -313.5t275.5 -180.5v-262q-180 30 -326 137t-230 269.5t-84 349.5zM1152 256v640l19 -19l213 -213q71 71 111.5 164t40.5 196q0 176 -108.5 313.5 t-275.5 180.5v263q180 -31 326 -137.5t230 -269.5t84 -350q0 -155 -60 -294.5t-167 -246.5l227 -227h-640z" />
76
+ <glyph unicode="&#xf421;" d="M384 896v256h1152v-256h-1152z" />
77
+ <glyph unicode="&#xf422;" d="M384 512v1024h1152v-1024h-1152zM512 640h896v640h-896v-640z" />
78
+ <glyph unicode="&#xf423;" d="M83 832l373 671l112 -62l-267 -481h403v-384h-128v256h-493zM768 1024q0 87 43 160.5t116.5 116.5t160.5 43t160.5 -43t116.5 -116.5t43 -160.5t-43 -160.5t-116.5 -116.5t-160.5 -43t-160.5 43t-116.5 116.5t-43 160.5zM896 1024q0 -79 56.5 -135.5t135.5 -56.5 t135.5 56.5t56.5 135.5t-56.5 135.5t-135.5 56.5t-135.5 -56.5t-56.5 -135.5zM1427 832l373 671l112 -62l-267 -481h403v-384h-128v256h-493z" />
79
+ <glyph unicode="&#xf424;" d="M256 640v768l384 384h768l384 -384v-768l-384 -384h-768zM883 1536l51 -640h179l52 640h-282zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
80
+ <glyph unicode="&#xf425;" d="M384 384v1280h256q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5h256v-1280h-1152zM512 512h896v1024h-128v-128h-640v128h-128v-1024zM640 704q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM640 960q0 26 19 45t45 19t45 -19t19 -45 t-19 -45t-45 -19t-45 19t-19 45zM640 1216q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM768 1600q0 -26 19 -45t45 -19h256q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45zM896 640v128h384v-128h-384zM896 896v128h384v-128h-384z M896 1152v128h384v-128h-384z" />
81
+ <glyph unicode="&#xf426;" d="M128 768q0 106 75 181t181 75h7q-7 29 -7 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-1280q-106 0 -181 75t-75 181z" />
82
+ <glyph unicode="&#xf427;" d="M384 384v288l455 455l-1 1q-74 74 -74 180t74 181l233 233q75 74 181 74t180 -74l286 -286q74 -75 74 -180.5t-74 -180.5l-233 -233q-74 -73 -178.5 -74t-179.5 71l-455 -455h-288zM1088 1360l256 -256l160 160l-256 256z" />
83
+ <glyph unicode="&#xf428;" d="M768 1024q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
84
+ <glyph unicode="&#xf429;" d="M384 896v128h896l-343 343l87 86l493 -493l-493 -493l-87 86l343 343h-896z" />
85
+ <glyph unicode="&#xf430;" d="M531 960l493 -493l87 86l-343 343h896v128h-896l343 343l-87 86z" />
86
+ <glyph unicode="&#xf431;" d="M384 1152l128 128l448 -448l448 448l128 -128l-576 -576z" />
87
+ <glyph unicode="&#xf432;" d="M384 768l576 576l576 -576l-128 -128l-448 448l-448 -448z" />
88
+ <glyph unicode="&#xf433;" d="M0 0v896l896 -896h-896z" />
89
+ <glyph unicode="&#xf434;" d="M1152 0l896 896v-896h-896z" />
90
+ <glyph unicode="&#xf435;" d="M384 512l640 640l640 -640h-1280zM384 1280v128h1280v-128h-1280z" />
91
+ <glyph unicode="&#xf436;" d="M512 640v128h128v-128h-128zM512 896v128h128v-128h-128zM512 1152v128h128v-128h-128zM512 1408v128h128v-128h-128zM768 640v128h128v-128h-128zM768 896v128h128v-128h-128zM768 1152v128h128v-128h-128zM768 1408v128h128v-128h-128zM1024 640v128h128v-128h-128z M1024 896v128h128v-128h-128zM1024 1152v128h128v-128h-128zM1024 1408v128h128v-128h-128zM1280 640v128h128v-128h-128zM1280 896v128h128v-128h-128zM1280 1152v128h128v-128h-128zM1280 1408v128h128v-128h-128z" />
92
+ <glyph unicode="&#xf437;" d="M512 512v1024q0 106 75 181t181 75h512q106 0 181 -75t75 -181v-1024q0 -106 -75 -181t-181 -75h-512q-106 0 -181 75t-75 181zM640 768h768v768h-768v-768zM896 512q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z " />
93
+ <glyph unicode="&#xf438;" d="M256 1024v256h512v128l384 -256l-384 -256v128h-512zM512 512v384h128v-128h768v768h-768v-128h-128v128q0 106 75 181t181 75h512q106 0 181 -75t75 -181v-1024q0 -106 -75 -181t-181 -75h-512q-106 0 -181 75t-75 181zM896 512q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
94
+ <glyph unicode="&#xf439;" d="M384 1152h1280q0 -231 -145.5 -406.5t-366.5 -220.5v-269h-256v269q-221 45 -366.5 220.5t-145.5 406.5zM640 1280v384q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5v-384h-256zM1152 1280v384q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5v-384h-256z" />
95
+ <glyph unicode="&#xf440;" d="M128 768q0 106 75 181t181 75h6q-6 32 -6 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-384v256h-512v-256h-384q-106 0 -181 75t-75 181 zM640 384h256v256h256v-256h256l-384 -384z" />
96
+ <glyph unicode="&#xf441;" d="M128 768q0 106 75 181t181 75h6q-6 32 -6 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-512v256h256l-384 384l-384 -384h256v-256h-512 q-106 0 -181 75t-75 181z" />
97
+ <glyph unicode="&#xf442;" d="M512 512v896h512l-128 -128h-256v-640h640v256l128 128v-512h-896zM896 987l550 549h-422v128h640v-640h-128v422l-550 -550z" />
98
+ <glyph unicode="&#xf443;" d="M512 384v1280h640l384 -384v-896h-1024zM640 512h768v640h-384v384h-384v-1024z" />
99
+ <glyph unicode="&#xf444;" d="M384 512v1024q0 106 75 181t181 75h1024v-1152h-64q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5h64v-128h-1024q-106 0 -181 75t-75 181zM512 512q0 -53 37.5 -90.5t90.5 -37.5h818q-50 55 -50 128t50 128h-818q-53 0 -90.5 -37.5t-37.5 -90.5z" />
100
+ <glyph unicode="&#xf445;" d="M160 747l232 201q-8 67 -8 76q0 8 8 75l-232 201l58 139l305 -21q47 60 107 107l-21 305l139 58l201 -232q67 8 75 8t75 -8l201 232l140 -58l-22 -305q56 -44 107 -107l305 22l58 -139l-232 -201q8 -67 8 -76q0 -8 -8 -75l232 -201l-58 -140l-305 22q-44 -56 -107 -107 l22 -305l-139 -58l-201 232q-67 -8 -76 -8q-8 0 -75 8l-201 -232l-139 58l21 305q-56 44 -107 107l-305 -22zM768 1024q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
101
+ <glyph unicode="&#xf446;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 1024q0 -212 150 -362t362 -150q135 0 259 72l-699 699q-72 -126 -72 -259zM765 1464l699 -699 q72 123 72 259q0 212 -150 362t-362 150q-136 0 -259 -72z" />
102
+ <glyph unicode="&#xf447;" d="M256 1664v128h384v-256h1152l-256 -640h-896v-128h896v-128h-1024v1024h-256zM512 384q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM1280 384q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5 t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
103
+ <glyph unicode="&#xf448;" d="M512 384v1280h384v-1280h-384zM1152 384v1280h384v-1280h-384z" />
104
+ <glyph unicode="&#xf449;" d="M512 512v1024h1024v-1024h-1024z" />
105
+ <glyph unicode="&#xf450;" d="M256 384v1280h384v-1280h-384zM768 1024l1024 640v-1280z" />
106
+ <glyph unicode="&#xf451;" d="M256 384v1280l1024 -640zM1408 384v1280h384v-1280h-384z" />
107
+ <glyph unicode="&#xf452;" d="M512 384v1280l1024 -640z" />
108
+ <glyph unicode="&#xf453;" d="M256 256v1536q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-1536q0 -106 -75 -181t-181 -75h-1024q-106 0 -181 75t-75 181zM512 512h1024v1280h-1024v-1280zM896 256q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5z" />
109
+ <glyph unicode="&#xf454;" d="M128 1024v256h512v128l384 -256l-384 -256v128h-512zM256 256v640h256v-384h1024v1280h-1024v-384h-256v384q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-1536q0 -106 -75 -181t-181 -75h-1024q-106 0 -181 75t-75 181zM896 256q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
110
+ <glyph unicode="&#xf455;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM896 1408q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5zM928 512h192v640h-192v-640z" />
111
+ <glyph unicode="&#xf456;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM883 1536l51 -640h179l52 640h-282zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5 t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
112
+ <glyph unicode="&#xf457;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM720 1442l92 -180q134 71 234 71q38 0 65 -16q26 -17 26 -44q0 -35 -24 -63q-24 -27 -77 -61 q-68 -42 -95 -87q-26 -44 -26 -109v-57h204v34q0 29 17 49q18 21 87 66q83 53 120 111t37 139q0 111 -84 176q-85 65 -232 65q-180 0 -344 -94zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
113
+ <glyph unicode="&#xf458;" d="M128 384v1280l768 -480v480l1024 -640l-1024 -640v480z" />
114
+ <glyph unicode="&#xf459;" d="M128 1024l1024 -640v480l768 -480v1280l-768 -480v480z" />
115
+ <glyph unicode="&#xf460;" d="M256 1280h128l86 256h340l86 -256l-256 -768h-128zM533 1280h214l-43 128h-128zM768 512l256 768h128l86 256h340l86 -256h128l-256 -768h-768zM1301 1280h214l-43 128h-128z" />
116
+ <glyph unicode="&#xf461;" d="M256 1261q8 -158 120 -264l648 -613l648 613q112 106 120 264t-93 276t-251.5 126.5t-262.5 -97.5l-161 -153l-161 153q-112 106 -262.5 97.5t-251.5 -126.5t-93 -276z" />
117
+ <glyph unicode="&#xf462;" d="M102 1024l304 -455l213 142l-209 313l209 313l-213 142zM772 543l248 -62l256 1024l-248 62zM1430 711l213 -142l303 455l-303 455l-213 -142l208 -313z" />
118
+ <glyph unicode="&#xf463;" d="M0 512v704l768 -384l256 128v-448h-1024zM0 1408v128h1536v-128l-768 -384zM1152 384v640q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM1280 640h256v-256h128v256h256v128h-256 v256h-128v-256h-256v-128z" />
119
+ <glyph unicode="&#xf464;" d="M0 512v704l768 -384l256 128v-448h-1024zM0 1408v128h1536v-128l-768 -384zM1152 384v640q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM1280 640h640v128h-640v-128z" />
120
+ <glyph unicode="&#xf465;" d="M0 512v704l768 -384l256 128v-448h-1024zM0 1408v128h1536v-128l-768 -384zM1152 384v640q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM1260 656l272 -272l452 453l-90 90 l-362 -362l-181 181z" />
121
+ <glyph unicode="&#xf466;" d="M0 1024l640 640v-320l-320 -320l320 -320v-320zM512 1024l640 640v-384h256q212 0 362 -150t150 -362v-300l-150 150q-74 74 -168 112t-194 38h-256v-384z" />
122
+ <glyph unicode="&#xf467;" d="M384 1024l640 640v-384h256q212 0 362 -150t150 -362v-300l-150 150q-74 74 -168 112t-194 38h-256v-384z" />
123
+ <glyph unicode="&#xf468;" d="M256 256v1536h256v-1536h-256zM640 896v768q35 0 63.5 13t54 32t56.5 38t85 32t125 13q70 0 125.5 -13t93 -32l75 -38t93 -32t125.5 -13h256v-768h-256q-70 0 -125.5 13t-93 32l-75 38t-93 32t-125.5 13q-71 0 -125 -13t-85 -32t-56.5 -38t-54 -32t-63.5 -13z" />
124
+ <glyph unicode="&#xf469;" d="M256 512v768h1536v-768h-256v384h-1024v-384h-256zM640 640v128h768v-128q0 -158 113 -271l112 -113h-768l-112 113q-113 113 -113 271zM640 1408h768v256h-768v-256z" />
125
+ <glyph unicode="&#xf470;" d="M384 384v640q0 53 37.5 90.5t90.5 37.5v128q0 212 150 362t362 150t362 -150t150 -362v-128q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-1024q-53 0 -90.5 37.5t-37.5 90.5zM768 1152h512v128q0 106 -75 181t-181 75t-181 -75t-75 -181v-128z" />
126
+ <glyph unicode="&#xf471;" d="M512 512v1024h512q106 0 181 -75t75 -181q0 -87 -57 -159q83 -39 134 -117t51 -172q0 -133 -93.5 -226.5t-226.5 -93.5h-576zM768 640h192q80 0 136 56t56 136t-56 136t-136 56h-192v-384zM768 1152h128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5h-128v-256z" />
127
+ <glyph unicode="&#xf472;" d="M640 512l40 128h128l240 768h-128l40 128h448l-40 -128h-128l-240 -768h128l-40 -128h-448z" />
128
+ <glyph unicode="&#xf473;" d="M384 384v1280h1280v-1280h-1280zM512 512h1024v576l-128 192l-448 -672l-192 288zM640 1280q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
129
+ <glyph unicode="&#xf474;" d="M128 256v384l154 -154l230 154l-154 -230l154 -154h-384zM128 1408v384h384l-154 -154l154 -230l-230 154zM640 768v512h768v-512h-768zM1536 256l154 154l-154 230l230 -154l154 154v-384h-384zM1536 1408l154 230l-154 154h384v-384l-154 154z" />
130
+ <glyph unicode="&#xf500;" d="M128 0l960 960l960 -960h-1920z" />
131
+ <glyph unicode="&#xf501;" d="M0 128l960 960l-960 960v-1920z" />
132
+ <glyph unicode="&#xf502;" d="M128 2048l960 -960l960 960h-1920z" />
133
+ <glyph unicode="&#xf503;" d="M1088 1088l960 960v-1920z" />
134
+ </font>
135
+ </defs></svg>
css/font/genericons-regular-webfont.ttf ADDED
Binary file
css/font/genericons-regular-webfont.woff ADDED
Binary file
css/genericons.css ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+
3
+ Genericons Helper CSS
4
+
5
+ */
6
+
7
+
8
+ /**
9
+ * The font was graciously generated by Font Squirrel (http://www.fontsquirrel.com). We love those guys.
10
+ */
11
+
12
+ @font-face {
13
+ font-family: 'Genericons';
14
+ src: url('font/genericons-regular-webfont.eot');
15
+ }
16
+
17
+ @font-face {
18
+ font-family: 'Genericons';
19
+ src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'),
20
+ url('font/genericons-regular-webfont.ttf') format('truetype'),
21
+ url('font/genericons-regular-webfont.svg#genericonsregular') format('svg');
22
+ font-weight: normal;
23
+ font-style: normal;
24
+ }
25
+
26
+
27
+ /**
28
+ * All Genericons
29
+ */
30
+
31
+ .genericon {
32
+ display: inline-block;
33
+ width: 16px;
34
+ height: 16px;
35
+ -webkit-font-smoothing: antialiased;
36
+ -moz-osx-font-smoothing: grayscale;
37
+ font-size: 16px;
38
+ line-height: 1;
39
+ font-family: 'Genericons';
40
+ text-decoration: inherit;
41
+ font-weight: normal;
42
+ font-style: normal;
43
+ vertical-align: top;
44
+ }
45
+
46
+ /**
47
+ * IE7 and IE6 hacks
48
+ */
49
+
50
+ .genericon {
51
+ *overflow: auto;
52
+ *zoom: 1;
53
+ *display: inline;
54
+ }
55
+
56
+ /**
57
+ * Individual icons
58
+ */
59
+
60
+ /* Post formats */
61
+ .genericon-standard:before { content: '\f100'; }
62
+ .genericon-aside:before { content: '\f101'; }
63
+ .genericon-image:before { content: '\f102'; }
64
+ .genericon-gallery:before { content: '\f103'; }
65
+ .genericon-video:before { content: '\f104'; }
66
+ .genericon-status:before { content: '\f105'; }
67
+ .genericon-quote:before { content: '\f106'; }
68
+ .genericon-link:before { content: '\f107'; }
69
+ .genericon-chat:before { content: '\f108'; }
70
+ .genericon-audio:before { content: '\f109'; }
71
+
72
+ /* Social icons */
73
+ .genericon-github:before { content: '\f200'; }
74
+ .genericon-dribbble:before { content: '\f201'; }
75
+ .genericon-twitter:before { content: '\f202'; }
76
+ .genericon-facebook:before { content: '\f203'; }
77
+ .genericon-facebook-alt:before { content: '\f204'; }
78
+ .genericon-wordpress:before { content: '\f205'; }
79
+ .genericon-googleplus:before { content: '\f206'; }
80
+ .genericon-linkedin:before { content: '\f207'; }
81
+ .genericon-linkedin-alt:before { content: '\f208'; }
82
+ .genericon-pinterest:before { content: '\f209'; }
83
+ .genericon-pinterest-alt:before { content: '\f210'; }
84
+ .genericon-flickr:before { content: '\f211'; }
85
+ .genericon-vimeo:before { content: '\f212'; }
86
+ .genericon-youtube:before { content: '\f213'; }
87
+ .genericon-tumblr:before { content: '\f214'; }
88
+ .genericon-instagram:before { content: '\f215'; }
89
+ .genericon-codepen:before { content: '\f216'; }
90
+ .genericon-polldaddy:before { content: '\f217'; }
91
+ .genericon-googleplus-alt:before { content: '\f218'; }
92
+ .genericon-path:before { content: '\f219'; }
93
+ .genericon-skype:before { content: '\f220'; }
94
+ .genericon-digg:before { content: '\f221'; }
95
+ .genericon-reddit:before { content: '\f222'; }
96
+ .genericon-stumbleupon:before { content: '\f223'; }
97
+ .genericon-pocket:before { content: '\f224'; }
98
+ .genericon-dropbox:before { content: '\f225'; }
99
+
100
+ /* Meta icons */
101
+ .genericon-comment:before { content: '\f300'; }
102
+ .genericon-category:before { content: '\f301'; }
103
+ .genericon-tag:before { content: '\f302'; }
104
+ .genericon-time:before { content: '\f303'; }
105
+ .genericon-user:before { content: '\f304'; }
106
+ .genericon-day:before { content: '\f305'; }
107
+ .genericon-week:before { content: '\f306'; }
108
+ .genericon-month:before { content: '\f307'; }
109
+ .genericon-pinned:before { content: '\f308'; }
110
+
111
+ /* Other icons */
112
+ .genericon-search:before { content: '\f400'; }
113
+ .genericon-unzoom:before { content: '\f401'; }
114
+ .genericon-zoom:before { content: '\f402'; }
115
+ .genericon-show:before { content: '\f403'; }
116
+ .genericon-hide:before { content: '\f404'; }
117
+ .genericon-close:before { content: '\f405'; }
118
+ .genericon-close-alt:before { content: '\f406'; }
119
+ .genericon-trash:before { content: '\f407'; }
120
+ .genericon-star:before { content: '\f408'; }
121
+ .genericon-home:before { content: '\f409'; }
122
+ .genericon-mail:before { content: '\f410'; }
123
+ .genericon-edit:before { content: '\f411'; }
124
+ .genericon-reply:before { content: '\f412'; }
125
+ .genericon-feed:before { content: '\f413'; }
126
+ .genericon-warning:before { content: '\f414'; }
127
+ .genericon-share:before { content: '\f415'; }
128
+ .genericon-attachment:before { content: '\f416'; }
129
+ .genericon-location:before { content: '\f417'; }
130
+ .genericon-checkmark:before { content: '\f418'; }
131
+ .genericon-menu:before { content: '\f419'; }
132
+ .genericon-refresh:before { content: '\f420'; }
133
+ .genericon-minimize:before { content: '\f421'; }
134
+ .genericon-maximize:before { content: '\f422'; }
135
+ .genericon-404:before { content: '\f423'; }
136
+ .genericon-spam:before { content: '\f424'; }
137
+ .genericon-summary:before { content: '\f425'; }
138
+ .genericon-cloud:before { content: '\f426'; }
139
+ .genericon-key:before { content: '\f427'; }
140
+ .genericon-dot:before { content: '\f428'; }
141
+ .genericon-next:before { content: '\f429'; }
142
+ .genericon-previous:before { content: '\f430'; }
143
+ .genericon-expand:before { content: '\f431'; }
144
+ .genericon-collapse:before { content: '\f432'; }
145
+ .genericon-dropdown:before { content: '\f433'; }
146
+ .genericon-dropdown-left:before { content: '\f434'; }
147
+ .genericon-top:before { content: '\f435'; }
148
+ .genericon-draggable:before { content: '\f436'; }
149
+ .genericon-phone:before { content: '\f437'; }
150
+ .genericon-send-to-phone:before { content: '\f438'; }
151
+ .genericon-plugin:before { content: '\f439'; }
152
+ .genericon-cloud-download:before { content: '\f440'; }
153
+ .genericon-cloud-upload:before { content: '\f441'; }
154
+ .genericon-external:before { content: '\f442'; }
155
+ .genericon-document:before { content: '\f443'; }
156
+ .genericon-book:before { content: '\f444'; }
157
+ .genericon-cog:before { content: '\f445'; }
158
+ .genericon-unapprove:before { content: '\f446'; }
159
+ .genericon-cart:before { content: '\f447'; }
160
+ .genericon-pause:before { content: '\f448'; }
161
+ .genericon-stop:before { content: '\f449'; }
162
+ .genericon-skip-back:before { content: '\f450'; }
163
+ .genericon-skip-ahead:before { content: '\f451'; }
164
+ .genericon-play:before { content: '\f452'; }
165
+ .genericon-tablet:before { content: '\f453'; }
166
+ .genericon-send-to-tablet:before { content: '\f454'; }
167
+ .genericon-info:before { content: '\f455'; }
168
+ .genericon-notice:before { content: '\f456'; }
169
+ .genericon-help:before { content: '\f457'; }
170
+ .genericon-fastforward:before { content: '\f458'; }
171
+ .genericon-rewind:before { content: '\f459'; }
172
+ .genericon-portfolio:before { content: '\f460'; }
173
+ .genericon-heart:before { content: '\f461'; }
174
+ .genericon-code:before { content: '\f462'; }
175
+ .genericon-subscribe:before { content: '\f463'; }
176
+ .genericon-unsubscribe:before { content: '\f464'; }
177
+ .genericon-subscribed:before { content: '\f465'; }
178
+ .genericon-reply-alt:before { content: '\f466'; }
179
+ .genericon-reply-single:before { content: '\f467'; }
180
+ .genericon-flag:before { content: '\f468'; }
181
+ .genericon-print:before { content: '\f469'; }
182
+ .genericon-lock:before { content: '\f470'; }
183
+ .genericon-bold:before { content: '\f471'; }
184
+ .genericon-italic:before { content: '\f472'; }
185
+ .genericon-picture:before { content: '\f473'; }
186
+ .genericon-fullscreen:before { content: '\f474'; }
187
+
188
+ /* Generic shapes */
189
+ .genericon-uparrow:before { content: '\f500'; }
190
+ .genericon-rightarrow:before { content: '\f501'; }
191
+ .genericon-downarrow:before { content: '\f502'; }
192
+ .genericon-leftarrow:before { content: '\f503'; }
193
+
194
+
195
+
196
+
197
+
includes/admin.php ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Menu editor handler
4
+ * @package Menu_Icons
5
+ * @version 0.1.0
6
+ * @author Dzikri Aziz <kvcrvt@gmail.com>
7
+ */
8
+
9
+
10
+ /**
11
+ * Menu item metadata
12
+ *
13
+ * @since 0.1.0
14
+ */
15
+ class Menu_Icons_Admin_Nav_Menus {
16
+
17
+ /**
18
+ * Initialize class
19
+ */
20
+ public static function init() {
21
+ add_action( 'menu_item_custom_fields', array( __CLASS__, '_fields' ), 10, 3 );
22
+ add_filter( 'manage_nav-menus_columns', array( __CLASS__, '_columns' ), 99 );
23
+ add_action( 'wp_update_nav_menu_item', array( __CLASS__, '_save' ), 10, 3 );
24
+ }
25
+
26
+
27
+ /**
28
+ * Get icon types
29
+ *
30
+ * @since 0.1.0
31
+ * @access protected
32
+ * @uses apply_filters() Calls 'menu_icons_types' on returned array.
33
+ *
34
+ * @return array
35
+ */
36
+ protected static function _get_types() {
37
+ $types = array_merge(
38
+ array(
39
+ '' => array(
40
+ 'id' => '',
41
+ 'label' => __( '&mdash; Select &mdash;', 'menu-icons' )
42
+ ),
43
+ ),
44
+ Menu_Icons::get( 'icon_types' )
45
+ );
46
+
47
+ return $types;
48
+ }
49
+
50
+
51
+ /**
52
+ * Print fields
53
+ *
54
+ * @since 0.1.0
55
+ * @access protected
56
+ * @uses add_action() Calls 'menu_icons_before_fields' hook
57
+ * @uses add_action() Calls 'menu_icons_after_fields' hook
58
+ * @wp_hook action menu_item_custom_fields/10/3
59
+ *
60
+ * @param object $item Menu item data object.
61
+ * @param int $depth Nav menu depth.
62
+ * @param array $args Menu item args.
63
+ * @param int $id Nav menu ID.
64
+ *
65
+ * @return string Form fields
66
+ */
67
+ public static function _fields( $item, $depth, $args = array(), $id = 0 ) {
68
+ $current = array_filter( (array) get_post_meta( $item->ID, 'menu-icons', true ) );
69
+ ?>
70
+ <div class="field-icon description-wide menu-icons-wrap">
71
+ <?php
72
+ /**
73
+ * Allow plugins/themes to inject HTML before menu icons' fields
74
+ *
75
+ * @param object $item Menu item data object.
76
+ * @param int $depth Nav menu depth.
77
+ * @param array $args Menu item args.
78
+ * @param int $id Nav menu ID.
79
+ *
80
+ */
81
+ do_action( 'menu_icons_before_fields', $item, $depth, $args, $id );
82
+ ?>
83
+ <?php
84
+ $input_id = sprintf( 'menu-icons-%d-type', $item->ID );
85
+ $input_name = sprintf( 'menu-icons[%d][type]', $item->ID );
86
+ ?>
87
+ <p class="description">
88
+ <label for="<?php echo esc_attr( $input_id ) ?>"><?php esc_html_e( 'Icon type', 'menu-icons' ); ?></label>
89
+ <select id="<?php echo esc_attr( $input_id ) ?>" name="<?php echo esc_attr( $input_name ) ?>">
90
+ <?php foreach ( self::_get_types() as $id => $props ) : ?>
91
+ <?php printf(
92
+ '<option value="%s"%s>%s</option>',
93
+ esc_attr( $id ),
94
+ selected( ( isset( $current['type'] ) && $id === $current['type'] ), true, false ),
95
+ esc_html( $props['label'] )
96
+ ) ?>
97
+ <?php endforeach; ?>
98
+ </select>
99
+ </p>
100
+ <?php foreach ( self::_get_types() as $props ) : ?>
101
+ <?php if ( ! empty( $props['field_cb'] ) && is_callable( $props['field_cb'] ) ) : ?>
102
+ <?php call_user_func_array( $props['field_cb'], array( $item->ID, $current ) ); ?>
103
+ <?php endif; ?>
104
+ <?php endforeach; ?>
105
+ <?php
106
+ /**
107
+ * Allow plugins/themes to inject HTML after menu icons' fields
108
+ *
109
+ * @param object $item Menu item data object.
110
+ * @param int $depth Nav menu depth.
111
+ * @param array $args Menu item args.
112
+ * @param int $id Nav menu ID.
113
+ *
114
+ */
115
+ do_action( 'menu_icons_after_fields', $item, $depth, $args, $id );
116
+ ?>
117
+ </div>
118
+ <?php
119
+ }
120
+
121
+
122
+ /**
123
+ * Add our field to the screen options toggle
124
+ *
125
+ * @since 0.1.0
126
+ * @access private
127
+ * @wp_hook action manage_nav-menus_columns
128
+ * @link http://codex.wordpress.org/Plugin_API/Filter_Reference/manage_posts_columns Action: manage_nav-menus_columns/99
129
+ *
130
+ * @param array $columns Menu item columns
131
+ * @return array
132
+ */
133
+ public static function _columns( $columns ) {
134
+ $columns['icon'] = __( 'Icon', 'menu-icons' );
135
+
136
+ return $columns;
137
+ }
138
+
139
+
140
+ /**
141
+ * Save menu item's icons values
142
+ *
143
+ * @since 0.1.0
144
+ * @access protected
145
+ * @uses apply_filters() Calls 'menu_icons_values' on returned array.
146
+ * @link http://codex.wordpress.org/Plugin_API/Action_Reference/wp_update_nav_menu_item Action: wp_update_nav_menu_item/10/2
147
+ *
148
+ * @param int $menu_id Nav menu ID
149
+ * @param int $menu_item_db_id Menu item ID
150
+ * @param array $menu_item_args Menu item data
151
+ */
152
+ public static function _save( $menu_id, $menu_item_db_id, $menu_item_args ) {
153
+ check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
154
+
155
+ // Sanitize
156
+ if ( ! empty( $_POST['menu-icons'][ $menu_item_db_id ] ) ) {
157
+ $value = array_filter( (array) $_POST['menu-icons'][ $menu_item_db_id ] );
158
+ }
159
+ else {
160
+ $value = array();
161
+ }
162
+
163
+ /**
164
+ * Allow plugins/themes to filter the values
165
+ *
166
+ * @since 0.1.0
167
+ * @param array $value Metadata value
168
+ */
169
+ $value = apply_filters( 'menu_icons_values', $value, $menu_item_db_id );
170
+
171
+ // Update
172
+ if ( ! empty( $value ) ) {
173
+ update_post_meta( $menu_item_db_id, 'menu-icons', $value );
174
+ }
175
+ else {
176
+ delete_post_meta( $menu_item_db_id, 'menu-icons' );
177
+ }
178
+ }
179
+ }
includes/menu-item-custom-fields/LICENSE ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
5
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Lesser General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+
124
+ Thus, it is not the intent of this section to claim rights or contest
125
+ your rights to work written entirely by you; rather, the intent is to
126
+ exercise the right to control the distribution of derivative or
127
+ collective works based on the Program.
128
+
129
+ In addition, mere aggregation of another work not based on the Program
130
+ with the Program (or with a work based on the Program) on a volume of
131
+ a storage or distribution medium does not bring the other work under
132
+ the scope of this License.
133
+
134
+ 3. You may copy and distribute the Program (or a work based on it,
135
+ under Section 2) in object code or executable form under the terms of
136
+ Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+ a) Accompany it with the complete corresponding machine-readable
139
+ source code, which must be distributed under the terms of Sections
140
+ 1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+ b) Accompany it with a written offer, valid for at least three
143
+ years, to give any third party, for a charge no more than your
144
+ cost of physically performing source distribution, a complete
145
+ machine-readable copy of the corresponding source code, to be
146
+ distributed under the terms of Sections 1 and 2 above on a medium
147
+ customarily used for software interchange; or,
148
+
149
+ c) Accompany it with the information you received as to the offer
150
+ to distribute corresponding source code. (This alternative is
151
+ allowed only for noncommercial distribution and only if you
152
+ received the program in object code or executable form with such
153
+ an offer, in accord with Subsection b above.)
154
+
155
+ The source code for a work means the preferred form of the work for
156
+ making modifications to it. For an executable work, complete source
157
+ code means all the source code for all modules it contains, plus any
158
+ associated interface definition files, plus the scripts used to
159
+ control compilation and installation of the executable. However, as a
160
+ special exception, the source code distributed need not include
161
+ anything that is normally distributed (in either source or binary
162
+ form) with the major components (compiler, kernel, and so on) of the
163
+ operating system on which the executable runs, unless that component
164
+ itself accompanies the executable.
165
+
166
+ If distribution of executable or object code is made by offering
167
+ access to copy from a designated place, then offering equivalent
168
+ access to copy the source code from the same place counts as
169
+ distribution of the source code, even though third parties are not
170
+ compelled to copy the source along with the object code.
171
+
172
+ 4. You may not copy, modify, sublicense, or distribute the Program
173
+ except as expressly provided under this License. Any attempt
174
+ otherwise to copy, modify, sublicense or distribute the Program is
175
+ void, and will automatically terminate your rights under this License.
176
+ However, parties who have received copies, or rights, from you under
177
+ this License will not have their licenses terminated so long as such
178
+ parties remain in full compliance.
179
+
180
+ 5. You are not required to accept this License, since you have not
181
+ signed it. However, nothing else grants you permission to modify or
182
+ distribute the Program or its derivative works. These actions are
183
+ prohibited by law if you do not accept this License. Therefore, by
184
+ modifying or distributing the Program (or any work based on the
185
+ Program), you indicate your acceptance of this License to do so, and
186
+ all its terms and conditions for copying, distributing or modifying
187
+ the Program or works based on it.
188
+
189
+ 6. Each time you redistribute the Program (or any work based on the
190
+ Program), the recipient automatically receives a license from the
191
+ original licensor to copy, distribute or modify the Program subject to
192
+ these terms and conditions. You may not impose any further
193
+ restrictions on the recipients' exercise of the rights granted herein.
194
+ You are not responsible for enforcing compliance by third parties to
195
+ this License.
196
+
197
+ 7. If, as a consequence of a court judgment or allegation of patent
198
+ infringement or for any other reason (not limited to patent issues),
199
+ conditions are imposed on you (whether by court order, agreement or
200
+ otherwise) that contradict the conditions of this License, they do not
201
+ excuse you from the conditions of this License. If you cannot
202
+ distribute so as to satisfy simultaneously your obligations under this
203
+ License and any other pertinent obligations, then as a consequence you
204
+ may not distribute the Program at all. For example, if a patent
205
+ license would not permit royalty-free redistribution of the Program by
206
+ all those who receive copies directly or indirectly through you, then
207
+ the only way you could satisfy both it and this License would be to
208
+ refrain entirely from distribution of the Program.
209
+
210
+ If any portion of this section is held invalid or unenforceable under
211
+ any particular circumstance, the balance of the section is intended to
212
+ apply and the section as a whole is intended to apply in other
213
+ circumstances.
214
+
215
+ It is not the purpose of this section to induce you to infringe any
216
+ patents or other property right claims or to contest validity of any
217
+ such claims; this section has the sole purpose of protecting the
218
+ integrity of the free software distribution system, which is
219
+ implemented by public license practices. Many people have made
220
+ generous contributions to the wide range of software distributed
221
+ through that system in reliance on consistent application of that
222
+ system; it is up to the author/donor to decide if he or she is willing
223
+ to distribute software through any other system and a licensee cannot
224
+ impose that choice.
225
+
226
+ This section is intended to make thoroughly clear what is believed to
227
+ be a consequence of the rest of this License.
228
+
229
+ 8. If the distribution and/or use of the Program is restricted in
230
+ certain countries either by patents or by copyrighted interfaces, the
231
+ original copyright holder who places the Program under this License
232
+ may add an explicit geographical distribution limitation excluding
233
+ those countries, so that distribution is permitted only in or among
234
+ countries not thus excluded. In such case, this License incorporates
235
+ the limitation as if written in the body of this License.
236
+
237
+ 9. The Free Software Foundation may publish revised and/or new versions
238
+ of the General Public License from time to time. Such new versions will
239
+ be similar in spirit to the present version, but may differ in detail to
240
+ address new problems or concerns.
241
+
242
+ Each version is given a distinguishing version number. If the Program
243
+ specifies a version number of this License which applies to it and "any
244
+ later version", you have the option of following the terms and conditions
245
+ either of that version or of any later version published by the Free
246
+ Software Foundation. If the Program does not specify a version number of
247
+ this License, you may choose any version ever published by the Free Software
248
+ Foundation.
249
+
250
+ 10. If you wish to incorporate parts of the Program into other free
251
+ programs whose distribution conditions are different, write to the author
252
+ to ask for permission. For software which is copyrighted by the Free
253
+ Software Foundation, write to the Free Software Foundation; we sometimes
254
+ make exceptions for this. Our decision will be guided by the two goals
255
+ of preserving the free status of all derivatives of our free software and
256
+ of promoting the sharing and reuse of software generally.
257
+
258
+ NO WARRANTY
259
+
260
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+ REPAIR OR CORRECTION.
269
+
270
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+ POSSIBILITY OF SUCH DAMAGES.
279
+
280
+ END OF TERMS AND CONDITIONS
281
+
282
+ How to Apply These Terms to Your New Programs
283
+
284
+ If you develop a new program, and you want it to be of the greatest
285
+ possible use to the public, the best way to achieve this is to make it
286
+ free software which everyone can redistribute and change under these terms.
287
+
288
+ To do so, attach the following notices to the program. It is safest
289
+ to attach them to the start of each source file to most effectively
290
+ convey the exclusion of warranty; and each file should have at least
291
+ the "copyright" line and a pointer to where the full notice is found.
292
+
293
+ {description}
294
+ Copyright (C) {year} {fullname}
295
+
296
+ This program is free software; you can redistribute it and/or modify
297
+ it under the terms of the GNU General Public License as published by
298
+ the Free Software Foundation; either version 2 of the License, or
299
+ (at your option) any later version.
300
+
301
+ This program is distributed in the hope that it will be useful,
302
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
303
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
+ GNU General Public License for more details.
305
+
306
+ You should have received a copy of the GNU General Public License along
307
+ with this program; if not, write to the Free Software Foundation, Inc.,
308
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
+
310
+ Also add information on how to contact you by electronic and paper mail.
311
+
312
+ If the program is interactive, make it output a short notice like this
313
+ when it starts in an interactive mode:
314
+
315
+ Gnomovision version 69, Copyright (C) year name of author
316
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
+ This is free software, and you are welcome to redistribute it
318
+ under certain conditions; type `show c' for details.
319
+
320
+ The hypothetical commands `show w' and `show c' should show the appropriate
321
+ parts of the General Public License. Of course, the commands you use may
322
+ be called something other than `show w' and `show c'; they could even be
323
+ mouse-clicks or menu items--whatever suits your program.
324
+
325
+ You should also get your employer (if you work as a programmer) or your
326
+ school, if any, to sign a "copyright disclaimer" for the program, if
327
+ necessary. Here is a sample; alter the names:
328
+
329
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
+
332
+ {signature of Ty Coon}, 1 April 1989
333
+ Ty Coon, President of Vice
334
+
335
+ This General Public License does not permit incorporating your program into
336
+ proprietary programs. If your program is a subroutine library, you may
337
+ consider it more useful to permit linking proprietary applications with the
338
+ library. If this is what you want to do, use the GNU Lesser General
339
+ Public License instead of this License.
includes/menu-item-custom-fields/doc/menu-item-custom-fields-example.php ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Menu item custom fields example
4
+ *
5
+ * Copy this file into your wp-content/mu-plugins directory.
6
+ *
7
+ * @package Menu_Item_Custom_Fields
8
+ * @version 0.1.0
9
+ * @author Dzikri Aziz <kvcrvt@gmail.com>
10
+ *
11
+ *
12
+ * Plugin name: Menu Item Custom Fields Example
13
+ * Plugin URI: https://github.com/kucrut/wp-menu-item-custom-fields
14
+ * Description: Example usage of Menu Item Custom Fields in plugins/themes
15
+ * Version: 0.1.0
16
+ * Author: Dzikri Aziz
17
+ * Author URI: http://kucrut.org/
18
+ * License: GPL v2
19
+ * Text Domain: my-plugin
20
+ */
21
+
22
+
23
+ /**
24
+ * Sample menu item metadata
25
+ *
26
+ * This class demonstrate the usage of Menu Item Custom Fields in plugins/themes.
27
+ *
28
+ * @since 0.1.0
29
+ */
30
+ class Menu_Item_Custom_Fields_Example {
31
+
32
+ /**
33
+ * Initialize plugin
34
+ */
35
+ public static function init() {
36
+ add_action( 'menu_item_custom_fields', array( __CLASS__, '_fields' ), 10, 3 );
37
+ add_action( 'wp_update_nav_menu_item', array( __CLASS__, '_save' ), 10, 3 );
38
+ add_filter( 'manage_nav-menus_columns', array( __CLASS__, '_columns' ), 99 );
39
+ }
40
+
41
+
42
+ /**
43
+ * Save custom field value
44
+ *
45
+ * @wp_hook action wp_update_nav_menu_item
46
+ *
47
+ * @param int $menu_id Nav menu ID
48
+ * @param int $menu_item_db_id Menu item ID
49
+ * @param array $menu_item_args Menu item data
50
+ */
51
+ public static function _save( $menu_id, $menu_item_db_id, $menu_item_args ) {
52
+ check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
53
+
54
+ // Sanitize
55
+ if ( ! empty( $_POST['menu-item-custom-field'][ $menu_item_db_id ] ) ) {
56
+ // Do some checks here...
57
+ $value = $_POST['menu-item-custom-field'][ $menu_item_db_id ];
58
+ }
59
+ else {
60
+ $value = '';
61
+ }
62
+
63
+ // Update
64
+ if ( ! empty( $value ) ) {
65
+ update_post_meta( $menu_item_db_id, 'menu-item-custom-field', $value );
66
+ }
67
+ else {
68
+ delete_post_meta( $menu_item_db_id, 'menu-item-custom-field' );
69
+ }
70
+ }
71
+
72
+
73
+ /**
74
+ * Print field
75
+ *
76
+ * @param object $item Menu item data object.
77
+ * @param int $depth Depth of menu item. Used for padding.
78
+ * @param array $args Menu item args.
79
+ * @param int $id Nav menu ID.
80
+ *
81
+ * @return string Form fields
82
+ */
83
+ public static function _fields( $item, $depth, $args = array(), $id = 0 ) {
84
+ ?>
85
+ <p class="field-custom description description-wide">
86
+ <label for="edit-menu-item-custom-field-<?php echo esc_attr( $item->ID ) ?>"><?php _e( 'Custom Field', 'my-plugin' ) ?><br />
87
+ <?php printf(
88
+ '<input type="text" value="%1$s" name="menu-item-custom-field[%2$d]" class="widefat code edit-menu-item-custom-field" id="edit-menu-item-custom-field-%2$d">',
89
+ esc_attr( get_post_meta( $item->ID, 'menu-item-custom-field', true ) ),
90
+ $item->ID
91
+ ) ?>
92
+ </label>
93
+ </p>
94
+ <?php
95
+ }
96
+
97
+
98
+ /**
99
+ * Add our field to the screen options toggle
100
+ *
101
+ * To make this work, the field wrapper must have the class 'field-custom'
102
+ *
103
+ * @param array $columns Menu item columns
104
+ * @return array
105
+ */
106
+ public static function _columns( $columns ) {
107
+ $columns['custom'] = __( 'Custom Field', 'my-plugin' );
108
+
109
+ return $columns;
110
+ }
111
+ }
112
+ Menu_Item_Custom_Fields_Example::init();
includes/menu-item-custom-fields/menu-item-custom-fields.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Menu Item Custom Fields
5
+ *
6
+ * @package Menu_Item_Custom_Fields
7
+ * @version 0.1.0
8
+ * @author Dzikri Aziz <kvcrvt@gmail.com>
9
+ *
10
+ * Plugin name: Menu Item Custom Fields
11
+ * Plugin URI: https://github.com/kucrut/wp-menu-item-custom-fields
12
+ * Description: Easily add custom fields to nav menu items
13
+ * Version: 0.1.0
14
+ * Author: Dzikri Aziz
15
+ * Author URI: http://kucrut.org/
16
+ * License: GPLv2
17
+ * Text Domain: menu-item-custom-fields
18
+ */
19
+
20
+ /* Nothing to do on the front-end */
21
+ if ( ! is_admin() ) {
22
+ return;
23
+ }
24
+
25
+ if ( ! function_exists( '_menu_item_custom_fields_walker' ) ) {
26
+
27
+ /**
28
+ * Replace default menu editor walker with ours
29
+ *
30
+ * We don't actually replace the default walker. We're still using it and
31
+ * only injecting some HTMLs.
32
+ *
33
+ * @since 0.1.0
34
+ * @access private
35
+ * @wp_hook filter wp_edit_nav_menu_walker
36
+ * @param string $walker Walker class name
37
+ * @return string Walker class name
38
+ */
39
+ function _menu_item_custom_fields_walker( $walker ) {
40
+ require_once dirname( __FILE__ ) . '/walker-nav-menu-edit.php';
41
+ return 'Menu_Item_Custom_Fields_Walker';
42
+ }
43
+
44
+ add_filter( 'wp_edit_nav_menu_walker', '_menu_item_custom_fields_walker' );
45
+ }
includes/menu-item-custom-fields/readme.md ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- DO NOT EDIT THIS FILE; it is auto-generated from readme.txt -->
2
+ # Menu Item Custom Fields
3
+
4
+ Easily add custom fields to nav menu items.
5
+
6
+ **Contributors:** [kucrut](http://profiles.wordpress.org/kucrut)
7
+ **Tags:** [menu](http://wordpress.org/plugins/tags/menu), [nav-menu](http://wordpress.org/plugins/tags/nav-menu), [custom-fields](http://wordpress.org/plugins/tags/custom-fields), [metadata](http://wordpress.org/plugins/tags/metadata)
8
+ **Requires at least:** 3.8
9
+ **Tested up to:** 3.8.1
10
+ **Stable tag:** 0.1.0
11
+ **License:** [GPLv2](http://www.gnu.org/licenses/gpl-2.0.html)
12
+ **Donate Link:** http://kucrut.org/#coffee
13
+
14
+ ## Description ##
15
+
16
+ This is a *library* plugin. It doesn't do anything visible on its own. It was written to allow other plugins/themes to add custom fields to menu items *easily*. See **Installation**.
17
+
18
+ Development of this plugin is done on [GitHub](https://github.com/kucrut/wp-menu-item-custom-fields). **Pull requests welcome**. Please see [issues reported](https://github.com/kucrut/wp-menu-item-custom-fields/issues) there before going to the plugin forum.
19
+
20
+ ## Installation ##
21
+
22
+ ### As regular plugin ###
23
+ 1. Upload `menu-item-custom-fields` to the `/wp-content/plugins/` directory
24
+ 1. Activate the plugin through the 'Plugins' menu in WordPress
25
+
26
+ ### As library in your plugin/theme ###
27
+ 1. Copy `menu-item-custom-fields` to your plugin directory
28
+ 1. From your plugin file, add this code:
29
+ ```php
30
+ function myplugin_load_menu_item_custom_fields() {
31
+ require_once dirname( __FILE__ ) . '/menu-item-custom-fields/menu-item-custom-fields.php';
32
+ }
33
+ add_action( 'load-nav-menus.php', 'myplugin_load_menu_item_custom_fields' ) );
34
+ ```
35
+
36
+ ### Usage ###
37
+ Copy (and customize) and include the `menu-item-custom-fields-example.php` file found in the `doc/` directory into your plugin/theme.
38
+
39
+
40
+ ## Changelog ##
41
+
42
+ ### 0.1.0 ###
43
+ * Initial public release
44
+
45
+
includes/menu-item-custom-fields/readme.txt ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Menu Item Custom Fields ===
2
+ Contributors: kucrut
3
+ Donate Link: http://kucrut.org/#coffee
4
+ Tags: menu, nav-menu, custom-fields, metadata
5
+ Requires at least: 3.8
6
+ Tested up to: 3.8.1
7
+ Stable tag: 0.1.0
8
+ License: GPLv2
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ Easily add custom fields to nav menu items.
12
+
13
+
14
+ == Description ==
15
+ This is a *library* plugin. It doesn't do anything visible on its own. It was written to allow other plugins/themes to add custom fields to menu items *easily*. See **Installation**.
16
+
17
+ Development of this plugin is done on [GitHub](https://github.com/kucrut/wp-menu-item-custom-fields). **Pull requests welcome**. Please see [issues reported](https://github.com/kucrut/wp-menu-item-custom-fields/issues) there before going to the plugin forum.
18
+
19
+
20
+ == Installation ==
21
+
22
+ = As regular plugin =
23
+ 1. Upload `menu-item-custom-fields` to the `/wp-content/plugins/` directory
24
+ 1. Activate the plugin through the 'Plugins' menu in WordPress
25
+
26
+ = As library in your plugin/theme =
27
+ 1. Copy `menu-item-custom-fields` to your plugin directory
28
+ 1. From your plugin file, add this code:
29
+ `
30
+ function myplugin_load_menu_item_custom_fields() {
31
+ require_once dirname( __FILE__ ) . '/menu-item-custom-fields/menu-item-custom-fields.php';
32
+ }
33
+ add_action( 'load-nav-menus.php', 'myplugin_load_menu_item_custom_fields' ) );
34
+ `
35
+
36
+ = Usage =
37
+ Copy (and customize) and include the `menu-item-custom-fields-example.php` file found in the `doc/` directory of this plugin into your plugin/theme.
38
+
39
+
40
+ == Changelog ==
41
+ = 0.1.0 =
42
+ * Initial public release
includes/menu-item-custom-fields/walker-nav-menu-edit.php ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Custom Walker for Nav Menu Editor
5
+ *
6
+ * We're separating this class from the plugin file because Walker_Nav_Menu_Edit
7
+ * is only loaded on the wp-admin/nav-menus.php page.
8
+ *
9
+ * @package Menu_Item_Custom_Fields
10
+ * @version 0.1.0
11
+ * @author Dzikri Aziz <kvcrvt@gmail.com>
12
+ */
13
+
14
+ /**
15
+ * Menu item custom fields walker
16
+ *
17
+ * Based on {@link https://twitter.com/westonruter Weston Ruter}'s {@link https://gist.github.com/3802459 gist}
18
+ *
19
+ * @since 0.1.0
20
+ */
21
+ class Menu_Item_Custom_Fields_Walker extends Walker_Nav_Menu_Edit {
22
+
23
+ /**
24
+ * Start the element output.
25
+ *
26
+ * We're injecting our custom fields after the div.submitbox
27
+ *
28
+ * @see Walker_Nav_Menu::start_el()
29
+ * @since 0.1.0
30
+ *
31
+ * @param string $output Passed by reference. Used to append additional content.
32
+ * @param object $item Menu item data object.
33
+ * @param int $depth Depth of menu item. Used for padding.
34
+ * @param array $args Menu item args.
35
+ * @param int $id Nav menu ID.
36
+ */
37
+ function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
38
+ $item_output = '';
39
+ parent::start_el( $item_output, $item, $depth, $args, $id );
40
+ $output .= preg_replace(
41
+ // NOTE: Check this regex from time to time!
42
+ '/(?=<div[^>]+class="[^"]*submitbox)/',
43
+ $this->get_fields( $item, $depth, $args ),
44
+ $item_output
45
+ );
46
+ }
47
+
48
+
49
+ /**
50
+ * Get custom fields
51
+ *
52
+ * @access protected
53
+ * @since 0.1.0
54
+ * @uses add_action() Calls 'menu_item_custom_fields' hook
55
+ *
56
+ * @param object $item Menu item data object.
57
+ * @param int $depth Depth of menu item. Used for padding.
58
+ * @param array $args Menu item args.
59
+ * @param int $id Nav menu ID.
60
+ *
61
+ * @return string Form fields
62
+ */
63
+ protected function get_fields( $item, $depth, $args = array(), $id = 0 ) {
64
+ ob_start();
65
+
66
+ /**
67
+ * Get menu item custom fields from plugins/themes
68
+ *
69
+ * @since 0.1.0
70
+ *
71
+ * @param object $item Menu item data object.
72
+ * @param int $depth Depth of menu item. Used for padding.
73
+ * @param array $args Menu item args.
74
+ * @param int $id Nav menu ID.
75
+ *
76
+ * @return string Custom fields
77
+ */
78
+ do_action( 'menu_item_custom_fields', $item, $depth, $args, $id );
79
+
80
+ return ob_get_clean();
81
+ }
82
+ }
includes/type-dashicons.php ADDED
@@ -0,0 +1,306 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Dashicons
4
+ *
5
+ * @package Menu_Icons
6
+ * @version 0.1.0
7
+ * @author Dzikri Aziz <kvcrvt@gmail.com>
8
+ */
9
+
10
+
11
+ /**
12
+ * Icon type: Dashicons
13
+ *
14
+ * @since 0.1.0
15
+ */
16
+ class Menu_Icons_Dashicons extends Menu_Icons_Fonts {
17
+
18
+ /**
19
+ * Holds icon type
20
+ *
21
+ * @since 0.1.0
22
+ * @access protected
23
+ * @var string
24
+ */
25
+ protected $type = 'dashicons';
26
+
27
+ /**
28
+ * Holds icon label
29
+ *
30
+ * @since 0.1.0
31
+ * @access protected
32
+ * @var string
33
+ */
34
+ protected $label = 'Dashicons';
35
+
36
+ /**
37
+ * Holds icon stylesheet URL
38
+ *
39
+ * @since 0.1.0
40
+ * @access protected
41
+ * @var string
42
+ */
43
+ protected $stylesheet = 'dashicons';
44
+
45
+
46
+ /**
47
+ * Dashicons' icon names
48
+ *
49
+ * @since 0.1.0
50
+ * @return array
51
+ */
52
+ public function get_names() {
53
+ return array(
54
+ array(
55
+ 'label' => __( 'Admin', 'menu-icons' ),
56
+ 'items' => array(
57
+ 'dashicons-admin-appearance' => __( 'Appearance', 'menu-icons' ),
58
+ 'dashicons-admin-collapse' => __( 'Collapse', 'menu-icons' ),
59
+ 'dashicons-admin-comments' => __( 'Comments', 'menu-icons' ),
60
+ 'dashicons-dashboard' => __( 'Dashboard', 'menu-icons' ),
61
+ 'dashicons-admin-generic' => __( 'Generic', 'menu-icons' ),
62
+ 'dashicons-admin-home' => __( 'Home', 'menu-icons' ),
63
+ 'dashicons-admin-media' => __( 'Media', 'menu-icons' ),
64
+ 'dashicons-menu' => __( 'Menu', 'menu-icons' ),
65
+ 'dashicons-admin-network' => __( 'Network', 'menu-icons' ),
66
+ 'dashicons-admin-page' => __( 'Page', 'menu-icons' ),
67
+ 'dashicons-admin-plugins' => __( 'Plugins', 'menu-icons' ),
68
+ 'dashicons-admin-settings' => __( 'Settings', 'menu-icons' ),
69
+ 'dashicons-admin-site' => __( 'Site', 'menu-icons' ),
70
+ 'dashicons-admin-tools' => __( 'Tools', 'menu-icons' ),
71
+ 'dashicons-admin-users' => __( 'Users', 'menu-icons' ),
72
+ ),
73
+ ),
74
+ array(
75
+ 'label' => __( 'Post Formats', 'menu-icons' ),
76
+ 'items' => array(
77
+ 'dashicons-format-standard' => __( 'Standard', 'menu-icons' ),
78
+ 'dashicons-format-aside' => __( 'Aside', 'menu-icons' ),
79
+ 'dashicons-format-image' => __( 'Image', 'menu-icons' ),
80
+ 'dashicons-format-video' => __( 'Video', 'menu-icons' ),
81
+ 'dashicons-format-audio' => __( 'Audio', 'menu-icons' ),
82
+ 'dashicons-format-quote' => __( 'Quote', 'menu-icons' ),
83
+ 'dashicons-format-gallery' => __( 'Gallery', 'menu-icons' ),
84
+ 'dashicons-format-links' => __( 'Links', 'menu-icons' ),
85
+ 'dashicons-format-status' => __( 'Status', 'menu-icons' ),
86
+ 'dashicons-format-chat' => __( 'Chat', 'menu-icons' ),
87
+ ),
88
+ ),
89
+ array(
90
+ 'label' => __( 'Welcome Screen', 'menu-icons' ),
91
+ 'items' => array(
92
+ 'dashicons-welcome-add-page' => __( 'Add page', 'menu-icons' ),
93
+ 'dashicons-welcome-comments' => __( 'Comments', 'menu-icons' ),
94
+ 'dashicons-welcome-edit-page' => __( 'Edit page', 'menu-icons' ),
95
+ 'dashicons-welcome-learn-more' => __( 'Learn More', 'menu-icons' ),
96
+ 'dashicons-welcome-view-site' => __( 'View Site', 'menu-icons' ),
97
+ 'dashicons-welcome-widgets-menus' => __( 'Widgets', 'menu-icons' ),
98
+ 'dashicons-welcome-write-blog' => __( 'Write Blog', 'menu-icons' ),
99
+ ),
100
+ ),
101
+ array(
102
+ 'label' => __( 'Edit', 'menu-icons' ),
103
+ 'items' => array(
104
+ 'dashicons-image-crop' => __( 'Crop', 'menu-icons' ),
105
+ 'dashicons-image-rotate-left' => __( 'Rotate Left', 'menu-icons' ),
106
+ 'dashicons-image-rotate-right' => __( 'Rotate Right', 'menu-icons' ),
107
+ 'dashicons-image-flip-vertical' => __( 'Flip Vertical', 'menu-icons' ),
108
+ 'dashicons-image-flip-horizontal' => __( 'Flip Horizontal', 'menu-icons' ),
109
+ 'dashicons-undo' => __( 'Undo', 'menu-icons' ),
110
+ 'dashicons-redo' => __( 'Redo', 'menu-icons' ),
111
+ ),
112
+ ),
113
+ array(
114
+ 'label' => __( 'Editor', 'menu-icons' ),
115
+ 'items' => array(
116
+ 'dashicons-editor-bold' => __( 'Bold', 'menu-icons' ),
117
+ 'dashicons-editor-italic' => __( 'Italic', 'menu-icons' ),
118
+ 'dashicons-editor-ul' => __( 'Unordered List', 'menu-icons' ),
119
+ 'dashicons-editor-ol' => __( 'Ordered List', 'menu-icons' ),
120
+ 'dashicons-editor-quote' => __( 'Quote', 'menu-icons' ),
121
+ 'dashicons-editor-alignleft' => __( 'Align Left', 'menu-icons' ),
122
+ 'dashicons-editor-aligncenter' => __( 'Align Center', 'menu-icons' ),
123
+ 'dashicons-editor-alignright' => __( 'Align Right', 'menu-icons' ),
124
+ 'dashicons-editor-insertmore' => __( 'Insert More', 'menu-icons' ),
125
+ 'dashicons-editor-spellcheck' => __( 'Spell Check', 'menu-icons' ),
126
+ 'dashicons-editor-distractionfree' => __( 'Distraction-free', 'menu-icons' ),
127
+ 'dashicons-editor-kitchensink' => __( 'Kitchensink', 'menu-icons' ),
128
+ 'dashicons-editor-underline' => __( 'Underline', 'menu-icons' ),
129
+ 'dashicons-editor-justify' => __( 'Justify', 'menu-icons' ),
130
+ 'dashicons-editor-textcolor' => __( 'Text Color', 'menu-icons' ),
131
+ 'dashicons-editor-paste-word' => __( 'Paste Word', 'menu-icons' ),
132
+ 'dashicons-editor-paste-text' => __( 'Paste Text', 'menu-icons' ),
133
+ 'dashicons-editor-removeformatting' => __( 'Clear Formatting', 'menu-icons' ),
134
+ 'dashicons-editor-video' => __( 'Video', 'menu-icons' ),
135
+ 'dashicons-editor-customchar' => __( 'Custom Characters', 'menu-icons' ),
136
+ 'dashicons-editor-indent' => __( 'Indent', 'menu-icons' ),
137
+ 'dashicons-editor-outdent' => __( 'Outdent', 'menu-icons' ),
138
+ 'dashicons-editor-help' => __( 'Help', 'menu-icons' ),
139
+ 'dashicons-editor-strikethrough' => __( 'Strikethrough', 'menu-icons' ),
140
+ 'dashicons-editor-unlink' => __( 'Unlink', 'menu-icons' ),
141
+ 'dashicons-editor-rtl' => __( 'RTL', 'menu-icons' ),
142
+ ),
143
+ ),
144
+ array(
145
+ 'label' => __( 'Post', 'menu-icons' ),
146
+ 'items' => array(
147
+ 'dashicons-align-left' => __( 'Align Left', 'menu-icons' ),
148
+ 'dashicons-align-right' => __( 'Align Right', 'menu-icons' ),
149
+ 'dashicons-align-center' => __( 'Align Center', 'menu-icons' ),
150
+ 'dashicons-align-none' => __( 'Align None', 'menu-icons' ),
151
+ 'dashicons-lock' => __( 'Lock', 'menu-icons' ),
152
+ 'dashicons-calendar' => __( 'Calendar', 'menu-icons' ),
153
+ 'dashicons-visibility' => __( 'Visibility', 'menu-icons' ),
154
+ 'dashicons-post-status' => __( 'Post Status', 'menu-icons' ),
155
+ 'dashicons-post-trash' => __( 'Post Trash', 'menu-icons' ),
156
+ 'dashicons-edit' => __( 'Edit', 'menu-icons' ),
157
+ 'dashicons-trash' => __( 'Trash', 'menu-icons' ),
158
+ ),
159
+ ),
160
+ array(
161
+ 'label' => __( 'Sorting', 'menu-icons' ),
162
+ 'items' => array(
163
+ 'dashicons-arrow-up' => __( 'Arrow: Up', 'menu-icons' ),
164
+ 'dashicons-arrow-down' => __( 'Arrow: Down', 'menu-icons' ),
165
+ 'dashicons-arrow-left' => __( 'Arrow: Left', 'menu-icons' ),
166
+ 'dashicons-arrow-right' => __( 'Arrow: Right', 'menu-icons' ),
167
+ 'dashicons-arrow-up-alt' => __( 'Arrow: Up #2', 'menu-icons' ),
168
+ 'dashicons-arrow-down-alt' => __( 'Arrow: Down #2', 'menu-icons' ),
169
+ 'dashicons-arrow-left-alt' => __( 'Arrow: Left #2', 'menu-icons' ),
170
+ 'dashicons-arrow-right-alt' => __( 'Arrow: Right #2', 'menu-icons' ),
171
+ 'dashicons-arrow-up-alt2' => __( 'Arrow: Up #3', 'menu-icons' ),
172
+ 'dashicons-arrow-down-alt2' => __( 'Arrow: Down #3', 'menu-icons' ),
173
+ 'dashicons-arrow-left-alt2' => __( 'Arrow: Left #3', 'menu-icons' ),
174
+ 'dashicons-arrow-right-alt2' => __( 'Arrow: Right #3', 'menu-icons' ),
175
+ 'dashicons-leftright' => __( 'Left-Right', 'menu-icons' ),
176
+ 'dashicons-sort' => __( 'Sort', 'menu-icons' ),
177
+ 'dashicons-list-view' => __( 'List View', 'menu-icons' ),
178
+ 'dashicons-exerpt-view' => __( 'Excerpt View', 'menu-icons' ),
179
+ ),
180
+ ),
181
+ array(
182
+ 'label' => __( 'Social', 'menu-icons' ),
183
+ 'items' => array(
184
+ 'dashicons-share' => __( 'Share', 'menu-icons' ),
185
+ 'dashicons-share1' => __( 'Share #2', 'menu-icons' ),
186
+ 'dashicons-share-alt' => __( 'Share #3', 'menu-icons' ),
187
+ 'dashicons-share-alt2' => __( 'Share #4', 'menu-icons' ),
188
+ 'dashicons-twitter' => 'Twitter',
189
+ 'dashicons-rss' => __( 'RSS', 'menu-icons' ),
190
+ 'dashicons-email' => __( 'Email', 'menu-icons' ),
191
+ 'dashicons-email-alt' => __( 'Email #2', 'menu-icons' ),
192
+ 'dashicons-facebook' => 'Facebook',
193
+ 'dashicons-facebook-alt' => sprintf( __( '%s #2', 'menu-icons' ), 'Facebook' ),
194
+ 'dashicons-networking' => __( 'Networking', 'menu-icons' ),
195
+ 'dashicons-googleplus' => 'Google+',
196
+ ),
197
+ ),
198
+ array(
199
+ 'label' => __( 'Jobs', 'menu-icons' ),
200
+ 'items' => array(
201
+ 'dashicons-art' => __( 'Art', 'menu-icons' ),
202
+ 'dashicons-hammer' => __( 'Hammer', 'menu-icons' ),
203
+ 'dashicons-migrate' => __( 'Migrate', 'menu-icons' ),
204
+ 'dashicons-performance' => __( 'Performance', 'menu-icons' ),
205
+ ),
206
+ ),
207
+ array(
208
+ 'label' => __( 'Internal/Products', 'menu-icons' ),
209
+ 'items' => array(
210
+ 'dashicons-wordpress' => 'WordPress',
211
+ 'dashicons-wordpress-alt' => sprintf( __( '%s #2', 'menu-icons' ), 'WordPress' ),
212
+ 'dashicons-pressthis' => 'PressThis',
213
+ 'dashicons-update' => __( 'Update', 'menu-icons' ),
214
+ 'dashicons-screenoptions' => __( 'Screen Options', 'menu-icons' ),
215
+ 'dashicons-info' => __( 'Info', 'menu-icons' ),
216
+ 'dashicons-cart' => __( 'Cart', 'menu-icons' ),
217
+ 'dashicons-feedback' => __( 'Feedback', 'menu-icons' ),
218
+ 'dashicons-cloud' => __( 'Cloud', 'menu-icons' ),
219
+ 'dashicons-translation' => __( 'Translation', 'menu-icons' ),
220
+ ),
221
+ ),
222
+ array(
223
+ 'label' => __( 'Taxonomies', 'menu-icons' ),
224
+ 'items' => array(
225
+ 'dashicons-tag' => __( 'Tag', 'menu-icons' ),
226
+ 'dashicons-category' => __( 'Category', 'menu-icons' ),
227
+ ),
228
+ ),
229
+ array(
230
+ 'label' => __( 'Alerts/Notifications', 'menu-icons' ),
231
+ 'items' => array(
232
+ 'dashicons-yes' => __( 'Yes', 'menu-icons' ),
233
+ 'dashicons-no' => __( 'No', 'menu-icons' ),
234
+ 'dashicons-no-alt' => __( 'No #2', 'menu-icons' ),
235
+ 'dashicons-plus' => __( 'Plus', 'menu-icons' ),
236
+ 'dashicons-minus' => __( 'Minus', 'menu-icons' ),
237
+ 'dashicons-dismiss' => __( 'Dismiss', 'menu-icons' ),
238
+ 'dashicons-marker' => __( 'Marker', 'menu-icons' ),
239
+ 'dashicons-star-filled' => __( 'Star: Filled', 'menu-icons' ),
240
+ 'dashicons-star-half' => __( 'Star: Half', 'menu-icons' ),
241
+ 'dashicons-star-empty' => __( 'Star: Empty', 'menu-icons' ),
242
+ 'dashicons-flag' => __( 'Flag', 'menu-icons' ),
243
+ ),
244
+ ),
245
+ array(
246
+ 'label' => __( 'Misc./Post Types', 'menu-icons' ),
247
+ 'items' => array(
248
+ 'dashicons-location' => __( 'Location', 'menu-icons' ),
249
+ 'dashicons-location-alt' => __( 'Location #2', 'menu-icons' ),
250
+ 'dashicons-camera' => __( 'Camera', 'menu-icons' ),
251
+ 'dashicons-images-alt' => __( 'Images', 'menu-icons' ),
252
+ 'dashicons-images-alt2' => __( 'Images #2', 'menu-icons' ),
253
+ 'dashicons-video-alt' => __( 'Video', 'menu-icons' ),
254
+ 'dashicons-video-alt2' => __( 'Video #2', 'menu-icons' ),
255
+ 'dashicons-video-alt3' => __( 'Video #3', 'menu-icons' ),
256
+ 'dashicons-vault' => __( 'Vault', 'menu-icons' ),
257
+ 'dashicons-shield' => __( 'Shield', 'menu-icons' ),
258
+ 'dashicons-shield-alt' => __( 'Shield #2', 'menu-icons' ),
259
+ 'dashicons-sos' => __( 'S.O.S.', 'menu-icons' ),
260
+ 'dashicons-search' => __( 'Search', 'menu-icons' ),
261
+ 'dashicons-slides' => __( 'Slides', 'menu-icons' ),
262
+ 'dashicons-analytics' => __( 'Analytics', 'menu-icons' ),
263
+ 'dashicons-chart-pie' => __( 'Chart: Pie', 'menu-icons' ),
264
+ 'dashicons-chart-bar' => __( 'Chart: Bar', 'menu-icons' ),
265
+ 'dashicons-chart-line' => __( 'Chart: Line', 'menu-icons' ),
266
+ 'dashicons-chart-area' => __( 'Chart: Area', 'menu-icons' ),
267
+ 'dashicons-groups' => __( 'Groups', 'menu-icons' ),
268
+ 'dashicons-businessman' => __( 'Businessman', 'menu-icons' ),
269
+ 'dashicons-id' => __( 'ID', 'menu-icons' ),
270
+ 'dashicons-id-alt' => __( 'ID #2', 'menu-icons' ),
271
+ 'dashicons-products' => __( 'Products', 'menu-icons' ),
272
+ 'dashicons-awards' => __( 'Awards', 'menu-icons' ),
273
+ 'dashicons-forms' => __( 'Forms', 'menu-icons' ),
274
+ 'dashicons-testimonial' => __( 'Testimonial', 'menu-icons' ),
275
+ 'dashicons-portfolio' => __( 'Portfolio', 'menu-icons' ),
276
+ 'dashicons-book' => __( 'Book', 'menu-icons' ),
277
+ 'dashicons-book-alt' => __( 'Book #2', 'menu-icons' ),
278
+ 'dashicons-download' => __( 'Download', 'menu-icons' ),
279
+ 'dashicons-upload' => __( 'Upload', 'menu-icons' ),
280
+ 'dashicons-backup' => __( 'Backup', 'menu-icons' ),
281
+ 'dashicons-clock' => __( 'Clock', 'menu-icons' ),
282
+ 'dashicons-lightbulb' => __( 'Lightbulb', 'menu-icons' ),
283
+ 'dashicons-desktop' => __( 'Desktop', 'menu-icons' ),
284
+ 'dashicons-tablet' => __( 'Tablet', 'menu-icons' ),
285
+ 'dashicons-smartphone' => __( 'Smartphone', 'menu-icons' ),
286
+ 'dashicons-smiley' => __( 'Smiley', 'menu-icons' ),
287
+ ),
288
+ ),
289
+ );
290
+ }
291
+ }
292
+
293
+
294
+ /**
295
+ * Register Dashicons
296
+ *
297
+ * @since 0.1.0
298
+ * @wp_hook filter menu_icons_types/9/1
299
+ * @param array $types Icon Types
300
+ * @return array
301
+ */
302
+ function _menu_icons_dashicons( $types ) {
303
+ $dashicons = new Menu_Icons_Dashicons();
304
+ return $dashicons->register( $types );
305
+ }
306
+ add_filter( 'menu_icons_types', '_menu_icons_dashicons', 9 );
includes/type-fonts.php ADDED
@@ -0,0 +1,246 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Icon fonts handler
4
+ *
5
+ * @package Menu_Icons
6
+ * @version 0.1.0
7
+ * @author Dzikri Aziz <kvcrvt@gmail.com>
8
+ */
9
+
10
+
11
+ /**
12
+ * Generic handler for icons fonts
13
+ *
14
+ * @since 0.1.0
15
+ */
16
+ abstract class Menu_Icons_Fonts {
17
+
18
+ /**
19
+ * Holds icon type
20
+ *
21
+ * @since 0.1.0
22
+ * @access protected
23
+ * @var string
24
+ */
25
+ protected $type;
26
+
27
+ /**
28
+ * Holds icon label
29
+ *
30
+ * @since 0.1.0
31
+ * @access protected
32
+ * @var string
33
+ */
34
+ protected $label;
35
+
36
+ /**
37
+ * Holds icon stylesheet URL
38
+ *
39
+ * @since 0.1.0
40
+ * @access protected
41
+ * @var string
42
+ */
43
+ protected $stylesheet;
44
+
45
+ /**
46
+ * Holds icon version
47
+ *
48
+ * @since 0.1.0
49
+ * @access protected
50
+ * @var string
51
+ */
52
+ protected $version;
53
+
54
+ /**
55
+ * Holds array key for icon value
56
+ *
57
+ * @since 0.1.0
58
+ * @access private
59
+ * @var string
60
+ */
61
+ private $_key;
62
+
63
+
64
+ /**
65
+ * Get icon names
66
+ *
67
+ * @since 0.1.0
68
+ * @return array
69
+ */
70
+ abstract function get_names();
71
+
72
+
73
+ /**
74
+ * Class constructor
75
+ *
76
+ * This simply sets $key
77
+ *
78
+ * @since 0.1.0
79
+ */
80
+ function __construct() {
81
+ $this->_key = $this->type . '-icon';
82
+
83
+ if ( is_null( $this->version ) ) {
84
+ $this->version = get_bloginfo( 'version' );
85
+ }
86
+ }
87
+
88
+
89
+ /**
90
+ * Register our type
91
+ *
92
+ * @since 0.1.0
93
+ * @param array $types Icon Types
94
+ * @return array
95
+ */
96
+ public function register( $types ) {
97
+ $props = array(
98
+ 'label' => $this->label,
99
+ 'field_cb' => array( $this, 'the_field' ),
100
+ 'front_cb' => array( $this, 'front' ),
101
+ 'stylesheet' => $this->stylesheet,
102
+ 'version' => $this->version,
103
+ );
104
+
105
+ $types[ $this->type ] = $props;
106
+
107
+ return $types;
108
+ }
109
+
110
+
111
+ /**
112
+ * Print field for icons selection
113
+ *
114
+ * @since 0.1.0
115
+ * @param int $id Menu item ID
116
+ * @param array $meta_value Current value of 'menu-icons' metadata
117
+ */
118
+ public function the_field( $id, $meta_value ) {
119
+ $current = isset( $meta_value[ $this->_key ] ) ? $meta_value[ $this->_key ] : '';
120
+ $input_id = sprintf( 'menu-icons-%d-%s', $id, $this->_key );
121
+ $input_name = sprintf( 'menu-icons[%d][%s]', $id, $this->_key );
122
+ ?>
123
+ <p class="description menu-icon-type-<?php echo esc_attr( $this->type ) ?>">
124
+ <label for="<?php echo esc_attr( $input_id ) ?>"><?php echo esc_html( $this->label ); ?></label>
125
+ <select id="<?php echo esc_attr( $input_id ) ?>" name="<?php echo esc_attr( $input_name ) ?>">
126
+ <?php printf(
127
+ '<option value=""%s>%s</option>',
128
+ selected( empty( $current ), true, false ),
129
+ esc_html__( '&mdash; Select &mdash;', 'menu-icons' )
130
+ ) ?>
131
+ <?php foreach ( $this->get_names() as $group ) : ?>
132
+ <optgroup label="<?php echo esc_attr( $group['label'] ) ?>">
133
+ <?php foreach ( $group['items'] as $value => $label ) : ?>
134
+ <?php printf(
135
+ '<option value="%s"%s>%s</option>',
136
+ esc_attr( $value ),
137
+ selected( $meta_value[ $this->_key ], $value, false ),
138
+ esc_html( $label )
139
+ ) ?>
140
+ <?php endforeach; ?>
141
+ </optgroup>
142
+ <?php endforeach; ?>
143
+ </select>
144
+ </p>
145
+ <?php
146
+ }
147
+
148
+
149
+ /**
150
+ * Front-end tasks
151
+ *
152
+ * @since 0.1.0
153
+ * @param string $type Icon type
154
+ */
155
+ public function front() {
156
+ add_filter( 'wp_nav_menu_args', array( $this, '_add_menu_item_title_filter' ) );
157
+ add_filter( 'wp_nav_menu', array( $this, '_remove_menu_item_title_filter' ) );
158
+ }
159
+
160
+
161
+ /**
162
+ * Add filter to 'the_title' hook
163
+ *
164
+ * We need to filter the menu item title but **not** regular post titles.
165
+ * Thus, we're adding the filter when `wp_nav_menu()` is called.
166
+ *
167
+ * @since 0.1.0
168
+ * @link http://codex.wordpress.org/Plugin_API/Action_Reference/wp_nav_menu_args Filter: wp_nav_menu_args/999/2
169
+ * @param array $args Not used
170
+ *
171
+ * @return array
172
+ */
173
+ public function _add_menu_item_title_filter( $args ) {
174
+ add_filter( 'the_title', array( $this, '_filter_menu_item_title' ), 999, 2 );
175
+
176
+ return $args;
177
+ }
178
+
179
+
180
+ /**
181
+ * Remove filter from 'the_title' hook
182
+ *
183
+ * Because we don't want to filter post titles, we need to remove our
184
+ * filter when `wp_nav_menu()` exits.
185
+ *
186
+ * @since 0.1.0
187
+ * @link http://codex.wordpress.org/Plugin_API/Action_Reference/wp_nav_menu Filter: wp_nav_menu/999/2
188
+ * @param array $nav_menu Not used
189
+ * @return array
190
+ */
191
+ public function _remove_menu_item_title_filter( $nav_menu ) {
192
+ remove_filter( 'the_title', array( $this, '_filter_menu_item_title' ), 999, 2 );
193
+
194
+ return $nav_menu;
195
+ }
196
+
197
+
198
+ /**
199
+ * Filter menu item titles
200
+ *
201
+ * @since 0.1.0
202
+ * @link http://codex.wordpress.org/Plugin_API/Action_Reference/the_title Filter: the_title/999/2
203
+ *
204
+ * @param string $title Menu item title
205
+ * @param int $id Menu item ID
206
+ *
207
+ * @return string
208
+ */
209
+ public function _filter_menu_item_title( $title, $id ) {
210
+ $values = array_filter( (array) get_post_meta( $id, 'menu-icons', true ) );
211
+
212
+ if ( empty( $values['type'] ) ) {
213
+ return $title;
214
+ }
215
+
216
+ if ( $values['type'] !== $this->type ) {
217
+ return $title;
218
+ }
219
+
220
+ if ( empty( $values[ $this->_key ] ) ) {
221
+ return $title;
222
+ }
223
+
224
+ $title = $this->add_icon( $title, $values );
225
+
226
+ return $title;
227
+ }
228
+
229
+
230
+ /**
231
+ * Add icon to menu title
232
+ *
233
+ * Icon types should override this method if they want to provide different markup.
234
+ *
235
+ * @since 0.1.0
236
+ * @param string $title Menu item title
237
+ * @param array $values Menu item metadata value
238
+ *
239
+ * @return string
240
+ */
241
+ protected function add_icon( $title, $values ) {
242
+ $title = sprintf( '<i class="%s %s"></i>%s', $values['type'], $values[ $this->_key ], $title );
243
+
244
+ return $title;
245
+ }
246
+ }
includes/type-genericons.php ADDED
@@ -0,0 +1,229 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Genericons
4
+ *
5
+ * @package Menu_Icons
6
+ * @version 0.1.0
7
+ * @author Dzikri Aziz <kvcrvt@gmail.com>
8
+ */
9
+
10
+ /**
11
+ * Icon type: Genericons
12
+ *
13
+ * @since 0.1.0
14
+ */
15
+ class Menu_Icons_Genericons extends Menu_Icons_Fonts {
16
+
17
+ /**
18
+ * Holds icon type
19
+ *
20
+ * @since 0.1.0
21
+ * @access protected
22
+ * @var string
23
+ */
24
+ protected $type = 'genericon';
25
+
26
+ /**
27
+ * Holds icon label
28
+ *
29
+ * @since 0.1.0
30
+ * @access protected
31
+ * @var string
32
+ */
33
+ protected $label = 'Genericons';
34
+
35
+ /**
36
+ * Holds icon version
37
+ *
38
+ * @since 0.1.0
39
+ * @access protected
40
+ * @var string
41
+ */
42
+ protected $version = '3.0.3';
43
+
44
+
45
+ /**
46
+ * Class constructor
47
+ *
48
+ * We need to override the parent's to set our stylesheet URL
49
+ *
50
+ * @since 0.1.0
51
+ * @param array $types Icon Types
52
+ * @return array
53
+ */
54
+ public function __construct() {
55
+ $this->stylesheet = Menu_Icons::get( 'url' ) . 'css/genericons.css';
56
+ parent::__construct();
57
+ }
58
+
59
+
60
+ /**
61
+ * Genericons's icons names
62
+ *
63
+ * @since 0.1.0
64
+ * @return array
65
+ */
66
+ public function get_names() {
67
+ return array(
68
+ array(
69
+ 'label' => __( 'Post Formats', 'menu-icons' ),
70
+ 'items' => array(
71
+ 'genericon-standard' => __( 'Standard', 'menu-icons' ),
72
+ 'genericon-aside' => __( 'Aside', 'menu-icons' ),
73
+ 'genericon-image' => __( 'Image', 'menu-icons' ),
74
+ 'genericon-gallery' => __( 'Gallery', 'menu-icons' ),
75
+ 'genericon-video' => __( 'Video', 'menu-icons' ),
76
+ 'genericon-status' => __( 'Status', 'menu-icons' ),
77
+ 'genericon-quote' => __( 'Quote', 'menu-icons' ),
78
+ 'genericon-link' => __( 'Link', 'menu-icons' ),
79
+ 'genericon-chat' => __( 'Chat', 'menu-icons' ),
80
+ 'genericon-audio' => __( 'Audio', 'menu-icons' ),
81
+ ),
82
+ ),
83
+ array(
84
+ 'label' => __( 'Meta', 'menu-icons' ),
85
+ 'items' => array(
86
+ 'genericon-comment' => __( 'Comment', 'menu-icons' ),
87
+ 'genericon-category' => __( 'Category', 'menu-icons' ),
88
+ 'genericon-tag' => __( 'Tag', 'menu-icons' ),
89
+ 'genericon-time' => __( 'Time', 'menu-icons' ),
90
+ 'genericon-user' => __( 'User', 'menu-icons' ),
91
+ 'genericon-day' => __( 'Day', 'menu-icons' ),
92
+ 'genericon-week' => __( 'Week', 'menu-icons' ),
93
+ 'genericon-month' => __( 'Month', 'menu-icons' ),
94
+ 'genericon-pinned' => __( 'Pinned', 'menu-icons' ),
95
+ ),
96
+ ),
97
+ array(
98
+ 'label' => __( 'Social', 'menu-icons' ),
99
+ 'items' => array(
100
+ 'genericon-codepen' => 'CodePen',
101
+ 'genericon-digg' => 'Digg',
102
+ 'genericon-dribbble' => 'Dribbble',
103
+ 'genericon-dropbox' => 'DropBox',
104
+ 'genericon-facebook' => 'Facebook',
105
+ 'genericon-facebook-alt' => sprintf( __( '%s (alt.)', 'menu-icons' ), 'Facebook' ),
106
+ 'genericon-flickr' => 'Flickr',
107
+ 'genericon-github' => 'GitHub',
108
+ 'genericon-googleplus' => 'Google+',
109
+ 'genericon-googleplus-alt' => sprintf( __( '%s (alt.)', 'menu-icons' ), 'Google+' ),
110
+ 'genericon-instagram' => 'Instagram',
111
+ 'genericon-linkedin' => 'LinkedIn',
112
+ 'genericon-linkedin-alt' => sprintf( __( '%s (alt.)', 'menu-icons' ), 'LinkedIn' ),
113
+ 'genericon-path' => 'Path',
114
+ 'genericon-pinterest' => 'Pinterest',
115
+ 'genericon-pinterest-alt' => sprintf( __( '%s (alt.)', 'menu-icons' ), 'Pinterest' ),
116
+ 'genericon-pocket' => 'Pocket',
117
+ 'genericon-polldaddy' => 'PollDaddy',
118
+ 'genericon-reddit' => 'Reddit',
119
+ 'genericon-skype' => 'Skype',
120
+ 'genericon-stumbleupon' => 'StumbleUpon',
121
+ 'genericon-tumblr' => 'Tumblr',
122
+ 'genericon-twitter' => 'Twitter',
123
+ 'genericon-vimeo' => 'Vimeo',
124
+ 'genericon-wordpress' => 'WordPress',
125
+ 'genericon-youtube' => 'Youtube',
126
+ ),
127
+ ),
128
+ array(
129
+ 'label' => __( 'Misc.', 'menu-icons' ),
130
+ 'items' => array(
131
+ 'genericon-404' => __( '404', 'menu-icons' ),
132
+ 'genericon-attachment' => __( 'Attachment', 'menu-icons' ),
133
+ 'genericon-bold' => __( 'Bold', 'menu-icons' ),
134
+ 'genericon-book' => __( 'Book', 'menu-icons' ),
135
+ 'genericon-cart' => __( 'Cart', 'menu-icons' ),
136
+ 'genericon-checkmark' => __( 'Checkmark', 'menu-icons' ),
137
+ 'genericon-close' => __( 'Close', 'menu-icons' ),
138
+ 'genericon-close-alt' => __( 'Close alt', 'menu-icons' ),
139
+ 'genericon-cloud' => __( 'Cloud', 'menu-icons' ),
140
+ 'genericon-cloud-download' => __( 'Cloud download', 'menu-icons' ),
141
+ 'genericon-cloud-upload' => __( 'Cloud upload', 'menu-icons' ),
142
+ 'genericon-code' => __( 'Code', 'menu-icons' ),
143
+ 'genericon-cog' => __( 'Cog', 'menu-icons' ),
144
+ 'genericon-collapse' => __( 'Collapse', 'menu-icons' ),
145
+ 'genericon-document' => __( 'Document', 'menu-icons' ),
146
+ 'genericon-dot' => __( 'Dot', 'menu-icons' ),
147
+ 'genericon-downarrow' => __( 'Downarrow', 'menu-icons' ),
148
+ 'genericon-draggable' => __( 'Draggable', 'menu-icons' ),
149
+ 'genericon-dropdown' => __( 'Dropdown', 'menu-icons' ),
150
+ 'genericon-dropdown-left' => __( 'Dropdown left', 'menu-icons' ),
151
+ 'genericon-edit' => __( 'Edit', 'menu-icons' ),
152
+ 'genericon-expand' => __( 'Expand', 'menu-icons' ),
153
+ 'genericon-external' => __( 'External', 'menu-icons' ),
154
+ 'genericon-fastforward' => __( 'Fastforward', 'menu-icons' ),
155
+ 'genericon-feed' => __( 'Feed', 'menu-icons' ),
156
+ 'genericon-flag' => __( 'Flag', 'menu-icons' ),
157
+ 'genericon-fullscreen' => __( 'Fullscreen', 'menu-icons' ),
158
+ 'genericon-heart' => __( 'Heart', 'menu-icons' ),
159
+ 'genericon-help' => __( 'Help', 'menu-icons' ),
160
+ 'genericon-hide' => __( 'Hide', 'menu-icons' ),
161
+ 'genericon-home' => __( 'Home', 'menu-icons' ),
162
+ 'genericon-info' => __( 'Info', 'menu-icons' ),
163
+ 'genericon-italic' => __( 'Italic', 'menu-icons' ),
164
+ 'genericon-key' => __( 'Key', 'menu-icons' ),
165
+ 'genericon-leftarrow' => __( 'Leftarrow', 'menu-icons' ),
166
+ 'genericon-location' => __( 'Location', 'menu-icons' ),
167
+ 'genericon-lock' => __( 'Lock', 'menu-icons' ),
168
+ 'genericon-mail' => __( 'Mail', 'menu-icons' ),
169
+ 'genericon-maximize' => __( 'Maximize', 'menu-icons' ),
170
+ 'genericon-menu' => __( 'Menu', 'menu-icons' ),
171
+ 'genericon-minimize' => __( 'Minimize', 'menu-icons' ),
172
+ 'genericon-next' => __( 'Next', 'menu-icons' ),
173
+ 'genericon-notice' => __( 'Notice', 'menu-icons' ),
174
+ 'genericon-pause' => __( 'Pause', 'menu-icons' ),
175
+ 'genericon-phone' => __( 'Phone', 'menu-icons' ),
176
+ 'genericon-picture' => __( 'Picture', 'menu-icons' ),
177
+ 'genericon-play' => __( 'Play', 'menu-icons' ),
178
+ 'genericon-plugin' => __( 'Plugin', 'menu-icons' ),
179
+ 'genericon-portfolio' => __( 'Portfolio', 'menu-icons' ),
180
+ 'genericon-previous' => __( 'Previous', 'menu-icons' ),
181
+ 'genericon-print' => __( 'Print', 'menu-icons' ),
182
+ 'genericon-refresh' => __( 'Refresh', 'menu-icons' ),
183
+ 'genericon-reply' => __( 'Reply', 'menu-icons' ),
184
+ 'genericon-reply-alt' => __( 'Reply alt', 'menu-icons' ),
185
+ 'genericon-reply-single' => __( 'Reply single', 'menu-icons' ),
186
+ 'genericon-rewind' => __( 'Rewind', 'menu-icons' ),
187
+ 'genericon-rightarrow' => __( 'Rightarrow', 'menu-icons' ),
188
+ 'genericon-search' => __( 'Search', 'menu-icons' ),
189
+ 'genericon-send-to-phone' => __( 'Send to', 'menu-icons' ),
190
+ 'genericon-send-to-tablet' => __( 'Send to', 'menu-icons' ),
191
+ 'genericon-share' => __( 'Share', 'menu-icons' ),
192
+ 'genericon-show' => __( 'Show', 'menu-icons' ),
193
+ 'genericon-skip-ahead' => __( 'Skip ahead', 'menu-icons' ),
194
+ 'genericon-skip-back' => __( 'Skip back', 'menu-icons' ),
195
+ 'genericon-spam' => __( 'Spam', 'menu-icons' ),
196
+ 'genericon-star' => __( 'Star', 'menu-icons' ),
197
+ 'genericon-stop' => __( 'Stop', 'menu-icons' ),
198
+ 'genericon-subscribe' => __( 'Subscribe', 'menu-icons' ),
199
+ 'genericon-subscribed' => __( 'Subscribed', 'menu-icons' ),
200
+ 'genericon-summary' => __( 'Summary', 'menu-icons' ),
201
+ 'genericon-tablet' => __( 'Tablet', 'menu-icons' ),
202
+ 'genericon-top' => __( 'Top', 'menu-icons' ),
203
+ 'genericon-trash' => __( 'Trash', 'menu-icons' ),
204
+ 'genericon-unapprove' => __( 'Unapprove', 'menu-icons' ),
205
+ 'genericon-unsubscribe' => __( 'Unsubscribe', 'menu-icons' ),
206
+ 'genericon-unzoom' => __( 'Unzoom', 'menu-icons' ),
207
+ 'genericon-uparrow' => __( 'Uparrow', 'menu-icons' ),
208
+ 'genericon-warning' => __( 'Warning', 'menu-icons' ),
209
+ 'genericon-zoom' => __( 'Zoom', 'menu-icons' ),
210
+ ),
211
+ ),
212
+ );
213
+ }
214
+ }
215
+
216
+
217
+ /**
218
+ * Register Genericons
219
+ *
220
+ * @since 0.1.0
221
+ * @wp_hook filter menu_icons_types/9/1
222
+ * @param array $types Icon Types
223
+ * @return array
224
+ */
225
+ function _menu_icons_genericons( $types ) {
226
+ $dashicons = new Menu_Icons_Genericons();
227
+ return $dashicons->register( $types );
228
+ }
229
+ add_filter( 'menu_icons_types', '_menu_icons_genericons', 9 );
languages/menu-icons.pot ADDED
@@ -0,0 +1,1009 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2014 Menu Icons
2
+ # This file is distributed under the same license as the Menu Icons package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Menu Icons 0.1.0\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/menu-icons\n"
7
+ "POT-Creation-Date: 2014-02-18 18:23:34+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: 2014-MO-DA HO:MI+ZONE\n"
12
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+
15
+ #: includes/admin.php:41 includes/type-fonts.php:128
16
+ msgid "&mdash; Select &mdash;"
17
+ msgstr ""
18
+
19
+ #: includes/admin.php:88
20
+ msgid "Icon type"
21
+ msgstr ""
22
+
23
+ #: includes/admin.php:134
24
+ msgid "Icon"
25
+ msgstr ""
26
+
27
+ #: includes/menu-item-custom-fields/doc/menu-item-custom-fields-example.php:86
28
+ #: includes/menu-item-custom-fields/doc/menu-item-custom-fields-example.php:107
29
+ msgid "Custom Field"
30
+ msgstr ""
31
+
32
+ #: includes/type-dashicons.php:55
33
+ msgid "Admin"
34
+ msgstr ""
35
+
36
+ #: includes/type-dashicons.php:57
37
+ msgid "Appearance"
38
+ msgstr ""
39
+
40
+ #: includes/type-dashicons.php:58 includes/type-genericons.php:144
41
+ msgid "Collapse"
42
+ msgstr ""
43
+
44
+ #: includes/type-dashicons.php:59 includes/type-dashicons.php:93
45
+ msgid "Comments"
46
+ msgstr ""
47
+
48
+ #: includes/type-dashicons.php:60
49
+ msgid "Dashboard"
50
+ msgstr ""
51
+
52
+ #: includes/type-dashicons.php:61
53
+ msgid "Generic"
54
+ msgstr ""
55
+
56
+ #: includes/type-dashicons.php:62 includes/type-genericons.php:161
57
+ msgid "Home"
58
+ msgstr ""
59
+
60
+ #: includes/type-dashicons.php:63
61
+ msgid "Media"
62
+ msgstr ""
63
+
64
+ #: includes/type-dashicons.php:64 includes/type-genericons.php:170
65
+ msgid "Menu"
66
+ msgstr ""
67
+
68
+ #: includes/type-dashicons.php:65
69
+ msgid "Network"
70
+ msgstr ""
71
+
72
+ #: includes/type-dashicons.php:66
73
+ msgid "Page"
74
+ msgstr ""
75
+
76
+ #: includes/type-dashicons.php:67
77
+ msgid "Plugins"
78
+ msgstr ""
79
+
80
+ #: includes/type-dashicons.php:68
81
+ msgid "Settings"
82
+ msgstr ""
83
+
84
+ #: includes/type-dashicons.php:69
85
+ msgid "Site"
86
+ msgstr ""
87
+
88
+ #: includes/type-dashicons.php:70
89
+ msgid "Tools"
90
+ msgstr ""
91
+
92
+ #: includes/type-dashicons.php:71
93
+ msgid "Users"
94
+ msgstr ""
95
+
96
+ #: includes/type-dashicons.php:75 includes/type-genericons.php:69
97
+ msgid "Post Formats"
98
+ msgstr ""
99
+
100
+ #: includes/type-dashicons.php:77 includes/type-genericons.php:71
101
+ msgid "Standard"
102
+ msgstr ""
103
+
104
+ #: includes/type-dashicons.php:78 includes/type-genericons.php:72
105
+ msgid "Aside"
106
+ msgstr ""
107
+
108
+ #: includes/type-dashicons.php:79 includes/type-genericons.php:73
109
+ msgid "Image"
110
+ msgstr ""
111
+
112
+ #: includes/type-dashicons.php:80 includes/type-dashicons.php:134
113
+ #: includes/type-dashicons.php:253 includes/type-genericons.php:75
114
+ msgid "Video"
115
+ msgstr ""
116
+
117
+ #: includes/type-dashicons.php:81 includes/type-genericons.php:80
118
+ msgid "Audio"
119
+ msgstr ""
120
+
121
+ #: includes/type-dashicons.php:82 includes/type-dashicons.php:120
122
+ #: includes/type-genericons.php:77
123
+ msgid "Quote"
124
+ msgstr ""
125
+
126
+ #: includes/type-dashicons.php:83 includes/type-genericons.php:74
127
+ msgid "Gallery"
128
+ msgstr ""
129
+
130
+ #: includes/type-dashicons.php:84
131
+ msgid "Links"
132
+ msgstr ""
133
+
134
+ #: includes/type-dashicons.php:85 includes/type-genericons.php:76
135
+ msgid "Status"
136
+ msgstr ""
137
+
138
+ #: includes/type-dashicons.php:86 includes/type-genericons.php:79
139
+ msgid "Chat"
140
+ msgstr ""
141
+
142
+ #: includes/type-dashicons.php:90
143
+ msgid "Welcome Screen"
144
+ msgstr ""
145
+
146
+ #: includes/type-dashicons.php:92
147
+ msgid "Add page"
148
+ msgstr ""
149
+
150
+ #: includes/type-dashicons.php:94
151
+ msgid "Edit page"
152
+ msgstr ""
153
+
154
+ #: includes/type-dashicons.php:95
155
+ msgid "Learn More"
156
+ msgstr ""
157
+
158
+ #: includes/type-dashicons.php:96
159
+ msgid "View Site"
160
+ msgstr ""
161
+
162
+ #: includes/type-dashicons.php:97
163
+ msgid "Widgets"
164
+ msgstr ""
165
+
166
+ #: includes/type-dashicons.php:98
167
+ msgid "Write Blog"
168
+ msgstr ""
169
+
170
+ #: includes/type-dashicons.php:102 includes/type-dashicons.php:156
171
+ #: includes/type-genericons.php:151
172
+ msgid "Edit"
173
+ msgstr ""
174
+
175
+ #: includes/type-dashicons.php:104
176
+ msgid "Crop"
177
+ msgstr ""
178
+
179
+ #: includes/type-dashicons.php:105
180
+ msgid "Rotate Left"
181
+ msgstr ""
182
+
183
+ #: includes/type-dashicons.php:106
184
+ msgid "Rotate Right"
185
+ msgstr ""
186
+
187
+ #: includes/type-dashicons.php:107
188
+ msgid "Flip Vertical"
189
+ msgstr ""
190
+
191
+ #: includes/type-dashicons.php:108
192
+ msgid "Flip Horizontal"
193
+ msgstr ""
194
+
195
+ #: includes/type-dashicons.php:109
196
+ msgid "Undo"
197
+ msgstr ""
198
+
199
+ #: includes/type-dashicons.php:110
200
+ msgid "Redo"
201
+ msgstr ""
202
+
203
+ #: includes/type-dashicons.php:114
204
+ msgid "Editor"
205
+ msgstr ""
206
+
207
+ #: includes/type-dashicons.php:116 includes/type-genericons.php:133
208
+ msgid "Bold"
209
+ msgstr ""
210
+
211
+ #: includes/type-dashicons.php:117 includes/type-genericons.php:163
212
+ msgid "Italic"
213
+ msgstr ""
214
+
215
+ #: includes/type-dashicons.php:118
216
+ msgid "Unordered List"
217
+ msgstr ""
218
+
219
+ #: includes/type-dashicons.php:119
220
+ msgid "Ordered List"
221
+ msgstr ""
222
+
223
+ #: includes/type-dashicons.php:121 includes/type-dashicons.php:147
224
+ msgid "Align Left"
225
+ msgstr ""
226
+
227
+ #: includes/type-dashicons.php:122 includes/type-dashicons.php:149
228
+ msgid "Align Center"
229
+ msgstr ""
230
+
231
+ #: includes/type-dashicons.php:123 includes/type-dashicons.php:148
232
+ msgid "Align Right"
233
+ msgstr ""
234
+
235
+ #: includes/type-dashicons.php:124
236
+ msgid "Insert More"
237
+ msgstr ""
238
+
239
+ #: includes/type-dashicons.php:125
240
+ msgid "Spell Check"
241
+ msgstr ""
242
+
243
+ #: includes/type-dashicons.php:126
244
+ msgid "Distraction-free"
245
+ msgstr ""
246
+
247
+ #: includes/type-dashicons.php:127
248
+ msgid "Kitchensink"
249
+ msgstr ""
250
+
251
+ #: includes/type-dashicons.php:128
252
+ msgid "Underline"
253
+ msgstr ""
254
+
255
+ #: includes/type-dashicons.php:129
256
+ msgid "Justify"
257
+ msgstr ""
258
+
259
+ #: includes/type-dashicons.php:130
260
+ msgid "Text Color"
261
+ msgstr ""
262
+
263
+ #: includes/type-dashicons.php:131
264
+ msgid "Paste Word"
265
+ msgstr ""
266
+
267
+ #: includes/type-dashicons.php:132
268
+ msgid "Paste Text"
269
+ msgstr ""
270
+
271
+ #: includes/type-dashicons.php:133
272
+ msgid "Clear Formatting"
273
+ msgstr ""
274
+
275
+ #: includes/type-dashicons.php:135
276
+ msgid "Custom Characters"
277
+ msgstr ""
278
+
279
+ #: includes/type-dashicons.php:136
280
+ msgid "Indent"
281
+ msgstr ""
282
+
283
+ #: includes/type-dashicons.php:137
284
+ msgid "Outdent"
285
+ msgstr ""
286
+
287
+ #: includes/type-dashicons.php:138 includes/type-genericons.php:159
288
+ msgid "Help"
289
+ msgstr ""
290
+
291
+ #: includes/type-dashicons.php:139
292
+ msgid "Strikethrough"
293
+ msgstr ""
294
+
295
+ #: includes/type-dashicons.php:140
296
+ msgid "Unlink"
297
+ msgstr ""
298
+
299
+ #: includes/type-dashicons.php:141
300
+ msgid "RTL"
301
+ msgstr ""
302
+
303
+ #: includes/type-dashicons.php:145
304
+ msgid "Post"
305
+ msgstr ""
306
+
307
+ #: includes/type-dashicons.php:150
308
+ msgid "Align None"
309
+ msgstr ""
310
+
311
+ #: includes/type-dashicons.php:151 includes/type-genericons.php:167
312
+ msgid "Lock"
313
+ msgstr ""
314
+
315
+ #: includes/type-dashicons.php:152
316
+ msgid "Calendar"
317
+ msgstr ""
318
+
319
+ #: includes/type-dashicons.php:153
320
+ msgid "Visibility"
321
+ msgstr ""
322
+
323
+ #: includes/type-dashicons.php:154
324
+ msgid "Post Status"
325
+ msgstr ""
326
+
327
+ #: includes/type-dashicons.php:155
328
+ msgid "Post Trash"
329
+ msgstr ""
330
+
331
+ #: includes/type-dashicons.php:157 includes/type-genericons.php:203
332
+ msgid "Trash"
333
+ msgstr ""
334
+
335
+ #: includes/type-dashicons.php:161
336
+ msgid "Sorting"
337
+ msgstr ""
338
+
339
+ #: includes/type-dashicons.php:163
340
+ msgid "Arrow: Up"
341
+ msgstr ""
342
+
343
+ #: includes/type-dashicons.php:164
344
+ msgid "Arrow: Down"
345
+ msgstr ""
346
+
347
+ #: includes/type-dashicons.php:165
348
+ msgid "Arrow: Left"
349
+ msgstr ""
350
+
351
+ #: includes/type-dashicons.php:166
352
+ msgid "Arrow: Right"
353
+ msgstr ""
354
+
355
+ #: includes/type-dashicons.php:167
356
+ msgid "Arrow: Up #2"
357
+ msgstr ""
358
+
359
+ #: includes/type-dashicons.php:168
360
+ msgid "Arrow: Down #2"
361
+ msgstr ""
362
+
363
+ #: includes/type-dashicons.php:169
364
+ msgid "Arrow: Left #2"
365
+ msgstr ""
366
+
367
+ #: includes/type-dashicons.php:170
368
+ msgid "Arrow: Right #2"
369
+ msgstr ""
370
+
371
+ #: includes/type-dashicons.php:171
372
+ msgid "Arrow: Up #3"
373
+ msgstr ""
374
+
375
+ #: includes/type-dashicons.php:172
376
+ msgid "Arrow: Down #3"
377
+ msgstr ""
378
+
379
+ #: includes/type-dashicons.php:173
380
+ msgid "Arrow: Left #3"
381
+ msgstr ""
382
+
383
+ #: includes/type-dashicons.php:174
384
+ msgid "Arrow: Right #3"
385
+ msgstr ""
386
+
387
+ #: includes/type-dashicons.php:175
388
+ msgid "Left-Right"
389
+ msgstr ""
390
+
391
+ #: includes/type-dashicons.php:176
392
+ msgid "Sort"
393
+ msgstr ""
394
+
395
+ #: includes/type-dashicons.php:177
396
+ msgid "List View"
397
+ msgstr ""
398
+
399
+ #: includes/type-dashicons.php:178
400
+ msgid "Excerpt View"
401
+ msgstr ""
402
+
403
+ #: includes/type-dashicons.php:182 includes/type-genericons.php:98
404
+ msgid "Social"
405
+ msgstr ""
406
+
407
+ #: includes/type-dashicons.php:184 includes/type-genericons.php:191
408
+ msgid "Share"
409
+ msgstr ""
410
+
411
+ #: includes/type-dashicons.php:185
412
+ msgid "Share #2"
413
+ msgstr ""
414
+
415
+ #: includes/type-dashicons.php:186
416
+ msgid "Share #3"
417
+ msgstr ""
418
+
419
+ #: includes/type-dashicons.php:187
420
+ msgid "Share #4"
421
+ msgstr ""
422
+
423
+ #: includes/type-dashicons.php:189
424
+ msgid "RSS"
425
+ msgstr ""
426
+
427
+ #: includes/type-dashicons.php:190
428
+ msgid "Email"
429
+ msgstr ""
430
+
431
+ #: includes/type-dashicons.php:191
432
+ msgid "Email #2"
433
+ msgstr ""
434
+
435
+ #: includes/type-dashicons.php:193 includes/type-dashicons.php:211
436
+ msgid "%s #2"
437
+ msgstr ""
438
+
439
+ #: includes/type-dashicons.php:194
440
+ msgid "Networking"
441
+ msgstr ""
442
+
443
+ #: includes/type-dashicons.php:199
444
+ msgid "Jobs"
445
+ msgstr ""
446
+
447
+ #: includes/type-dashicons.php:201
448
+ msgid "Art"
449
+ msgstr ""
450
+
451
+ #: includes/type-dashicons.php:202
452
+ msgid "Hammer"
453
+ msgstr ""
454
+
455
+ #: includes/type-dashicons.php:203
456
+ msgid "Migrate"
457
+ msgstr ""
458
+
459
+ #: includes/type-dashicons.php:204
460
+ msgid "Performance"
461
+ msgstr ""
462
+
463
+ #: includes/type-dashicons.php:208
464
+ msgid "Internal/Products"
465
+ msgstr ""
466
+
467
+ #: includes/type-dashicons.php:213
468
+ msgid "Update"
469
+ msgstr ""
470
+
471
+ #: includes/type-dashicons.php:214
472
+ msgid "Screen Options"
473
+ msgstr ""
474
+
475
+ #: includes/type-dashicons.php:215 includes/type-genericons.php:162
476
+ msgid "Info"
477
+ msgstr ""
478
+
479
+ #: includes/type-dashicons.php:216 includes/type-genericons.php:135
480
+ msgid "Cart"
481
+ msgstr ""
482
+
483
+ #: includes/type-dashicons.php:217
484
+ msgid "Feedback"
485
+ msgstr ""
486
+
487
+ #: includes/type-dashicons.php:218 includes/type-genericons.php:139
488
+ msgid "Cloud"
489
+ msgstr ""
490
+
491
+ #: includes/type-dashicons.php:219
492
+ msgid "Translation"
493
+ msgstr ""
494
+
495
+ #: includes/type-dashicons.php:223
496
+ msgid "Taxonomies"
497
+ msgstr ""
498
+
499
+ #: includes/type-dashicons.php:225 includes/type-genericons.php:88
500
+ msgid "Tag"
501
+ msgstr ""
502
+
503
+ #: includes/type-dashicons.php:226 includes/type-genericons.php:87
504
+ msgid "Category"
505
+ msgstr ""
506
+
507
+ #: includes/type-dashicons.php:230
508
+ msgid "Alerts/Notifications"
509
+ msgstr ""
510
+
511
+ #: includes/type-dashicons.php:232
512
+ msgid "Yes"
513
+ msgstr ""
514
+
515
+ #: includes/type-dashicons.php:233
516
+ msgid "No"
517
+ msgstr ""
518
+
519
+ #: includes/type-dashicons.php:234
520
+ msgid "No #2"
521
+ msgstr ""
522
+
523
+ #: includes/type-dashicons.php:235
524
+ msgid "Plus"
525
+ msgstr ""
526
+
527
+ #: includes/type-dashicons.php:236
528
+ msgid "Minus"
529
+ msgstr ""
530
+
531
+ #: includes/type-dashicons.php:237
532
+ msgid "Dismiss"
533
+ msgstr ""
534
+
535
+ #: includes/type-dashicons.php:238
536
+ msgid "Marker"
537
+ msgstr ""
538
+
539
+ #: includes/type-dashicons.php:239
540
+ msgid "Star: Filled"
541
+ msgstr ""
542
+
543
+ #: includes/type-dashicons.php:240
544
+ msgid "Star: Half"
545
+ msgstr ""
546
+
547
+ #: includes/type-dashicons.php:241
548
+ msgid "Star: Empty"
549
+ msgstr ""
550
+
551
+ #: includes/type-dashicons.php:242 includes/type-genericons.php:156
552
+ msgid "Flag"
553
+ msgstr ""
554
+
555
+ #: includes/type-dashicons.php:246
556
+ msgid "Misc./Post Types"
557
+ msgstr ""
558
+
559
+ #: includes/type-dashicons.php:248 includes/type-genericons.php:166
560
+ msgid "Location"
561
+ msgstr ""
562
+
563
+ #: includes/type-dashicons.php:249
564
+ msgid "Location #2"
565
+ msgstr ""
566
+
567
+ #: includes/type-dashicons.php:250
568
+ msgid "Camera"
569
+ msgstr ""
570
+
571
+ #: includes/type-dashicons.php:251
572
+ msgid "Images"
573
+ msgstr ""
574
+
575
+ #: includes/type-dashicons.php:252
576
+ msgid "Images #2"
577
+ msgstr ""
578
+
579
+ #: includes/type-dashicons.php:254
580
+ msgid "Video #2"
581
+ msgstr ""
582
+
583
+ #: includes/type-dashicons.php:255
584
+ msgid "Video #3"
585
+ msgstr ""
586
+
587
+ #: includes/type-dashicons.php:256
588
+ msgid "Vault"
589
+ msgstr ""
590
+
591
+ #: includes/type-dashicons.php:257
592
+ msgid "Shield"
593
+ msgstr ""
594
+
595
+ #: includes/type-dashicons.php:258
596
+ msgid "Shield #2"
597
+ msgstr ""
598
+
599
+ #: includes/type-dashicons.php:259
600
+ msgid "S.O.S."
601
+ msgstr ""
602
+
603
+ #: includes/type-dashicons.php:260 includes/type-genericons.php:188
604
+ msgid "Search"
605
+ msgstr ""
606
+
607
+ #: includes/type-dashicons.php:261
608
+ msgid "Slides"
609
+ msgstr ""
610
+
611
+ #: includes/type-dashicons.php:262
612
+ msgid "Analytics"
613
+ msgstr ""
614
+
615
+ #: includes/type-dashicons.php:263
616
+ msgid "Chart: Pie"
617
+ msgstr ""
618
+
619
+ #: includes/type-dashicons.php:264
620
+ msgid "Chart: Bar"
621
+ msgstr ""
622
+
623
+ #: includes/type-dashicons.php:265
624
+ msgid "Chart: Line"
625
+ msgstr ""
626
+
627
+ #: includes/type-dashicons.php:266
628
+ msgid "Chart: Area"
629
+ msgstr ""
630
+
631
+ #: includes/type-dashicons.php:267
632
+ msgid "Groups"
633
+ msgstr ""
634
+
635
+ #: includes/type-dashicons.php:268
636
+ msgid "Businessman"
637
+ msgstr ""
638
+
639
+ #: includes/type-dashicons.php:269
640
+ msgid "ID"
641
+ msgstr ""
642
+
643
+ #: includes/type-dashicons.php:270
644
+ msgid "ID #2"
645
+ msgstr ""
646
+
647
+ #: includes/type-dashicons.php:271
648
+ msgid "Products"
649
+ msgstr ""
650
+
651
+ #: includes/type-dashicons.php:272
652
+ msgid "Awards"
653
+ msgstr ""
654
+
655
+ #: includes/type-dashicons.php:273
656
+ msgid "Forms"
657
+ msgstr ""
658
+
659
+ #: includes/type-dashicons.php:274
660
+ msgid "Testimonial"
661
+ msgstr ""
662
+
663
+ #: includes/type-dashicons.php:275 includes/type-genericons.php:179
664
+ msgid "Portfolio"
665
+ msgstr ""
666
+
667
+ #: includes/type-dashicons.php:276 includes/type-genericons.php:134
668
+ msgid "Book"
669
+ msgstr ""
670
+
671
+ #: includes/type-dashicons.php:277
672
+ msgid "Book #2"
673
+ msgstr ""
674
+
675
+ #: includes/type-dashicons.php:278
676
+ msgid "Download"
677
+ msgstr ""
678
+
679
+ #: includes/type-dashicons.php:279
680
+ msgid "Upload"
681
+ msgstr ""
682
+
683
+ #: includes/type-dashicons.php:280
684
+ msgid "Backup"
685
+ msgstr ""
686
+
687
+ #: includes/type-dashicons.php:281
688
+ msgid "Clock"
689
+ msgstr ""
690
+
691
+ #: includes/type-dashicons.php:282
692
+ msgid "Lightbulb"
693
+ msgstr ""
694
+
695
+ #: includes/type-dashicons.php:283
696
+ msgid "Desktop"
697
+ msgstr ""
698
+
699
+ #: includes/type-dashicons.php:284 includes/type-genericons.php:201
700
+ msgid "Tablet"
701
+ msgstr ""
702
+
703
+ #: includes/type-dashicons.php:285
704
+ msgid "Smartphone"
705
+ msgstr ""
706
+
707
+ #: includes/type-dashicons.php:286
708
+ msgid "Smiley"
709
+ msgstr ""
710
+
711
+ #: includes/type-genericons.php:78
712
+ msgid "Link"
713
+ msgstr ""
714
+
715
+ #: includes/type-genericons.php:84
716
+ msgid "Meta"
717
+ msgstr ""
718
+
719
+ #: includes/type-genericons.php:86
720
+ msgid "Comment"
721
+ msgstr ""
722
+
723
+ #: includes/type-genericons.php:89
724
+ msgid "Time"
725
+ msgstr ""
726
+
727
+ #: includes/type-genericons.php:90
728
+ msgid "User"
729
+ msgstr ""
730
+
731
+ #: includes/type-genericons.php:91
732
+ msgid "Day"
733
+ msgstr ""
734
+
735
+ #: includes/type-genericons.php:92
736
+ msgid "Week"
737
+ msgstr ""
738
+
739
+ #: includes/type-genericons.php:93
740
+ msgid "Month"
741
+ msgstr ""
742
+
743
+ #: includes/type-genericons.php:94
744
+ msgid "Pinned"
745
+ msgstr ""
746
+
747
+ #: includes/type-genericons.php:105 includes/type-genericons.php:109
748
+ #: includes/type-genericons.php:112 includes/type-genericons.php:115
749
+ msgid "%s (alt.)"
750
+ msgstr ""
751
+
752
+ #: includes/type-genericons.php:129
753
+ msgid "Misc."
754
+ msgstr ""
755
+
756
+ #: includes/type-genericons.php:131
757
+ msgid "404"
758
+ msgstr ""
759
+
760
+ #: includes/type-genericons.php:132
761
+ msgid "Attachment"
762
+ msgstr ""
763
+
764
+ #: includes/type-genericons.php:136
765
+ msgid "Checkmark"
766
+ msgstr ""
767
+
768
+ #: includes/type-genericons.php:137
769
+ msgid "Close"
770
+ msgstr ""
771
+
772
+ #: includes/type-genericons.php:138
773
+ msgid "Close alt"
774
+ msgstr ""
775
+
776
+ #: includes/type-genericons.php:140
777
+ msgid "Cloud download"
778
+ msgstr ""
779
+
780
+ #: includes/type-genericons.php:141
781
+ msgid "Cloud upload"
782
+ msgstr ""
783
+
784
+ #: includes/type-genericons.php:142
785
+ msgid "Code"
786
+ msgstr ""
787
+
788
+ #: includes/type-genericons.php:143
789
+ msgid "Cog"
790
+ msgstr ""
791
+
792
+ #: includes/type-genericons.php:145
793
+ msgid "Document"
794
+ msgstr ""
795
+
796
+ #: includes/type-genericons.php:146
797
+ msgid "Dot"
798
+ msgstr ""
799
+
800
+ #: includes/type-genericons.php:147
801
+ msgid "Downarrow"
802
+ msgstr ""
803
+
804
+ #: includes/type-genericons.php:148
805
+ msgid "Draggable"
806
+ msgstr ""
807
+
808
+ #: includes/type-genericons.php:149
809
+ msgid "Dropdown"
810
+ msgstr ""
811
+
812
+ #: includes/type-genericons.php:150
813
+ msgid "Dropdown left"
814
+ msgstr ""
815
+
816
+ #: includes/type-genericons.php:152
817
+ msgid "Expand"
818
+ msgstr ""
819
+
820
+ #: includes/type-genericons.php:153
821
+ msgid "External"
822
+ msgstr ""
823
+
824
+ #: includes/type-genericons.php:154
825
+ msgid "Fastforward"
826
+ msgstr ""
827
+
828
+ #: includes/type-genericons.php:155
829
+ msgid "Feed"
830
+ msgstr ""
831
+
832
+ #: includes/type-genericons.php:157
833
+ msgid "Fullscreen"
834
+ msgstr ""
835
+
836
+ #: includes/type-genericons.php:158
837
+ msgid "Heart"
838
+ msgstr ""
839
+
840
+ #: includes/type-genericons.php:160
841
+ msgid "Hide"
842
+ msgstr ""
843
+
844
+ #: includes/type-genericons.php:164
845
+ msgid "Key"
846
+ msgstr ""
847
+
848
+ #: includes/type-genericons.php:165
849
+ msgid "Leftarrow"
850
+ msgstr ""
851
+
852
+ #: includes/type-genericons.php:168
853
+ msgid "Mail"
854
+ msgstr ""
855
+
856
+ #: includes/type-genericons.php:169
857
+ msgid "Maximize"
858
+ msgstr ""
859
+
860
+ #: includes/type-genericons.php:171
861
+ msgid "Minimize"
862
+ msgstr ""
863
+
864
+ #: includes/type-genericons.php:172
865
+ msgid "Next"
866
+ msgstr ""
867
+
868
+ #: includes/type-genericons.php:173
869
+ msgid "Notice"
870
+ msgstr ""
871
+
872
+ #: includes/type-genericons.php:174
873
+ msgid "Pause"
874
+ msgstr ""
875
+
876
+ #: includes/type-genericons.php:175
877
+ msgid "Phone"
878
+ msgstr ""
879
+
880
+ #: includes/type-genericons.php:176
881
+ msgid "Picture"
882
+ msgstr ""
883
+
884
+ #: includes/type-genericons.php:177
885
+ msgid "Play"
886
+ msgstr ""
887
+
888
+ #: includes/type-genericons.php:178
889
+ msgid "Plugin"
890
+ msgstr ""
891
+
892
+ #: includes/type-genericons.php:180
893
+ msgid "Previous"
894
+ msgstr ""
895
+
896
+ #: includes/type-genericons.php:181
897
+ msgid "Print"
898
+ msgstr ""
899
+
900
+ #: includes/type-genericons.php:182
901
+ msgid "Refresh"
902
+ msgstr ""
903
+
904
+ #: includes/type-genericons.php:183
905
+ msgid "Reply"
906
+ msgstr ""
907
+
908
+ #: includes/type-genericons.php:184
909
+ msgid "Reply alt"
910
+ msgstr ""
911
+
912
+ #: includes/type-genericons.php:185
913
+ msgid "Reply single"
914
+ msgstr ""
915
+
916
+ #: includes/type-genericons.php:186
917
+ msgid "Rewind"
918
+ msgstr ""
919
+
920
+ #: includes/type-genericons.php:187
921
+ msgid "Rightarrow"
922
+ msgstr ""
923
+
924
+ #: includes/type-genericons.php:189 includes/type-genericons.php:190
925
+ msgid "Send to"
926
+ msgstr ""
927
+
928
+ #: includes/type-genericons.php:192
929
+ msgid "Show"
930
+ msgstr ""
931
+
932
+ #: includes/type-genericons.php:193
933
+ msgid "Skip ahead"
934
+ msgstr ""
935
+
936
+ #: includes/type-genericons.php:194
937
+ msgid "Skip back"
938
+ msgstr ""
939
+
940
+ #: includes/type-genericons.php:195
941
+ msgid "Spam"
942
+ msgstr ""
943
+
944
+ #: includes/type-genericons.php:196
945
+ msgid "Star"
946
+ msgstr ""
947
+
948
+ #: includes/type-genericons.php:197
949
+ msgid "Stop"
950
+ msgstr ""
951
+
952
+ #: includes/type-genericons.php:198
953
+ msgid "Subscribe"
954
+ msgstr ""
955
+
956
+ #: includes/type-genericons.php:199
957
+ msgid "Subscribed"
958
+ msgstr ""
959
+
960
+ #: includes/type-genericons.php:200
961
+ msgid "Summary"
962
+ msgstr ""
963
+
964
+ #: includes/type-genericons.php:202
965
+ msgid "Top"
966
+ msgstr ""
967
+
968
+ #: includes/type-genericons.php:204
969
+ msgid "Unapprove"
970
+ msgstr ""
971
+
972
+ #: includes/type-genericons.php:205
973
+ msgid "Unsubscribe"
974
+ msgstr ""
975
+
976
+ #: includes/type-genericons.php:206
977
+ msgid "Unzoom"
978
+ msgstr ""
979
+
980
+ #: includes/type-genericons.php:207
981
+ msgid "Uparrow"
982
+ msgstr ""
983
+
984
+ #: includes/type-genericons.php:208
985
+ msgid "Warning"
986
+ msgstr ""
987
+
988
+ #: includes/type-genericons.php:209
989
+ msgid "Zoom"
990
+ msgstr ""
991
+
992
+ #. Plugin Name of the plugin/theme
993
+ msgid "Menu Icons"
994
+ msgstr ""
995
+
996
+ #. #-#-#-#-# menu-icons.pot (Menu Icons 0.1.0) #-#-#-#-#
997
+ #. Plugin URI of the plugin/theme
998
+ #. #-#-#-#-# menu-icons.pot (Menu Icons 0.1.0) #-#-#-#-#
999
+ #. Author URI of the plugin/theme
1000
+ msgid "http://kucrut.org/"
1001
+ msgstr ""
1002
+
1003
+ #. Description of the plugin/theme
1004
+ msgid "Easily add icons to your navigation menu items"
1005
+ msgstr ""
1006
+
1007
+ #. Author of the plugin/theme
1008
+ msgid "Dzikri Aziz"
1009
+ msgstr ""
menu-icons.php ADDED
@@ -0,0 +1,229 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Menu Icons
5
+ *
6
+ * @package Menu_Icons
7
+ * @version 0.1.0
8
+ * @author Dzikri Aziz <kvcrvt@gmail.com>
9
+ *
10
+ *
11
+ * Plugin name: Menu Icons
12
+ * Plugin URI: http://kucrut.org/
13
+ * Description: Easily add icons to your navigation menu items
14
+ * Version: 0.1.0
15
+ * Author: Dzikri Aziz
16
+ * Author URI: http://kucrut.org/
17
+ * License: GPLv2
18
+ * Text Domain: menu-icons
19
+ */
20
+
21
+
22
+ /**
23
+ * Main plugin class
24
+ *
25
+ * @since 0.1.0
26
+ */
27
+ final class Menu_Icons {
28
+
29
+ const VERSION = '0.1.0';
30
+
31
+ /**
32
+ * Holds plugin data
33
+ *
34
+ * @access protected
35
+ * @since 0.1.0
36
+ * @var array
37
+ */
38
+ protected static $data;
39
+
40
+
41
+ /**
42
+ * Get plugin data
43
+ *
44
+ * @since 0.1.0
45
+ * @param string $name
46
+ *
47
+ * @return mixed
48
+ */
49
+ public static function get( $name = null ) {
50
+ if ( is_null( $name ) ) {
51
+ return self::$data;
52
+ }
53
+
54
+ if ( isset( self::$data[ $name ] ) ) {
55
+ return self::$data[ $name ];
56
+ }
57
+
58
+ return false;
59
+ }
60
+
61
+
62
+ /**
63
+ * Load plugin
64
+ *
65
+ * 1. Load translation
66
+ * 2. Set plugin data (directory and URL paths)
67
+ * 3. Attach plugin initialization at wp_loaded hook
68
+ *
69
+ * @since 0.1.0
70
+ * @wp_hook action plugins_loaded/10
71
+ * @link http://codex.wordpress.org/Plugin_API/Action_Reference/plugins_loaded Action: plugins_loaded/10
72
+ */
73
+ public static function load() {
74
+ load_plugin_textdomain( 'stream', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
75
+
76
+ self::$data = array(
77
+ 'dir' => plugin_dir_path( __FILE__ ),
78
+ 'url' => plugin_dir_url( __FILE__ ),
79
+ 'icon_types' => array(),
80
+ );
81
+
82
+ add_action( 'wp_loaded', array( __CLASS__, 'init' ), 9 );
83
+ }
84
+
85
+
86
+ /**
87
+ * Initialize plugin
88
+ *
89
+ * 1. Collect registered types
90
+ * 2. Add hook callbacks
91
+ *
92
+ * @since 0.1.0
93
+ * @wp_hook action wp_loaded/9
94
+ * @link http://codex.wordpress.org/Plugin_API/Action_Reference/wp_loaded Action: wp_loaded/9
95
+ */
96
+ public static function init() {
97
+ // Load icon types
98
+ require_once self::$data['dir'] . '/includes/type-fonts.php';
99
+ require_once self::$data['dir'] . '/includes/type-dashicons.php';
100
+ require_once self::$data['dir'] . '/includes/type-genericons.php';
101
+
102
+ self::_collect_icon_types();
103
+
104
+ // Nothing to do if there are no icon types registered
105
+ if ( empty( self::$data['icon_types'] ) ) {
106
+ return;
107
+ }
108
+
109
+ add_action( 'load-nav-menus.php', array( __CLASS__, '_load_nav_menus' ) );
110
+ add_action( 'get_header', array( __CLASS__, '_load_front_end' ) );
111
+ add_action( 'wp_enqueue_scripts', array( __CLASS__, '_enqueue_styles' ), 7 );
112
+ }
113
+
114
+
115
+ /**
116
+ * Collect icon types
117
+ *
118
+ * @since 0.1.0
119
+ * @access private
120
+ * @uses apply_filters() Calls 'menu_icons_types' to get registered types.
121
+ */
122
+ private static function _collect_icon_types() {
123
+ $types = (array) apply_filters( 'menu_icons_types', array() );
124
+ $defaults = array(
125
+ 'label' => '',
126
+ 'field_cb' => '',
127
+ 'front_cb' => '',
128
+ 'stylesheet' => '',
129
+ 'version' => get_bloginfo( 'version' ),
130
+ );
131
+
132
+ foreach ( $types as $type => $props ) {
133
+ $type_props = wp_parse_args( $props, $defaults );
134
+ foreach ( $type_props as $key => $value ) {
135
+ if ( empty( $value ) ) {
136
+ continue 2;
137
+ }
138
+
139
+ if ( 'field_cb' === $key && ! is_callable( $value ) ) {
140
+ continue 2;
141
+ }
142
+
143
+ if ( 'front_cb' === $key && ! is_callable( $value ) ) {
144
+ continue 2;
145
+ }
146
+ }
147
+
148
+ self::$data['icon_types'][ $type ] = $type_props;
149
+ }
150
+
151
+ ksort( self::$data['icon_types'] );
152
+ }
153
+
154
+
155
+ /**
156
+ * Prepare page: wp-admin/nav-menus.php
157
+ *
158
+ * @since 0.1.0
159
+ * @access protected
160
+ * @wp_hook action load-nav-menus.php/10
161
+ * @link http://codex.wordpress.org/Plugin_API/Action_Reference/load-(page) Action: load-nav-menus.php/10
162
+ */
163
+ public static function _load_nav_menus() {
164
+ // Load menu item custom fields plugin
165
+ require_once self::$data['dir'] . 'includes/menu-item-custom-fields/menu-item-custom-fields.php';
166
+
167
+ // Load custom fields
168
+ require_once self::$data['dir'] . 'includes/admin.php';
169
+ Menu_Icons_Admin_Nav_Menus::init();
170
+ }
171
+
172
+
173
+ /**
174
+ * Load front-end tasks
175
+ *
176
+ * @since 0.1.0
177
+ * @access protected
178
+ * @wp_hook action load-nav-menus.php/10
179
+ * @link http://codex.wordpress.org/Plugin_API/Action_Reference/get_header Action: get_header/10
180
+ */
181
+ public static function _load_front_end() {
182
+ foreach ( self::$data['icon_types'] as $props ) {
183
+ call_user_func( $props['front_cb'] );
184
+ }
185
+ }
186
+
187
+
188
+ /**
189
+ * Enqueue extra stylesheet
190
+ *
191
+ * This stylesheet will override some styles of the icons
192
+ *
193
+ * @since 0.1.0
194
+ * @access protected
195
+ * @wp_hook action wp_enqueue_scripts/10
196
+ * @uses apply_filters() Calls 'menu_icons_load_extra_style' allow plugins/themes to
197
+ * enable/disable the loading of the extra stylesheet
198
+ * @link http://codex.wordpress.org/Plugin_API/Action_Reference/wp_enqueue_scripts Action: wp_enqueue_scripts/10
199
+ */
200
+ public static function _enqueue_styles() {
201
+ // Enqueue icon types' stylesheets
202
+ foreach ( self::$data['icon_types'] as $id => $props ) {
203
+ if ( wp_style_is( $props['stylesheet'], 'registered' ) ) {
204
+ wp_enqueue_style( $id );
205
+ }
206
+ else {
207
+ wp_enqueue_style( $id, $props['stylesheet'], false, $props['version'] );
208
+ }
209
+ }
210
+
211
+ /**
212
+ * Enable/disable loading of extra stylesheet
213
+ *
214
+ * @since 0.1.0
215
+ * @param bool $load_extra_style
216
+ */
217
+ $load_extra_style = (bool) apply_filters( 'menu_icons_load_extra_style', true );
218
+
219
+ if ( true === $load_extra_style ) {
220
+ wp_enqueue_style(
221
+ 'menu-icons-extra',
222
+ Menu_Icons::get( 'url' ) . 'css/extra.css',
223
+ false,
224
+ Menu_Icons::VERSION
225
+ );
226
+ }
227
+ }
228
+ }
229
+ add_action( 'plugins_loaded', array( 'Menu_Icons', 'load' ) );
readme.txt ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Menu Icons ===
2
+ Contributors: kucrut
3
+ Donate Link: http://kucrut.org/#coffee
4
+ Tags: menu, nav-menu, icons, navigation
5
+ Requires at least: 3.8
6
+ Tested up to: 3.8.1
7
+ Stable tag: 0.1.0
8
+ License: GPLv2
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ Easily add icons to your nav menu items.
12
+
13
+
14
+ == Description ==
15
+ This plugin gives you the ability to add icons to your menu items, similar to the look of the latest dashboard menu.
16
+
17
+ = Usage =
18
+ 1. After the plugin is activated, go to *Appearance* > *Menus* to edit your menus
19
+ 1. Each menu item will now have new *Icon Type* selection field with their corresponding sub-fields
20
+ 1. Select the desired icon type
21
+ 1. Select the icon from the second drop-down
22
+ 1. Save the menu
23
+
24
+ = Currently supported icon types =
25
+ - Dashicons (WordPress core icon fonts)
26
+ - [Genericons](http://genericons.com/) by [Automattic](http://automattic.com/)
27
+
28
+ = Planned supported icon types =
29
+ - [Font awesome](http://fortawesome.github.io/Font-Awesome/)
30
+ - Image (attachment file & URL)
31
+
32
+ = Planned features =
33
+ 1. Provide modal popup that displays the icons for selection
34
+ 2. Theme customizer support
35
+
36
+ See **Other Notes** to know about the *hidden* features.
37
+
38
+ Development of this plugin is done on [GitHub](https://github.com/kucrut/wp-menu-icons). **Pull requests welcome**. Please see [issues reported](https://github.com/kucrut/wp-menu-icons/issues) there before going to the plugin forum.
39
+
40
+
41
+ == Installation ==
42
+
43
+ 1. Upload `menu-icons` to the `/wp-content/plugins/` directory
44
+ 1. Activate the plugin through the *Plugins* menu in WordPress
45
+
46
+
47
+ == Frequently Asked Questions ==
48
+
49
+ = The icon positions don't look right =
50
+ If you're comfortable with editing your theme stylesheet, then you can override the styles from there.
51
+ Otherwise, I recommend you to use the [Simple Custom CSS plugin](http://wordpress.org/plugins/simple-custom-css/)
52
+
53
+ = Is this plugin extendable? =
54
+ **Certainly!**
55
+
56
+ Here's how you can remove an icon type from your plugin/theme:
57
+ `
58
+ function myplugin_remove_menu_icons_type( $types ) {
59
+ unset( $types['genericon'] );
60
+ return $types;
61
+ }
62
+ add_filter( 'menu_icons_types', 'myplugin_remove_menu_icons_type' );
63
+ `
64
+
65
+ To add a new icon type, take a look at the `type-*.php` files inside the `includes` directory of this plugin.
66
+
67
+ = Can you please add X icon font? =
68
+ Let me know via [GitHub issues](https://github.com/kucrut/wp-menu-icons/issues) and I'll see what I can do.
69
+
70
+
71
+ == Other Notes ==
72
+ = Extra Stylesheet =
73
+ By default, this plugin loads an extra stylesheet to make the icons display nicely on the menus.
74
+ If you don't desire this and would like your theme/plugin to handle it instead, simply do the following:
75
+ `
76
+ add_filter( 'menu_icons_load_extra_style', '__return_false' );
77
+ `
78
+
79
+
80
+ == Changelog ==
81
+ = 0.1.0 =
82
+ * Initial public release