Version Description
- updated to the latest version of the timthumb 2.8.10
Download this release
Release Info
Developer | oltdev |
Plugin | ![]() |
Version | 1.4.8 |
Comparing to | |
See all releases |
Code changes from version 1.2 to 1.4.8
- css/user-avatar.css +51 -14
- languages/user-avatar-es_ES.mo +0 -0
- languages/user-avatar-es_ES.po +83 -0
- languages/user-avatar-it_IT.mo +0 -0
- languages/user-avatar-it_IT.po +83 -0
- languages/user-avatar-ru_RU.mo +0 -0
- languages/user-avatar-ru_RU.po +83 -0
- languages/user-avatar-zh_CN.mo +0 -0
- languages/user-avatar-zh_CN.po +83 -0
- languages/user-avatar.POT +81 -0
- readme.txt +64 -4
- screenshot-1.png +0 -0
- screenshot-5.png +0 -0
- screenshot-6.png +0 -0
- timthumb-config.php +44 -0
- user-avatar-pic.php +1244 -0
- user-avatar.php +252 -198
css/user-avatar.css
CHANGED
@@ -40,27 +40,64 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
40 |
float:left;
|
41 |
margin: 15px 0px 0px 15px;
|
42 |
}
|
|
|
|
|
|
|
43 |
#user-avatar-display{
|
44 |
-
position:absolute;
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
53 |
#user-avatar-display-image{
|
54 |
-
border:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
}
|
56 |
#user-avatar-link{
|
57 |
-
|
58 |
-
margin:0 0 10px 30px;
|
59 |
}
|
60 |
#user-avatar-remove{
|
61 |
-
|
62 |
-
|
63 |
-
margin:0 0 0 18px;
|
64 |
}
|
65 |
#uploadForm{
|
66 |
margin-left:230px;
|
40 |
float:left;
|
41 |
margin: 15px 0px 0px 15px;
|
42 |
}
|
43 |
+
.folded #user-avatar-display{
|
44 |
+
left:750px;
|
45 |
+
}
|
46 |
#user-avatar-display{
|
47 |
+
position: absolute;
|
48 |
+
top:100px;
|
49 |
+
right: 10%;
|
50 |
+
left:900px;
|
51 |
+
text-align: center;
|
52 |
+
padding: 0 10px 10px;
|
53 |
+
width: 170px;
|
54 |
+
background: #EEE;
|
55 |
+
-moz-border-radius: 6px; /* FF1+ */
|
56 |
+
-webkit-border-radius: 6px; /* Saf3-4, iOS 1+, Android 1.5+ */
|
57 |
+
border-radius: 6px; /* Opera 10.5, IE9, Saf5, Chrome, FF4 */
|
58 |
+
}
|
59 |
+
|
60 |
+
@media all and (max-width: 1104px) {
|
61 |
+
#user-avatar-display {
|
62 |
+
left: auto;
|
63 |
+
right:0;
|
64 |
+
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
@media all and (max-width: 930px) {
|
69 |
+
.folded #user-avatar-display {
|
70 |
+
left: auto;
|
71 |
+
right:0;
|
72 |
+
|
73 |
+
}
|
74 |
+
}
|
75 |
+
|
76 |
+
#user-avatar-display h3{
|
77 |
+
margin-bottom: 0;
|
78 |
+
margin-top: 5px;
|
79 |
+
text-shadow: 0 1px 0 #FFFFFF;
|
80 |
+
text-align: left;
|
81 |
+
font-size: 12px;
|
82 |
+
|
83 |
}
|
84 |
#user-avatar-display-image{
|
85 |
+
border:3px solid #E3E3E3;
|
86 |
+
background: #FFF;
|
87 |
+
padding: 8px;
|
88 |
+
width: 150px;
|
89 |
+
margin-top:2px;
|
90 |
+
border:1px solid #E3E3E3;
|
91 |
+
-moz-border-radius: 6px; /* FF1+ */
|
92 |
+
-webkit-border-radius: 6px; /* Saf3-4, iOS 1+, Android 1.5+ */
|
93 |
+
border-radius: 6px; /* Opera 10.5, IE9, Saf5, Chrome, FF4 */
|
94 |
}
|
95 |
#user-avatar-link{
|
96 |
+
user-avatar-remove
|
|
|
97 |
}
|
98 |
#user-avatar-remove{
|
99 |
+
font-size: 11px;
|
100 |
+
|
|
|
101 |
}
|
102 |
#uploadForm{
|
103 |
margin-left:230px;
|
languages/user-avatar-es_ES.mo
ADDED
Binary file
|
languages/user-avatar-es_ES.po
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: User Avatar 1.3.3\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2011-03-22 11:20+0100\n"
|
6 |
+
"PO-Revision-Date: 2011-09-30 16:48+0100\n"
|
7 |
+
"Last-Translator: Gabriel <Gabriel@ElFrutero.es>\n"
|
8 |
+
"Language-Team: INTERNOZEROUNO <info@interno01.it>\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Poedit-KeywordsList: __;gettext;gettext_noop;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-Language: Italian\n"
|
15 |
+
"X-Poedit-Country: ITALY\n"
|
16 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
17 |
+
"X-Poedit-SearchPath-0: ..\n"
|
18 |
+
|
19 |
+
#: ../user-avatar.php:157
|
20 |
+
msgid "Uploads"
|
21 |
+
msgstr "Subidas"
|
22 |
+
|
23 |
+
#: ../user-avatar.php:157
|
24 |
+
msgid "WordPress"
|
25 |
+
msgstr "WordPress"
|
26 |
+
|
27 |
+
#: ../user-avatar.php:190
|
28 |
+
msgid "You are not allowed to do that."
|
29 |
+
msgstr "No estás autorizado a hacer eso."
|
30 |
+
|
31 |
+
#: ../user-avatar.php:213
|
32 |
+
msgid "Choose an image from your computer:"
|
33 |
+
msgstr "Selecciona una imagen desde tu ordenador:"
|
34 |
+
|
35 |
+
#: ../user-avatar.php:236
|
36 |
+
msgid "Please upload an image file (.jpeg, .gif, .png)."
|
37 |
+
msgstr "Por favor, sube un archivo de imagen (.jpeg, .gif, .png)."
|
38 |
+
|
39 |
+
#: ../user-avatar.php:278
|
40 |
+
msgid "Choose the part of the image you want to use as your profile image."
|
41 |
+
msgstr "Escoge la parte de la imagen que quieres usar como tu imagen de perfil."
|
42 |
+
|
43 |
+
#: ../user-avatar.php:390
|
44 |
+
msgid "Sorry, No file available"
|
45 |
+
msgstr "Perdona, archivo no disponible."
|
46 |
+
|
47 |
+
#: ../user-avatar.php:414
|
48 |
+
msgid "Image could not be processed. Please go back and try again."
|
49 |
+
msgstr "La imagen no puede ser procesada. Por favot, vuelve e inténtalo de nuevo."
|
50 |
+
|
51 |
+
#: ../user-avatar.php:414
|
52 |
+
msgid "Image Processing Error"
|
53 |
+
msgstr "Error procesando la imagen."
|
54 |
+
|
55 |
+
#: ../user-avatar.php:421
|
56 |
+
msgid "Here's your new profile picture..."
|
57 |
+
msgstr "Aquí tenemos tu nueva imagen de perfil..."
|
58 |
+
|
59 |
+
#: ../user-avatar.php:427
|
60 |
+
msgid "Close"
|
61 |
+
msgstr "Cerrar"
|
62 |
+
|
63 |
+
#: ../user-avatar.php:710
|
64 |
+
msgid "Picture"
|
65 |
+
msgstr "Imagen"
|
66 |
+
|
67 |
+
#: ../user-avatar.php:712
|
68 |
+
msgid "Upload and Crop an Image to be Displayed"
|
69 |
+
msgstr "Subir y recortar una imagen para mostrar"
|
70 |
+
|
71 |
+
#: ../user-avatar.php:712
|
72 |
+
msgid "Update Picture"
|
73 |
+
msgstr "Actualizar imagen"
|
74 |
+
|
75 |
+
#: ../user-avatar.php:724
|
76 |
+
msgid "Remove User Avatar Image"
|
77 |
+
msgstr "Eliminar imagen"
|
78 |
+
|
79 |
+
#: ../user-avatar.php:724
|
80 |
+
#: ../user-avatar.php:735
|
81 |
+
msgid "Remove"
|
82 |
+
msgstr "Eliminar"
|
83 |
+
|
languages/user-avatar-it_IT.mo
ADDED
Binary file
|
languages/user-avatar-it_IT.po
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: User Avatar 1.3.3\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2011-03-22 11:20+0100\n"
|
6 |
+
"PO-Revision-Date: 2011-03-22 11:26+0100\n"
|
7 |
+
"Last-Translator: Mirko <mirko@interno01.it>\n"
|
8 |
+
"Language-Team: INTERNOZEROUNO <info@interno01.it>\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Poedit-KeywordsList: __;gettext;gettext_noop;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-Language: Italian\n"
|
15 |
+
"X-Poedit-Country: ITALY\n"
|
16 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
17 |
+
"X-Poedit-SearchPath-0: ..\n"
|
18 |
+
|
19 |
+
#: ../user-avatar.php:157
|
20 |
+
msgid "Uploads"
|
21 |
+
msgstr "Caricamenti"
|
22 |
+
|
23 |
+
#: ../user-avatar.php:157
|
24 |
+
msgid "WordPress"
|
25 |
+
msgstr ""
|
26 |
+
|
27 |
+
#: ../user-avatar.php:190
|
28 |
+
msgid "You are not allowed to do that."
|
29 |
+
msgstr "Non hai l'autorizzazione per questo."
|
30 |
+
|
31 |
+
#: ../user-avatar.php:213
|
32 |
+
msgid "Choose an image from your computer:"
|
33 |
+
msgstr "Seleziona un'immagine dal tuo computer:"
|
34 |
+
|
35 |
+
#: ../user-avatar.php:236
|
36 |
+
msgid "Please upload an image file (.jpeg, .gif, .png)."
|
37 |
+
msgstr "Carica un file di immagine (.jpg, .gif o .png)."
|
38 |
+
|
39 |
+
#: ../user-avatar.php:278
|
40 |
+
msgid "Choose the part of the image you want to use as your profile image."
|
41 |
+
msgstr "Scegli la porzione di immagine che vuoi usare per il tuo profilo."
|
42 |
+
|
43 |
+
#: ../user-avatar.php:390
|
44 |
+
msgid "Sorry, No file available"
|
45 |
+
msgstr "Nessun file disponibile"
|
46 |
+
|
47 |
+
#: ../user-avatar.php:414
|
48 |
+
msgid "Image could not be processed. Please go back and try again."
|
49 |
+
msgstr "L'immagine non può essere elaborata. Torna indietro e riprova."
|
50 |
+
|
51 |
+
#: ../user-avatar.php:414
|
52 |
+
msgid "Image Processing Error"
|
53 |
+
msgstr "Errore nell'elaborazione dell'immagine"
|
54 |
+
|
55 |
+
#: ../user-avatar.php:421
|
56 |
+
msgid "Here's your new profile picture..."
|
57 |
+
msgstr "Ecco la tua nuova immagine del profilo..."
|
58 |
+
|
59 |
+
#: ../user-avatar.php:427
|
60 |
+
msgid "Close"
|
61 |
+
msgstr "Chiudi"
|
62 |
+
|
63 |
+
#: ../user-avatar.php:710
|
64 |
+
msgid "Picture"
|
65 |
+
msgstr "Immagine"
|
66 |
+
|
67 |
+
#: ../user-avatar.php:712
|
68 |
+
msgid "Upload and Crop an Image to be Displayed"
|
69 |
+
msgstr "Carica e Ritaglia l'immagine che deve essere utilizzata"
|
70 |
+
|
71 |
+
#: ../user-avatar.php:712
|
72 |
+
msgid "Update Picture"
|
73 |
+
msgstr "Carica immagine"
|
74 |
+
|
75 |
+
#: ../user-avatar.php:724
|
76 |
+
msgid "Remove User Avatar Image"
|
77 |
+
msgstr "Rimuovi l'immagine"
|
78 |
+
|
79 |
+
#: ../user-avatar.php:724
|
80 |
+
#: ../user-avatar.php:735
|
81 |
+
msgid "Remove"
|
82 |
+
msgstr "Rimuovi"
|
83 |
+
|
languages/user-avatar-ru_RU.mo
ADDED
Binary file
|
languages/user-avatar-ru_RU.po
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: User Avatar 1.3.3\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2011-03-23 10:13+0100\n"
|
6 |
+
"PO-Revision-Date: 2011-03-24 12:58+0200\n"
|
7 |
+
"Last-Translator: Иван Волков <ivan.volkov@live.ru>\n"
|
8 |
+
"Language-Team: Ivan Volkov <ivan.volkov@live.ru>\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Poedit-KeywordsList: __;gettext;gettext_noop;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
15 |
+
"X-Poedit-Language: Russian\n"
|
16 |
+
"X-Poedit-Country: RUSSIAN FEDERATION\n"
|
17 |
+
"X-Poedit-SearchPath-0: ..\n"
|
18 |
+
|
19 |
+
#: ../user-avatar.php:157
|
20 |
+
msgid "Uploads"
|
21 |
+
msgstr "Загрузки"
|
22 |
+
|
23 |
+
#: ../user-avatar.php:157
|
24 |
+
msgid "WordPress"
|
25 |
+
msgstr "WordPress"
|
26 |
+
|
27 |
+
#: ../user-avatar.php:190
|
28 |
+
msgid "You are not allowed to do that."
|
29 |
+
msgstr "У Вас нет прав это сделать"
|
30 |
+
|
31 |
+
#: ../user-avatar.php:213
|
32 |
+
msgid "Choose an image from your computer:"
|
33 |
+
msgstr "Выбирите картинку с Вашеко компьютера:"
|
34 |
+
|
35 |
+
#: ../user-avatar.php:236
|
36 |
+
msgid "Please upload an image file (.jpeg, .gif, .png)."
|
37 |
+
msgstr "Загрузите изображение (.jpeg, .gif, .png)."
|
38 |
+
|
39 |
+
#: ../user-avatar.php:278
|
40 |
+
msgid "Choose the part of the image you want to use as your profile image."
|
41 |
+
msgstr "Выбирите часть изображения, которые Вы хотите использовать в качестве аватара."
|
42 |
+
|
43 |
+
#: ../user-avatar.php:390
|
44 |
+
msgid "Sorry, No file available"
|
45 |
+
msgstr "Файл не доступен."
|
46 |
+
|
47 |
+
#: ../user-avatar.php:414
|
48 |
+
msgid "Image could not be processed. Please go back and try again."
|
49 |
+
msgstr "Изображение не может быть обработано. Вернитесь назад и попробуйте снова."
|
50 |
+
|
51 |
+
#: ../user-avatar.php:414
|
52 |
+
msgid "Image Processing Error"
|
53 |
+
msgstr "Ошибка обрабтки изображения"
|
54 |
+
|
55 |
+
#: ../user-avatar.php:421
|
56 |
+
msgid "Here's your new profile picture..."
|
57 |
+
msgstr "Ваш новый аватар..."
|
58 |
+
|
59 |
+
#: ../user-avatar.php:427
|
60 |
+
msgid "Close"
|
61 |
+
msgstr "Закрыть"
|
62 |
+
|
63 |
+
#: ../user-avatar.php:710
|
64 |
+
msgid "Picture"
|
65 |
+
msgstr "Ваш Аватар"
|
66 |
+
|
67 |
+
#: ../user-avatar.php:712
|
68 |
+
msgid "Upload and Crop an Image to be Displayed"
|
69 |
+
msgstr "Загрузить и обрезать изображение"
|
70 |
+
|
71 |
+
#: ../user-avatar.php:712
|
72 |
+
msgid "Update Picture"
|
73 |
+
msgstr "Обновить аватар"
|
74 |
+
|
75 |
+
#: ../user-avatar.php:724
|
76 |
+
msgid "Remove User Avatar Image"
|
77 |
+
msgstr "Удалить изображение аватара пользователя"
|
78 |
+
|
79 |
+
#: ../user-avatar.php:724
|
80 |
+
#: ../user-avatar.php:735
|
81 |
+
msgid "Remove"
|
82 |
+
msgstr "Удалить"
|
83 |
+
|
languages/user-avatar-zh_CN.mo
ADDED
Binary file
|
languages/user-avatar-zh_CN.po
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: User Avatar 1.3.3\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2011-08-10 13:51+0800\n"
|
6 |
+
"PO-Revision-Date: 2011-08-10 14:15+0800\n"
|
7 |
+
"Last-Translator: 李明 ( Adim Lee ) <adim_lee@163.com>\n"
|
8 |
+
"Language-Team: 李明 ( Adim Lee ) <adim_lee@163.com>\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Poedit-KeywordsList: __;gettext;gettext_noop;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-Language: Chinese\n"
|
15 |
+
"X-Poedit-Country: CHINA\n"
|
16 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
17 |
+
"X-Poedit-SearchPath-0: ..\n"
|
18 |
+
|
19 |
+
#: ../user-avatar.php:157
|
20 |
+
msgid "Uploads"
|
21 |
+
msgstr "上传"
|
22 |
+
|
23 |
+
#: ../user-avatar.php:157
|
24 |
+
msgid "WordPress"
|
25 |
+
msgstr "WordPress"
|
26 |
+
|
27 |
+
#: ../user-avatar.php:208
|
28 |
+
msgid "You are not allowed to do that."
|
29 |
+
msgstr "你不能这么做哦."
|
30 |
+
|
31 |
+
#: ../user-avatar.php:231
|
32 |
+
msgid "Choose an image from your computer:"
|
33 |
+
msgstr "从电脑选择一张图片,只支持 .jpg .gif .png 格式:"
|
34 |
+
|
35 |
+
#: ../user-avatar.php:254
|
36 |
+
msgid "Please upload an image file (.jpeg, .gif, .png)."
|
37 |
+
msgstr "你太调皮了,只能上传 .jpg .gif .png 格式的图片哦!"
|
38 |
+
|
39 |
+
#: ../user-avatar.php:296
|
40 |
+
msgid "Choose the part of the image you want to use as your profile image."
|
41 |
+
msgstr "选择图片区域用作头像,你可以在右边看到预览哦!(完事后点 Crop Image 就行了)"
|
42 |
+
|
43 |
+
#: ../user-avatar.php:408
|
44 |
+
msgid "Sorry, No file available"
|
45 |
+
msgstr "抱歉,没有什么东东可以给你看的。"
|
46 |
+
|
47 |
+
#: ../user-avatar.php:432
|
48 |
+
msgid "Image could not be processed. Please go back and try again."
|
49 |
+
msgstr "好像没有成功,返回再重试一下吧."
|
50 |
+
|
51 |
+
#: ../user-avatar.php:432
|
52 |
+
msgid "Image Processing Error"
|
53 |
+
msgstr "出错啦"
|
54 |
+
|
55 |
+
#: ../user-avatar.php:439
|
56 |
+
msgid "Here's your new profile picture..."
|
57 |
+
msgstr "哇,你拥有新头像啦!我很看好你哦 ~"
|
58 |
+
|
59 |
+
#: ../user-avatar.php:445
|
60 |
+
msgid "Close"
|
61 |
+
msgstr "关闭"
|
62 |
+
|
63 |
+
#: ../user-avatar.php:728
|
64 |
+
msgid "Picture"
|
65 |
+
msgstr "头像"
|
66 |
+
|
67 |
+
#: ../user-avatar.php:730
|
68 |
+
msgid "Upload and Crop an Image to be Displayed"
|
69 |
+
msgstr "上传一张靓照做头像吧 ^_^"
|
70 |
+
|
71 |
+
#: ../user-avatar.php:730
|
72 |
+
msgid "Update Picture"
|
73 |
+
msgstr "更新头像"
|
74 |
+
|
75 |
+
#: ../user-avatar.php:742
|
76 |
+
msgid "Remove User Avatar Image"
|
77 |
+
msgstr "取消头像"
|
78 |
+
|
79 |
+
#: ../user-avatar.php:742
|
80 |
+
#: ../user-avatar.php:753
|
81 |
+
msgid "Remove"
|
82 |
+
msgstr "取消头像"
|
83 |
+
|
languages/user-avatar.POT
ADDED
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: User Avatar 1.3.3\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2011-03-23 10:13+0100\n"
|
6 |
+
"PO-Revision-Date: 2011-03-23 10:14+0100\n"
|
7 |
+
"Last-Translator: Mirko <mirko@interno01.it>\n"
|
8 |
+
"Language-Team: INTERNOZEROUNO <info@interno01.it>\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Poedit-KeywordsList: __;gettext;gettext_noop;_e\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
15 |
+
"X-Poedit-SearchPath-0: ..\n"
|
16 |
+
|
17 |
+
#: ../user-avatar.php:157
|
18 |
+
msgid "Uploads"
|
19 |
+
msgstr ""
|
20 |
+
|
21 |
+
#: ../user-avatar.php:157
|
22 |
+
msgid "WordPress"
|
23 |
+
msgstr ""
|
24 |
+
|
25 |
+
#: ../user-avatar.php:190
|
26 |
+
msgid "You are not allowed to do that."
|
27 |
+
msgstr ""
|
28 |
+
|
29 |
+
#: ../user-avatar.php:213
|
30 |
+
msgid "Choose an image from your computer:"
|
31 |
+
msgstr ""
|
32 |
+
|
33 |
+
#: ../user-avatar.php:236
|
34 |
+
msgid "Please upload an image file (.jpeg, .gif, .png)."
|
35 |
+
msgstr ""
|
36 |
+
|
37 |
+
#: ../user-avatar.php:278
|
38 |
+
msgid "Choose the part of the image you want to use as your profile image."
|
39 |
+
msgstr ""
|
40 |
+
|
41 |
+
#: ../user-avatar.php:390
|
42 |
+
msgid "Sorry, No file available"
|
43 |
+
msgstr ""
|
44 |
+
|
45 |
+
#: ../user-avatar.php:414
|
46 |
+
msgid "Image could not be processed. Please go back and try again."
|
47 |
+
msgstr ""
|
48 |
+
|
49 |
+
#: ../user-avatar.php:414
|
50 |
+
msgid "Image Processing Error"
|
51 |
+
msgstr ""
|
52 |
+
|
53 |
+
#: ../user-avatar.php:421
|
54 |
+
msgid "Here's your new profile picture..."
|
55 |
+
msgstr ""
|
56 |
+
|
57 |
+
#: ../user-avatar.php:427
|
58 |
+
msgid "Close"
|
59 |
+
msgstr ""
|
60 |
+
|
61 |
+
#: ../user-avatar.php:710
|
62 |
+
msgid "Picture"
|
63 |
+
msgstr ""
|
64 |
+
|
65 |
+
#: ../user-avatar.php:712
|
66 |
+
msgid "Upload and Crop an Image to be Displayed"
|
67 |
+
msgstr ""
|
68 |
+
|
69 |
+
#: ../user-avatar.php:712
|
70 |
+
msgid "Update Picture"
|
71 |
+
msgstr ""
|
72 |
+
|
73 |
+
#: ../user-avatar.php:724
|
74 |
+
msgid "Remove User Avatar Image"
|
75 |
+
msgstr ""
|
76 |
+
|
77 |
+
#: ../user-avatar.php:724
|
78 |
+
#: ../user-avatar.php:735
|
79 |
+
msgid "Remove"
|
80 |
+
msgstr ""
|
81 |
+
|
readme.txt
CHANGED
@@ -1,13 +1,14 @@
|
|
1 |
=== User Avatar ===
|
2 |
-
Contributors: sgagan, enej, oltdev
|
3 |
Tags: people lists, people, list, form, user profile, user avatar, thumbnail, upload photo, user, users, profile, biography, profile biography, user profile, description, profile description, rich text, wysiwyg, tinyMCE, photos, images, members, directory, profiles, jQuery, sortable, tabbable, thickbox, overlay, media button, Your Profile
|
4 |
Requires at least: 3.0
|
5 |
-
Tested up to: 3.
|
6 |
Stable Tag: trunk
|
7 |
|
8 |
Provides a thumbnail area in Your Profile, for users to upload & crop new images in an overlay to be saved and stored to their profile.
|
9 |
|
10 |
== Description ==
|
|
|
11 |
|
12 |
This plugin provides a thumbnail area in the Your Profile section, where users can upload & crop new images in an overlay and upon cropping the image, the new image will be saved and stored. This gives users with any role the chance to easily upload an image and view their current thumbnail, all in one go. In Discussion, the default image associated with the user will be replaced with the user avatar image uploaded and this will then be the image shown in comments and also in People Lists (see below).
|
13 |
|
@@ -15,6 +16,9 @@ This plugin provides a thumbnail area in the Your Profile section, where users c
|
|
15 |
|
16 |
Take a look at the screenshots!
|
17 |
|
|
|
|
|
|
|
18 |
|
19 |
== Installation ==
|
20 |
|
@@ -28,10 +32,64 @@ Take a look at the screenshots!
|
|
28 |
2. Step 1: Upload an image
|
29 |
3. Step 2: Crop your image
|
30 |
4. Step 3: Image is ready
|
31 |
-
|
32 |
-
6. Newly updated remove user avatar button that defaults to Gravatar or default WordPress image chosen on Discussion Page.
|
33 |
|
34 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
= 1.2.1 =
|
37 |
* Fixed Error bug in comments
|
@@ -53,3 +111,5 @@ Take a look at the screenshots!
|
|
53 |
|
54 |
= No Upgrades yet =
|
55 |
* August 1st, 2010
|
|
|
|
1 |
=== User Avatar ===
|
2 |
+
Contributors: sgagan, enej, oltdev, ctlt-dev, ubcdev
|
3 |
Tags: people lists, people, list, form, user profile, user avatar, thumbnail, upload photo, user, users, profile, biography, profile biography, user profile, description, profile description, rich text, wysiwyg, tinyMCE, photos, images, members, directory, profiles, jQuery, sortable, tabbable, thickbox, overlay, media button, Your Profile
|
4 |
Requires at least: 3.0
|
5 |
+
Tested up to: 3.1
|
6 |
Stable Tag: trunk
|
7 |
|
8 |
Provides a thumbnail area in Your Profile, for users to upload & crop new images in an overlay to be saved and stored to their profile.
|
9 |
|
10 |
== Description ==
|
11 |
+
**1.4.7 is a Security Fix Please update your plugin to the latest version**
|
12 |
|
13 |
This plugin provides a thumbnail area in the Your Profile section, where users can upload & crop new images in an overlay and upon cropping the image, the new image will be saved and stored. This gives users with any role the chance to easily upload an image and view their current thumbnail, all in one go. In Discussion, the default image associated with the user will be replaced with the user avatar image uploaded and this will then be the image shown in comments and also in People Lists (see below).
|
14 |
|
16 |
|
17 |
Take a look at the screenshots!
|
18 |
|
19 |
+
This plugin was developed using PHP 5.1 and hasn't been tested on other version of php
|
20 |
+
But if you are able to run upload picture and set them as featured image then you
|
21 |
+
also shouldn't be have problems using this plugin.
|
22 |
|
23 |
== Installation ==
|
24 |
|
32 |
2. Step 1: Upload an image
|
33 |
3. Step 2: Crop your image
|
34 |
4. Step 3: Image is ready
|
35 |
+
|
|
|
36 |
|
37 |
== Changelog ==
|
38 |
+
= 1.4.8 =
|
39 |
+
* updated to the latest version of the timthumb 2.8.10
|
40 |
+
|
41 |
+
= 1.4.7 =
|
42 |
+
SECURITY FIX
|
43 |
+
= 1.4.6 =
|
44 |
+
* Bug fix: If you are running WordPress MU and don't have the a subdomain install this should will fix your problem
|
45 |
+
|
46 |
+
= 1.4.5 =
|
47 |
+
* Added the Mandarin CH Translation thanks to Adim Lee
|
48 |
+
|
49 |
+
= 1.4.4 =
|
50 |
+
* Minor: Removed Notice errors
|
51 |
+
|
52 |
+
= 1.4.3 =
|
53 |
+
* Bug fix: Sites that were installed in a sub directory had the problem where user avatars disappeared. Thanks to Woostotmar for pointing that out!
|
54 |
+
|
55 |
+
= 1.4.2 =
|
56 |
+
* Bug fix: Was displaying a PHP warning if folders were not present! Many Thanks to Gabriel Serafini!
|
57 |
+
|
58 |
+
= 1.4.1 =
|
59 |
+
* Bug fix: When the site has don't show avatars, users are not able to edit their avatars.
|
60 |
+
* Added the Spanish Translation many thanks to - GabrielBS
|
61 |
+
|
62 |
+
= 1.4 =
|
63 |
+
* Now using the latest timthumb script, this is a security update and will fix the
|
64 |
+
|
65 |
+
= 1.3.6 =
|
66 |
+
* Improved compatibility issues with some plugins. (this might fix the issue of having some js errors and the crop area not showing up.)
|
67 |
+
|
68 |
+
= 1.3.5 =
|
69 |
+
* Added the Russian Translation thanks to - iV@N1971
|
70 |
+
|
71 |
+
= 1.3.4 =
|
72 |
+
* Added the Italian Translation thanks to - Punxsutawney Phil
|
73 |
+
* generated html validates better in html strictmode
|
74 |
+
* This is not a necessary update
|
75 |
+
|
76 |
+
= 1.3.3 =
|
77 |
+
* some more bugs resolved. Thanks to @ronymehta and @lilos
|
78 |
+
* 3.1 backwards compatibility for editing user avatars for people that have these sort of privileges.
|
79 |
+
|
80 |
+
= 1.3.2 =
|
81 |
+
* Changed esc_url to esc_url_raw thanks to @ronymehta
|
82 |
+
* fixed a bug thanks to @BandB
|
83 |
+
|
84 |
+
= 1.3.1 =
|
85 |
+
* Caching fixes
|
86 |
+
* Translation ready
|
87 |
+
* Security improvements
|
88 |
+
|
89 |
+
= 1.3 =
|
90 |
+
* Fixed bugs that were result of the WP 3.1 update and also making it more future prof
|
91 |
+
* Resizes images and caches them using timthumb script.
|
92 |
+
* Better classes added to the avatar image so that less theme should break
|
93 |
|
94 |
= 1.2.1 =
|
95 |
* Fixed Error bug in comments
|
111 |
|
112 |
= No Upgrades yet =
|
113 |
* August 1st, 2010
|
114 |
+
|
115 |
+
|
screenshot-1.png
CHANGED
Binary file
|
screenshot-5.png
DELETED
Binary file
|
screenshot-6.png
DELETED
Binary file
|
timthumb-config.php
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if( isset($_GET['id']) && is_numeric($_GET['id']) ){
|
4 |
+
$id = $_GET['id'];
|
5 |
+
|
6 |
+
if( !strpos( $_GET['src'],"/avatars/".$id."/" ) )
|
7 |
+
die();
|
8 |
+
} else {
|
9 |
+
die();
|
10 |
+
}
|
11 |
+
// this is the standard set up with wp-content living 3 levels down
|
12 |
+
define ('WP_CONTENT_DIR', dirname(dirname(dirname(__FILE__))));
|
13 |
+
define ('AVATARS_DIR',WP_CONTENT_DIR.'/uploads/avatars/');
|
14 |
+
// cache the file inside the avatar directory
|
15 |
+
// please modify this to your hearts content
|
16 |
+
if(! defined('FILE_CACHE_DIRECTORY') ) define ('FILE_CACHE_DIRECTORY', AVATARS_DIR.$id.'/cache');
|
17 |
+
|
18 |
+
|
19 |
+
// this are pretty much the standard settings
|
20 |
+
if(! defined( 'DEBUG_ON' ) ) define ('DEBUG_ON', false); // Enable debug logging to web server error log (STDERR)
|
21 |
+
if(! defined('DEBUG_LEVEL') ) define ('DEBUG_LEVEL', 1); // Debug level 1 is less noisy and 3 is the most noisy
|
22 |
+
if(! defined('MEMORY_LIMIT') ) define ('MEMORY_LIMIT', '30M'); // Set PHP memory limit
|
23 |
+
if(! defined('BLOCK_EXTERNAL_LEECHERS') ) define ('BLOCK_EXTERNAL_LEECHERS', true); // If the image or webshot is being loaded on an external site, display a red "No Hotlinking" gif.
|
24 |
+
|
25 |
+
//Image fetching and caching
|
26 |
+
if(! defined('ALLOW_EXTERNAL') ) define ('ALLOW_EXTERNAL', false); // Allow image fetching from external websites. Will check against ALLOWED_SITES if ALLOW_ALL_EXTERNAL_SITES is false
|
27 |
+
if(! defined('ALLOW_ALL_EXTERNAL_SITES') ) define ('ALLOW_ALL_EXTERNAL_SITES', false); // Less secure.
|
28 |
+
if(! defined('FILE_CACHE_ENABLED') ) define ('FILE_CACHE_ENABLED', TRUE); // Should we store resized/modified images on disk to speed things up?
|
29 |
+
if(! defined('FILE_CACHE_TIME_BETWEEN_CLEANS')) define ('FILE_CACHE_TIME_BETWEEN_CLEANS', 86400); // How often the cache is cleaned
|
30 |
+
if(! defined('FILE_CACHE_MAX_FILE_AGE') ) define ('FILE_CACHE_MAX_FILE_AGE', 86400); // How old does a file have to be to be deleted from the cache
|
31 |
+
if(! defined('FILE_CACHE_SUFFIX') ) define ('FILE_CACHE_SUFFIX', '.timthumb.txt'); // What to put at the end of all files in the cache directory so we can identify them
|
32 |
+
// Directory where images are cached. Left blank it will use the system temporary directory (which is better for security)
|
33 |
+
if(! defined('MAX_FILE_SIZE') ) define ('MAX_FILE_SIZE', 10485760); // 10 Megs is 10485760. This is the max internal or external file size that we'll process.
|
34 |
+
if(! defined('CURL_TIMEOUT') ) define ('CURL_TIMEOUT', 20); // Timeout duration for Curl. This only applies if you have Curl installed and aren't using PHP's default URL fetching mechanism.
|
35 |
+
if(! defined('WAIT_BETWEEN_FETCH_ERRORS') ) define ('WAIT_BETWEEN_FETCH_ERRORS', 3600); //Time to wait between errors fetching remote file
|
36 |
+
//Browser caching
|
37 |
+
if(! defined('BROWSER_CACHE_MAX_AGE') ) define ('BROWSER_CACHE_MAX_AGE', 864000); // Time to cache in the browser
|
38 |
+
if(! defined('BROWSER_CACHE_DISABLE') ) define ('BROWSER_CACHE_DISABLE', false); // Use for testing if you want to disable all browser caching
|
39 |
+
|
40 |
+
//Image size and defaults
|
41 |
+
if(! defined('MAX_WIDTH') ) define ('MAX_WIDTH', 1500); // Maximum image width
|
42 |
+
if(! defined('MAX_HEIGHT') ) define ('MAX_HEIGHT', 1500); // Maximum image height
|
43 |
+
if(! defined('NOT_FOUND_IMAGE') ) define ('NOT_FOUND_IMAGE', ''); //Image to serve if any 404 occurs
|
44 |
+
if(! defined('ERROR_IMAGE') ) define ('ERROR_IMAGE', ''); //Image to serve if an error occurs instead of showing error message
|
user-avatar-pic.php
ADDED
@@ -0,0 +1,1244 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* TimThumb by Ben Gillbanks and Mark Maunder
|
4 |
+
* Based on work done by Tim McDaniels and Darren Hoyt
|
5 |
+
* http://code.google.com/p/timthumb/
|
6 |
+
*
|
7 |
+
* GNU General Public License, version 2
|
8 |
+
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
9 |
+
*
|
10 |
+
* Examples and documentation available on the project homepage
|
11 |
+
* http://www.binarymoon.co.uk/projects/timthumb/
|
12 |
+
*
|
13 |
+
* $Rev$
|
14 |
+
*/
|
15 |
+
|
16 |
+
/*
|
17 |
+
* --- TimThumb CONFIGURATION ---
|
18 |
+
* To edit the configs it is best to create a file called timthumb-config.php
|
19 |
+
* and define variables you want to customize in there. It will automatically be
|
20 |
+
* loaded by timthumb. This will save you having to re-edit these variables
|
21 |
+
* everytime you download a new version
|
22 |
+
*/
|
23 |
+
define ('VERSION', '2.8.10'); // Version of this script
|
24 |
+
//Load a config file if it exists. Otherwise, use the values below
|
25 |
+
if( file_exists(dirname(__FILE__) . '/timthumb-config.php')) require_once('timthumb-config.php');
|
26 |
+
if(! defined('DEBUG_ON') ) define ('DEBUG_ON', false); // Enable debug logging to web server error log (STDERR)
|
27 |
+
if(! defined('DEBUG_LEVEL') ) define ('DEBUG_LEVEL', 1); // Debug level 1 is less noisy and 3 is the most noisy
|
28 |
+
if(! defined('MEMORY_LIMIT') ) define ('MEMORY_LIMIT', '30M'); // Set PHP memory limit
|
29 |
+
if(! defined('BLOCK_EXTERNAL_LEECHERS') ) define ('BLOCK_EXTERNAL_LEECHERS', false); // If the image or webshot is being loaded on an external site, display a red "No Hotlinking" gif.
|
30 |
+
|
31 |
+
//Image fetching and caching
|
32 |
+
if(! defined('ALLOW_EXTERNAL') ) define ('ALLOW_EXTERNAL', TRUE); // Allow image fetching from external websites. Will check against ALLOWED_SITES if ALLOW_ALL_EXTERNAL_SITES is false
|
33 |
+
if(! defined('ALLOW_ALL_EXTERNAL_SITES') ) define ('ALLOW_ALL_EXTERNAL_SITES', false); // Less secure.
|
34 |
+
if(! defined('FILE_CACHE_ENABLED') ) define ('FILE_CACHE_ENABLED', TRUE); // Should we store resized/modified images on disk to speed things up?
|
35 |
+
if(! defined('FILE_CACHE_TIME_BETWEEN_CLEANS')) define ('FILE_CACHE_TIME_BETWEEN_CLEANS', 86400); // How often the cache is cleaned
|
36 |
+
|
37 |
+
if(! defined('FILE_CACHE_MAX_FILE_AGE') ) define ('FILE_CACHE_MAX_FILE_AGE', 86400); // How old does a file have to be to be deleted from the cache
|
38 |
+
if(! defined('FILE_CACHE_SUFFIX') ) define ('FILE_CACHE_SUFFIX', '.timthumb.txt'); // What to put at the end of all files in the cache directory so we can identify them
|
39 |
+
if(! defined('FILE_CACHE_PREFIX') ) define ('FILE_CACHE_PREFIX', 'timthumb'); // What to put at the beg of all files in the cache directory so we can identify them
|
40 |
+
if(! defined('FILE_CACHE_DIRECTORY') ) define ('FILE_CACHE_DIRECTORY', './cache'); // Directory where images are cached. Left blank it will use the system temporary directory (which is better for security)
|
41 |
+
if(! defined('MAX_FILE_SIZE') ) define ('MAX_FILE_SIZE', 10485760); // 10 Megs is 10485760. This is the max internal or external file size that we'll process.
|
42 |
+
if(! defined('CURL_TIMEOUT') ) define ('CURL_TIMEOUT', 20); // Timeout duration for Curl. This only applies if you have Curl installed and aren't using PHP's default URL fetching mechanism.
|
43 |
+
if(! defined('WAIT_BETWEEN_FETCH_ERRORS') ) define ('WAIT_BETWEEN_FETCH_ERRORS', 3600); //Time to wait between errors fetching remote file
|
44 |
+
|
45 |
+
//Browser caching
|
46 |
+
if(! defined('BROWSER_CACHE_MAX_AGE') ) define ('BROWSER_CACHE_MAX_AGE', 864000); // Time to cache in the browser
|
47 |
+
if(! defined('BROWSER_CACHE_DISABLE') ) define ('BROWSER_CACHE_DISABLE', false); // Use for testing if you want to disable all browser caching
|
48 |
+
|
49 |
+
//Image size and defaults
|
50 |
+
if(! defined('MAX_WIDTH') ) define ('MAX_WIDTH', 1500); // Maximum image width
|
51 |
+
if(! defined('MAX_HEIGHT') ) define ('MAX_HEIGHT', 1500); // Maximum image height
|
52 |
+
if(! defined('NOT_FOUND_IMAGE') ) define ('NOT_FOUND_IMAGE', ''); // Image to serve if any 404 occurs
|
53 |
+
if(! defined('ERROR_IMAGE') ) define ('ERROR_IMAGE', ''); // Image to serve if an error occurs instead of showing error message
|
54 |
+
if(! defined('PNG_IS_TRANSPARENT') ) define ('PNG_IS_TRANSPARENT', FALSE); //42 Define if a png image should have a transparent background color. Use False value if you want to display a custom coloured canvas_colour
|
55 |
+
if(! defined('DEFAULT_Q') ) define ('DEFAULT_Q', 90); // Default image quality. Allows overrid in timthumb-config.php
|
56 |
+
if(! defined('DEFAULT_ZC') ) define ('DEFAULT_ZC', 1); // Default zoom/crop setting. Allows overrid in timthumb-config.php
|
57 |
+
if(! defined('DEFAULT_F') ) define ('DEFAULT_F', ''); // Default image filters. Allows overrid in timthumb-config.php
|
58 |
+
if(! defined('DEFAULT_S') ) define ('DEFAULT_S', 0); // Default sharpen value. Allows overrid in timthumb-config.php
|
59 |
+
if(! defined('DEFAULT_CC') ) define ('DEFAULT_CC', 'ffffff'); // Default canvas colour. Allows overrid in timthumb-config.php
|
60 |
+
|
61 |
+
|
62 |
+
//Image compression is enabled if either of these point to valid paths
|
63 |
+
|
64 |
+
//These are now disabled by default because the file sizes of PNGs (and GIFs) are much smaller than we used to generate.
|
65 |
+
//They only work for PNGs. GIFs and JPEGs are not affected.
|
66 |
+
if(! defined('OPTIPNG_ENABLED') ) define ('OPTIPNG_ENABLED', false);
|
67 |
+
if(! defined('OPTIPNG_PATH') ) define ('OPTIPNG_PATH', '/usr/bin/optipng'); //This will run first because it gives better compression than pngcrush.
|
68 |
+
if(! defined('PNGCRUSH_ENABLED') ) define ('PNGCRUSH_ENABLED', false);
|
69 |
+
if(! defined('PNGCRUSH_PATH') ) define ('PNGCRUSH_PATH', '/usr/bin/pngcrush'); //This will only run if OPTIPNG_PATH is not set or is not valid
|
70 |
+
|
71 |
+
/*
|
72 |
+
-------====Website Screenshots configuration - BETA====-------
|
73 |
+
|
74 |
+
If you just want image thumbnails and don't want website screenshots, you can safely leave this as is.
|
75 |
+
|
76 |
+
If you would like to get website screenshots set up, you will need root access to your own server.
|
77 |
+
|
78 |
+
Enable ALLOW_ALL_EXTERNAL_SITES so you can fetch any external web page. This is more secure now that we're using a non-web folder for cache.
|
79 |
+
Enable BLOCK_EXTERNAL_LEECHERS so that your site doesn't generate thumbnails for the whole Internet.
|
80 |
+
|
81 |
+
Instructions to get website screenshots enabled on Ubuntu Linux:
|
82 |
+
|
83 |
+
1. Install Xvfb with the following command: sudo apt-get install subversion libqt4-webkit libqt4-dev g++ xvfb
|
84 |
+
2. Go to a directory where you can download some code
|
85 |
+
3. Check-out the latest version of CutyCapt with the following command: svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
|
86 |
+
4. Compile CutyCapt by doing: cd cutycapt/CutyCapt
|
87 |
+
5. qmake
|
88 |
+
6. make
|
89 |
+
7. cp CutyCapt /usr/local/bin/
|
90 |
+
8. Test it by running: xvfb-run --server-args="-screen 0, 1024x768x24" CutyCapt --url="http://markmaunder.com/" --out=test.png
|
91 |
+
9. If you get a file called test.png with something in it, it probably worked. Now test the script by accessing it as follows:
|
92 |
+
10. http://yoursite.com/path/to/timthumb.php?src=http://markmaunder.com/&webshot=1
|
93 |
+
|
94 |
+
Notes on performance:
|
95 |
+
The first time a webshot loads, it will take a few seconds.
|
96 |
+
From then on it uses the regular timthumb caching mechanism with the configurable options above
|
97 |
+
and loading will be very fast.
|
98 |
+
|
99 |
+
--ADVANCED USERS ONLY--
|
100 |
+
If you'd like a slight speedup (about 25%) and you know Linux, you can run the following command which will keep Xvfb running in the background.
|
101 |
+
nohup Xvfb :100 -ac -nolisten tcp -screen 0, 1024x768x24 > /dev/null 2>&1 &
|
102 |
+
Then set WEBSHOT_XVFB_RUNNING = true below. This will save your server having to fire off a new Xvfb server and shut it down every time a new shot is generated.
|
103 |
+
You will need to take responsibility for keeping Xvfb running in case it crashes. (It seems pretty stable)
|
104 |
+
You will also need to take responsibility for server security if you're running Xvfb as root.
|
105 |
+
|
106 |
+
|
107 |
+
*/
|
108 |
+
if(! defined('WEBSHOT_ENABLED') ) define ('WEBSHOT_ENABLED', false); //Beta feature. Adding webshot=1 to your query string will cause the script to return a browser screenshot rather than try to fetch an image.
|
109 |
+
if(! defined('WEBSHOT_CUTYCAPT') ) define ('WEBSHOT_CUTYCAPT', '/usr/local/bin/CutyCapt'); //The path to CutyCapt.
|
110 |
+
if(! defined('WEBSHOT_XVFB') ) define ('WEBSHOT_XVFB', '/usr/bin/xvfb-run'); //The path to the Xvfb server
|