Version Description
- Initial public release
Download this release
Release Info
Developer | kucrut |
Plugin | Menu Icons by ThemeIsle |
Version | 0.1.0 |
Comparing to | |
See all releases |
Version 0.1.0
- LICENSE +339 -0
- css/extra.css +19 -0
- css/font/genericons-regular-webfont.eot +0 -0
- css/font/genericons-regular-webfont.svg +135 -0
- css/font/genericons-regular-webfont.ttf +0 -0
- css/font/genericons-regular-webfont.woff +0 -0
- css/genericons.css +197 -0
- includes/admin.php +179 -0
- includes/menu-item-custom-fields/LICENSE +339 -0
- includes/menu-item-custom-fields/doc/menu-item-custom-fields-example.php +112 -0
- includes/menu-item-custom-fields/menu-item-custom-fields.php +45 -0
- includes/menu-item-custom-fields/readme.md +45 -0
- includes/menu-item-custom-fields/readme.txt +42 -0
- includes/menu-item-custom-fields/walker-nav-menu-edit.php +82 -0
- includes/type-dashicons.php +306 -0
- includes/type-fonts.php +246 -0
- includes/type-genericons.php +229 -0
- languages/menu-icons.pot +1009 -0
- menu-icons.php +229 -0
- readme.txt +82 -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="◼" horiz-adv-x="500" d="M0 0z" />
|
10 |
+
<glyph unicode="" d="M512 512v128h768v-128h-768zM512 768v128h256v-128h-256zM512 1024v128h640v-128h-640zM512 1280v128h1024v-128h-1024zM896 768v128h640v-128h-640zM1280 1024v128h256v-128h-256z" />
|
11 |
+
<glyph unicode="" 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="" 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="" d="M128 512v384h384v-384h-384zM128 1024v384h896v-384h-896zM640 512v384h384v-384h-384zM1152 512v896h896v-896h-896z" />
|
14 |
+
<glyph unicode="" d="M512 384v1280l1152 -640z" />
|
15 |
+
<glyph unicode="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" d="M384 512v1024h384l64 -128h448v-128h-640l-128 -256h128l64 128h960l-256 -640h-1024z" />
|
48 |
+
<glyph unicode="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" d="M640 768l320 320l-320 320l128 128l320 -320l320 320l128 -128l-320 -320l320 -320l-128 -128l-320 320l-320 -320z" />
|
61 |
+
<glyph unicode="" d="M128 256l832 832l-832 832l128 128l832 -832l832 832l128 -128l-832 -832l832 -832l-128 -128l-832 832l-832 -832z" />
|
62 |
+
<glyph unicode="" 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="" d="M256 1151l476 -330l-183 -535l475 332l475 -332l-183 535l476 330l-587 -1l-181 535l-180 -535z" />
|
64 |
+
<glyph unicode="" d="M384 1152l640 512l640 -512l-128 -128v-512h-1024v512zM896 576h256v448h-256v-448z" />
|
65 |
+
<glyph unicode="" d="M256 512v704l768 -384l768 384v-704h-1536zM256 1408v128h1536v-128l-768 -384z" />
|
66 |
+
<glyph unicode="" 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="" d="M256 640v704l384 384v-704h640v448l640 -640l-640 -640v448h-1024z" />
|
68 |
+
<glyph unicode="" 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="" 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="" 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="" 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="" 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="" d="M608 1056l128 128l224 -192l448 512l128 -96l-512 -768h-128z" />
|
74 |
+
<glyph unicode="" d="M0 256v256h2048v-256h-2048zM0 896v256h2048v-256h-2048zM0 1536v256h2048v-256h-2048z" />
|
75 |
+
<glyph unicode="" 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="" d="M384 896v256h1152v-256h-1152z" />
|
77 |
+
<glyph unicode="" d="M384 512v1024h1152v-1024h-1152zM512 640h896v640h-896v-640z" />
|
78 |
+
<glyph unicode="" 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="" 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="" 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="" 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="" 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="" d="M768 1024q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
|
84 |
+
<glyph unicode="" d="M384 896v128h896l-343 343l87 86l493 -493l-493 -493l-87 86l343 343h-896z" />
|
85 |
+
<glyph unicode="" d="M531 960l493 -493l87 86l-343 343h896v128h-896l343 343l-87 86z" />
|
86 |
+
<glyph unicode="" d="M384 1152l128 128l448 -448l448 448l128 -128l-576 -576z" />
|
87 |
+
<glyph unicode="" d="M384 768l576 576l576 -576l-128 -128l-448 448l-448 -448z" />
|
88 |
+
<glyph unicode="" d="M0 0v896l896 -896h-896z" />
|
89 |
+
<glyph unicode="" d="M1152 0l896 896v-896h-896z" />
|
90 |
+
<glyph unicode="" d="M384 512l640 640l640 -640h-1280zM384 1280v128h1280v-128h-1280z" />
|
91 |
+
<glyph unicode="" 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="" 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="" 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="" 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="" 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="" 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="" d="M512 512v896h512l-128 -128h-256v-640h640v256l128 128v-512h-896zM896 987l550 549h-422v128h640v-640h-128v422l-550 -550z" />
|
98 |
+
<glyph unicode="" d="M512 384v1280h640l384 -384v-896h-1024zM640 512h768v640h-384v384h-384v-1024z" />
|
99 |
+
<glyph unicode="" 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="" 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="" 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="" 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="" d="M512 384v1280h384v-1280h-384zM1152 384v1280h384v-1280h-384z" />
|
104 |
+
<glyph unicode="" d="M512 512v1024h1024v-1024h-1024z" />
|
105 |
+
<glyph unicode="" d="M256 384v1280h384v-1280h-384zM768 1024l1024 640v-1280z" />
|
106 |
+
<glyph unicode="" d="M256 384v1280l1024 -640zM1408 384v1280h384v-1280h-384z" />
|
107 |
+
<glyph unicode="" d="M512 384v1280l1024 -640z" />
|
108 |
+
<glyph unicode="" 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="" 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="" 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="" 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="" 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="" d="M128 384v1280l768 -480v480l1024 -640l-1024 -640v480z" />
|
114 |
+
<glyph unicode="" d="M128 1024l1024 -640v480l768 -480v1280l-768 -480v480z" />
|
115 |
+
<glyph unicode="" 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="" 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="" 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="" 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="" 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="" 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="" 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="" d="M384 1024l640 640v-384h256q212 0 362 -150t150 -362v-300l-150 150q-74 74 -168 112t-194 38h-256v-384z" />
|
123 |
+
<glyph unicode="" 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="" 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="" 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="" 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="" d="M640 512l40 128h128l240 768h-128l40 128h448l-40 -128h-128l-240 -768h128l-40 -128h-448z" />
|
128 |
+
<glyph unicode="" 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="" 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="" d="M128 0l960 960l960 -960h-1920z" />
|
131 |
+
<glyph unicode="" d="M0 128l960 960l-960 960v-1920z" />
|
132 |
+
<glyph unicode="" d="M128 2048l960 -960l960 960h-1920z" />
|
133 |
+
<glyph unicode="" 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' => __( '— Select —', '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__( '— Select —', '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 "— Select —"
|
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
|