initial import

This commit is contained in:
mose 2017-11-25 17:15:18 +08:00
commit 27e32d660d
68 changed files with 4875 additions and 0 deletions

4
README.md Normal file
View file

@ -0,0 +1,4 @@
Crazy Toads theme for question2answer
=====================================
based on Snow Flat Theme from http://www.q2amarket.com/

96
fonts/LICENSE-Ubuntu.txt Normal file
View file

@ -0,0 +1,96 @@
-------------------------------
UBUNTU FONT LICENCE Version 1.0
-------------------------------
PREAMBLE
This licence allows the licensed fonts to be used, studied, modified and
redistributed freely. The fonts, including any derivative works, can be
bundled, embedded, and redistributed provided the terms of this licence
are met. The fonts and derivatives, however, cannot be released under
any other licence. The requirement for fonts to remain under this
licence does not require any document created using the fonts or their
derivatives to be published under this licence, as long as the primary
purpose of the document is not to be a vehicle for the distribution of
the fonts.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this licence and clearly marked as such. This may
include source files, build scripts and documentation.
"Original Version" refers to the collection of Font Software components
as received under this licence.
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to
a new environment.
"Copyright Holder(s)" refers to all individuals and companies who have a
copyright ownership of the Font Software.
"Substantially Changed" refers to Modified Versions which can be easily
identified as dissimilar to the Font Software by users of the Font
Software comparing the Original Version with the Modified Version.
To "Propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification and with or without charging
a redistribution fee), making available to the public, and in some
countries other activities as well.
PERMISSION & CONDITIONS
This licence does not grant any rights under trademark law and all such
rights are reserved.
Permission is hereby granted, free of charge, to any person obtaining a
copy of the Font Software, to propagate the Font Software, subject to
the below conditions:
1) Each copy of the Font Software must contain the above copyright
notice and this licence. These can be included either as stand-alone
text files, human-readable headers or in the appropriate machine-
readable metadata fields within text or binary files as long as those
fields can be easily viewed by the user.
2) The font name complies with the following:
(a) The Original Version must retain its name, unmodified.
(b) Modified Versions which are Substantially Changed must be renamed to
avoid use of the name of the Original Version or similar names entirely.
(c) Modified Versions which are not Substantially Changed must be
renamed to both (i) retain the name of the Original Version and (ii) add
additional naming elements to distinguish the Modified Version from the
Original Version. The name of such Modified Versions must be the name of
the Original Version, with "derivative X" where X represents the name of
the new work, appended to that name.
3) The name(s) of the Copyright Holder(s) and any contributor to the
Font Software shall not be used to promote, endorse or advertise any
Modified Version, except (i) as required by this licence, (ii) to
acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with
their explicit written permission.
4) The Font Software, modified or unmodified, in part or in whole, must
be distributed entirely under this licence, and must not be distributed
under any other licence. The requirement for fonts to remain under this
licence does not affect any document created using the Font Software,
except any version of the Font Software extracted from a document
created using the Font Software may only be distributed under this
licence.
TERMINATION
This licence becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
DEALINGS IN THE FONT SOFTWARE.

BIN
fonts/Ubuntu-700.woff Normal file

Binary file not shown.

BIN
fonts/Ubuntu-700italic.woff Normal file

Binary file not shown.

BIN
fonts/Ubuntu-italic.woff Normal file

Binary file not shown.

BIN
fonts/Ubuntu-regular.woff Normal file

Binary file not shown.

BIN
fonts/fontello.eot Normal file

Binary file not shown.

49
fonts/fontello.svg Normal file
View file

@ -0,0 +1,49 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Copyright (C) 2016 by original authors @ fontello.com</metadata>
<defs>
<font id="fontello" horiz-adv-x="1000" >
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="chat" unicode="&#xe800;" d="m1179 385q0-126-79-233t-215-170-296-62q-122 0-234 39l2-3-357-107q44 59 71 126t31 106l4 38q-106 120-106 266 0 126 79 233t215 169 295 62 296-62 215-169 79-233z m-250 0q0 29-21 50t-51 21q-29 0-50-21t-21-50q0-30 21-51t50-21q30 0 51 21t21 51z m-250 0q0 29-21 50t-51 21q-29 0-50-21t-21-50q0-30 21-51t50-21q30 0 51 21t21 51z m-250 0q0 29-21 50t-51 21q-29 0-50-21t-21-50q0-30 21-51t50-21q30 0 51 21t21 51z" horiz-adv-x="1179" />
<glyph glyph-name="help" unicode="&#xe801;" d="m494 740q86-62 86-184 0-64-42-124-12-20-88-80l-46-30q-40-34-48-60-6-16-8-44 0-14-16-14l-128 0q-16 0-16 12 4 98 28 124 16 22 48 48t56 42l24 14q22 16 34 34 28 44 28 70 0 40-26 78-28 36-92 36-68 0-94-44-28-42-28-92l-166 0q6 162 114 232 70 42 166 42 130 0 214-60z m-216-636q44 0 73-30t27-74q-2-46-32-73t-74-25q-44 0-73 29t-27 75 32 73 74 25z" horiz-adv-x="580" />
<glyph glyph-name="comment" unicode="&#xe802;" d="m0 96l0 713 1000 0 0-713-473 0-320-205 0 205-207 0z" horiz-adv-x="1000" />
<glyph glyph-name="comment-alt" unicode="&#xe803;" d="m0 192l0 607 854 0 0-607-405 0-273-176 0 176-176 0z m348-112l119 77 129 0 9-6 170-112 0 118 149 0 0 433-31 0 0 76 107 0 0-586-148 0 0-179-59 37-221 142-224 0z" horiz-adv-x="1000" />
<glyph glyph-name="chart-line" unicode="&#xe804;" d="m34 284q-42 10-32 56 10 42 54 32l98-24-52-80z m890-12q14 12 33 11t31-15q32-32-2-64l-252-226q-12-12-30-12-14 0-28 10l-286 220-54 14 50 80 36-8q12-4 16-8l264-204z m-490 220l-350-550q-12-22-38-22-12 0-24 8-16 10-20 29t6 33l374 588q8 16 28 20 18 6 36-6l246-156 226 326q10 16 28 19t34-9q38-24 12-62l-252-362q-24-36-62-12z" horiz-adv-x="1003" />
<glyph glyph-name="coffee" unicode="&#xe805;" d="m0 64h1000q0-59-42-101t-101-42h-714q-59 0-101 42t-42 101z m143 197v410q0 15 11 26t25 10h642q89 0 152-63t63-151-63-152-152-62h-35v-18q0-52-37-88t-88-37h-393q-51 0-88 37t-37 88z m643 125h35q45 0 76 31t32 76-32 76-76 31h-35v-214z" horiz-adv-x="1071.4" />
<glyph glyph-name="tag" unicode="&#xe806;" d="m944 830q36-106-8-199t-128-157l18-24q16-28 6-54l-48-158q-12-30-36-46l-464-328q-42-30-64 4l-210 304q-12 18-9 39t21 33l464 328q26 18 54 18l158 0q30 0 48-26l28-40q168 130 114 286-10 28 18 40 32 8 38-20z m-216-468q40 32 34 80l-32-16q-8-4-12-4-18 0-28 18-12 30 16 40l24 14q-48 34-92 0-28-18-34-51t14-61q18-26 51-32t59 12z" horiz-adv-x="960" />
<glyph glyph-name="tags" unicode="&#xe807;" d="m0 475v232q0 29 21 50t50 22h233q29 0 65-15t57-36l399-399q20-21 20-50 0-30-20-51l-274-274q-22-21-51-21-30 0-50 21l-399 399q-21 21-36 57t-15 65z m107 125q0-30 21-50t51-21 50 21 21 50-21 51-50 20-51-20-21-51z m286 179h125q29 0 65-15t57-36l399-399q21-21 21-50 0-30-21-51l-274-274q-22-21-51-21-20 0-33 8t-29 25l262 262q21 21 21 51 0 29-21 50l-399 399q-21 21-57 36t-65 15z" horiz-adv-x="1071.4" />
<glyph glyph-name="spread" unicode="&#xe808;" d="m0 493q0 57 41 98t98 41q58 0 99-41t40-98q0-40-21-73l282-281q19 12 39 17v388q-46 12-76 49t-30 87q0 57 41 98t99 40q57 0 98-40t40-98q0-49-30-87t-76-49v-388q20-5 39-17l282 281q-21 34-21 73 0 58 41 98t98 41 98-41 41-98-41-99-98-41q-37 0-72 22l-282-282q21-33 21-72 0-58-40-99t-98-41q-59 0-99 41t-41 99q0 39 21 72l-282 282q-35-22-72-22-57 0-98 41t-41 99z" horiz-adv-x="1222.7" />
<glyph glyph-name="group" unicode="&#xe809;" d="m0 106l0 134q0 26 18 32l171 80q-66 39-68 131 0 56 35 103 37 41 90 43 31 0 63-19-49-125 23-237-12-11-25-19l-114-55q-48-23-52-84l0-143-114 0q-25 0-27 34z m193-59l0 168q0 27 22 37l152 70 57 28q-37 23-60 66t-22 94q0 76 46 130t110 54 109-54 45-130q0-106-78-158l61-30 146-70q24-10 24-37l0-168q-2-37-37-41l-541 0q-14 2-24 14t-10 27z m473 330q68 106 22 231 31 19 66 21 49 0 90-43 35-41 35-103 0-82-65-131l168-80q18-10 18-32l0-134q0-32-27-34l-118 0 0 143q0 57-50 84l-110 53q-15 8-29 25z" horiz-adv-x="1000" />
<glyph glyph-name="wrench" unicode="&#xe80a;" d="m951 461c14-13 14-35 0-50l-67-68c-14-14-35-14-50 0l-15 16c-11 10-16 29-10 37 11 8 7 30-14 50-30 32-69 33-84 17-6-5-26-27-26-27l-92 92 15 15s3 3 11 12c29 29-1 61-1 61-82 80-195 79-195 79l-2 29c229 59 315-41 347-73l66-66c16-16 0-62 24-89 11-11 26-16 37-16 13 11 33 8 43-4z m-406-168l220-198c31-31 30-81-1-114-33-31-83-31-114 2l-201 212-188-226c-17-19-48-19-67 0l-49 50c-19 17-19 49 0 67l215 200-104 100c-33 33-53 43-81 34-27-10-66-10-102 14-78 50-73 144-73 144l6 10s70-45 79-50c11-9 50-27 85 27 36 54 6 88-4 94-8 5-78 51-78 51l6 10s81 41 157-4c0-2 19-13 27-20 48-43 48-92 40-132-8-36 0-49 28-80l104-104 124 126 90-92z m191-284c17 15 17 44 0 60s-42 16-60 0c-15-16-15-44 0-59 18-16 44-19 60-1z" horiz-adv-x="951" />
<glyph glyph-name="article" unicode="&#xe80b;" d="m696 661l0-82-696 0 0 82 696 0z m-182-180l0-82-514 0 0 82 514 0z m182-180l0-82-696 0 0 82 696 0z m-182-180l0-82-514 0 0 82 514 0z" horiz-adv-x="696" />
<glyph glyph-name="docs" unicode="&#xe80c;" d="m970 480q38-10 30-46l-150-556q-4-16-18-23t-30-3l-406 110q-16 4-24 18t-4 28l24 92-180-48q-40-10-50 26l-160 602q-10 36 28 48l454 122q16 4 30-3t18-23l66-244z m-888 190l144-542 392 106-144 540z m702-742l132 492-298 82 76-282q10-34-28-46l-196-52-26-102z" horiz-adv-x="1001" />
<glyph glyph-name="infinity" unicode="&#xe80d;" d="m796 570q84 0 144-53t60-167q0-112-60-166t-144-54q-78 0-157 40t-139 106q-58-66-137-106t-157-40q-86 0-146 54t-60 166q0 114 60 167t146 53q78 0 157-39t137-105q58 66 138 105t158 39z m-590-352q60 0 127 37t113 95q-46 58-112 95t-128 37q-114 0-114-132t114-132z m590 0q114 0 114 132t-114 132q-62 0-129-37t-111-95q44-58 111-95t129-37z" horiz-adv-x="1000" />
<glyph glyph-name="user" unicode="&#xe80e;" d="m736 128q204-72 204-122l0-106-940 0 0 106q0 50 204 122 94 34 128 69t34 95q0 22-22 49t-32 73q-2 12-9 18t-14 8-14 17-9 43q0 16 5 26t9 12l4 4q-8 50-12 88-4 54 41 112t157 58 158-58 40-112l-12-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-8-48-31-74t-23-48q0-60 35-95t127-69z" horiz-adv-x="940" />
<glyph glyph-name="key" unicode="&#xe80f;" d="m774 612q20-116-28-215t-150-117q-66-12-130-2l-118-194-70-12-104-166q-14-28-46-32l-76-14q-12-4-22 4t-12 22l-16 98q-8 30 12 56l258 386q-24 50-38 120-18 106 53 187t185 101q106 20 195-45t107-177z m-126-76q30 44 21 97t-51 83q-42 32-92 22t-80-54q-8-12-12-23t-1-20 5-16 13-17 18-15 22-16 23-17q6-4 22-16t23-16 19-12 19-8 17 1 18 8 16 19z" horiz-adv-x="780" />
<glyph glyph-name="money" unicode="&#xe810;" d="m238 378c13 16 35 21 65 24l0-85c-50 5-75 9-75 39 0 7 2 15 10 22z m107-241l0 91c59-5 78-9 78-35 0-30-24-49-78-56z m70 244c30-17 36-24 36-38l8-4 45 90-6 5c-7-5-10-7-14-7s-8 0-13 4c-61 23-90 35-126 35l0 17c0 9 5 15 20 19l0 9-79 0 0-9c14-4 17-11 17-19l0-15c-97-4-153-50-153-122 0-74 40-100 153-110l0-97c-78 8-117 38-117 64l-7 4-41-94 6-4c6 4 9 5 12 5 2 0 7 0 9-2 48-24 94-38 138-40l0-19c0-10-3-16-17-20l0-9 79 0 0 9c-15 4-20 9-20 20l0 19c96 5 159 54 159 126 0 70-53 106-149 115l-10 0 0 88c23-2 46-8 70-20z m41 181c117-50 198-165 198-300 0-181-146-328-326-328-182 0-328 147-328 328 0 135 81 250 198 300l-82 179c0 17 12 25 28 25l366 0c16 0 28-7 28-25z" horiz-adv-x="654" />
<glyph glyph-name="wallet" unicode="&#xe811;" d="m0 22l0 625q0 70 51 121t121 51l640 0q40 0 67-28t27-66l0-281q94-71 94-188t-94-187l0-47q0-70-51-121t-121-51l-562 0q-70 0-121 51t-51 121z m63 0q0-45 32-77t77-33l562 0q45 0 78 33t32 77l0 47-281 0q-65 0-111 46t-46 110 46 110 111 46l281 0 0 63q0 13-9 22t-23 9l-640 0q-63 0-109 39l0-492z m0 625q0-45 31-76l0 123q0 13 9 22t22 9l656 0q14 0 23-9t9-22l0-156q15 0 31-6l0 193q0 14-9 22t-23 9l-640 0q-45 0-77-32t-32-77z m62-98q23-11 47-11l609 0 0 31-656 0 0-20z m0 51l656 0 0 31-656 0 0-31z m0 62l656 0 0 32-656 0 0-32z m344-437q0-39 27-66t67-28l320 0q54 51 54 125 0 59-35 104l0-2q-4-8-7-14-20-25-51-25l-281 0q-40 0-67-28t-27-66z m31 0q0 25 19 44t44 19 43-19 19-44-19-44-43-18-44 18-19 44z" horiz-adv-x="1000" />
<glyph glyph-name="arrows-cw" unicode="&#xe812;" d="m0-7v250q0 14 11 25t25 11h250q14 0 25-11t10-25-10-25l-77-77q40-37 90-57t105-20q74 0 139 37t104 99q6 10 29 66 5 13 17 13h107q8 0 13-6t5-12q0-3 0-4-36-150-150-243t-267-93q-81 0-157 31t-136 88l-72-72q-11-11-25-11t-25 11-11 25z m10 446v4q36 150 151 243t268 93q81 0 158-31t137-88l72 72q11 11 25 11t26-11 10-25v-250q0-14-10-25t-26-11h-250q-14 0-25 11t-10 25 10 25l77 77q-82 77-194 77-75 0-140-37t-104-99q-6-10-29-66-5-13-17-13h-111q-7 0-13 6t-5 12z" horiz-adv-x="857.1" />
<glyph glyph-name="th-list" unicode="&#xe813;" d="m0-150l0 250 250 0 0-250-250 0z m0 375l0 250 250 0 0-250-250 0z m0 375l0 250 250 0 0-250-250 0z m391-750l0 250 609 0 0-250-609 0z m0 375l0 250 609 0 0-250-609 0z m0 375l0 250 609 0 0-250-609 0z" horiz-adv-x="1000" />
<glyph glyph-name="left-open-big" unicode="&#xe814;" d="m452-20q26-26 0-48-26-26-48 0l-392 394q-24 24 0 50l392 394q22 26 48 0 26-22 0-48l-358-372z" horiz-adv-x="465" />
<glyph glyph-name="right-open-big" unicode="&#xe815;" d="m13-20l358 370-358 372q-26 26 0 48 26 26 48 0l392-394q24-26 0-50l-392-394q-22-26-48 0-26 22 0 48z" horiz-adv-x="465" />
<glyph glyph-name="down-open-big" unicode="&#xe816;" d="m63 570l370-356 372 356q22 26 48 0 26-22 0-48l-396-392q-22-22-48 0l-396 392q-26 26 0 48 24 24 50 0z" horiz-adv-x="866" />
<glyph glyph-name="up-open-big" unicode="&#xe817;" d="m804 130l-372 358-370-358q-26-22-50 0-24 24 0 50l396 390q26 26 48 0l396-390q24-26 0-50-26-22-48 0z" horiz-adv-x="864" />
<glyph glyph-name="down-open-mini" unicode="&#xe818;" d="m405 470q22 26 48 0 26-22 0-48l-196-192q-22-22-48 0l-196 192q-26 26 0 48 24 24 50 0l170-156z" horiz-adv-x="466" />
<glyph glyph-name="up-open-mini" unicode="&#xe819;" d="m62 230q-26-22-50 0-24 24 0 50l196 190q26 26 48 0l196-190q24-26 0-50-24-22-50 0l-170 158z" horiz-adv-x="464" />
<glyph glyph-name="right-open-mini" unicode="&#xe81a;" d="m13 180l158 170-158 172q-26 26 0 48 26 26 48 0l192-194q24-26 0-50l-192-194q-22-26-48 0-26 22 0 48z" horiz-adv-x="265" />
<glyph glyph-name="left-open-mini" unicode="&#xe81b;" d="m252 180q26-26 0-48-26-26-48 0l-192 194q-24 24 0 50l192 194q22 26 48 0 26-22 0-48l-156-172z" horiz-adv-x="265" />
<glyph glyph-name="rss" unicode="&#xe81c;" d="m0 730q314 0 537-223t223-537l-118 0q0 266-188 453t-454 187l0 120z m0-238q218 0 371-153t153-369l-118 0q0 166-119 285t-287 119l0 118z m114-296q46 0 80-33t34-81q0-46-34-79t-80-33-80 33-34 79q0 48 34 81t80 33z" horiz-adv-x="760" />
<glyph glyph-name="facebook" unicode="&#xe81d;" d="m0-150l0 1000 1000 0 0-1000-1000 0z m471 469l92 0 0-352 132 0 0 352 129 0 6 127-135 0 0 94q0 31 12 43t41 13l80 0 2 117q-59 6-88 6l-23 0q-31 0-57-10-99-39-99-154l0-109-92 0 0-127z" horiz-adv-x="1000" />
<glyph glyph-name="twitter" unicode="&#xe81e;" d="m749-25c0-34-13-64-37-88-25-25-54-37-89-37l-248 0c-103 0-192 36-265 110-73 73-110 161-110 264l0 501c0 35 12 65 37 89 24 24 54 36 89 36 34 0 64-12 88-37 25-24 37-54 37-88l0-181 353 0c32 0 60-12 83-35 22-22 34-49 34-81 0-32-12-59-34-82-23-23-51-34-82-34l-354 0 0-88c0-34 12-64 36-88 24-24 54-36 88-36l248 0c35 0 64-12 89-37 24-24 37-54 37-88" horiz-adv-x="749" />
<glyph glyph-name="twitter-bird" unicode="&#xe81f;" d="m1231 732q-51-77-126-131 1-14 1-32 0-102-30-203-29-102-90-195-61-92-145-164-84-72-201-114-118-43-253-43-210 0-387 113 31-3 60-3 176 0 314 108-82 2-147 51-64 49-89 125 24-5 48-5 34 0 66 9-87 17-145 87-57 69-57 160l0 4q53-30 114-32-52 34-82 90-30 55-30 120 0 68 34 127 95-117 230-186 135-70 290-78-6 28-6 58 0 104 74 178 74 74 178 74 110 0 185-80 85 17 160 62-29-91-111-140 76 9 145 39z" horiz-adv-x="1231" />
<glyph glyph-name="googleplus" unicode="&#xe820;" d="m0-150l0 125q51 59 143 76 82 12 105 12 18 0 35-2 14-12 63-45t72-55q55-47 55-95 0-10-2-16l-471 0z m0 207l0 254q90-66 203-51-27-68 2-115 14-21 29-43l-50 0q-131-4-184-45z m0 617l0 176 1000 0 0-271-184 0 0 185-80 0 0-185-185 0 0-77 185 0 0-187 80 0 0 187 184 0 0-652-443 0q19 72-6 131-26 57-84 107-28 24-102 82-39 28-39 63 2 31 41 72 57 43 82 82 35 53 35 125 0 67-31 119-19 32-56 67l87 0 82 66-306 0q-74-2-145-24t-115-66z m59-60q13 58 70 86 25 11 55 13 45 0 80-27 68-57 91-154 20-78 2-129-23-67-74-80-78-22-133 15-64 51-86 141-15 68-5 135z" horiz-adv-x="1000" />
<glyph glyph-name="ok" unicode="&#xe821;" d="m68 332q0 22 15 38l76 76q16 16 38 16t38-16l164-165 366 367q16 16 38 16t38-16l76-76q15-16 15-38t-15-38l-404-404-76-76q-16-15-38-15t-38 15l-76 76-202 202q-15 16-15 38z" horiz-adv-x="1000" />
<glyph glyph-name="ok-circled" unicode="&#xe822;" d="m0 350q0 117 58 215t155 156 216 58 215-58 156-156 57-215-57-215-156-156-215-58-216 58-155 156-58 215z m141-11q0-15 10-25l202-202q10-10 25-10 15 0 25 10l303 303q11 10 11 25 0 16-11 26l-50 50q-11 11-25 11t-26-11l-227-227-126 126q-11 11-25 11t-26-11l-50-50q-10-10-10-26z" horiz-adv-x="857.1" />
<glyph glyph-name="reply" unicode="&#xe823;" d="m0 493q0 14 11 25l285 286q11 10 25 10t26-10 10-25v-143h125q398 0 488-225 30-75 30-186 0-93-71-252-2-4-6-13t-7-17-8-12q-6-10-15-10-9 0-13 6t-5 14q0 5 1 15t2 13q3 38 3 69 0 56-10 101t-27 77-45 56-59 39-74 24-86 12-98 3h-125v-143q0-14-10-25t-26-11-25 11l-285 286q-11 10-11 25z" horiz-adv-x="1000" />
<glyph glyph-name="power" unicode="&#xe824;" d="m339 75q95 0 164 69t70 166q0 97-69 166-15 15-15 36t15 36 37 15 37-15q100-100 100-238 0-140-100-240-99-99-239-99-141 0-240 99t-99 240q0 140 99 238 15 15 37 15t37-15 15-36-15-36q-69-69-69-166 0-97 69-166t166-69z m0 291q-21 0-37 15t-16 36l0 261q0 22 16 37t37 15 36-15 15-37l0-261q0-21-15-36t-36-15z" horiz-adv-x="678" />
<glyph glyph-name="link" unicode="&#xe825;" d="m9 600q0 67 47 113l82 82q47 46 114 46 67 0 114-47l114-116q47-46 47-113 0-69-49-117l49-49q48 49 116 49 67 0 114-47l116-116q47-47 47-114t-48-113l-82-81q-46-47-113-47-68 0-114 48l-115 115q-46 47-46 114 0 68 49 116l-49 49q-48-49-116-49-67 0-114 47l-116 116q-47 47-47 114z m107 0q0-22 16-38l116-116q15-15 38-15 23 0 40 17-2 2-11 11t-12 12-8 10-7 14-2 16q0 22 15 38t38 15q9 0 16-2t14-7 10-8 12-12 11-11q18 17 18 41 0 22-15 38l-115 115q-16 16-38 16-22 0-38-15l-82-82q-16-15-16-37z m392-393q0-23 16-38l115-116q15-15 38-15 22 0 38 15l82 81q15 16 15 37 0 23-15 38l-116 116q-16 16-38 16-24 0-40-18 1-1 10-10t12-12 9-11 7-14 2-15q0-23-16-38t-38-16q-8 0-15 2t-14 7-11 9-12 12-10 10q-19-17-19-40z" horiz-adv-x="928.6" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

BIN
fonts/fontello.ttf Normal file

Binary file not shown.

BIN
fonts/fontello.woff Normal file

Binary file not shown.

20
fonts/ubuntu.css Normal file
View file

@ -0,0 +1,20 @@
@font-face {
font-family: 'Ubuntu'; font-weight: 400; font-style: normal;
src: local('Ubuntu'), local('Ubuntu-regular'),
url('Ubuntu-regular.woff') format('woff');
}
@font-face {
font-family: 'Ubuntu'; font-weight: 700; font-style: normal;
src: local('Ubuntu Bold'), local('Ubuntu-700'),
url('Ubuntu-700.woff') format('woff');
}
@font-face {
font-family: 'Ubuntu'; font-weight: 400; font-style: italic;
src: local('Ubuntu Italic'), local('Ubuntu-italic'),
url('Ubuntu-italic.woff') format('woff');
}
@font-face {
font-family: 'Ubuntu'; font-weight: 700; font-style: italic;
src: local('Ubuntu Bold Italic'), local('Ubuntu-700italic'),
url('Ubuntu-700italic.woff') format('woff');
}

BIN
images/answer-select.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/icons/anchor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
images/icons/answer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
images/icons/approve.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/icons/claim.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
images/icons/close-red.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/icons/close.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
images/icons/comment.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/icons/delete.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

BIN
images/icons/edit-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/icons/edit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

BIN
images/icons/fev-star.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/icons/flag-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/icons/flag.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/icons/hide-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/icons/hide.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

BIN
images/icons/link-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

BIN
images/icons/link.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

BIN
images/icons/mail-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
images/icons/mail.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
images/icons/open-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/icons/open.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/icons/rejected.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
images/icons/reply.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
images/icons/show-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
images/icons/show.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

BIN
images/icons/un-flag.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
images/search-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
images/star.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
images/star14.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
images/vote-buttons.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

87
js/snow-core.js Normal file
View file

@ -0,0 +1,87 @@
/*
Q2A Market (c) Jatin Soni
http://www.q2amarket.com/
File: js/snow-core.js
Version: Snow 1.4
Description: JavaScript helpers for SnowFlat theme
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*/
$(document).ready(function () {
/**
* Account menu box toggle script
*/
$('#qam-account-toggle').click(function (e) {
e.stopPropagation();
$(this).toggleClass('account-active');
$('.qam-account-items').slideToggle(100);
});
$(document).click(function () {
$('#qam-account-toggle.account-active').removeClass('account-active');
$('.qam-account-items:visible').slideUp(100);
});
$('.qam-account-items').click(function (event) {
event.stopPropagation();
});
/**
* Main navigation toggle script
*/
$('.qam-menu-toggle').click(function () {
$('.qa-nav-main').slideToggle(100);
$(this).toggleClass('current');
});
/*
* Sidepannel Toggle Click Function
*/
$('#qam-sidepanel-toggle').click(function () {
$('#qam-sidepanel-mobile').toggleClass('open');
$(this).toggleClass('active');
$(this).find('i').toggleClass('icon-right-open-big');
});
/**
* Toggle search box for small screen
*/
$('#qam-search-mobile').click(function () {
$(this).toggleClass('active');
$('#the-top-search').slideToggle('fast');
});
/*
* Add wrapper to users point on users list
*/
$('.qa-top-users-score').wrapInner('<div class="qam-user-score-icon"></div>');
/*
* add wrapper to the message sent note 'td'
*/
$('.qa-part-form-message .qa-form-tall-ok').wrapInner('<div class="qam-pm-message"></div>');
// fix the visible issue for main nav, top search-box
$(window).resize(function () {
if (window.matchMedia('(min-width: 980px)').matches) {
$(".qam-search.the-top .qa-search").hide();
$(".qa-nav-main").show('fast', function() { $(this).css('display','inline-block'); });
} else {
$(".qam-search.the-top .qa-search").show();
$(".qa-nav-main").hide();
$('.qam-menu-toggle').removeClass('current');
}
});
});

10
metadata.json Normal file
View file

@ -0,0 +1,10 @@
{
"name": "SnowFlat",
"description": "SnowFlat responsive theme with RTL support",
"version": "1.4",
"date": "2014-03-11",
"author": "Q2A Market",
"author_uri": "http://www.q2amarket.com",
"license": "GPLv2",
"min_q2a": "1.7"
}

451
qa-styles-rtl.css Normal file
View file

@ -0,0 +1,451 @@
/*------[ variables css ]------*/
/*------[ mixins ]------*/
body {
direction: rtl;
}
pre {
border-left: 0;
border-right: 11px solid #3498db;
margin: 1.7em 0.3em 1.7em 0;
padding: 0.1em 0.7em 0.3em 0.5em;
}
blockquote {
border-left: 0;
border-right: 11px solid #3498db;
}
h1 {
padding: 8px 20px 8px 52px;
}
.qa-search-field {
margin: 0 0 0 -40px;
padding: 0 5px 0 40px;
}
.qa-search-button {
position: relative;
}
.qam-title-rss {
float: left;
}
.entry-content th, .entry-content td, .qa-c-item-content th, .qa-c-item-content td {
text-align: right;
}
.entry-content ul, .qa-c-item-content ul {
margin: 20px 20px 20px 0;
}
.entry-content ul > li:before, .qa-c-item-content ul > li:before {
left: auto;
right: -1.6em;
}
.entry-content ul > li > ul, .qa-c-item-content ul > li > ul {
margin: 0 20px 0 0;
}
.entry-content ol, .qa-c-item-content ol {
margin: 20px 20px 20px 0;
}
.entry-content ol > li > ol, .qa-c-item-content ol > li > ol {
margin: 0 20px 0 0;
}
.qa-favoriting {
right: auto;
left: 10px;
}
.qa-logo {
margin: 0 0 0 1px;
}
@media (max-width: 979px) {
.qam-search-mobile {
border-left: 0;
border-right: 1px solid #1dd2af;
}
.qam-search-mobile.orange {
border-right-color: #f4a62a;
}
.qam-search-mobile.carrot {
border-right-color: #e98b39;
}
.qam-search-mobile.alizarin {
border-right-color: #ea6153;
}
.qam-search-mobile.turquoise {
border-right-color: #1dd2af;
}
.qam-search-mobile.emerald {
border-right-color: #40d47e;
}
.qam-search-mobile.peter-river {
border-right-color: #4aa3df;
}
.qam-search-mobile.amethyst {
border-right-color: #a66bbe;
}
.qam-search-mobile.wet-asphalt {
border-right-color: #3d566e;
}
.qam-menu-toggle {
float: right;
margin: 0 0 0 10px;
}
.qa-nav-main {
left: auto;
right: 0;
}
.qa-nav-main-link:before {
margin: 0 0 0 15px;
}
.qa-nav-sub-item {
float: right;
}
}
@media (min-width: 980px) {
.qa-nav-main-item {
float: right;
}
.qa-nav-main-item-opp {
float: left;
}
.qa-nav-main-item-opp:last-child {
margin: 0 50px 0 0;
}
}
.qam-account-items-wrapper {
float: left;
}
.qam-account-items {
right: auto;
left: 0;
}
.qa-logged-in:before {
margin: 0 0 0 10px;
}
.qam-logged-in-points:before {
margin: 0 0 0 10px;
}
.qa-nav-user-updates:before {
margin: 0 0 0 10px;
}
.qa-nav-user-logout:before {
margin: 0 0 0 10px;
}
.qa-q-list-item.qa-q-favorited {
border-right: 1px solid #8e44ad;
}
.qa-q-item-stats {
float: right;
}
@media (min-width: 800px) {
.qa-voting {
float: right;
}
}
@media (min-width: 800px) {
.qa-a-count, .qa-view-count {
float: right;
}
}
.qa-q-item-main {
float: right;
padding-right: 10px;
}
@media (max-width: 240px) {
.qa-q-item-main {
padding-right: 0;
}
}
.qam-q-list-close-icon {
float: right;
margin: 5px 0 0 5px;
}
.qa-q-item-avatar {
margin: 0 0 0 5px;
}
@media (min-width: 480px) {
.qa-q-item-avatar {
float: right;
}
}
.qa-q-item-meta {
float: right;
}
.qa-q-item-meta .qa-category-link.qa-cat-favorited {
padding-right: 14px;
}
.qa-q-item-meta .qa-category-link.qa-cat-favorited:before {
left: auto;
right: 0;
}
.qa-q-item-meta .qa-user-link.qa-user-favorited {
padding-right: 14px;
}
.qa-q-item-meta .qa-user-link.qa-user-favorited:before {
left: auto;
right: 0;
}
.qa-tag-link.qa-tag-favorited, .qa-widget-side .qa-q-view-tag-item.qa-tag-favorited {
padding-right: 25px;
}
.qa-tag-link.qa-tag-favorited:before, .qa-widget-side .qa-q-view-tag-item.qa-tag-favorited:before {
left: auto;
right: 0;
}
.qa-top-users-label .qa-avatar-link {
float: right;
margin-left: 1em;
}
.qa-top-users-label .qa-user-link {
float: right;
}
.qa-top-users-label .qa-user-link:before {
left: auto;
right: -5px;
border-left: 5px solid #e74c3c;
}
@media (min-width: 980px) {
.qa-top-users-label .qa-user-link:after {
right: auto;
left: 0;
border-right: 7px solid #e74c3c;
}
.qa-top-users-label .qa-user-link:hover:after, .qa-top-users-label .qa-user-link:focus:after {
-ms-transform: translate(-80px, 0);
-webkit-transform: translate(-80px, 0);
transform: translate(-80px, 0);
}
}
.qa-top-users-label .qa-user-link.qa-user-favorited {
padding-right: 22px;
}
.qam-user-score-icon {
padding: 2px 1.8em 2px 6px;
float: left;
}
.qam-user-score-icon:before {
left: auto;
right: 0;
}
.qa-browse-cat-link:before {
right: auto;
left: -5px;
border-right: 5px solid #c0392b;
}
.qa-browse-cat-note a {
right: auto;
left: 5px;
padding: 2px 2em 2px 10px;
}
.qa-browse-cat-note a:before {
left: auto;
right: 0;
}
@media (min-width: 980px) {
.qa-template-user [class^="qa-part-form"], .qa-template-user .qa-part-message-list {
float: left;
clear: left;
}
.qa-template-user .qa-part-form-profile {
float: right;
}
}
.qa-form-light-button {
float: left;
margin: 0 5px 0 0;
}
.qa-form-light-button-answer {
float: right;
margin: 0 0 0 5px;
}
.qa-form-light-button-comment {
float: right;
}
.qa-q-view-stats {
float: right;
}
.qam-q-view-close-icon {
float: right;
margin: 8px 0 5px 0;
}
.qa-q-view-avatar {
right: auto;
left: 20px;
}
@media (max-width: 979px) {
.qa-q-view-meta {
clear: right;
}
}
@media (min-width: 980px) {
.qa-q-view-main {
float: right;
margin: 0 20px 0 0;
}
}
.qa-q-view-closed {
padding: 10px 54px 10px 10px;
}
.qa-q-view-closed:before {
left: auto;
right: 0;
}
.qa-q-view-closed:hover {
padding: 10px 54px 10px 10px;
margin-bottom: 5px;
background: #e74c3c;
color: #fff;
}
.qa-q-view-closed:hover a {
color: #fff;
border-bottom: 1px dotted #fff;
}
.qa-q-view-closed:hover a:hover {
color: #fff;
border-bottom: 0;
}
.qa-a-item-avatar {
right: auto;
left: 20px;
}
.qa-a-selection {
position: absolute;
}
@media (max-width: 979px) {
.qa-a-selection {
left: auto;
right: 100px;
}
}
@media (min-width: 980px) {
.qa-a-selection {
left: auto;
right: 20px;
}
.qa-a-item-main {
float: left;
margin: 0 20px 0 0;
}
}
.qa-a-selection .qa-waiting {
margin: -7px -7px 0 0;
}
.qa-c-list-item .qa-form-light-button {
float: left;
margin: 0 5px 0 0;
}
.qa-c-list-item .qa-form-light-button-comment {
float: right;
}
.qa-c-item-avatar {
right: auto;
left: 10px;
}
.qa-activity-count-item {
float: right;
}
.qa-nav-cat-link.qa-nav-cat-favorited {
padding-right: 20px;
}
.qa-nav-cat-link.qa-nav-cat-favorited:before {
left: auto;
right: 0;
}
.qa-nav-cat-note {
float: left;
}
.qa-feed-link:before {
float: right;
margin-right: 0;
margin-left: 8px;
}
@media (min-width: 480px) {
.qa-nav-footer {
float: right;
}
.qa-attribution {
float: left;
border-left: 1px solid rgba(255, 255, 255, 0.5);
}
.qam-attribution {
float: left;
padding: 0 5px 0 0;
}
}
.qa-nav-footer-item {
float: right;
}
.qa-nav-footer-link {
padding: 0 0 0 5px;
border-width: 0 0 0 1px;
}
@media (min-width: 980px) {
.qa-main {
float: right;
}
.qa-sidepanel {
float: left;
}
.qam-footer-col {
float: right;
}
}

3495
qa-styles.css Normal file

File diff suppressed because it is too large Load diff

663
qa-theme.php Normal file
View file

@ -0,0 +1,663 @@
<?php
/*
CrazyToad for Question2Answer Package
Copyright (c) 2017 mose
based on
Copyright (C) 2014 Q2A Market <http://www.q2amarket.com>
File: qa-theme.php
Version: CrazyToad 1.0
Description: Q2A theme class
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*/
/**
* Snow theme extends
*
* Extends the core theme class <code>qa_html_theme_base</code>
*
* @package qa_html_theme_base
* @subpackage qa_html_theme
* @category Theme
* @since Snow 1.0
* @version 1.4
* @author Q2A Market <http://www.q2amarket.com>
* @copyright (c) 2014, Q2A Market
* @license http://www.gnu.org/copyleft/gpl.html
*/
class qa_html_theme extends qa_html_theme_base
{
// use local font files instead of Google Fonts
private $localfonts = true;
// theme subdirectories
private $js_dir = 'js';
private $icon_url = 'images/icons';
private $fixed_topbar = false;
private $welcome_widget_class = 'wet-asphalt';
private $ask_search_box_class = 'turquoise';
// Size of the user avatar in the navigation bar
private $nav_bar_avatar_size = 52;
/**
* Adding aditional meta for responsive design
*
* @since Snow 1.4
*/
public function head_metas()
{
$this->output('<meta name="viewport" content="width=device-width, initial-scale=1"/>');
parent::head_metas();
}
/**
* Adding theme stylesheets
*
* @since Snow 1.4
*/
public function head_css()
{
// add RTL CSS file
if ($this->isRTL)
$this->content['css_src'][] = $this->rooturl . 'qa-styles-rtl.css?' . QA_VERSION;
// add Ubuntu font CSS file from Google Fonts
if ($this->localfonts)
$this->content['css_src'][] = $this->rooturl . 'fonts/ubuntu.css?' . QA_VERSION;
else
$this->content['css_src'][] = '//fonts.googleapis.com/css?family=Ubuntu:400,700,400italic,700italic';
parent::head_css();
// output some dynamic CSS inline
$this->head_inline_css();
}
/**
* Adding theme javascripts
*
* @since Snow 1.4
*/
public function head_script()
{
$jsUrl = $this->rooturl . $this->js_dir . '/snow-core.js?' . QA_VERSION;
$this->content['script'][] = '<script src="' . $jsUrl . '"></script>';
parent::head_script();
}
/**
* Adding point count for logged in user
*
* @since Snow 1.4
*/
public function logged_in()
{
parent::logged_in();
if (qa_is_logged_in()) {
$userpoints = qa_get_logged_in_points();
$pointshtml = $userpoints == 1
? qa_lang_html_sub('main/1_point', '1', '1')
: qa_html(number_format($userpoints))
;
$this->output('<div class="qam-logged-in-points">' . $pointshtml . '</div>');
}
}
/**
* Adding body class dynamically. Override needed to add class on admin/approve-users page
*
* @since Snow 1.4
*/
public function body_tags()
{
$class = 'qa-template-' . qa_html($this->template);
if (isset($this->content['categoryids'])) {
foreach ($this->content['categoryids'] as $categoryid)
$class .= ' qa-category-' . qa_html($categoryid);
}
// add class if admin/appovoe-users page
if ($this->template === 'admin' && qa_request_part(1) === 'approve')
$class .= ' qam-approve-users';
if ($this->fixed_topbar)
$class .= ' qam-body-fixed';
$this->output('class="' . $class . ' qa-body-js-off"');
}
/**
* Login form for user dropdown menu.
*
* @since Snow 1.4
*/
public function nav_user_search()
{
// outputs login form if user not logged in
$this->output('<div class="qam-account-items-wrapper">');
$this->qam_user_account();
$this->output('<div class="qam-account-items clearfix">');
if (!qa_is_logged_in()) {
if (isset($this->content['navigation']['user']['login']) && !QA_FINAL_EXTERNAL_USERS) {
$login = $this->content['navigation']['user']['login'];
$this->output(
'<form action="' . $login['url'] . '" method="post">',
'<input type="text" name="emailhandle" dir="auto" placeholder="' . trim(qa_lang_html(qa_opt('allow_login_email_only') ? 'users/email_label' : 'users/email_handle_label'), ':') . '"/>',
'<input type="password" name="password" dir="auto" placeholder="' . trim(qa_lang_html('users/password_label'), ':') . '"/>',
'<div><input type="checkbox" name="remember" id="qam-rememberme" value="1"/>',
'<label for="qam-rememberme">' . qa_lang_html('users/remember') . '</label></div>',
'<input type="hidden" name="code" value="' . qa_html(qa_get_form_security_code('login')) . '"/>',
'<input type="submit" value="' . $login['label'] . '" class="qa-form-tall-button qa-form-tall-button-login" name="dologin"/>',
'</form>'
);
// remove regular navigation link to log in page
unset($this->content['navigation']['user']['login']);
}
}
$this->nav('user');
$this->output('</div> <!-- END qam-account-items -->');
$this->output('</div> <!-- END qam-account-items-wrapper -->');
}
/**
* Modify markup for topbar.
*
* @since Snow 1.4
*/
public function nav_main_sub()
{
$this->output('<div class="qam-main-nav-wrapper clearfix">');
$this->output('<div class="sb-toggle-left qam-menu-toggle"><i class="icon-th-list"></i></div>');
$this->nav_user_search();
$this->logo();
$this->nav('main');
$this->output('</div> <!-- END qam-main-nav-wrapper -->');
$this->nav('sub');
}
/**
* Remove the '-' from the note for the category page (notes).
*
* @since Snow 1.4
* @param type $navlink
* @param type $class
*/
public function nav_link($navlink, $class)
{
if (isset($navlink['note']) && !empty($navlink['note'])) {
$search = array(' - <', '> - ');
$replace = array(' <', '> ');
$navlink['note'] = str_replace($search, $replace, $navlink['note']);
}
parent::nav_link($navlink, $class);
}
/**
* Rearranges the layout:
* - Swaps the <tt>main()</tt> and <tt>sidepanel()</tt> functions
* - Moves the header and footer functions outside qa-body-wrapper
* - Keeps top/high and low/bottom widgets separated
*
* @since Snow 1.4
*/
public function body_content()
{
$this->body_prefix();
$this->notices();
$this->widgets('full', 'top');
$this->header();
$this->output('<div class="qa-body-wrapper">', '');
$this->widgets('full', 'high');
$this->output('<div class="qa-main-wrapper">', '');
$this->main();
$this->sidepanel();
$this->output('</div> <!-- END main-wrapper -->');
$this->widgets('full', 'low');
$this->output('</div> <!-- END body-wrapper -->');
$this->footer();
$this->body_suffix();
}
/**
* Header in full width top bar
*
* @since Snow 1.4
*/
public function header()
{
$class = $this->fixed_topbar ? ' fixed' : '';
$this->output('<div id="qam-topbar" class="clearfix' . $class . '">');
$this->nav_main_sub();
$this->output('</div> <!-- END qam-topbar -->');
$this->output($this->ask_button());
$this->qam_search('the-top', 'the-top-search');
}
/**
* Footer in full width bottom bar
*
* @since Snow 1.4
*/
public function footer()
{
$this->output('<div class="qam-footer-box">');
$this->output('<div class="qam-footer-row">');
$this->widgets('full', 'bottom');
$this->output('</div> <!-- END qam-footer-row -->');
parent::footer();
$this->output('</div> <!-- END qam-footer-box -->');
}
/**
* Overridden to customize layout and styling
*
* @since Snow 1.4
*/
public function sidepanel()
{
// remove sidebar for user profile pages
if ($this->template == 'user')
return;
$this->output('<div id="qam-sidepanel-toggle"><i class="icon-left-open-big"></i></div>');
$this->output('<div class="qa-sidepanel" id="qam-sidepanel-mobile">');
$this->qam_search();
$this->widgets('side', 'top');
$this->sidebar();
$this->widgets('side', 'high');
$this->nav('cat', 1);
$this->widgets('side', 'low');
if (isset($this->content['sidepanel']))
$this->output_raw($this->content['sidepanel']);
$this->feed();
$this->widgets('side', 'bottom');
$this->output('</div> <!-- qa-sidepanel -->', '');
}
/**
* Allow alternate sidebar color.
*
* @since Snow 1.4
*/
public function sidebar()
{
if (isset($this->content['sidebar'])) {
$sidebar = $this->content['sidebar'];
if (!empty($sidebar)) {
$this->output('<div class="qa-sidebar ' . $this->welcome_widget_class . '">');
$this->output_raw($sidebar);
$this->output('</div> <!-- qa-sidebar -->', '');
}
}
}
/**
* Add close icon
*
* @since Snow 1.4
* @param array $q_item
*/
public function q_item_title($q_item)
{
$closedText = qa_lang('main/closed');
$imgHtml = empty($q_item['closed'])
? ''
: '<img src="' . $this->rooturl . $this->icon_url . '/closed-q-list.png" class="qam-q-list-close-icon" alt="' . $closedText . '" title="' . $closedText . '"/>';
$this->output(
'<div class="qa-q-item-title">',
// add closed note in title
$imgHtml,
'<a href="' . $q_item['url'] . '">' . $q_item['title'] . '</a>',
'</div>'
);
}
/**
* Add RSS feeds icon and closed icon for closed questions
*
* @since Snow 1.4
*/
public function title()
{
$q_view = isset($this->content['q_view']) ? $this->content['q_view'] : null;
// RSS feed link in title
if (isset($this->content['feed']['url'])) {
$feed = $this->content['feed'];
$label = isset($feed['label']) ? $feed['label'] : '';
$this->output('<a href="' . $feed['url'] . '" title="' . $label . '"><i class="icon-rss qam-title-rss"></i></a>');
}
// link title where appropriate
$url = isset($q_view['url']) ? $q_view['url'] : false;
// add closed image
$closedText = qa_lang('main/closed');
$imgHtml = empty($q_view['closed'])
? ''
: '<img src="' . $this->rooturl . $this->icon_url . '/closed-q-view.png" class="qam-q-view-close-icon" alt="' . $closedText . '" width="24" height="24" title="' . $closedText . '"/>';
if (isset($this->content['title'])) {
$this->output(
$imgHtml,
$url ? '<a href="' . $url . '">' : '',
$this->content['title'],
$url ? '</a>' : ''
);
}
}
/**
* Add view counter to question list
*
* @since Snow 1.4
* @param array $q_item
*/
public function q_item_stats($q_item)
{
$this->output('<div class="qa-q-item-stats">');
$this->voting($q_item);
$this->a_count($q_item);
parent::view_count($q_item);
$this->output('</div>');
}
/**
* Prevent display view counter on usual place
*
* @since Snow 1.4
* @param type $q_item
*/
public function view_count($q_item) {}
/**
* Add view counter to question view
*
* @since Snow 1.4
* @param type $q_view
*/
public function q_view_stats($q_view)
{
$this->output('<div class="qa-q-view-stats">');
$this->voting($q_view);
$this->a_count($q_view);
parent::view_count($q_view);
$this->output('</div>');
}
/**
* Modify user whometa, move to top
*
* @since Snow 1.4
* @param type $q_view
*/
public function q_view_main($q_view)
{
$this->output('<div class="qa-q-view-main">');
if (isset($q_view['main_form_tags']))
$this->output('<form ' . $q_view['main_form_tags'] . '>'); // form for buttons on question
$this->post_avatar_meta($q_view, 'qa-q-view');
$this->q_view_content($q_view);
$this->q_view_extra($q_view);
$this->q_view_follows($q_view);
$this->q_view_closed($q_view);
$this->post_tags($q_view, 'qa-q-view');
$this->q_view_buttons($q_view);
$this->c_list(isset($q_view['c_list']) ? $q_view['c_list'] : null, 'qa-q-view');
if (isset($q_view['main_form_tags'])) {
if (isset($q_view['buttons_form_hidden']))
$this->form_hidden_elements($q_view['buttons_form_hidden']);
$this->output('</form>');
}
$this->c_form(isset($q_view['c_form']) ? $q_view['c_form'] : null);
$this->output('</div> <!-- END qa-q-view-main -->');
}
/**
* Move user whometa to top in answer
*
* @since Snow 1.4
* @param type $a_item
*/
public function a_item_main($a_item)
{
$this->output('<div class="qa-a-item-main">');
$this->post_avatar_meta($a_item, 'qa-a-item');
if (isset($a_item['main_form_tags']))
$this->output('<form ' . $a_item['main_form_tags'] . '>'); // form for buttons on answer
if ($a_item['hidden'])
$answerState = 'hidden';
elseif ($a_item['selected'])
$answerState = 'selected';
else
$answerState = null;
if (isset($answerState))
$this->output('<div class="qa-a-item-' . $answerState . '">');
$this->a_selection($a_item);
if (isset($a_item['error']))
$this->error($a_item['error']);
$this->a_item_content($a_item);
if (isset($answerState))
$this->output('</div>');
$this->a_item_buttons($a_item);
if (isset($a_item['c_list']))
$this->c_list($a_item['c_list'], 'qa-a-item');
if (isset($a_item['main_form_tags'])) {
if (isset($a_item['buttons_form_hidden']))
$this->form_hidden_elements($a_item['buttons_form_hidden']);
$this->output('</form>');
}
$this->c_form(isset($a_item['c_form']) ? $a_item['c_form'] : null);
$this->output('</div> <!-- END qa-a-item-main -->');
}
/**
* Move user whometa to top in comment
*
* @since Snow 1.4
* @param type $c_item
*/
public function c_item_main($c_item)
{
$this->post_avatar_meta($c_item, 'qa-c-item');
if (isset($c_item['error']))
$this->error($c_item['error']);
if (isset($c_item['expand_tags']))
$this->c_item_expand($c_item);
elseif (isset($c_item['url']))
$this->c_item_link($c_item);
else
$this->c_item_content($c_item);
$this->output('<div class="qa-c-item-footer">');
$this->c_item_buttons($c_item);
$this->output('</div>');
}
/**
* Q2A Market attribution.
* I'd really appreciate you displaying this link on your Q2A site. Thank you - Jatin
*
* @since Snow 1.4
*/
public function attribution()
{
// floated right
$this->output(
'<div class="qa-attribution">',
'CrazyToad on <a href="https://github.com/crazy-toads/q2a-theme-crazytoad">github</a>',
'</div>'
);
parent::attribution();
}
/**
* User account navigation item. This will return based on login information.
* If user is logged in, it will populate user avatar and account links.
* If user is guest, it will populate login form and registration link.
*
* @since Snow 1.4
*/
private function qam_user_account()
{
if (qa_is_logged_in()) {
// get logged-in user avatar
$handle = qa_get_logged_in_user_field('handle');
$toggleClass = 'qam-logged-in';
if (QA_FINAL_EXTERNAL_USERS)
$tobar_avatar = qa_get_external_avatar_html(qa_get_logged_in_user_field('userid'), $this->nav_bar_avatar_size, true);
else {
$tobar_avatar = qa_get_user_avatar_html(
qa_get_logged_in_user_field('flags'),
qa_get_logged_in_user_field('email'),
$handle,
qa_get_logged_in_user_field('avatarblobid'),
qa_get_logged_in_user_field('avatarwidth'),
qa_get_logged_in_user_field('avatarheight'),
$this->nav_bar_avatar_size,
false
);
}
$avatar = strip_tags($tobar_avatar, '<img>');
if (!empty($avatar))
$handle = '';
}
else {
// display login icon and label
$handle = $this->content['navigation']['user']['login']['label'];
$toggleClass = 'qam-logged-out';
$avatar = '<i class="icon-key qam-auth-key"></i>';
}
// finally output avatar with div tag
$handleBlock = empty($handle) ? '' : '<div class="qam-account-handle">' . qa_html($handle) . '</div>';
$this->output(
'<div id="qam-account-toggle" class="' . $toggleClass . '">',
$avatar,
$handleBlock,
'</div>'
);
}
/**
* Add search-box wrapper with extra class for color scheme
*
* @since Snow 1.4
* @version 1.0
*/
private function qam_search($addon_class = null, $ids = null)
{
$id = isset($ids) ? ' id="' . $ids . '"' : '';
$this->output('<div class="qam-search ' . $this->ask_search_box_class . ' ' . $addon_class . '"' . $id . '>');
$this->search();
$this->output('</div>');
}
/**
* Dynamic <code>CSS</code> based on options and other interaction with Q2A.
*
* @since Snow 1.4
* @version 1.0
* @return string The CSS code
*/
private function head_inline_css()
{
$css = array('<style>');
if (!qa_is_logged_in())
$css[] = '.qa-nav-user { margin: 0 !important; }';
if (qa_request_part(1) !== qa_get_logged_in_handle()) {
$css[] = '@media (max-width: 979px) {';
$css[] = ' body.qa-template-user.fixed, body[class*="qa-template-user-"].fixed { padding-top: 118px !important; }';
$css[] = ' body.qa-template-users.fixed { padding-top: 95px !important; }';
$css[] = '}';
$css[] = '@media (min-width: 980px) {';
$css[] = ' body.qa-template-users.fixed { padding-top: 105px !important;}';
$css[] = '}';
}
$css[] = '</style>';
$this->output_array($css);
}
/**
* Custom ask button for medium and small screen
*
* @access private
* @since Snow 1.4
* @version 1.0
* @return string Ask button html markup
*/
private function ask_button()
{
return
'<div class="qam-ask-search-box">' .
'<div class="qam-ask-mobile">' .
'<a href="' . qa_path('ask', null, qa_path_to_root()) . '" class="' . $this->ask_search_box_class . '">' .
qa_lang_html('main/nav_ask') .
'</a>' .
'</div>' .
'<div class="qam-search-mobile ' . $this->ask_search_box_class . '" id="qam-search-mobile">' .
'</div>' .
'</div>';
}
}