Google XML Sitemaps - Version 3.0

Version Description

Download this release

Release Info

Developer arnee
Plugin Icon 128x128 Google XML Sitemaps
Version 3.0
Comparing to
See all releases

Code changes from version 2.7.1 to 3.0

readme.txt CHANGED
@@ -1,23 +1,23 @@
1
- === Google Sitemap Generator for WordPress ===
2
  Contributors: arnee
3
  Donate link: http://www.arnebrachhold.de/redir/sitemap-paypal
4
  Tags: google, sitemaps, google sitemaps, yahoo, man, xml sitemap
5
- Requires at least: 1.5.1
6
- Stable tag: 2.7.1
7
 
8
- This plugin will create a google sitemaps compliant XML-Sitemap of your WordPress blog.
9
 
10
  == Description ==
11
 
12
- This plugin will create a google sitemaps compliant XML-Sitemap of your WordPress blog. Currently homepage, posts, static pages, categories and archives are supported. The priority of a post depends on its comments. More comments, higher priority! If you have external pages which don't belong to your blog, you can also add them to the list. This plugin will automatically notice Google whenever the sitemap gets regenerated. You can also visit the plugin homepage for the latest beta version.
13
 
14
  == Installation ==
15
 
16
  1. Upload the full directory into your wp-content/plugins directory
17
- 2. Make your blog directory writeable OR create two files named sitemap.xml and sitemap.xml.gz and make them writeable via CHMOD In most cases, your blog directory is already writeable.
18
  3. Double make sure that your blog directory is writable or two writable files named sitemap.xml and sitemap.xml.gz exist!
19
  4. Activate it in the Plugin options
20
- 5. Edit or publish a post or click on Rebuild Sitemap on the Sitemap Administration Interface
21
 
22
  == Frequently Asked Questions ==
23
 
@@ -29,21 +29,17 @@ Disable automatic priority calculation and define a static priority for posts!
29
 
30
  No! If you edit/publish/delete a post, your sitemap gets regenerated!
31
 
32
- = So much configuration options... Do I need to change them? =
33
 
34
  No! Only if you want. Default values should be ok!
35
 
36
- = Does it work with all WordPress versions? =
37
 
38
- This version should work with all WordPress versions from 1.5.1. If you're using WordPress 2.1, check out the current [beta version](http://www.arnebrachhold.de/2006/01/07/google-sitemap-generator-for-wordpress-3-beta "Google Sitemap Generator for WordPress Plugin Beta Version")
39
 
40
  = I get an fopen error and / or permission denied =
41
 
42
- If you get permission errors make sure that the script has writing rights in your blog directory. Try to create the sitemap.xml resp. sitemap.xml.gz at manually and upload them with a ftp program and set the rights to 777 with CHMOD. Then restart sitemap generation on the administration page. A good tutorial for changing file permissions can be found on the WordPress Codex.
43
-
44
- = Which MySQL Versions are supported? =
45
-
46
- MySQL 4 works with all version, MySQL 3 support was added in version 2.12
47
 
48
  = Do I really need to use this plugin? =
49
 
@@ -51,4 +47,4 @@ Maybe not if Google knows you page very well and visits your blog every day. If
51
 
52
  == Screenshots ==
53
 
54
- 1. Administration interface in WordPress 1.5. Check the latest beta for WordPress 2.0 Style.
1
+ === Google XML Sitemaps ===
2
  Contributors: arnee
3
  Donate link: http://www.arnebrachhold.de/redir/sitemap-paypal
4
  Tags: google, sitemaps, google sitemaps, yahoo, man, xml sitemap
5
+ Requires at least: 2.1
6
+ Stable tag: 3.0
7
 
8
+ This plugin will create a Google sitemaps compliant XML-Sitemap of your WordPress blog.
9
 
10
  == Description ==
11
 
12
+ This plugin will create a Google sitemaps compliant XML-Sitemap of your WordPress blog. It supports all of the WordPress generated pages as well as custom ones. Everytime you edit or create a post, your sitemap will be updated and all major search engines which support the sitemap protocol like ASk.com, Google, MSN Search and YAHOO are notified about the update.
13
 
14
  == Installation ==
15
 
16
  1. Upload the full directory into your wp-content/plugins directory
17
+ 2. Make your blog directory writable OR create two files named sitemap.xml and sitemap.xml.gz and make them writable via CHMOD. In most cases, your blog directory is already writable so you don't need to do anything.
18
  3. Double make sure that your blog directory is writable or two writable files named sitemap.xml and sitemap.xml.gz exist!
19
  4. Activate it in the Plugin options
20
+ 5. Edit or publish a post or click on Rebuild Sitemap on the Sitemap Administration Interface in the menu under Options -> XML Sitemap
21
 
22
  == Frequently Asked Questions ==
23
 
29
 
30
  No! If you edit/publish/delete a post, your sitemap gets regenerated!
31
 
32
+ = So much configuration options Do I need to change them? =
33
 
34
  No! Only if you want. Default values should be ok!
35
 
36
+ = Works it with all WordPress versions? =
37
 
38
+ This version works with WordPress 2.1 and better. If you're using an older version, plese check the plugin homepage for the legacy releases.
39
 
40
  = I get an fopen error and / or permission denied =
41
 
42
+ If you get permission errors make sure that the script has writing rights in your blog directory. Try to create the sitemap.xml resp. sitemap.xml.gz at manually and upload them with a ftp program and set the rights with CHMOD. Then restart sitemap generation on the administration page. A good tutorial for changing file permissions can be found on the WordPress Codex.
 
 
 
 
43
 
44
  = Do I really need to use this plugin? =
45
 
47
 
48
  == Screenshots ==
49
 
50
+ 1. Administration interface in WordPress 2.
screenshot-1.gif CHANGED
Binary file
sitemap-ar_AR.mo ADDED
Binary file
sitemap-ar_AR.po ADDED
@@ -0,0 +1,333 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2005 Sewar : www.sewar.be
2
+ # This file is distributed under the same license as the WordPress package.
3
+ # Sewar <www.sewar.be/contact.php>, 2005.
4
+ # $Id: sitemap.pot 2327 2005-06-19 03:09:59 RedAltExport $
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: Sitemap v2.7.1 for WP\n"
9
+ "Report-Msgid-Bugs-To: <www.sewar.be/contact.php>\n"
10
+ "POT-Creation-Date: 2005-06-15 00:00+0000\n"
11
+ "PO-Revision-Date: 2006-01-02 12:25+0300\n"
12
+ "Last-Translator: Sewar <sewar@sewar.be>\n"
13
+ "MIME-Version: 1.0\n"
14
+ "Content-Type: text/plain; charset=UTF-8\n"
15
+ "Content-Transfer-Encoding: 8bit\n"
16
+ "Language-Team: Sewar <www.sewar.be/contact.php>\n"
17
+ "X-Poedit-Language: Arabic\n"
18
+ "X-Poedit-Country: ARABIAN WORLD\n"
19
+ "X-Poedit-SourceCharset: utf-8\n"
20
+
21
+ #: sitemap.php:375
22
+ msgid "always"
23
+ msgstr "دائماً"
24
+
25
+ msgid "hourly"
26
+ msgstr "كل ساعة"
27
+
28
+ msgid "daily"
29
+ msgstr "يومياً"
30
+
31
+ msgid "weekly"
32
+ msgstr "اسبوعياً"
33
+
34
+ msgid "monthly"
35
+ msgstr "شهرياً"
36
+
37
+ msgid "yearly"
38
+ msgstr "سنوياً"
39
+
40
+ msgid "never"
41
+ msgstr "أبداً"
42
+
43
+ msgid "Detected Path"
44
+ msgstr "مسار الملف"
45
+
46
+ msgid "Example"
47
+ msgstr "مثال"
48
+
49
+ msgid "Absolute or relative path to the sitemap file, including name."
50
+ msgstr "المسار الكامل لملف خريطة الموقع."
51
+
52
+ msgid "Complete URL to the sitemap file, including name."
53
+ msgstr "الرابط الكامل لملف خريطة الموقع."
54
+
55
+ msgid "Automatic location"
56
+ msgstr "انشاء الرابط تلقائياً"
57
+
58
+ msgid "Manual location"
59
+ msgstr "تحديد الرابط يدوياً"
60
+
61
+ msgid "OR"
62
+ msgstr "أو"
63
+
64
+ msgid "Location of your sitemap file"
65
+ msgstr "مكان ملف خريطة موقعك"
66
+
67
+ msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the &quot;Location of your sitemap file&quot; section on this page)!"
68
+ msgstr "إذا كانت مدونتك في مجلد فرعي و أردت إضافة صفحات خارج مجلد مدونتك، يجب عليك وضع ملف خريطة موقعك في المجلد الرئيسي لموقعك (انظر فسم &quot;مكان ملف خريطة موقعك&quot; في هذه الصفحة)"
69
+
70
+ #: sitemap.php:512
71
+ msgid "Configuration updated"
72
+ msgstr "تم تحديث الإعدادات"
73
+
74
+ #: sitemap.php:513
75
+ msgid "Error"
76
+ msgstr "حصل خطأ"
77
+
78
+ #: sitemap.php:521
79
+ msgid "A new page was added. Click on &quot;Save page changes&quot; to save your changes."
80
+ msgstr "تم إضافة صفحة جديدة ، إضغط على زر &quotحفظ تغييرات الصفحات&quot; لحفظ تغييراتك ."
81
+
82
+ #: sitemap.php:527
83
+ msgid "Pages saved"
84
+ msgstr "تم حفظ إعدادات الصفحات"
85
+
86
+ #: sitemap.php:528
87
+ msgid "Error while saving pages"
88
+ msgstr "حدث خطأ عند حفظ إعدادات الصفحات"
89
+
90
+ #: sitemap.php:539
91
+ msgid "The page was deleted. Click on &quot;Save page changes&quot; to save your changes."
92
+ msgstr "تم حذف الصفحة ."
93
+
94
+ #: sitemap.php:542
95
+ msgid "You changes have been cleared."
96
+ msgstr "تم إلغاء تغييراتك ."
97
+
98
+ #: sitemap.php:555
99
+ #: sitemap.php:1002
100
+ msgid "Sitemap Generator"
101
+ msgstr "صانع خريطة الموقع"
102
+
103
+ #: sitemap.php:558
104
+ msgid "Manual rebuild"
105
+ msgstr "إنشاء خريطة الموقع يدوياً"
106
+
107
+ #: sitemap.php:559
108
+ msgid "If you want to build the sitemap without editing a post, click on here!"
109
+ msgstr "إذا كنت تريد إنشاء خريطة الموقع بدون تعديل تدوينة ، إضغط على الزر التالي :"
110
+
111
+ #: sitemap.php:560
112
+ msgid "Rebuild Sitemap"
113
+ msgstr "إعادة إنشاء خريطة الموقع"
114
+
115
+ #: sitemap.php:564
116
+ msgid "Additional pages"
117
+ msgstr "صفحات إضافية"
118
+
119
+ #: sitemap.php:566
120
+ msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
121
+ msgstr "هنا يمكنك تضمين الملفات و الروابط التي يجب أن يتم تضمينها في خريطة الموقع، لكنها لا تتبع ووردبريس .<br />على سبيل المثال، إذا كان نطاق موقعك www.foo.com و مدونتك موجودة في www.foo.com/blog أنت قد تريد تضمين الصفحة الرئيسية لموقعك في www.foo.com."
122
+
123
+ #: sitemap.php:568
124
+ msgid "URL to the page"
125
+ msgstr "رابط الصفحة"
126
+
127
+ #: sitemap.php:569
128
+ msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
129
+ msgstr "ضع رابط الصفحة ، مثلاً : http://www.foo.com/index.html أو www.foo.com/home ."
130
+
131
+ #: sitemap.php:571
132
+ msgid "Priority"
133
+ msgstr "الأفضلية"
134
+
135
+ #: sitemap.php:572
136
+ msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
137
+ msgstr "إختر أفضلية الصفحة نسبة إلى الصفحات الأخرى ، على سبيل المثال ، صفحتك الرئيسية لربّما يكون لها أفضلية أعلى من سيرتك الذاتية ."
138
+
139
+ #: sitemap.php:574
140
+ msgid "Last Changed"
141
+ msgstr "آخر تعديل"
142
+
143
+ #: sitemap.php:575
144
+ msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
145
+ msgstr "ضع تاريخ آخر تعديل كـ YYYY-MM-DD (مثلاً : 2005-12-31) (اختياري) ."
146
+
147
+ #: sitemap.php:583
148
+ msgid "Change Frequency"
149
+ msgstr "فترة التحديث"
150
+
151
+ #: sitemap.php:585
152
+ msgid "#"
153
+ msgstr "#"
154
+
155
+ #: sitemap.php:609
156
+ msgid "No pages defined."
157
+ msgstr "لا يوجد صفحات مضافة ."
158
+
159
+ #: sitemap.php:616
160
+ msgid "Add new page"
161
+ msgstr "أضف صفحة جديدة"
162
+
163
+ # sitemap.php:617:
164
+ #: sitemap.php:617
165
+ msgid "Save page changes"
166
+ msgstr "حفظ تغييرات الصفحات"
167
+
168
+ # sitemap.php:618:
169
+ #: sitemap.php:618
170
+ msgid "Undo all page changes"
171
+ msgstr "إلغاء جميع تغييرات الصفحات"
172
+
173
+ # sitemap.php:621:
174
+ #: sitemap.php:621
175
+ msgid "Delete marked page"
176
+ msgstr "حذف الصفحة المحددة"
177
+
178
+ #: sitemap.php:627
179
+ msgid "Basic Options"
180
+ msgstr "إعدادات أساسية"
181
+
182
+ #: sitemap.php:632
183
+ msgid "Enable automatic priority calculation for posts based on comment count"
184
+ msgstr "حساب الأفضلية للتدوينات بالإعتماد على عدد التعليقات ."
185
+
186
+ #: sitemap.php:638
187
+ msgid "Write debug comments"
188
+ msgstr "كتابة تعليقات لتتبع الأخطاء"
189
+
190
+ #: sitemap.php:643
191
+ msgid "Filename of the sitemap file"
192
+ msgstr "اسم ملف خريطة الموقع:"
193
+
194
+ #: sitemap.php:650
195
+ msgid "Write a normal XML file (your filename)"
196
+ msgstr "كتابة ملف XML عادي (ملف خريطة الموقع)"
197
+
198
+ #: sitemap.php:652
199
+ msgid "Detected URL"
200
+ msgstr "رابط الملف"
201
+
202
+ #: sitemap.php:657
203
+ msgid "Write a gzipped file (your filename + .gz)"
204
+ msgstr "كتابة ملف XML مضغوط (ملف خريطة الموقع + .gz)"
205
+
206
+ #: sitemap.php:664
207
+ msgid "Auto-Ping Google Sitemaps"
208
+ msgstr "تبليغ Google Sitemaps تلقائياً"
209
+
210
+ #: sitemap.php:665
211
+ msgid "This option will automatically tell Google about changes."
212
+ msgstr "هذا الخيار سيخبر Google تلقائياً عن التغييرات ."
213
+
214
+ #: sitemap.php:672
215
+ msgid "Includings"
216
+ msgstr "التضمينات"
217
+
218
+ #: sitemap.php:677
219
+ msgid "Include homepage"
220
+ msgstr "تضمين الصفحة الرئيسية"
221
+
222
+ #: sitemap.php:683
223
+ msgid "Include posts"
224
+ msgstr "تضمين التدوينات"
225
+
226
+ #: sitemap.php:689
227
+ msgid "Include static pages"
228
+ msgstr "تضمين الصفحات"
229
+
230
+ #: sitemap.php:695
231
+ msgid "Include categories"
232
+ msgstr "تضمين التصنيفات"
233
+
234
+ #: sitemap.php:701
235
+ msgid "Include archives"
236
+ msgstr "تضمين الأرشيف"
237
+
238
+ #: sitemap.php:708
239
+ msgid "Change frequencies"
240
+ msgstr "فترة التحديث"
241
+
242
+ #: sitemap.php:709
243
+ msgid "Note"
244
+ msgstr "تنبيه"
245
+
246
+ #: sitemap.php:710
247
+ msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
248
+ msgstr "رجاء لاحظ بأنّ قيمة هذه الخاصية هي تلميح معتبر و ليس إجبارياً . بالرغم من أنّ محركات البحث تقرأ هذه الخاصية عندما تبحث ، هي قد تفحص الصفحات التي أشّرت \"كل ساعة\" أقل كثيرا من ذلك ، وهي قد تفحص الصفحات التي أشّرت \"سنوياً\" أكثر من ذلك . هي أيضا من المحتمل تفحص الصفحات التي أشّرت \"أبداً\" بشكل دوري لكي هم يمكن أن يعالجوا التغييرات الغير المتوقّعة في تلك الصفحات ."
249
+
250
+ #: sitemap.php:715
251
+ msgid "Homepage"
252
+ msgstr "الصفحة الرئيسية"
253
+
254
+ #: sitemap.php:721
255
+ msgid "Posts"
256
+ msgstr "التدوينات"
257
+
258
+ #: sitemap.php:727
259
+ msgid "Static pages"
260
+ msgstr "الصفحات"
261
+
262
+ #: sitemap.php:733
263
+ msgid "Categories"
264
+ msgstr "التصنيفات"
265
+
266
+ #: sitemap.php:739
267
+ msgid "The current archive of this month (Should be the same like your homepage)"
268
+ msgstr "أرشيف الشهر الحالي (يفضل أن يكون مثل الصفحة الرئيسية)"
269
+
270
+ #: sitemap.php:745
271
+ msgid "Older archives (Changes only if you edit an old post)"
272
+ msgstr "الأرشيف السابق (يتغير عندما تحرر تدوينة قديمة فقط)"
273
+
274
+ #: sitemap.php:752
275
+ msgid "Priorities"
276
+ msgstr "الأفضليات"
277
+
278
+ #: sitemap.php:763
279
+ msgid "Posts (If auto calculation is disabled)"
280
+ msgstr "التدوينات (إذا كان الحساب الآلي غير مفعل)"
281
+
282
+ #: sitemap.php:769
283
+ msgid "Minimum post priority (Even if auto calculation is enabled)"
284
+ msgstr "أفضلية التدوينة الدنيا (حتى إذا كان الحساب الآلي مفعل)"
285
+
286
+ #: sitemap.php:787
287
+ msgid "Archives"
288
+ msgstr "الأرشيف"
289
+
290
+ #: sitemap.php:793
291
+ msgid "Informations and support"
292
+ msgstr "المساعدة و الدعم الفني"
293
+
294
+ #: sitemap.php:794
295
+ msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
296
+ msgstr "زر %s للتحديثات و التعليق هناك إذا كان لديك أي مشاكل أو أسئلة أو إقتراحات ."
297
+
298
+ #: sitemap.php:797
299
+ msgid "Update options"
300
+ msgstr "تحديث الإعدادات"
301
+
302
+ #: sitemap.php:1002
303
+ msgid "Sitemap"
304
+ msgstr "خريطة الموقع"
305
+
306
+ #: sitemap.php:1033
307
+ msgid "URL:"
308
+ msgstr "الرابط :"
309
+
310
+ #: sitemap.php:1034
311
+ msgid "Path:"
312
+ msgstr "المسار :"
313
+
314
+ #: sitemap.php:1037
315
+ msgid "Could not write into %s"
316
+ msgstr "لم يتم الكتابة في %s"
317
+
318
+ #: sitemap.php:1048
319
+ msgid "Successfully built sitemap file:"
320
+ msgstr "تم إنشاء ملف الخريطة بنجاح :"
321
+
322
+ #: sitemap.php:1048
323
+ msgid "Successfully built gzipped sitemap file:"
324
+ msgstr "تم إنشاء ملف الخريطة المضغوط بنجاح :"
325
+
326
+ #: sitemap.php:1062
327
+ msgid "Could not ping to Google at %s"
328
+ msgstr "لم يتم تبليغ Google على %s"
329
+
330
+ #: sitemap.php:1064
331
+ msgid "Successfully pinged Google at %s"
332
+ msgstr "تم تبليغ Google بنجاح على %s"
333
+
sitemap-fr_FR.mo ADDED
Binary file
sitemap-fr_FR.po ADDED
@@ -0,0 +1,321 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is distributed under the same license as the WordPress package.
2
+ # [name] <[mail-address]>, 2005.
3
+ # $Id: sitemap.pot 2502 2005-07-03 20:50:38Z arnee $
4
+ #
5
+ msgid ""
6
+ msgstr ""
7
+ "Project-Id-Version: sitemap\n"
8
+ "Report-Msgid-Bugs-To: <[mail-address]>\n"
9
+ "POT-Creation-Date: 2005-06-15 00:00+0000\n"
10
+ "PO-Revision-Date: 2005-11-01 00:43+0100\n"
11
+ "Last-Translator: Thierry <thierry@maigrirpourdebon.com>\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "Language-Team: \n"
16
+
17
+ #: sitemap.php:375
18
+ msgid "always"
19
+ msgstr "toujours"
20
+
21
+ msgid "hourly"
22
+ msgstr "toutes les heures"
23
+
24
+ msgid "daily"
25
+ msgstr "une fois par jour"
26
+
27
+ msgid "weekly"
28
+ msgstr "une fois par semaine"
29
+
30
+ msgid "monthly"
31
+ msgstr "une fois par mois"
32
+
33
+ msgid "yearly"
34
+ msgstr "une fois par an"
35
+
36
+ msgid "never"
37
+ msgstr "jamais"
38
+
39
+ msgid "Detected Path"
40
+ msgstr "Répertoire détecté"
41
+
42
+ msgid "Example"
43
+ msgstr "Exemple"
44
+
45
+ msgid "Absolute or relative path to the sitemap file, including name."
46
+ msgstr "Chemin absolu ou relatif vers le fichier sitemap, nom inclus."
47
+
48
+ msgid "Complete URL to the sitemap file, including name."
49
+ msgstr "URL complet du fichier sitemap, nom inclus."
50
+
51
+ msgid "Automatic location"
52
+ msgstr "Emplacement automatique"
53
+
54
+ msgid "Manual location"
55
+ msgstr "Emplacement manuel"
56
+
57
+ msgid "OR"
58
+ msgstr "OU"
59
+
60
+ msgid "Location of your sitemap file"
61
+ msgstr "Emplacement de votre fichier sitemap"
62
+
63
+ msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the &quot;Location of your sitemap file&quot; section on this page)!"
64
+ msgstr "Si votre weblog est dans un sous-repertoire et que vous voulez ajouter des pages qui ne sont PAS situées dans le répertoire du blog ou un répertoire en dessous, vous DEVEZ placer votre fichier sitemap dans le répertoire racine (voir la section &quot;Emplacement de votre fichier sitemap&quot; de cette page)!"
65
+
66
+ #: sitemap.php:512
67
+ msgid "Configuration updated"
68
+ msgstr "Configuration mise à jour"
69
+
70
+ #: sitemap.php:513
71
+ msgid "Error"
72
+ msgstr "Erreur"
73
+
74
+ #: sitemap.php:521
75
+ msgid "A new page was added. Click on &quot;Save page changes&quot; to save your changes."
76
+ msgstr "Une nouvelle page a été ajoutée. Cliquez sur &quot;Enregistrer les modifications&quot; pour enregistrer vos modifications"
77
+
78
+ #: sitemap.php:527
79
+ msgid "Pages saved"
80
+ msgstr "Pages enregistrées"
81
+
82
+ #: sitemap.php:528
83
+ msgid "Error while saving pages"
84
+ msgstr "Erreur durant l'enregistrement des pages"
85
+
86
+ #: sitemap.php:539
87
+ msgid "The page was deleted. Click on &quot;Save page changes&quot; to save your changes."
88
+ msgstr "La page a été effacée. Cliquez sur &quot;Entregistrer les modifications&quot; pour enregistrer vos modifications."
89
+
90
+ #: sitemap.php:542
91
+ msgid "You changes have been cleared."
92
+ msgstr "Vos modifications ont été remises à zero."
93
+
94
+ #: sitemap.php:555
95
+ msgid "Sitemap Generator"
96
+ msgstr "Générateur de sitemap"
97
+
98
+ #: sitemap.php:558
99
+ msgid "Manual rebuild"
100
+ msgstr "Reconstruction manuelle"
101
+
102
+ #: sitemap.php:559
103
+ msgid "If you want to build the sitemap without editing a post, click on here!"
104
+ msgstr "Si vous voulez construire le fichier sitemap sans modifier un article, cliquez ici!"
105
+
106
+ #: sitemap.php:560
107
+ msgid "Rebuild Sitemap"
108
+ msgstr "Reconstruire le fichier Sitemap"
109
+
110
+ #: sitemap.php:564
111
+ msgid "Additional pages"
112
+ msgstr "Pages supplémentaires"
113
+
114
+ #: sitemap.php:566
115
+ msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
116
+ msgstr "Ici, vous pouvez préciser des fichiers ou URLs à inclure dans le sitemap, mais qui n'appartiennent pas à votre Blog/WordPress.<br />Par exemple, si votre domaine est www.foo.com et votre blog est situé sur www.foo.com/blog, vous pouvez choisir d'inclure la homepage www.foo.com"
117
+
118
+ #: sitemap.php:568
119
+ msgid "URL to the page"
120
+ msgstr "URL de la page"
121
+
122
+ #: sitemap.php:569
123
+ msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
124
+ msgstr "Indiquez l'URL de la page. Examples: http://www.foo.com/index.html ou www.foo.com/home "
125
+
126
+ #: sitemap.php:571
127
+ msgid "Priority"
128
+ msgstr "Priorité"
129
+
130
+ #: sitemap.php:572
131
+ msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
132
+ msgstr "Définissez la priorité de la page par rapport aux autres pages. Par exemple, votre homepage peut avoir une priorité supérieure à celle des autres pages."
133
+
134
+ #: sitemap.php:574
135
+ msgid "Last Changed"
136
+ msgstr "Dernière modification"
137
+
138
+ #: sitemap.php:575
139
+ msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
140
+ msgstr "Entrez la date de dernière modification au format AAAA-MM-JJ (2005-12-31 par exemple) (facultatif)."
141
+
142
+ #: sitemap.php:583
143
+ msgid "Change Frequency"
144
+ msgstr "Modifier la fréquence"
145
+
146
+ #: sitemap.php:585
147
+ msgid "#"
148
+ msgstr "#"
149
+
150
+ #: sitemap.php:609
151
+ msgid "No pages defined."
152
+ msgstr "Aucune page définie."
153
+
154
+ #: sitemap.php:616
155
+ msgid "Add new page"
156
+ msgstr "Ajouter une nouvelle page"
157
+
158
+ #: sitemap.php:617:
159
+ msgid "Save page changes"
160
+ msgstr "Enregistrer les modifications de page"
161
+
162
+ #: sitemap.php:618:
163
+ msgid "Undo all page changes"
164
+ msgstr "Annuler toutes les modifications de page"
165
+
166
+ #: sitemap.php:621:
167
+ msgid "Delete marked page"
168
+ msgstr "Effacer la page marquée"
169
+
170
+ #: sitemap.php:627
171
+ msgid "Basic Options"
172
+ msgstr "Options de base"
173
+
174
+ #: sitemap.php:632
175
+ msgid "Enable automatic priority calculation for posts based on comment count"
176
+ msgstr "Autoriser le calcul de priorité automatique pour les articles en fonction du nombre de commentaires"
177
+
178
+ #: sitemap.php:638
179
+ msgid "Write debug comments"
180
+ msgstr "Ecrire des commentaires de debug"
181
+
182
+ #: sitemap.php:643
183
+ msgid "Filename of the sitemap file"
184
+ msgstr "Nom du fichier sitemap"
185
+
186
+ #: sitemap.php:650
187
+ msgid "Write a normal XML file (your filename)"
188
+ msgstr "Ecrire un fichier XML normal (nom de fichier)"
189
+
190
+ #: sitemap.php:652
191
+ msgid "Detected URL"
192
+ msgstr "URL détecté"
193
+
194
+ #: sitemap.php:657
195
+ msgid "Write a gzipped file (your filename + .gz)"
196
+ msgstr "Ecrire un fichier gzippé (votre nom de fichier + .gz)"
197
+
198
+ #: sitemap.php:664
199
+ msgid "Auto-Ping Google Sitemaps"
200
+ msgstr "Effectuer un ping automatique de Google Sitemaps"
201
+
202
+ #: sitemap.php:665
203
+ msgid "This option will automatically tell Google about changes."
204
+ msgstr "Cette option préviendra automatiquement Google lors de modifications."
205
+
206
+ #: sitemap.php:672
207
+ msgid "Includings"
208
+ msgstr "Inclusions"
209
+
210
+ #: sitemap.php:677
211
+ msgid "Include homepage"
212
+ msgstr "Inclure la homepage"
213
+
214
+ #: sitemap.php:683
215
+ msgid "Include posts"
216
+ msgstr "Inclure les articles"
217
+
218
+ #: sitemap.php:689
219
+ msgid "Include static pages"
220
+ msgstr "Inclure les pages statiques"
221
+
222
+ #: sitemap.php:695
223
+ msgid "Include categories"
224
+ msgstr "Inclure les catégories"
225
+
226
+ #: sitemap.php:701
227
+ msgid "Include archives"
228
+ msgstr "Inclure les archives"
229
+
230
+ #: sitemap.php:708
231
+ msgid "Change frequencies"
232
+ msgstr "Modifier les fréquences"
233
+
234
+ #: sitemap.php:709
235
+ msgid "Note"
236
+ msgstr "Remarque"
237
+
238
+ #: sitemap.php:710
239
+ msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
240
+ msgstr "Veuillez noter que la valeur de ce champ est considérée comme un indice et non une commande. Même si les robots de moteurs de recherche prennent en compte cette information, il peuvent parcourir les pages marquées &quot;toutes les heures&quot; moins fréquemment que cela, et peuvent parcourir les pages marquées &quot;une fois par an&quot; plus fréquemment que cela. Il est aussi probable que les robots parcourent de façon périodique les pages marquées &quot;jamais&quot; afin de prendre en compte les modifications inattendues de ces pages."
241
+
242
+ #: sitemap.php:715
243
+ msgid "Homepage"
244
+ msgstr "Homepage"
245
+
246
+ #: sitemap.php:721
247
+ msgid "Posts"
248
+ msgstr "Articles"
249
+
250
+ #: sitemap.php:727
251
+ msgid "Static pages"
252
+ msgstr "Pages statiques"
253
+
254
+ #: sitemap.php:733
255
+ msgid "Categories"
256
+ msgstr "Catégories"
257
+
258
+ #: sitemap.php:739
259
+ msgid "The current archive of this month (Should be the same like your homepage)"
260
+ msgstr "L'archive du mois en cours (devrait correspondre à votre homepage)"
261
+
262
+ #: sitemap.php:745
263
+ msgid "Older archives (Changes only if you edit an old post)"
264
+ msgstr "Archives antérieures (ne change que lorsque vous modifier un ancien article)"
265
+
266
+ #: sitemap.php:752
267
+ msgid "Priorities"
268
+ msgstr "Priorités"
269
+
270
+ #: sitemap.php:763
271
+ msgid "Posts (If auto calculation is disabled)"
272
+ msgstr "Articles (si le calcul automatique est désactivé)"
273
+
274
+ #: sitemap.php:769
275
+ msgid "Minimum post priority (Even if auto calculation is enabled)"
276
+ msgstr "Priorité minimum des articles (Même si le calcul automatique est activé)"
277
+
278
+ #: sitemap.php:787
279
+ msgid "Archives"
280
+ msgstr "Archives"
281
+
282
+ #: sitemap.php:793
283
+ msgid "Informations and support"
284
+ msgstr "Informations et support"
285
+
286
+ #: sitemap.php:794
287
+ msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
288
+ msgstr "Allez sur %s pour les mises à jour et pour poster un commentaire en cas de probleme / question / suggestion."
289
+
290
+ #: sitemap.php:797
291
+ msgid "Update options"
292
+ msgstr "Enregistrer les changements"
293
+
294
+ #: sitemap.php:1033
295
+ msgid "URL:"
296
+ msgstr "URL:"
297
+
298
+ #: sitemap.php:1034
299
+ msgid "Path:"
300
+ msgstr "Chemin:"
301
+
302
+ #: sitemap.php:1037
303
+ msgid "Could not write into %s"
304
+ msgstr "Impossible d'écrire dans %s"
305
+
306
+ #: sitemap.php:1048
307
+ msgid "Successfully built sitemap file:"
308
+ msgstr "Sitemap généré avec succès:"
309
+
310
+ #: sitemap.php:1048
311
+ msgid "Successfully built gzipped sitemap file:"
312
+ msgstr "Sitemap gzippé généré avec succès:"
313
+
314
+ #: sitemap.php:1062
315
+ msgid "Could not ping to Google at %s"
316
+ msgstr "Ping de Google impossible à %s"
317
+
318
+ #: sitemap.php:1064
319
+ msgid "Successfully pinged Google at %s"
320
+ msgstr "Ping de Google réussi à %s"
321
+
sitemap-ko_KR.mo ADDED
Binary file
sitemap-ko_KR.po ADDED
@@ -0,0 +1,321 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: \n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: 2005-11-26 16:35+0900\n"
6
+ "Last-Translator: 김승엽 <unfusion>\n"
7
+ "Language-Team: <unfusion@msn.com>\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=utf-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Poedit-Language: Korean\n"
12
+ "X-Poedit-Country: KOREA, REPUBLIC OF\n"
13
+
14
+ #: sitemap.php:375
15
+ msgid "always"
16
+ msgstr "항상"
17
+
18
+ msgid "hourly"
19
+ msgstr "매시간"
20
+
21
+ msgid "daily"
22
+ msgstr "매일"
23
+
24
+ msgid "weekly"
25
+ msgstr "매주"
26
+
27
+ msgid "monthly"
28
+ msgstr "매월"
29
+
30
+ msgid "yearly"
31
+ msgstr "매년"
32
+
33
+ msgid "never"
34
+ msgstr "하지않음"
35
+
36
+ msgid "Detected Path"
37
+ msgstr "탐지된 경로"
38
+
39
+ msgid "Example"
40
+ msgstr "예"
41
+
42
+ msgid "Absolute or relative path to the sitemap file, including name."
43
+ msgstr "파일이름을 포함한 Sitemap 파일의 절대 또는 상대 경로"
44
+
45
+ msgid "Complete URL to the sitemap file, including name."
46
+ msgstr "파일이름을 포함한 Sitemap 파일의 완전한 URL"
47
+
48
+ msgid "Automatic location"
49
+ msgstr "자동 위치"
50
+
51
+ msgid "Manual location"
52
+ msgstr "수동 위치"
53
+
54
+ msgid "OR"
55
+ msgstr "또는"
56
+
57
+ msgid "Location of your sitemap file"
58
+ msgstr "Sitemap 파일의 위치"
59
+
60
+ msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the &quot;Location of your sitemap file&quot; section on this page)!"
61
+ msgstr "블로그가 서브 디렉토리에 위치하는데 새 페이지를 추가하길 원한다면 Sitemap 파일이 블로그 디렉토리나 그 아래에 있으면 안되고 root 디렉토리에 있어야 합니다. (이 페이지의 &quot;Sitemap 파일의 위치&quot; 부분을 보십시오.)"
62
+
63
+ #: sitemap.php:512
64
+ msgid "Configuration updated"
65
+ msgstr "설정 업데이트."
66
+
67
+ #: sitemap.php:513
68
+ msgid "Error"
69
+ msgstr "오류"
70
+
71
+ #: sitemap.php:521
72
+ msgid "A new page was added. Click on &quot;Save page changes&quot; to save your changes."
73
+ msgstr "새 페이지를 추가했으면 &quot;페이지 변경 저장&quot;을 눌러 변경사항을 저장하십시오."
74
+
75
+ #: sitemap.php:527
76
+ msgid "Pages saved"
77
+ msgstr "페이지 저장됨."
78
+
79
+ #: sitemap.php:528
80
+ msgid "Error while saving pages"
81
+ msgstr "페이지 저장 중 오류가 발생했습니다."
82
+
83
+ #: sitemap.php:539
84
+ msgid "The page was deleted. Click on &quot;Save page changes&quot; to save your changes."
85
+ msgstr "페이지를 삭제 했으면 &quot;페이지 변경 저장&quot;을 눌러 변경사항을 저장하십시오."
86
+
87
+ #: sitemap.php:542
88
+ msgid "You changes have been cleared."
89
+ msgstr "변경 사항이 삭제 되었습니다."
90
+
91
+ #: sitemap.php:555
92
+ msgid "Sitemap Generator"
93
+ msgstr "Sitemap 생성기"
94
+
95
+ #: sitemap.php:558
96
+ msgid "Manual rebuild"
97
+ msgstr "수동 재생성"
98
+
99
+ #: sitemap.php:559
100
+ msgid "If you want to build the sitemap without editing a post, click on here!"
101
+ msgstr "포스트의 작성 없이 Sitemap을 새로 생성하고 싶다면 여기를 누르세요."
102
+
103
+ #: sitemap.php:560
104
+ msgid "Rebuild Sitemap"
105
+ msgstr "Sitemap 재생성"
106
+
107
+ #: sitemap.php:564
108
+ msgid "Additional pages"
109
+ msgstr "페이지 추가"
110
+
111
+ #: sitemap.php:566
112
+ msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
113
+ msgstr "여기서 특정 파일이나 URL을 사이트 맵에 추가할 수 있지만 Blog/WordPress에 속해 있는 것은 추가 할 수 없습니다. <br /> 예를 들어, 도메인이 www.foo.com이고 블로그의 위치가 www.foo.com/blog 라면 www.foo.com을 홈페이지로 추가할 수 있습니다."
114
+
115
+ #: sitemap.php:568
116
+ msgid "URL to the page"
117
+ msgstr "페이지 URL"
118
+
119
+ #: sitemap.php:569
120
+ msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
121
+ msgstr "페이지로의 URL을 입력하십시오.예:http://www.foo.com/index.html or www.foo.com/home "
122
+
123
+ #: sitemap.php:571
124
+ msgid "Priority"
125
+ msgstr "우선순위"
126
+
127
+ #: sitemap.php:572
128
+ msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
129
+ msgstr "다른 페이지에 비교하여 페이지의 우선 순위를 선택하십시오. 예를 들어 홈페이지는 다른 것에 비해 높은 우선 순위를 가져야 합니다."
130
+
131
+ #: sitemap.php:574
132
+ msgid "Last Changed"
133
+ msgstr "마지막 변경"
134
+
135
+ #: sitemap.php:575
136
+ msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
137
+ msgstr "최근 변경된 날짜를 YYYY-MM-DD (예 : 2005-12-31 ) 형식으로 입력하십시오 ( 선택사항 )"
138
+
139
+ #: sitemap.php:583
140
+ msgid "Change Frequency"
141
+ msgstr "변경 빈도."
142
+
143
+ #: sitemap.php:585
144
+ msgid "#"
145
+ msgstr "#"
146
+
147
+ #: sitemap.php:609
148
+ msgid "No pages defined."
149
+ msgstr "페이지가 지정되지 않았습니다."
150
+
151
+ #: sitemap.php:616
152
+ msgid "Add new page"
153
+ msgstr "새 페이지 추가"
154
+
155
+ # sitemap.php:617:
156
+ #: sitemap.php:617
157
+ msgid "Save page changes"
158
+ msgstr "페이지 변경 저장"
159
+
160
+ # sitemap.php:618:
161
+ #: sitemap.php:618
162
+ msgid "Undo all page changes"
163
+ msgstr "모든 페이지 변경 취소"
164
+
165
+ # sitemap.php:621:
166
+ #: sitemap.php:621
167
+ msgid "Delete marked page"
168
+ msgstr "선택된 페이지 삭제"
169
+
170
+ #: sitemap.php:627
171
+ msgid "Basic Options"
172
+ msgstr "기본 옵션"
173
+
174
+ #: sitemap.php:632
175
+ msgid "Enable automatic priority calculation for posts based on comment count"
176
+ msgstr "코멘트 갯수를 기초로 하는 자동 우선권 계산을 활성화"
177
+
178
+ #: sitemap.php:638
179
+ msgid "Write debug comments"
180
+ msgstr "debug 코멘트 작성"
181
+
182
+ #: sitemap.php:643
183
+ msgid "Filename of the sitemap file"
184
+ msgstr "Sitemap 파일명"
185
+
186
+ #: sitemap.php:650
187
+ msgid "Write a normal XML file (your filename)"
188
+ msgstr "표준 XML 파일 작성 ( 사용자 파일이름 )"
189
+
190
+ #: sitemap.php:652
191
+ msgid "Detected URL"
192
+ msgstr "탐지된 URL"
193
+
194
+ #: sitemap.php:657
195
+ msgid "Write a gzipped file (your filename + .gz)"
196
+ msgstr "압축 파일 작성 ( 사용자 파일이름 + .gz)"
197
+
198
+ #: sitemap.php:664
199
+ msgid "Auto-Ping Google Sitemaps"
200
+ msgstr "자동 Ping 구글 사이트맵"
201
+
202
+ #: sitemap.php:665
203
+ msgid "This option will automatically tell Google about changes."
204
+ msgstr "이 옵션은 자동적으로 구글에 변경사항을 알립니다."
205
+
206
+ #: sitemap.php:672
207
+ msgid "Includings"
208
+ msgstr "추가 사항"
209
+
210
+ #: sitemap.php:677
211
+ msgid "Include homepage"
212
+ msgstr "홈페이지 추가"
213
+
214
+ #: sitemap.php:683
215
+ msgid "Include posts"
216
+ msgstr "포스트 추가"
217
+
218
+ #: sitemap.php:689
219
+ msgid "Include static pages"
220
+ msgstr "정적 페이지 추가"
221
+
222
+ #: sitemap.php:695
223
+ msgid "Include categories"
224
+ msgstr "카테고리 추가"
225
+
226
+ #: sitemap.php:701
227
+ msgid "Include archives"
228
+ msgstr "Archives 추가"
229
+
230
+ #: sitemap.php:708
231
+ msgid "Change frequencies"
232
+ msgstr "변경 빈도."
233
+
234
+ #: sitemap.php:709
235
+ msgid "Note"
236
+ msgstr "노트"
237
+
238
+ #: sitemap.php:710
239
+ msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
240
+ msgstr "이곳의 태그에 있는 수치들은 고려할 만한 지시사항일 뿐 명령은 아님을 주의하십시오. 서치 엔진의 Crawler가 이정보를 수집에 대한 결정을 내릴 때 고려한다고 해도 \"매시간\" 으로 된 페이지를 더 긴 주기로 수집할 수도 있고 \"매년\" 으로 된 페이지를 더 짧은 주기로 수집할 수도 있습니다. 이것은 \"하지않음\"으로 된 페이지도 마찬가지로 주기적 수집을 할 수도 있어서 그러한 페이지에 발생한 변화를 예기치 않게 취급할 수도 있습니다."
241
+
242
+ #: sitemap.php:715
243
+ msgid "Homepage"
244
+ msgstr "홈페이지"
245
+
246
+ #: sitemap.php:721
247
+ msgid "Posts"
248
+ msgstr "포스트"
249
+
250
+ #: sitemap.php:727
251
+ msgid "Static pages"
252
+ msgstr "정적 페이지"
253
+
254
+ #: sitemap.php:733
255
+ msgid "Categories"
256
+ msgstr "카테고리"
257
+
258
+ #: sitemap.php:739
259
+ msgid "The current archive of this month (Should be the same like your homepage)"
260
+ msgstr "이번 달 현재의 Arcihves ( 홈페이지와 같아야 합니다.)"
261
+
262
+ #: sitemap.php:745
263
+ msgid "Older archives (Changes only if you edit an old post)"
264
+ msgstr "오래된 Archives ( 예전 포스트를 수정했을 때만 변경 하십시오.)"
265
+
266
+ #: sitemap.php:752
267
+ msgid "Priorities"
268
+ msgstr "우선권"
269
+
270
+ #: sitemap.php:763
271
+ msgid "Posts (If auto calculation is disabled)"
272
+ msgstr "포스트 ( 만약 자동 계산을 중지 했다면)"
273
+
274
+ #: sitemap.php:769
275
+ msgid "Minimum post priority (Even if auto calculation is enabled)"
276
+ msgstr "최소 포스트 우선권 (자동 계산이 활성화 되어 있을 때도)"
277
+
278
+ #: sitemap.php:787
279
+ msgid "Archives"
280
+ msgstr "Archives"
281
+
282
+ #: sitemap.php:793
283
+ msgid "Informations and support"
284
+ msgstr "정보와 지원"
285
+
286
+ #: sitemap.php:794
287
+ msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
288
+ msgstr "문제 / 질문 / 제안이 있으면 %s 에서 업데이트나 코멘트를 확인해 보십시오. "
289
+
290
+ #: sitemap.php:797
291
+ msgid "Update options"
292
+ msgstr "옵션 업데이트"
293
+
294
+ #: sitemap.php:1033
295
+ msgid "URL:"
296
+ msgstr "URL:"
297
+
298
+ #: sitemap.php:1034
299
+ msgid "Path:"
300
+ msgstr "경로:"
301
+
302
+ #: sitemap.php:1037
303
+ msgid "Could not write into %s"
304
+ msgstr "%s 에 쓸 수 없습니다."
305
+
306
+ #: sitemap.php:1048
307
+ msgid "Successfully built sitemap file:"
308
+ msgstr "성공적으로 작성된 Sitemap 파일:"
309
+
310
+ #: sitemap.php:1048
311
+ msgid "Successfully built gzipped sitemap file:"
312
+ msgstr "성공적으로 작성된 Sitemap 압축(gzipped) 파일"
313
+
314
+ #: sitemap.php:1062
315
+ msgid "Could not ping to Google at %s"
316
+ msgstr "구글의 %s 에 핑을 보낼 수 없습니다."
317
+
318
+ #: sitemap.php:1064
319
+ msgid "Successfully pinged Google at %s"
320
+ msgstr "구글의 %s 에 성공적으로 핑을 보냈습니다."
321
+
sitemap-pl_PL.mo ADDED
Binary file
sitemap-pl_PL.po ADDED
@@ -0,0 +1,326 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # [Countryname] Language File for sitemap (sitemap-[localname].po)
2
+ # Copyright (C) 2005 [name] : [URL]
3
+ # This file is distributed under the same license as the WordPress package.
4
+ # [name] <[mail-address]>, 2005.
5
+ # $Id: sitemap-es_ES.po 2504 2005-07-03 22:19:18Z arnee $
6
+ #
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: sitemap\n"
10
+ "Report-Msgid-Bugs-To: <[mail-address]>\n"
11
+ "POT-Creation-Date: 2005-06-15 00:00+0000\n"
12
+ "PO-Revision-Date: 2005-11-24 13:00-0500\n"
13
+ "Last-Translator: kuba zwolinski <snowdog@o2.pl>\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Language-Team: sddstudio.net <snowdog@o2.pl>\n"
18
+ "X-Poedit-Language: Polish\n"
19
+ "X-Poedit-Country: POLAND\n"
20
+
21
+ #: sitemap.php:375
22
+ msgid "always"
23
+ msgstr "zawsze"
24
+
25
+ msgid "hourly"
26
+ msgstr "co godzinę"
27
+
28
+ msgid "daily"
29
+ msgstr "codziennie"
30
+
31
+ msgid "weekly"
32
+ msgstr "co tydzień"
33
+
34
+ msgid "monthly"
35
+ msgstr "co miesiąc"
36
+
37
+ msgid "yearly"
38
+ msgstr "co rok"
39
+
40
+ msgid "never"
41
+ msgstr "nigdy"
42
+
43
+ msgid "Detected Path"
44
+ msgstr "Wykryta ścieżka"
45
+
46
+ msgid "Example"
47
+ msgstr "Przykład"
48
+
49
+ msgid "Absolute or relative path to the sitemap file, including name."
50
+ msgstr "Absolutna ścieżka do pliku mapy strony, zawierający nazwę. "
51
+
52
+ msgid "Complete URL to the sitemap file, including name."
53
+ msgstr "Pełen adres URL to pliku mapy strony, zawierający nazwę."
54
+
55
+ msgid "Automatic location"
56
+ msgstr "Automatyczna lokalizacja"
57
+
58
+ msgid "Manual location"
59
+ msgstr "Ręczna lokalizacja"
60
+
61
+ msgid "OR"
62
+ msgstr "LUB"
63
+
64
+ msgid "Location of your sitemap file"
65
+ msgstr "Lokalizacja twojego pliku mapy strony"
66
+
67
+ msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the &quot;Location of your sitemap file&quot; section on this page)!"
68
+ msgstr "Jeśli twój blog znajduje się w podkatalogu i chcesz dodać strony które NIE znajdują się katalogu blogu lub jego subkatalogu, MUSISZ umieścić swoją mapę strony w katalogu głównym (zobacz sekcję &quot; Lokalizacja twojej mapy strony&quot; na tej stronie)!"
69
+
70
+ #: sitemap.php:512
71
+ msgid "Configuration updated"
72
+ msgstr "Konfiguracja zaktualizowana"
73
+
74
+ #: sitemap.php:513
75
+ msgid "Error"
76
+ msgstr "Błąd"
77
+
78
+ #: sitemap.php:521
79
+ msgid "A new page was added. Click on &quot;Save page changes&quot; to save your changes."
80
+ msgstr "Nowa strona została dodana. Kliknij na &quot;Zapisz zmiany&quot; aby zapisać swoje zmiany."
81
+
82
+ #: sitemap.php:527
83
+ msgid "Pages saved"
84
+ msgstr "Strony zostały zapisane"
85
+
86
+ #: sitemap.php:528
87
+ msgid "Error while saving pages"
88
+ msgstr "Wystąpił błąd podczas zapisywania stron."
89
+
90
+ #: sitemap.php:539
91
+ msgid "The page was deleted. Click on &quot;Save page changes&quot; to save your changes."
92
+ msgstr "Strona została usunięta. Kliknij na &quot;Zapisz zmiany&quot; aby zapisać swoje zmiany."
93
+
94
+ #: sitemap.php:542
95
+ msgid "You changes have been cleared."
96
+ msgstr "Twoje zmiany zostały usunięte."
97
+
98
+ #: sitemap.php:555
99
+ msgid "Sitemap Generator"
100
+ msgstr "Generator Mapy Strony dla Google Sitemaps."
101
+
102
+ #: sitemap.php:558
103
+ msgid "Manual rebuild"
104
+ msgstr "Ręczna przebudowa"
105
+
106
+ #: sitemap.php:559
107
+ msgid "If you want to build the sitemap without editing a post, click on here!"
108
+ msgstr "Jeśli chcesz przebudować mapę strony bez edycji wpisu, kliknij tutaj!"
109
+
110
+ #: sitemap.php:560
111
+ msgid "Rebuild Sitemap"
112
+ msgstr "Przebuduj mapę strony"
113
+
114
+ #: sitemap.php:564
115
+ msgid "Additional pages"
116
+ msgstr "Dodatkowe strony"
117
+
118
+ #: sitemap.php:566
119
+ msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
120
+ msgstr "Tutaj możesz podąć pliki lub adresy URL, które powinny znaleźć się w twojej mapie strony, chociaż nie należą do blogu/WordPress'a.<br />Na przykład, jeśli twoja domena to www.foo.com i twój blog znajduje się na www.foo.com/blog, możesz chcieć umieścić także stronę główną (czyli www.foo.com)"
121
+
122
+ #: sitemap.php:568
123
+ msgid "URL to the page"
124
+ msgstr "URL strony"
125
+
126
+ #: sitemap.php:569
127
+ msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
128
+ msgstr "Wpisz adres URL strony. Przykłady: http://www.foo.com/index.html lub www.foo.com/home "
129
+
130
+ #: sitemap.php:571
131
+ msgid "Priority"
132
+ msgstr "Priorytet"
133
+
134
+ #: sitemap.php:572
135
+ msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
136
+ msgstr "Wybierz priorytet strony w odniesieniu do innych stron. Na przykład, strona główna może mieć wyższy priorytet niż informacje o tobie."
137
+
138
+ #: sitemap.php:574
139
+ msgid "Last Changed"
140
+ msgstr "Ostatnio zmieniony"
141
+
142
+ #: sitemap.php:575
143
+ msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
144
+ msgstr "Wpisz datę ostatniej zmiany jako YYYY-MM-DD (na przykład: 2005-12-31) (opcja)."
145
+
146
+ #: sitemap.php:583
147
+ msgid "Change Frequency"
148
+ msgstr "Zmień częstotliwość"
149
+
150
+ #: sitemap.php:585
151
+ msgid "#"
152
+ msgstr "#"
153
+
154
+ #: sitemap.php:609
155
+ msgid "No pages defined."
156
+ msgstr "Brak zdefiniowanych stron"
157
+
158
+ #: sitemap.php:616
159
+ msgid "Add new page"
160
+ msgstr "Dodaj nową stronę"
161
+
162
+ #: sitemap.php:617:
163
+ msgid "Save page changes"
164
+ msgstr "Zapisz zmiany"
165
+
166
+ #: sitemap.php:618:
167
+ msgid "Undo all page changes"
168
+ msgstr "Cofnij wszystkie zmiany"
169
+
170
+ #: sitemap.php:621:
171
+ msgid "Delete marked page"
172
+ msgstr "Usuń zaznaczone"
173
+
174
+ #: sitemap.php:627
175
+ msgid "Basic Options"
176
+ msgstr "Opcje podstawowe"
177
+
178
+ #: sitemap.php:632
179
+ msgid "Enable automatic priority calculation for posts based on comment count"
180
+ msgstr "Włącz automatyczne przeliczanie dla wpisów oparte na ilości komentarzy"
181
+
182
+ #: sitemap.php:638
183
+ msgid "Write debug comments"
184
+ msgstr "Zapisz komentarze wykrywania/usuwania błędów"
185
+
186
+ #: sitemap.php:643
187
+ msgid "Filename of the sitemap file"
188
+ msgstr "Nazwa pliku mapy strony"
189
+
190
+ #: sitemap.php:650
191
+ msgid "Write a normal XML file (your filename)"
192
+ msgstr "Zapisz normalny plik XML (własna nazwa)"
193
+
194
+ #: sitemap.php:652
195
+ msgid "Detected URL"
196
+ msgstr "Wykryty URL"
197
+
198
+ #: sitemap.php:657
199
+ msgid "Write a gzipped file (your filename + .gz)"
200
+ msgstr "Zapisz plik gzip (własna nazwa + .gz)"
201
+
202
+ #: sitemap.php:664
203
+ msgid "Auto-Ping Google Sitemaps"
204
+ msgstr "Automatyczne wysyłanie sygnału PING do Google Sitemaps"
205
+
206
+ #: sitemap.php:665
207
+ msgid "This option will automatically tell Google about changes."
208
+ msgstr "Ta opcja automatycznie powiadomi Google o zmianach."
209
+
210
+ #: sitemap.php:672
211
+ msgid "Includings"
212
+ msgstr "Zawartość"
213
+
214
+ #: sitemap.php:677
215
+ msgid "Include homepage"
216
+ msgstr "Zawiera stronę główną"
217
+
218
+ #: sitemap.php:683
219
+ msgid "Include posts"
220
+ msgstr "Zawiera wpisy"
221
+
222
+ #: sitemap.php:689
223
+ msgid "Include static pages"
224
+ msgstr "Zawiera statyczne strony"
225
+
226
+ #: sitemap.php:695
227
+ msgid "Include categories"
228
+ msgstr "Zawiera kategorie"
229
+
230
+ #: sitemap.php:701
231
+ msgid "Include archives"
232
+ msgstr "Zawiera archiwa"
233
+
234
+ #: sitemap.php:708
235
+ msgid "Change frequencies"
236
+ msgstr "Zmień częstotliwość"
237
+
238
+ #: sitemap.php:709
239
+ msgid "Note"
240
+ msgstr "Notatka"
241
+
242
+ #: sitemap.php:710
243
+ msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
244
+ msgstr "Proszę wziąść pod uwagę, że zawartość tego znacznika jest wskazówką, a nie poleceniem. Nawet jeśli wyszukiwarki biorą tą informację pod uwagę podczas podejmowania decyzji, to mogą one przeglądać strony zaznaczone jako \"co godzinę\" rzadziej. Jest również prawdopodobne, że strony oznaczone jako \"co rok\" będą przeglądane częściej. Również jest możliwe, że mimo oznaczenia \"nigdy\", wyszukiwarki mogą takie strony czasem przeglądać i wychwytywać nieoczekiwanie zmiany na tych stronach."
245
+
246
+ #: sitemap.php:715
247
+ msgid "Homepage"
248
+ msgstr "Strona główna"
249
+
250
+ #: sitemap.php:721
251
+ msgid "Posts"
252
+ msgstr "Wpisy"
253
+
254
+ #: sitemap.php:727
255
+ msgid "Static pages"
256
+ msgstr "Statyczne strony"
257
+
258
+ #: sitemap.php:733
259
+ msgid "Categories"
260
+ msgstr "Kategorie"
261
+
262
+ #: sitemap.php:739
263
+ msgid "The current archive of this month (Should be the same like your homepage)"
264
+ msgstr "Aktualne archiwum tego miesiąca (powinno mieć taką samą częstotliwość jak strona główna)"
265
+
266
+ #: sitemap.php:745
267
+ msgid "Older archives (Changes only if you edit an old post)"
268
+ msgstr "Starsz archiwa (zmień tylko jeśli edytujesz stare wpisy)"
269
+
270
+ #: sitemap.php:752
271
+ msgid "Priorities"
272
+ msgstr "Priorytety"
273
+
274
+ #: sitemap.php:763
275
+ msgid "Posts (If auto calculation is disabled)"
276
+ msgstr "Wpisy (jeśli auto przelicznanie jest wyłączone)"
277
+
278
+ #: sitemap.php:769
279
+ msgid "Minimum post priority (Even if auto calculation is enabled)"
280
+ msgstr "Minimalny priorytet wpisu (nawet jeśli automatyczne przeliczanie jest włączone)"
281
+
282
+ #: sitemap.php:787
283
+ msgid "Archives"
284
+ msgstr "Archiwa"
285
+
286
+ #: sitemap.php:793
287
+ msgid "Informations and support"
288
+ msgstr "Informacje i pomoc"
289
+
290
+ #: sitemap.php:794
291
+ msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
292
+ msgstr "Sprawdz %s w poszukiwaniu auaktualnień i zostaw komentarz jeśli masz jakieś problemy / pytania / sugestie"
293
+
294
+ #: sitemap.php:797
295
+ msgid "Update options"
296
+ msgstr "Zaktualizuj opcje"
297
+
298
+ #: sitemap.php:1033
299
+ msgid "URL:"
300
+ msgstr "URL:"
301
+
302
+ #: sitemap.php:1034
303
+ #, fuzzy
304
+ msgid "Path:"
305
+ msgstr "Ścieżka:"
306
+
307
+ #: sitemap.php:1037
308
+ msgid "Could not write into %s"
309
+ msgstr "Nie można zapisać w %s"
310
+
311
+ #: sitemap.php:1048
312
+ msgid "Successfully built sitemap file:"
313
+ msgstr "Mapa strony zbudowana:"
314
+
315
+ #: sitemap.php:1048
316
+ msgid "Successfully built gzipped sitemap file:"
317
+ msgstr "Mapa strony gzip zbudowana:"
318
+
319
+ #: sitemap.php:1062
320
+ msgid "Could not ping to Google at %s"
321
+ msgstr "Nie można wysłać sygnału PING do Google w %s"
322
+
323
+ #: sitemap.php:1064
324
+ msgid "Successfully pinged Google at %s"
325
+ msgstr "Udało się wysłać sygnał PING do Google w %s"
326
+
sitemap-pt_BR.mo ADDED
Binary file
sitemap-pt_BR.po ADDED
@@ -0,0 +1,327 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # [Countryname] Language File for sitemap (sitemap-[localname].po)
2
+ # Copyright (C) 2005 [name] : [URL]
3
+ # This file is distributed under the same license as the WordPress package.
4
+ # [name] <[mail-address]>, 2005.
5
+ # $Id: sitemap-es_ES.po 2504 2005-07-03 22:19:18Z arnee $
6
+ #
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: sitemap\n"
10
+ "Report-Msgid-Bugs-To: <[mail-address]>\n"
11
+ "POT-Creation-Date: 2005-06-15 00:00+0000\n"
12
+ "PO-Revision-Date: 2006-11-24 18:57-0300\n"
13
+ "Last-Translator: Rafael Lima <rafael.lima@email.com.br>\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Language-Team: Pedro Polonia <polonia2@gmail.com>\n"
18
+ "X-Poedit-Language: Portuguese\n"
19
+ "X-Poedit-Country: PORTUGAL\n"
20
+ "X-Poedit-SourceCharset: utf-8\n"
21
+ "X-Poedit-Bookmarks: -1,59,-1,-1,-1,71,-1,-1,-1,-1\n"
22
+
23
+ #: sitemap.php:375
24
+ msgid "always"
25
+ msgstr "sempre"
26
+
27
+ msgid "hourly"
28
+ msgstr "a cada hora"
29
+
30
+ msgid "daily"
31
+ msgstr "diariamente"
32
+
33
+ msgid "weekly"
34
+ msgstr "semanalmente"
35
+
36
+ msgid "monthly"
37
+ msgstr "mensalmente"
38
+
39
+ msgid "yearly"
40
+ msgstr "anualmente"
41
+
42
+ msgid "never"
43
+ msgstr "nunca"
44
+
45
+ msgid "Detected Path"
46
+ msgstr "Caminho detectado"
47
+
48
+ msgid "Example"
49
+ msgstr "Exemplo"
50
+
51
+ msgid "Absolute or relative path to the sitemap file, including name."
52
+ msgstr "Caminho absoluto ou relativo para o arquivo sitemap, incluindo o nome."
53
+
54
+ msgid "Complete URL to the sitemap file, including name."
55
+ msgstr "URL completo para o arquivo sitemap, incluindo o nome."
56
+
57
+ msgid "Automatic location"
58
+ msgstr "Localização automática"
59
+
60
+ msgid "Manual location"
61
+ msgstr "Localização manual"
62
+
63
+ msgid "OR"
64
+ msgstr "OU"
65
+
66
+ msgid "Location of your sitemap file"
67
+ msgstr "Localização do arquivo sitemap"
68
+
69
+ msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the &quot;Location of your sitemap file&quot; section on this page)!"
70
+ msgstr "Se o seu blog está numa pasta e quer adicionar paginas que NÃO estão na pasta do seu blog ou em sub-pastas, DEVE colocar o seu arquivo sitemap na raiz dos directórios (Olhe na secção \"Localização do seu arquivo sitemap\" nesta página)! "
71
+
72
+ #: sitemap.php:512
73
+ msgid "Configuration updated"
74
+ msgstr "Configuração actualizada"
75
+
76
+ #: sitemap.php:513
77
+ msgid "Error"
78
+ msgstr "Erro"
79
+
80
+ #: sitemap.php:521
81
+ msgid "A new page was added. Click on &quot;Save page changes&quot; to save your changes."
82
+ msgstr "Uma nova página foi adicionada. Seleccione em \"Gravar alterações\" para guardar as alterações. "
83
+
84
+ #: sitemap.php:527
85
+ msgid "Pages saved"
86
+ msgstr "Páginas guardadas"
87
+
88
+ #: sitemap.php:528
89
+ msgid "Error while saving pages"
90
+ msgstr "Erro durante a gravação das páginas "
91
+
92
+ #: sitemap.php:539
93
+ msgid "The page was deleted. Click on &quot;Save page changes&quot; to save your changes."
94
+ msgstr "A página foi eliminada. Seleccione em \"Gravar alterações\" para guardar as alterações. "
95
+
96
+ #: sitemap.php:542
97
+ msgid "You changes have been cleared."
98
+ msgstr "As suas alterações foram anuladas."
99
+
100
+ #: sitemap.php:555
101
+ msgid "Sitemap Generator"
102
+ msgstr "Gerador Sitemap"
103
+
104
+ #: sitemap.php:558
105
+ msgid "Manual rebuild"
106
+ msgstr "Reconstrução manual"
107
+
108
+ #: sitemap.php:559
109
+ msgid "If you want to build the sitemap without editing a post, click on here!"
110
+ msgstr "Se deseja construir o sitemap sem editar nenhum artigo, clique aqui!"
111
+
112
+ #: sitemap.php:560
113
+ msgid "Rebuild Sitemap"
114
+ msgstr "Reconstruir Sitemap"
115
+
116
+ #: sitemap.php:564
117
+ msgid "Additional pages"
118
+ msgstr "Páginas adicionais"
119
+
120
+ #: sitemap.php:566
121
+ msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
122
+ msgstr "Aqui pode especificar os arquivos ou URLs que devem ser incluídas no sitemap mas que não pertencem ao seu blog/WordPress.<br />Por exemplo: se o teu domínio é www.foo.com e o teu blog está localizado em www.foo.com/blog, deve querer incluir a sua página inicial em www.foo.com "
123
+
124
+ #: sitemap.php:568
125
+ msgid "URL to the page"
126
+ msgstr "URL da página"
127
+
128
+ #: sitemap.php:569
129
+ msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
130
+ msgstr "URL da página. Exemplos: http://www.foo.com/index.html ou www.foo.com/home"
131
+
132
+ #: sitemap.php:571
133
+ msgid "Priority"
134
+ msgstr "Prioridade"
135
+
136
+ #: sitemap.php:572
137
+ msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
138
+ msgstr "Escolha a prioridade relativa da página relativa a outras páginas. Por exemplo, a sua página inicial deve ter uma maior prioridade que os seus dados pessoais."
139
+
140
+ #: sitemap.php:574
141
+ msgid "Last Changed"
142
+ msgstr "Última Alteração"
143
+
144
+ #: sitemap.php:575
145
+ msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
146
+ msgstr "Entre a data da última alteração como AAAA-MM-DD (por exemplo: 2005-12-31) (opcional). "
147
+
148
+ #: sitemap.php:583
149
+ msgid "Change Frequency"
150
+ msgstr "Frequência das Alterações "
151
+
152
+ #: sitemap.php:585
153
+ msgid "#"
154
+ msgstr "#"
155
+
156
+ #: sitemap.php:609
157
+ msgid "No pages defined."
158
+ msgstr "Nenhuma página definida"
159
+
160
+ #: sitemap.php:616
161
+ msgid "Add new page"
162
+ msgstr "Adicionar nova página "
163
+
164
+ #: sitemap.php:617:
165
+ msgid "Save page changes"
166
+ msgstr "Guardar as alterações da página"
167
+
168
+ #: sitemap.php:618:
169
+ msgid "Undo all page changes"
170
+ msgstr "Desfazer todas as alterações da página"
171
+
172
+ #: sitemap.php:621:
173
+ msgid "Delete marked page"
174
+ msgstr "Apagar a página marcada"
175
+
176
+ #: sitemap.php:627
177
+ msgid "Basic Options"
178
+ msgstr "Opções Básicas"
179
+
180
+ #: sitemap.php:632
181
+ msgid "Enable automatic priority calculation for posts based on comment count"
182
+ msgstr "Activar o cálculo automático de prioridades para artigos baseado no número de comentários. "
183
+
184
+ #: sitemap.php:638
185
+ msgid "Write debug comments"
186
+ msgstr "Escrever comentários de depuração (debug) "
187
+
188
+ #: sitemap.php:643
189
+ msgid "Filename of the sitemap file"
190
+ msgstr "Nome do arquivo sitemap"
191
+
192
+ #: sitemap.php:650
193
+ msgid "Write a normal XML file (your filename)"
194
+ msgstr "Escrever um arquivo XML normal (nome do arquivo)"
195
+
196
+ #: sitemap.php:652
197
+ msgid "Detected URL"
198
+ msgstr "URL detectada"
199
+
200
+ #: sitemap.php:657
201
+ msgid "Write a gzipped file (your filename + .gz)"
202
+ msgstr "Gravar um arquivo comprimido com gzip (nome_arquivo +.gz)"
203
+
204
+ #: sitemap.php:664
205
+ msgid "Auto-Ping Google Sitemaps"
206
+ msgstr "Ping automático a Google Sitemaps"
207
+
208
+ #: sitemap.php:665
209
+ msgid "This option will automatically tell Google about changes."
210
+ msgstr "Esta opção indicará automaticamente as alterações ao Google."
211
+
212
+ #: sitemap.php:672
213
+ msgid "Includings"
214
+ msgstr "Inclusões"
215
+
216
+ #: sitemap.php:677
217
+ msgid "Include homepage"
218
+ msgstr "Incluir página principal"
219
+
220
+ #: sitemap.php:683
221
+ msgid "Include posts"
222
+ msgstr "Incluir artigos"
223
+
224
+ #: sitemap.php:689
225
+ msgid "Include static pages"
226
+ msgstr "Incluir páginas estáticas"
227
+
228
+ #: sitemap.php:695
229
+ msgid "Include categories"
230
+ msgstr "Incluir categorías"
231
+
232
+ #: sitemap.php:701
233
+ msgid "Include archives"
234
+ msgstr "Incluir arquivos"
235
+
236
+ #: sitemap.php:708
237
+ msgid "Change frequencies"
238
+ msgstr "Frequência das mudanças "
239
+
240
+ #: sitemap.php:709
241
+ msgid "Note"
242
+ msgstr "Nota"
243
+
244
+ #: sitemap.php:710
245
+ msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
246
+ msgstr "Por favor, considere que o valor desta etiqueta é um conselho e não um comando. Mesmo quando alguns agentes de pesquisa (search engine crawlers) consideram esta informação para tomar decisões, eles podem verificar as páginas marcadas como \"a cada hora\" com menor frequência, e visitar varias vezes por ano, as páginas marcadas com \"anualmente\".É igualmente possível que sejam verificadas páginas marcadas com \"nunca\" para gerir possíveis mudanças inesperadas nas mesmas."
247
+
248
+ #: sitemap.php:715
249
+ msgid "Homepage"
250
+ msgstr "Página principal"
251
+
252
+ #: sitemap.php:721
253
+ msgid "Posts"
254
+ msgstr "Artigos"
255
+
256
+ #: sitemap.php:727
257
+ msgid "Static pages"
258
+ msgstr "Páginas estáticas"
259
+
260
+ #: sitemap.php:733
261
+ msgid "Categories"
262
+ msgstr "Categorias"
263
+
264
+ #: sitemap.php:739
265
+ msgid "The current archive of this month (Should be the same like your homepage)"
266
+ msgstr "Arquivo deste mês (Deve ser igual ao da sua pagina principal)"
267
+
268
+ #: sitemap.php:745
269
+ msgid "Older archives (Changes only if you edit an old post)"
270
+ msgstr "Arquivos antigos (Alterar só se editou um artigo antigo)"
271
+
272
+ #: sitemap.php:752
273
+ msgid "Priorities"
274
+ msgstr "Prioridades"
275
+
276
+ #: sitemap.php:763
277
+ msgid "Posts (If auto calculation is disabled)"
278
+ msgstr "Artigos (Se o calculo automático está inativo) "
279
+
280
+ #: sitemap.php:769
281
+ msgid "Minimum post priority (Even if auto calculation is enabled)"
282
+ msgstr "Prioridade mínima para artigos (Mesmo quando o cálculo automático está ativo) "
283
+
284
+ #: sitemap.php:787
285
+ msgid "Archives"
286
+ msgstr "Arquivos"
287
+
288
+ #: sitemap.php:793
289
+ msgid "Informations and support"
290
+ msgstr "Informação e suporte"
291
+
292
+ #: sitemap.php:794
293
+ msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
294
+ msgstr "Consulte %s para atualizações e comentários se tiver algum problema, questão ou sugestão."
295
+
296
+ #: sitemap.php:797
297
+ msgid "Update options"
298
+ msgstr "Atualizar opções"
299
+
300
+ #: sitemap.php:1033
301
+ msgid "URL:"
302
+ msgstr "URL:"
303
+
304
+ #: sitemap.php:1034
305
+ msgid "Path:"
306
+ msgstr "Caminho:"
307
+
308
+ #: sitemap.php:1037
309
+ msgid "Could not write into %s"
310
+ msgstr "Não foi possivel escrever em %s"
311
+
312
+ #: sitemap.php:1048
313
+ msgid "Successfully built sitemap file:"
314
+ msgstr "Arquivo sitemap criado com sucesso:"
315
+
316
+ #: sitemap.php:1048
317
+ msgid "Successfully built gzipped sitemap file:"
318
+ msgstr "Arquivo sitemap comprimido criado com sucesso:"
319
+
320
+ #: sitemap.php:1062
321
+ msgid "Could not ping to Google at %s"
322
+ msgstr "Não foi possível realizar ping no Google em %s"
323
+
324
+ #: sitemap.php:1064
325
+ msgid "Successfully pinged Google at %s"
326
+ msgstr "Ping a Google realizado com sucesso em %s"
327
+
sitemap-sl_SI.mo ADDED
Binary file
sitemap-sl_SI.po ADDED
@@ -0,0 +1,325 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: sitemap-sl_SI\n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: 2006-11-13 09:33+0100\n"
6
+ "Last-Translator: m2-j <m2j@t-2.net>\n"
7
+ "Language-Team: Milan Jungic <milanche@m2-j.info>\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=utf-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Poedit-Language: Slovenian\n"
12
+ "X-Poedit-Country: SLOVENIA\n"
13
+
14
+ #: sitemap.php:375
15
+ msgid "always"
16
+ msgstr "vedno"
17
+
18
+ msgid "hourly"
19
+ msgstr "vsako uro"
20
+
21
+ msgid "daily"
22
+ msgstr "dnevno"
23
+
24
+ msgid "weekly"
25
+ msgstr "tedensko"
26
+
27
+ msgid "monthly"
28
+ msgstr "mesečno"
29
+
30
+ msgid "yearly"
31
+ msgstr "letno"
32
+
33
+ msgid "never"
34
+ msgstr "nikoli"
35
+
36
+ msgid "Detected Path"
37
+ msgstr "Zaznana pot:"
38
+
39
+ msgid "Example"
40
+ msgstr "Primer"
41
+
42
+ msgid "Absolute or relative path to the sitemap file, including name."
43
+ msgstr "Absolutna ali relativna pot do datoteke načrta strani (vključno z imenom datoteke)"
44
+
45
+ msgid "Complete URL to the sitemap file, including name."
46
+ msgstr "URL naslov datoteke načrta strani (vključno z imenom datoteke)."
47
+
48
+ msgid "Automatic location"
49
+ msgstr "Samodejno lociranje"
50
+
51
+ msgid "Manual location"
52
+ msgstr "Ročno lociranje"
53
+
54
+ msgid "OR"
55
+ msgstr "ALI"
56
+
57
+ msgid "Location of your sitemap file"
58
+ msgstr "Ime datoteke načrta strani"
59
+
60
+ msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the &quot;Location of your sitemap file&quot; section on this page)!"
61
+ msgstr "Če je vaš blog v podimeniku in želite v načrt strani dodatki datoteke, ki se nahajajo izven tega podimenika, morate datoteko načrta strani shraniti v korenski imenik, ki se nahaja nad vsemi imeniki katere želite v načrt strani vključiti (glejte sekcijo &quot;Ime datoteke načrta strani&quot; na tej strani)!"
62
+
63
+ #: sitemap.php:512
64
+ msgid "Configuration updated"
65
+ msgstr "Nastavitve so posodobljene"
66
+
67
+ #: sitemap.php:513
68
+ msgid "Error"
69
+ msgstr "Napaka"
70
+
71
+ #: sitemap.php:521
72
+ msgid "A new page was added. Click on &quot;Save page changes&quot; to save your changes."
73
+ msgstr "Nova stran je dodana. Za uveljavitev sprememb, izberite &quot;Shrani stran&quot;."
74
+
75
+ #: sitemap.php:527
76
+ msgid "Pages saved"
77
+ msgstr "Strani so shranjene."
78
+
79
+ #: sitemap.php:528
80
+ msgid "Error while saving pages"
81
+ msgstr "Napaka pri shranjevanju strani"
82
+
83
+ #: sitemap.php:539
84
+ msgid "The page was deleted. Click on &quot;Save page changes&quot; to save your changes."
85
+ msgstr "Stran je izbrisana. Za uveljavitev sprememb, izberite &quot;Shrani stran&quot;."
86
+
87
+ #: sitemap.php:542
88
+ msgid "You changes have been cleared."
89
+ msgstr "Spremembe so razveljavljene."
90
+
91
+ #: sitemap.php:555
92
+ msgid "Sitemap Generator"
93
+ msgstr "Generator načrta strani"
94
+
95
+ #: sitemap.php:558
96
+ msgid "Manual rebuild"
97
+ msgstr "Ročno"
98
+
99
+ #: sitemap.php:559
100
+ msgid "If you want to build the sitemap without editing a post, click on here!"
101
+ msgstr "Izberite to možnost, če želite takoj ustvariti načrt strani."
102
+
103
+ #: sitemap.php:560
104
+ msgid "Rebuild Sitemap"
105
+ msgstr "Ustvari načrt strani"
106
+
107
+ #: sitemap.php:564
108
+ msgid "Additional pages"
109
+ msgstr "Dodatne strani"
110
+
111
+ #: sitemap.php:566
112
+ msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
113
+ msgstr "Tukaj lahko navedete datoteke in URL naslove, ki niso del vaše Wordpress namestitve, želite jih pa vključiti v načrt strani.<br />Primer: Vaša domena je www.foo.com, blog se nahaja na naslovu www.foo.com/blog, medtem, ko vi v načrt strani želite vključiti tudi naslov www.foo.com s pripadajočo vsebino."
114
+
115
+ #: sitemap.php:568
116
+ msgid "URL to the page"
117
+ msgstr "URL naslov strani"
118
+
119
+ #: sitemap.php:569
120
+ msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
121
+ msgstr "Vnestite URL naslov strani. Primer: www.foo.com ali www.foo.com/home"
122
+
123
+ #: sitemap.php:571
124
+ msgid "Priority"
125
+ msgstr "Prioriteta"
126
+
127
+ #: sitemap.php:572
128
+ msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
129
+ msgstr "Izberi prioriteto strani, glede na ostale strani. Npr. za vašo domačo stran www.foo.com želite morda višjo prioriteto kot za vaš blog www.foo.com/blog? "
130
+
131
+ #: sitemap.php:574
132
+ msgid "Last Changed"
133
+ msgstr "Zadnjič spremenjeno"
134
+
135
+ #: sitemap.php:575
136
+ msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
137
+ msgstr "Vnesite datum zadnje spremembe JJJJ-MM-TT (oblika: 2005-12-31). (opcija)"
138
+
139
+ #: sitemap.php:583
140
+ msgid "Change Frequency"
141
+ msgstr "Spremeni frekvenco"
142
+
143
+ #: sitemap.php:585
144
+ msgid "#"
145
+ msgstr "#"
146
+
147
+ #: sitemap.php:609
148
+ msgid "No pages defined."
149
+ msgstr "Nobena stran ni bila še definirana."
150
+
151
+ #: sitemap.php:616
152
+ msgid "Add new page"
153
+ msgstr "Dodaj novo stran"
154
+
155
+ # sitemap.php:617:
156
+ #: sitemap.php:617
157
+ msgid "Save page changes"
158
+ msgstr "Shrani spremembe"
159
+
160
+ # sitemap.php:618:
161
+ #: sitemap.php:618
162
+ msgid "Undo all page changes"
163
+ msgstr "Razveljavi spremembe"
164
+
165
+ # sitemap.php:621:
166
+ #: sitemap.php:621
167
+ msgid "Delete marked page"
168
+ msgstr "Izbriši izbrane strani"
169
+
170
+ #: sitemap.php:627
171
+ msgid "Basic Options"
172
+ msgstr "Osnovne nastavitve"
173
+
174
+ #: sitemap.php:632
175
+ msgid "Enable automatic priority calculation for posts based on comment count"
176
+ msgstr "Določi prioriteto objav glede na število komentarjev pod posameznimi objavami"
177
+
178
+ #: sitemap.php:638
179
+ msgid "Write debug comments"
180
+ msgstr "Zapiši komentarje za iskanje in odpravljanje napak"
181
+
182
+ #: sitemap.php:643
183
+ msgid "Filename of the sitemap file"
184
+ msgstr "Ime datoteke načrta strani"
185
+
186
+ #: sitemap.php:650
187
+ msgid "Write a normal XML file (your filename)"
188
+ msgstr "Shrani načrt strani kot standardno XML datoteko"
189
+
190
+ #: sitemap.php:652
191
+ msgid "Detected URL"
192
+ msgstr "Zaznan URL naslov"
193
+
194
+ #: sitemap.php:657
195
+ msgid "Write a gzipped file (your filename + .gz)"
196
+ msgstr "Shrani kot stisnjeno (gzip) datoteko (ime datoteke + .gz)"
197
+
198
+ #: sitemap.php:664
199
+ msgid "Auto-Ping Google Sitemaps"
200
+ msgstr "Samodejno obvesti Google o spremembah (ping)"
201
+
202
+ #: sitemap.php:665
203
+ msgid "This option will automatically tell Google about changes."
204
+ msgstr "Če izberete to možnost, bodo morebitne spremembe v načrtu strani samodejno posredovane Googlu."
205
+
206
+ #: sitemap.php:672
207
+ msgid "Includings"
208
+ msgstr "Vsebina"
209
+
210
+ #: sitemap.php:677
211
+ msgid "Include homepage"
212
+ msgstr "Vključi osnovno (prvo) stran"
213
+
214
+ #: sitemap.php:683
215
+ msgid "Include posts"
216
+ msgstr "Vključi objave"
217
+
218
+ #: sitemap.php:689
219
+ msgid "Include static pages"
220
+ msgstr "Vključi statične strani"
221
+
222
+ #: sitemap.php:695
223
+ msgid "Include categories"
224
+ msgstr "Vključi kategorije"
225
+
226
+ #: sitemap.php:701
227
+ msgid "Include archives"
228
+ msgstr "Vključi zgodovino (arhivi)"
229
+
230
+ #: sitemap.php:708
231
+ msgid "Change frequencies"
232
+ msgstr "Spremeni frekvenco"
233
+
234
+ #: sitemap.php:709
235
+ msgid "Note"
236
+ msgstr "Opomba"
237
+
238
+ #: sitemap.php:710
239
+ msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
240
+ msgstr "Ta nastavitev je zgolj predlagana. Čeprav spletni iskalniki nastavljeno frekvenco upoštevajo, se zna zgoditi, da bodo strani nastavljene na urno osveževanje pregledovali redkeje, kot strani nastavljene na letno osveževanje. Ravno tako se zna zgoditi, da bodo iskalniki pregledovali strani, katerim ste nastavili, da se ne osvežujejo."
241
+
242
+ #: sitemap.php:715
243
+ msgid "Homepage"
244
+ msgstr "Osnovna stran"
245
+
246
+ #: sitemap.php:721
247
+ msgid "Posts"
248
+ msgstr "Objave"
249
+
250
+ #: sitemap.php:727
251
+ msgid "Static pages"
252
+ msgstr "Statične strani"
253
+
254
+ #: sitemap.php:733
255
+ msgid "Categories"
256
+ msgstr "Kategorije"
257
+
258
+ #: sitemap.php:739
259
+ msgid "The current archive of this month (Should be the same like your homepage)"
260
+ msgstr "Aktualni arhiv tega meseca (enako kot za osnovno stran)"
261
+
262
+ #: sitemap.php:745
263
+ msgid "Older archives (Changes only if you edit an old post)"
264
+ msgstr "Starejši arhivi"
265
+
266
+ #: sitemap.php:752
267
+ msgid "Priorities"
268
+ msgstr "Prioritete"
269
+
270
+ #: sitemap.php:763
271
+ msgid "Posts (If auto calculation is disabled)"
272
+ msgstr "Število objav (v primeru, ko je samodejno seštevanje onemogočeno)"
273
+
274
+ #: sitemap.php:769
275
+ msgid "Minimum post priority (Even if auto calculation is enabled)"
276
+ msgstr "Najmanjša prioriteta za objave (tudi, ko je izbrana možnost samodejnega izračunavanja prioritet)"
277
+
278
+ #: sitemap.php:787
279
+ msgid "Archives"
280
+ msgstr "Arhivi"
281
+
282
+ #: sitemap.php:793
283
+ msgid "Informations and support"
284
+ msgstr "Informacije in podpora"
285
+
286
+ #: sitemap.php:794
287
+ msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
288
+ msgstr "Popravke in pomoč za vtičnik boste našli na %s."
289
+
290
+ #: sitemap.php:797
291
+ msgid "Update options"
292
+ msgstr "Shrani nastavitve"
293
+
294
+ #: sitemap.php:1033
295
+ msgid "URL:"
296
+ msgstr "URL:"
297
+
298
+ #: sitemap.php:1034
299
+ msgid "Path:"
300
+ msgstr "Pot:"
301
+
302
+ # msgid "URL:"
303
+ # msgstr ""
304
+ # msgid "Path:"
305
+ # msgstr ""
306
+ #: sitemap.php:1037
307
+ msgid "Could not write into %s"
308
+ msgstr "Napaka pri shranjevanju datoteke &quot;%s&quot;."
309
+
310
+ #: sitemap.php:1048
311
+ msgid "Successfully built sitemap file:"
312
+ msgstr "Načrt strani je bil uspešno zapisan:"
313
+
314
+ #: sitemap.php:1048
315
+ msgid "Successfully built gzipped sitemap file:"
316
+ msgstr "Načrt strani je bil uspešno zapisan v stisnjeno (gzip) datoteko:"
317
+
318
+ #: sitemap.php:1062
319
+ msgid "Could not ping to Google at %s"
320
+ msgstr "Napaka pri obveščanju Googla o spremembah (%s)"
321
+
322
+ #: sitemap.php:1064
323
+ msgid "Successfully pinged Google at %s"
324
+ msgstr "Google je uspešno obveščen o spremembah (%s)"
325
+
sitemap-tr_TR.mo ADDED
Binary file
sitemap-tr_TR.po ADDED
@@ -0,0 +1,319 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: sitemap\n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: 2007-01-05 06:20+0200\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: Stefano Aglietti <steagl@wordpress-it.it>\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=utf-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Poedit-Language: Italian\n"
12
+ "X-Poedit-Country: ITALY\n"
13
+ "X-Poedit-SourceCharset: utf-8\n"
14
+
15
+ #: sitemap.php:375
16
+ msgid "always"
17
+ msgstr "her zaman"
18
+
19
+ msgid "hourly"
20
+ msgstr "her saat"
21
+
22
+ msgid "daily"
23
+ msgstr "her gün"
24
+
25
+ msgid "weekly"
26
+ msgstr "her hafta"
27
+
28
+ msgid "monthly"
29
+ msgstr "her ay"
30
+
31
+ msgid "yearly"
32
+ msgstr "her yıl"
33
+
34
+ msgid "never"
35
+ msgstr "hiçbir zaman"
36
+
37
+ msgid "Detected Path"
38
+ msgstr "Bulunan Yol"
39
+
40
+ msgid "Example"
41
+ msgstr "Örnek"
42
+
43
+ msgid "Absolute or relative path to the sitemap file, including name."
44
+ msgstr "Site haritasının tam veya nispi yolu (ismi dahil)."
45
+
46
+ msgid "Complete URL to the sitemap file, including name."
47
+ msgstr "Site haritasının tam URL'i (ismi dahil)."
48
+
49
+ msgid "Automatic location"
50
+ msgstr "Otomatik konum"
51
+
52
+ msgid "Manual location"
53
+ msgstr "Manuel konum"
54
+
55
+ msgid "OR"
56
+ msgstr "VEYA"
57
+
58
+ msgid "Location of your sitemap file"
59
+ msgstr "Site haritanızın konumu"
60
+
61
+ msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the &quot;Location of your sitemap file&quot; section on this page)!"
62
+ msgstr "Eğer blog'unuz bir alt klasördeyse ve blog'da OLMAYAN sayfalar eklemek istiyorsanız, site haritası dosyanızı KESİNLİKLE kök klasöre koymanız gereklidir (Bu sayfadaki &quot;Site haritanızın konumu&quot; bölümüne bakın)!"
63
+
64
+ #: sitemap.php:512
65
+ msgid "Configuration updated"
66
+ msgstr "Ayarlar kaydedildi"
67
+
68
+ #: sitemap.php:513
69
+ msgid "Error"
70
+ msgstr "Hata"
71
+
72
+ #: sitemap.php:521
73
+ msgid "A new page was added. Click on &quot;Save page changes&quot; to save your changes."
74
+ msgstr "Yeni bir sayfa eklendi. &quot;Sayfa değişikliklerini kaydet&quot;e tıklayın ve değişikliklerinizi kaydedin."
75
+
76
+ #: sitemap.php:527
77
+ msgid "Pages saved"
78
+ msgstr "Sayfalar kaydedildi"
79
+
80
+ #: sitemap.php:528
81
+ msgid "Error while saving pages"
82
+ msgstr "Sayfalar kaydedilirken hata oluştu"
83
+
84
+ #: sitemap.php:539
85
+ msgid "The page was deleted. Click on &quot;Save page changes&quot; to save your changes."
86
+ msgstr "Sayfa silindi. &quot;Sayfa değişikliklerini kaydet&quot;e tıklayarak değişikliklerinizi kaydedin."
87
+
88
+ #: sitemap.php:542
89
+ msgid "You changes have been cleared."
90
+ msgstr "Değişiklikleriniz temizlendi."
91
+
92
+ #: sitemap.php:555
93
+ msgid "Sitemap Generator"
94
+ msgstr "Site Haritası Oluşturucusu"
95
+
96
+ #: sitemap.php:558
97
+ msgid "Manual rebuild"
98
+ msgstr "Manuel yenileme"
99
+
100
+ #: sitemap.php:559
101
+ msgid "If you want to build the sitemap without editing a post, click on here!"
102
+ msgstr "Bir yazınızı bile değiştirmeden site haritasını oluşturmak için burayı tıklayın!"
103
+
104
+ #: sitemap.php:560
105
+ msgid "Rebuild Sitemap"
106
+ msgstr "Site haritasını yenile"
107
+
108
+ #: sitemap.php:564
109
+ msgid "Additional pages"
110
+ msgstr "Ek sayfalar"
111
+
112
+ #: sitemap.php:566
113
+ msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
114
+ msgstr "Burada blog'unuza ait olmayan sayfaları site haritasında yer alacak şekilde ekleyebilirsiniz.<br />Örneğin, eğer sayfanız www.foo.com ise ve blog'unuz www.foo.com/blog ise, anasayfanız olan www.foo.com adresini de eklemek isteyebilirsiniz."
115
+
116
+ #: sitemap.php:568
117
+ msgid "URL to the page"
118
+ msgstr "Sayfanın URL'i"
119
+
120
+ #: sitemap.php:569
121
+ msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
122
+ msgstr "Sayfanın URL'ini ekleyin. Örnekler: http://www.foo.com/index.html veya www.foo.com/home "
123
+
124
+ #: sitemap.php:571
125
+ msgid "Priority"
126
+ msgstr "Öncelik"
127
+
128
+ #: sitemap.php:572
129
+ msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
130
+ msgstr "Sayfanın, diğer sayfalara göre alacağı önceliği belirleyin. Örneğin, anasayfanızın daha yüksek bir öncelik alması gerekebilir."
131
+
132
+ #: sitemap.php:574
133
+ msgid "Last Changed"
134
+ msgstr "Son Düzenlenen"
135
+
136
+ #: sitemap.php:575
137
+ msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
138
+ msgstr "Son değişikliğin tarihini YYYY-AA-GG olarak yazın (örneğin 2005-12-31) (isteğe bağlı)"
139
+
140
+ #: sitemap.php:583
141
+ msgid "Change Frequency"
142
+ msgstr "Sıklık Değiştir"
143
+
144
+ #: sitemap.php:585
145
+ msgid "#"
146
+ msgstr "#"
147
+
148
+ #: sitemap.php:609
149
+ msgid "No pages defined."
150
+ msgstr "Hiç sayfa tanımlanmamış."
151
+
152
+ #: sitemap.php:616
153
+ msgid "Add new page"
154
+ msgstr "Yeni sayfa ekle"
155
+
156
+ #: sitemap.php:617
157
+ msgid "Save page changes"
158
+ msgstr "Sayfa değişikliklerini kaydet"
159
+
160
+ #: sitemap.php:618
161
+ msgid "Undo all page changes"
162
+ msgstr "Tüm sayfa değişikliklerini geri al"
163
+
164
+ #: sitemap.php:621
165
+ msgid "Delete marked page"
166
+ msgstr "İşaretlenen sayfayı sil"
167
+
168
+ #: sitemap.php:627
169
+ msgid "Basic Options"
170
+ msgstr "Temel Ayarlar"
171
+
172
+ #: sitemap.php:632
173
+ msgid "Enable automatic priority calculation for posts based on comment count"
174
+ msgstr "Blog yazılarının her birinin önceliğini otomatik olarak yorum sayısına göre ayarla"
175
+
176
+ #: sitemap.php:638
177
+ msgid "Write debug comments"
178
+ msgstr "Hata ayıklama yorumları yaz"
179
+
180
+ #: sitemap.php:643
181
+ msgid "Filename of the sitemap file"
182
+ msgstr "Site haritası dosyasının ismi"
183
+
184
+ #: sitemap.php:650
185
+ msgid "Write a normal XML file (your filename)"
186
+ msgstr "Normal bir XML dosyası oluştur (dosya isminiz.xml)"
187
+
188
+ #: sitemap.php:652
189
+ msgid "Detected URL"
190
+ msgstr "Bulunan URL"
191
+
192
+ #: sitemap.php:657
193
+ msgid "Write a gzipped file (your filename + .gz)"
194
+ msgstr "Gzip ile sıkıştırılmış bir dosya oluştur (dosya isminiz.xml.gz)"
195
+
196
+ #: sitemap.php:664
197
+ msgid "Auto-Ping Google Sitemaps"
198
+ msgstr "Google Sitemaps'i otomatik olarak ping'le"
199
+
200
+ #: sitemap.php:665
201
+ msgid "This option will automatically tell Google about changes."
202
+ msgstr "Bu seçenek Google'ı değişikliklerden otomatik olarak haberdar eder."
203
+
204
+ #: sitemap.php:672
205
+ msgid "Includings"
206
+ msgstr "Dahil Edilecekler"
207
+
208
+ #: sitemap.php:677
209
+ msgid "Include homepage"
210
+ msgstr "Anasayfayı dahil et"
211
+
212
+ #: sitemap.php:683
213
+ msgid "Include posts"
214
+ msgstr "Blog yazılarını dahil et"
215
+
216
+ #: sitemap.php:689
217
+ msgid "Include static pages"
218
+ msgstr "Sabit sayfaları dahil et"
219
+
220
+ #: sitemap.php:695
221
+ msgid "Include categories"
222
+ msgstr "Kategorileri dahil et"
223
+
224
+ #: sitemap.php:701
225
+ msgid "Include archives"
226
+ msgstr "Arşivleri dahil et"
227
+
228
+ #: sitemap.php:708
229
+ msgid "Change frequencies"
230
+ msgstr "Sıklıkları değiştir"
231
+
232
+ #: sitemap.php:709
233
+ msgid "Note"
234
+ msgstr "Not"
235
+
236
+ #: sitemap.php:710
237
+ msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
238
+ msgstr "Lütfen bu etiketin bir ipucu olduğuna, bir komut olmadığına dikkat edin. Her ne kadar arama motoru robotları bu bilgiyi karar verirken göz önünde bulunduruyor olsa da; &quot;her saat&quot; olarak işaretlenen sayfaları da daha az sıklıkla tarayabilir, &quot;her yıl&quot; olarak işaretlenen sayfaları da daha sık tarayabilir. Hatta robotlar bazen &quot;hiçbir zaman&quot; olarak işaretlenmiş sayfaları da, beklenmedik değişiklikleri ele alabilmek için tarayabilirler."
239
+
240
+ #: sitemap.php:715
241
+ msgid "Homepage"
242
+ msgstr "Anasayfa"
243
+
244
+ #: sitemap.php:721
245
+ msgid "Posts"
246
+ msgstr "Blog yazıları"
247
+
248
+ #: sitemap.php:727
249
+ msgid "Static pages"
250
+ msgstr "Sabit sayfalar"
251
+
252
+ #: sitemap.php:733
253
+ msgid "Categories"
254
+ msgstr "Kategoriler"
255
+
256
+ #: sitemap.php:739
257
+ msgid "The current archive of this month (Should be the same like your homepage)"
258
+ msgstr "Bu ayın arşivi (anasayfanızla aynı olacaktır)"
259
+
260
+ #: sitemap.php:745
261
+ msgid "Older archives (Changes only if you edit an old post)"
262
+ msgstr "Daha eski arşivler (Yalnızca eski bir blog yazısını düzenlerseniz güncellenir)"
263
+
264
+ #: sitemap.php:752
265
+ msgid "Priorities"
266
+ msgstr "Öncelikler"
267
+
268
+ #: sitemap.php:763
269
+ msgid "Posts (If auto calculation is disabled)"
270
+ msgstr "Blog yazıları (yalnızca otomatik hesaplama devre dışıysa)"
271
+
272
+ #: sitemap.php:769
273
+ msgid "Minimum post priority (Even if auto calculation is enabled)"
274
+ msgstr "En düşük blog yazısı önceliği (otomatik hesaplama devre dışı olsa bile)"
275
+
276
+ #: sitemap.php:787
277
+ msgid "Archives"
278
+ msgstr "Arşivler"
279
+
280
+ #: sitemap.php:793
281
+ msgid "Informations and support"
282
+ msgstr "Bilgi ve destek"
283
+
284
+ #: sitemap.php:794
285
+ msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
286
+ msgstr "Güncellemeler için %s adresini ziyaret edin. Ayrıca bir sorunuz / sorununuz / öneriniz varsa oraya yorum olarak yazabilirsiniz."
287
+
288
+ #: sitemap.php:797
289
+ msgid "Update options"
290
+ msgstr "Güncelleme seçenekleri"
291
+
292
+ #: sitemap.php:1033
293
+ msgid "URL:"
294
+ msgstr "URL:"
295
+
296
+ #: sitemap.php:1034
297
+ msgid "Path:"
298
+ msgstr "Yol:"
299
+
300
+ #: sitemap.php:1037
301
+ msgid "Could not write into %s"
302
+ msgstr "%s dosyasına yazılamadı"
303
+
304
+ #: sitemap.php:1048
305
+ msgid "Successfully built sitemap file:"
306
+ msgstr "Site haritası başarıyla oluşturuldu:"
307
+
308
+ #: sitemap.php:1048
309
+ msgid "Successfully built gzipped sitemap file:"
310
+ msgstr "Gzip ile sıkıştırılmış site haritası başarıyla oluşturuldu:"
311
+
312
+ #: sitemap.php:1062
313
+ msgid "Could not ping to Google at %s"
314
+ msgstr "%s adresi ile Google ping'lenemedi"
315
+
316
+ #: sitemap.php:1064
317
+ msgid "Successfully pinged Google at %s"
318
+ msgstr "%s adresi ile Google başarıyla ping'lendi"
319
+
sitemap-zh_TW.mo CHANGED
Binary file
sitemap-zh_TW.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: sitemap\n"
4
  "POT-Creation-Date: \n"
5
- "PO-Revision-Date: 2005-07-04 00:21+0800\n"
6
  "Last-Translator: Kirin Lin <kirin.lin@gmail.com>\n"
7
  "Language-Team: Kirin Lin <kirin.lin@gmail.com>\n"
8
  "MIME-Version: 1.0\n"
@@ -10,314 +10,622 @@ msgstr ""
10
  "Content-Transfer-Encoding: 8bit\n"
11
  "X-Poedit-Language: Chinese\n"
12
  "X-Poedit-Country: TAIWAN\n"
 
 
 
 
13
 
14
- #: sitemap.php:375
15
- msgid "always"
16
- msgstr "總是"
17
 
18
- msgid "hourly"
19
- msgstr "每時"
 
20
 
21
- msgid "daily"
22
- msgstr "每日"
 
23
 
24
- msgid "weekly"
25
- msgstr "每週"
 
26
 
27
- msgid "monthly"
28
- msgstr "每月"
 
29
 
30
- msgid "yearly"
31
- msgstr "每年"
 
32
 
33
- msgid "never"
34
- msgstr "從不"
 
35
 
36
- msgid "Detected Path"
37
- msgstr "偵測到的路徑"
 
38
 
39
- msgid "Example"
40
- msgstr "範例"
 
41
 
42
- msgid "Absolute or relative path to the sitemap file, including name."
43
- msgstr "網站地圖的絕對或相對路徑,包括檔名。"
 
44
 
45
- msgid "Complete URL to the sitemap file, including name."
46
- msgstr "網站地圖的完整網址,包括檔名。"
 
 
47
 
48
- msgid "Automatic location"
49
- msgstr "自動位置"
 
50
 
51
- msgid "Manual location"
52
- msgstr "自訂位置"
 
53
 
54
- msgid "OR"
55
- msgstr ""
 
56
 
57
- msgid "Location of your sitemap file"
58
- msgstr "網站地圖的位置"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
 
60
- msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the &quot;Location of your sitemap file&quot; section on this page)!"
61
- msgstr "若是您的部落格是在子目錄下而您想要增加的頁面並<strong>不在</strong>部落格的目錄下面,您<strong>必須</strong>將您的網站地圖置於網站的根目錄下。(請見本頁 &quot;網站地圖的位置&quot; 小節)!"
 
62
 
63
- #: sitemap.php:512
64
- msgid "Configuration updated"
65
- msgstr "設定已更新"
 
66
 
67
- #: sitemap.php:513
68
- msgid "Error"
69
- msgstr "錯誤"
70
 
71
- #: sitemap.php:521
72
- msgid "A new page was added. Click on &quot;Save page changes&quot; to save your changes."
73
- msgstr "已新增頁面。請點選&quot;儲存頁面變更&quot; 將變更儲存。"
74
 
75
- #: sitemap.php:527
76
- msgid "Pages saved"
77
- msgstr "頁面已儲存"
78
 
79
- #: sitemap.php:528
80
- msgid "Error while saving pages"
81
- msgstr "儲存頁面時發生錯誤"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
 
83
- #: sitemap.php:539
84
- msgid "The page was deleted. Click on &quot;Save page changes&quot; to save your changes."
85
- msgstr "該頁面已經刪除。請點選&quot;儲存頁面變更&quot; 將變更儲存。"
86
 
87
- #: sitemap.php:542
88
- msgid "You changes have been cleared."
89
- msgstr "您已經放棄變更。"
90
 
91
- #: sitemap.php:555
92
- msgid "Sitemap Generator"
93
- msgstr "網站地圖產生器"
 
94
 
95
- #: sitemap.php:558
96
- msgid "Manual rebuild"
97
- msgstr "手動重建"
98
 
99
- #: sitemap.php:559
100
- msgid "If you want to build the sitemap without editing a post, click on here!"
101
- msgstr "若是您不想透過編輯文章來產生網站地圖,請按此!"
102
 
103
- #: sitemap.php:560
104
- msgid "Rebuild Sitemap"
105
- msgstr "重建網站地圖"
106
 
107
- #: sitemap.php:564
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  msgid "Additional pages"
109
  msgstr "其他的頁面"
110
 
111
- #: sitemap.php:566
112
  msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
113
- msgstr "您可以在此指定那些應被納入網站地圖的檔案或者網址(URL),但是不屬於您的部落格(Blog/WordPress)。<br />舉例來說,若是您的部落格是 www.foo.com/blog,而您想要將您 www.foo.com 下的網頁納入此網站地圖。"
 
 
 
 
 
114
 
115
- #: sitemap.php:568
 
 
 
 
 
116
  msgid "URL to the page"
117
- msgstr "頁面 URL"
118
 
119
- #: sitemap.php:569
120
  msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
121
- msgstr "輸入頁面的URL。例如:http://www.foo.com/index.html 或者 www.foo.com/home "
122
 
123
- #: sitemap.php:571
 
124
  msgid "Priority"
125
  msgstr "優先權 "
126
 
127
- #: sitemap.php:572
128
  msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
129
- msgstr "選擇該頁面的優先權(相較於其他頁面而言)。例如:您的首頁或許會比版權說明頁的優先權來得高。"
130
 
131
- #: sitemap.php:574
 
132
  msgid "Last Changed"
133
  msgstr "最近更動"
134
 
135
- #: sitemap.php:575
136
  msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
137
- msgstr "輸入最近更動的日期,格式為 YYYY-MM-DD (例如:2005-12-31)(非必要)"
138
 
139
- #: sitemap.php:583
140
  msgid "Change Frequency"
141
  msgstr "設定更新頻率"
142
 
143
- #: sitemap.php:585
144
  msgid "#"
145
  msgstr "#"
146
 
147
- #: sitemap.php:609
148
  msgid "No pages defined."
149
  msgstr "還沒有頁面已被設定"
150
 
151
- #: sitemap.php:616
152
  msgid "Add new page"
153
  msgstr "新增頁面"
154
 
155
- # sitemap.php:617:
156
- #: sitemap.php:617
157
- msgid "Save page changes"
158
- msgstr "儲存頁面變更"
159
 
160
- # sitemap.php:618:
161
- #: sitemap.php:618
162
- msgid "Undo all page changes"
163
- msgstr "放棄所有變更"
164
 
165
- # sitemap.php:621:
166
- #: sitemap.php:621
167
- msgid "Delete marked page"
168
- msgstr "刪除選取的頁面"
169
 
170
- # msgid "Rebuild Sitemap"
171
- # msgstr ""
172
- #: sitemap.php:627
173
- msgid "Basic Options"
174
- msgstr "基本設定"
175
 
176
- #: sitemap.php:632
177
- msgid "Enable automatic priority calculation for posts based on comment count"
178
- msgstr "開啟文章的自動優先權計算(以留言數量為主)"
179
 
180
- #: sitemap.php:638
181
- msgid "Write debug comments"
182
- msgstr "寫入偵錯註解"
183
 
184
- #: sitemap.php:643
185
  msgid "Filename of the sitemap file"
186
  msgstr "網站地圖的檔名"
187
 
188
- #: sitemap.php:650
189
- msgid "Write a normal XML file (your filename)"
190
- msgstr "寫入XML檔案 (檔案名稱)"
191
 
192
- #: sitemap.php:652
193
  msgid "Detected URL"
194
  msgstr "偵測到的網址"
195
 
196
- #: sitemap.php:657
197
- msgid "Write a gzipped file (your filename + .gz)"
198
- msgstr "寫入壓縮檔 (檔案名稱 + .gz)"
199
 
200
- #: sitemap.php:664
201
- msgid "Auto-Ping Google Sitemaps"
202
- msgstr "自動通知 Google Sitemap"
 
 
 
 
 
203
 
204
- #: sitemap.php:665
205
- msgid "This option will automatically tell Google about changes."
206
- msgstr "該選項會自動通知 Google 相關的更新。"
207
 
208
- #: sitemap.php:672
209
- msgid "Includings"
210
- msgstr "包含"
211
 
212
- #: sitemap.php:677
213
  msgid "Include homepage"
214
  msgstr "包含首頁"
215
 
216
- #: sitemap.php:683
217
  msgid "Include posts"
218
  msgstr "包含文章"
219
 
220
- #: sitemap.php:689
221
  msgid "Include static pages"
222
- msgstr "包含靜態頁面"
223
 
224
- #: sitemap.php:695
225
  msgid "Include categories"
226
  msgstr "包含分類"
227
 
228
- #: sitemap.php:701
229
  msgid "Include archives"
230
  msgstr "包含匯整"
231
 
232
- #: sitemap.php:708
 
 
 
 
233
  msgid "Change frequencies"
234
  msgstr "更新頻率設定"
235
 
236
- #: sitemap.php:709
237
- msgid "Note"
238
- msgstr "注意"
239
-
240
- #: sitemap.php:710
241
  msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
242
- msgstr "請注意下列各設定值僅被視為提示而非命令。雖然搜尋引擎漫遊器會考慮這資訊做出決定,他們也許會較少漫遊被標記為\"每時\"的頁面,或者更加頻繁地漫遊被標記為\"每年\" 的頁面。搜尋引擎漫遊機制會週期性地漫遊被標記為\"從不\"的頁面,以便他們能處理對那些頁面的變動。"
243
 
244
- #: sitemap.php:715
 
245
  msgid "Homepage"
246
  msgstr "首頁"
247
 
248
- #: sitemap.php:721
249
  msgid "Posts"
250
  msgstr "文章"
251
 
252
- #: sitemap.php:727
 
253
  msgid "Static pages"
254
- msgstr "靜態頁面"
255
 
256
- #: sitemap.php:733
 
257
  msgid "Categories"
258
  msgstr "分類"
259
 
260
- #: sitemap.php:739
261
  msgid "The current archive of this month (Should be the same like your homepage)"
262
- msgstr "現有的每月彙整(應該與您的首頁相同)"
263
 
264
- #: sitemap.php:745
265
  msgid "Older archives (Changes only if you edit an old post)"
266
- msgstr "較舊的彙整(只有在您修改舊文章的時候才會改變)"
267
 
268
- #: sitemap.php:752
 
 
 
 
 
269
  msgid "Priorities"
270
  msgstr "優先權"
271
 
272
- #: sitemap.php:763
273
  msgid "Posts (If auto calculation is disabled)"
274
- msgstr "文章(如果自動計算沒有打開)"
275
 
276
- #: sitemap.php:769
277
  msgid "Minimum post priority (Even if auto calculation is enabled)"
278
- msgstr "優先權中等 (如果自動計算沒有打開)"
279
 
280
- #: sitemap.php:787
281
  msgid "Archives"
282
  msgstr "彙整"
283
 
284
- #: sitemap.php:793
285
- msgid "Informations and support"
286
- msgstr "資訊以及支援"
287
-
288
- #: sitemap.php:794
289
- msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
290
- msgstr "若是您有任何問題以及建議或者想知道本外掛最近的更新以及迴響,請點 %s。"
291
-
292
- #: sitemap.php:797
293
  msgid "Update options"
294
  msgstr "更新選項"
295
 
296
- #: sitemap.php:1033
297
- msgid "URL:"
298
- msgstr "網址:"
299
-
300
- #: sitemap.php:1034
301
- msgid "Path:"
302
- msgstr "路徑:"
303
-
304
- #: sitemap.php:1037
305
- msgid "Could not write into %s"
306
- msgstr "無法寫入 %s"
307
-
308
- #: sitemap.php:1048
309
- msgid "Successfully built sitemap file:"
310
- msgstr "成功地建立網站地圖檔:"
311
-
312
- #: sitemap.php:1048
313
- msgid "Successfully built gzipped sitemap file:"
314
- msgstr "成功地建立壓縮的網站地圖檔:"
315
-
316
- #: sitemap.php:1062
317
- msgid "Could not ping to Google at %s"
318
- msgstr "無法通知 Google: %s "
319
-
320
- #: sitemap.php:1064
321
- msgid "Successfully pinged Google at %s"
322
- msgstr "成功地通知 Google: %s "
323
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: sitemap 3.0b8\n"
4
  "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: 2007-08-01 16:07+0800\n"
6
  "Last-Translator: Kirin Lin <kirin.lin@gmail.com>\n"
7
  "Language-Team: Kirin Lin <kirin.lin@gmail.com>\n"
8
  "MIME-Version: 1.0\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
  "X-Poedit-Language: Chinese\n"
12
  "X-Poedit-Country: TAIWAN\n"
13
+ "Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
14
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2\n"
15
+ "X-Poedit-Basepath: .\n"
16
+ "X-Poedit-SearchPath-0: .\n"
17
 
18
+ #: sitemap.php:827
19
+ msgid "Comment Count"
20
+ msgstr "迴響數目"
21
 
22
+ #: sitemap.php:839
23
+ msgid "Uses the number of comments of the post to calculate the priority"
24
+ msgstr "使用迴響的數量來計算優先權"
25
 
26
+ #: sitemap.php:899
27
+ msgid "Comment Average"
28
+ msgstr "迴響平均值"
29
 
30
+ #: sitemap.php:911
31
+ msgid "Uses the average comment count to calculate the priority"
32
+ msgstr "使用迴響數量平均值來計算優先權"
33
 
34
+ #: sitemap.php:974
35
+ msgid "Popularity Contest"
36
+ msgstr "Popularity Contest"
37
 
38
+ #: sitemap.php:986
39
+ msgid "Uses the activated <a href=\"%1\">Popularity Contest Plugin</a> from <a href=\"%2\">Alex King</a>. See <a href=\"%3\">Settings</a> and <a href=\"%4\">Most Popular Posts</a>"
40
+ msgstr "使用 <a href=\"%2\">Alex King</a> 提供的 <a href=\"%1\">Popularity Contest 外掛</a>(需啟用)。詳見 <a href=\"%3\">選項</a> 以及<a href=\"%4\">Most Popular Posts</a>"
41
 
42
+ #: sitemap.php:2293
43
+ msgid "XML-Sitemap Generator"
44
+ msgstr "XML 網站地圖產生器"
45
 
46
+ #: sitemap.php:2293
47
+ msgid "XML-Sitemap"
48
+ msgstr "XML 網站地圖"
49
 
50
+ #: sitemap.php:2478
51
+ msgid "Thank you very much for your donation. You help me to continue support and development of this plugin and other free software!"
52
+ msgstr "非常感謝您的贊助。由於您的幫助,讓我能夠繼續支援開發這個外掛以及其他免費軟體!"
53
 
54
+ #: sitemap.php:2478
55
+ msgid "Hide this notice"
56
+ msgstr "隱藏這個通知"
57
 
58
+ #: sitemap.php:2489
59
+ #: sitemap.php:2655
60
+ msgid "XML Sitemap Generator for WordPress"
61
+ msgstr "WordPress 專用 XML 網站地圖產生器"
62
 
63
+ #: sitemap.php:2560
64
+ msgid "Configuration updated"
65
+ msgstr "設定已更新"
66
 
67
+ #: sitemap.php:2561
68
+ msgid "Error while saving options"
69
+ msgstr "儲存選項時產生錯誤"
70
 
71
+ #: sitemap.php:2563
72
+ msgid "Pages saved"
73
+ msgstr "頁面已儲存"
74
 
75
+ #: sitemap.php:2564
76
+ msgid "Error while saving pages"
77
+ msgstr "儲存頁面時產生錯誤"
78
+
79
+ #: sitemap.php:2568
80
+ #, php-format
81
+ msgid "<a href=\"%s\">Robots.txt</a> file saved"
82
+ msgstr "<a href=\"%s\">Robots.txt</a> 檔案已儲存"
83
+
84
+ #: sitemap.php:2570
85
+ msgid "Error while saving Robots.txt file"
86
+ msgstr "儲存 Robots.txt 檔案時產生錯誤"
87
+
88
+ #: sitemap.php:2578
89
+ msgid "The default configuration was restored."
90
+ msgstr "設定已重置為預設值。"
91
+
92
+ #: sitemap.php:2671
93
+ #: sitemap.php:2688
94
+ msgid "open"
95
+ msgstr "打開"
96
+
97
+ #: sitemap.php:2672
98
+ #: sitemap.php:2689
99
+ msgid "close"
100
+ msgstr "關閉"
101
+
102
+ #: sitemap.php:2673
103
+ #: sitemap.php:2690
104
+ msgid "click-down and drag to move this box"
105
+ msgstr "按下並拖曳這個矩形"
106
+
107
+ #: sitemap.php:2674
108
+ #: sitemap.php:2691
109
+ msgid "click to %toggle% this box"
110
+ msgstr "按了「%toggle%」這個矩形"
111
+
112
+ #: sitemap.php:2675
113
+ #: sitemap.php:2692
114
+ msgid "use the arrow keys to move this box"
115
+ msgstr "使用方向鍵移動這個矩形"
116
+
117
+ #: sitemap.php:2676
118
+ #: sitemap.php:2693
119
+ msgid ", or press the enter key to %toggle% it"
120
+ msgstr ",或者按下 Enter 鍵來「%toggle%」它"
121
+
122
+ #: sitemap.php:2704
123
+ msgid "About this Plugin:"
124
+ msgstr "關於這個外掛:"
125
+
126
+ #: sitemap.php:2706
127
+ msgid "Plugin Homepage"
128
+ msgstr "外掛首頁"
129
+
130
+ #: sitemap.php:2707
131
+ msgid "Notify List"
132
+ msgstr "郵件通知"
133
+
134
+ #: sitemap.php:2708
135
+ msgid "Support Forum"
136
+ msgstr "支援論壇"
137
+
138
+ #: sitemap.php:2709
139
+ msgid "Donate with PayPal"
140
+ msgstr "PayPal 贊助"
141
+
142
+ #: sitemap.php:2710
143
+ msgid "My Amazon Wish List"
144
+ msgstr "我的 Amazon 願望清單"
145
+
146
+ #: sitemap.php:2711
147
+ msgid "translator_name"
148
+ msgstr "Kirin Lin"
149
+
150
+ #: sitemap.php:2711
151
+ msgid "translator_url"
152
+ msgstr "http://kirin-lin.idv.tw/"
153
+
154
+ #: sitemap.php:2715
155
+ msgid "Sitemap Resources:"
156
+ msgstr "網站地圖資源:"
157
+
158
+ #: sitemap.php:2717
159
+ msgid "Webmaster Tools"
160
+ msgstr "網站管理員工具"
161
+
162
+ #: sitemap.php:2718
163
+ msgid "Webmaster Blog"
164
+ msgstr "網站管理員網誌"
165
+
166
+ #: sitemap.php:2720
167
+ msgid "Site Explorer"
168
+ msgstr "Site Explorer"
169
+
170
+ #: sitemap.php:2721
171
+ msgid "Search Blog"
172
+ msgstr "Search Blog"
173
+
174
+ #: sitemap.php:2723
175
+ msgid "Sitemaps Protocol"
176
+ msgstr "網站地圖通訊協定"
177
+
178
+ #: sitemap.php:2724
179
+ msgid "Official Sitemaps FAQ"
180
+ msgstr "官方版網站地圖答客問"
181
+
182
+ #: sitemap.php:2725
183
+ msgid "My Sitemaps FAQ"
184
+ msgstr "網站地圖答客問"
185
+
186
+ #: sitemap.php:2730
187
+ msgid "Recent Donations:"
188
+ msgstr "近期贊助清單:"
189
+
190
+ #: sitemap.php:2734
191
+ msgid "List of the donors"
192
+ msgstr "贊助者清單"
193
+
194
+ #: sitemap.php:2736
195
+ msgid "Hide this list"
196
+ msgstr "隱藏本清單"
197
+
198
+ #: sitemap.php:2739
199
+ msgid "Thanks for your support!"
200
+ msgstr "感謝您的贊助!"
201
 
202
+ #: sitemap.php:2751
203
+ msgid "Status"
204
+ msgstr "狀態"
205
 
206
+ #: sitemap.php:2761
207
+ #, php-format
208
+ msgid "The sitemap wasn't built yet. <a href=\"%s\">Click here</a> to build it the first time."
209
+ msgstr "您的網站地圖還沒產生過。<a href=\"%s\">點這裡</a>來產生它吧。"
210
 
211
+ #: sitemap.php:2767
212
+ msgid "Your <a href=\"%url%\">sitemap</a> was last built on <b>%date%</b>."
213
+ msgstr "您的<a href=\"%url%\">網站地圖</a>上次發佈時間為:<b>%date%</b>。"
214
 
215
+ #: sitemap.php:2769
216
+ msgid "There was a problem writing your sitemap file. Make sure the file exists and is writable. <a href=\"%url%\">Learn more</a"
217
+ msgstr "寫入網站地圖檔案時發生錯誤。請確定該檔案存在並可被寫入。<a href=\"%url%\">更多資訊</a>"
218
 
219
+ #: sitemap.php:2776
220
+ msgid "Your sitemap (<a href=\"%url%\">zipped</a>) was last built on <b>%date%</b>."
221
+ msgstr "網站地圖(<a href=\"%url%\">壓縮檔</a>)上回產生於:<b>%date%</b>。"
222
 
223
+ #: sitemap.php:2778
224
+ msgid "There was a problem writing your zipped sitemap file. Make sure the file exists and is writable. <a href=\"%url%\">Learn more</a"
225
+ msgstr "寫入網站地圖壓縮檔案時發生錯誤。請確定該檔案存在並可被寫入。<a href=\"%url%\">更多資訊</a>"
226
+
227
+ #: sitemap.php:2784
228
+ msgid "Google was <b>successfully notified</b> about changes."
229
+ msgstr "已經<b>成功地通知</b> Google 您網站的更新。"
230
+
231
+ #: sitemap.php:2787
232
+ msgid "It took %time% seconds to notify Google, maybe you want to disable this feature to reduce the building time."
233
+ msgstr "花了 %time% 秒來通知 Google,或許您想要關閉這個功能來增加效能。"
234
+
235
+ #: sitemap.php:2790
236
+ msgid "There was a problem while notifying Google."
237
+ msgstr "通知 Google 時發生了問題。"
238
+
239
+ #: sitemap.php:2796
240
+ msgid "YAHOO was <b>successfully notified</b> about changes."
241
+ msgstr "已經<b>成功地通知</b> YAHOO 您網站的更新。"
242
+
243
+ #: sitemap.php:2799
244
+ msgid "It took %time% seconds to notify YAHOO, maybe you want to disable this feature to reduce the building time."
245
+ msgstr "花了 %time% 秒來通知 YAHOO,或許您想要關閉這個功能來增加效能。"
246
+
247
+ #: sitemap.php:2802
248
+ msgid "There was a problem while notifying YAHOO"
249
+ msgstr "通知 YAHOO 時發生了問題。"
250
+
251
+ #: sitemap.php:2808
252
+ msgid "Ask.com was <b>successfully notified</b> about changes."
253
+ msgstr "已經<b>成功地通知</b> Ask.com 您網站的更新。"
254
+
255
+ #: sitemap.php:2811
256
+ msgid "It took %time% seconds to notify Ask.com, maybe you want to disable this feature to reduce the building time."
257
+ msgstr "花了 %time% 秒來通知 Ask.com,或許您想要關閉這個功能來增加效能。"
258
+
259
+ #: sitemap.php:2814
260
+ msgid "There was a problem while notifying Ask.com"
261
+ msgstr "通知 Ask.com 時發生了問題。"
262
+
263
+ #: sitemap.php:2822
264
+ msgid "The building process took about <b>%time% seconds</b> to complete and used %memory% MB of memory."
265
+ msgstr "整個建置過程大約花費 <b>%time% 秒</b>來完成,使用 %memory% MB 的記憶體。"
266
+
267
+ #: sitemap.php:2824
268
+ msgid "The building process took about <b>%time% seconds</b> to complete."
269
+ msgstr "整個建置過程大約花費 <b>%time% 秒</b>來完成。"
270
+
271
+ #: sitemap.php:2828
272
+ msgid "The content of your sitemap <strong>didn't change</strong> since the last time so the files were not written and no search engine was pinged."
273
+ msgstr "您的網站地圖內容與上次比較<strong>並沒有變更</strong>,所以沒有產生新檔案,而且搜尋引擎也沒有被通知。"
274
+
275
+ #: sitemap.php:2832
276
+ msgid "The last run didn't finish! Maybe you can raise the memory or time limit for PHP scripts. <a href=\"%url%\">Learn more</a>"
277
+ msgstr "上次的執行並未結束!也許您需要替 PHP 增加記憶體或者時間限制。<a href=\"%url%\">更多資訊</a>"
278
+
279
+ #: sitemap.php:2834
280
+ msgid "The last known memory usage of the script was %memused%MB, the limit of your server is %memlimit%."
281
+ msgstr "最後一次執行本程式使用 %memused% MB 記憶體,您伺服器的限制為 %memlimit%。"
282
+
283
+ #: sitemap.php:2838
284
+ msgid "The last known execution time of the script was %timeused% seconds, the limit of your server is %timelimit% seconds."
285
+ msgstr "最後一次執行本程式的時間花 %timeused% 秒,您伺服器的限制為 %timelimit% 秒。"
286
+
287
+ #: sitemap.php:2842
288
+ msgid "The script stopped around post number %lastpost% (+/- 100)"
289
+ msgstr "這支程式大約停在第 %lastpost% (+/- 100)篇文章"
290
+
291
+ #: sitemap.php:2845
292
+ #, php-format
293
+ msgid "If you changed something on your server or blog, you should <a href=\"%s\">rebuild the sitemap</a> manually."
294
+ msgstr "若是您對伺服器或者網誌做了某些更動,您應該手動<a href=\"%s\">重新產生網站地圖</a>。"
295
+
296
+ # msgid "Rebuild Sitemap"
297
+ # msgstr ""
298
+ #: sitemap.php:2859
299
+ msgid "Basic Options"
300
+ msgstr "基本選項"
301
+
302
+ #: sitemap.php:2863
303
+ msgid "Sitemap files:"
304
+ msgstr "網站地圖檔案:"
305
+
306
+ #: sitemap.php:2863
307
+ #: sitemap.php:2878
308
+ #: sitemap.php:2898
309
+ #: sitemap.php:2923
310
+ #: sitemap.php:2940
311
+ msgid "Learn more"
312
+ msgstr "更多資訊"
313
+
314
+ #: sitemap.php:2868
315
+ msgid "Write a normal XML file (your filename)"
316
+ msgstr "寫入 XML 檔案(檔案名稱)"
317
+
318
+ #: sitemap.php:2874
319
+ msgid "Write a gzipped file (your filename + .gz)"
320
+ msgstr "寫入壓縮檔(檔案名稱 + .gz)"
321
+
322
+ #: sitemap.php:2878
323
+ msgid "Building mode:"
324
+ msgstr "產生模式:"
325
+
326
+ #: sitemap.php:2883
327
+ msgid "Rebuild sitemap if you change the content of your blog"
328
+ msgstr "當修改網誌內容時重新建立網站地圖。"
329
+
330
+ #: sitemap.php:2890
331
+ msgid "Enable manual sitemap building via GET Request"
332
+ msgstr "啟用透過發送 GET 要求手動建立網站地圖。"
333
+
334
+ #: sitemap.php:2894
335
+ msgid "This will allow you to refresh your sitemap if an external tool wrote into the WordPress database without using the WordPress API. Use the following URL to start the process: <a href=\"%1\">%1</a> Please check the logfile above to see if sitemap was successfully built."
336
+ msgstr "本選項允許您刷新您的網站地圖。當您使用外部工具直接將文章寫入 WordPress 資料庫,而非透過 WordPress API 時,使用以下網址啟動這個作業: <a href=\"%1\">%1</a> 若是要知道是否成功請檢查紀錄檔案。"
337
 
338
+ #: sitemap.php:2898
339
+ msgid "Update notification:"
340
+ msgstr "更新通知:"
341
 
342
+ #: sitemap.php:2902
343
+ msgid "Notify Google about updates of your Blog"
344
+ msgstr "通知 Google 關於您網站的更新"
345
 
346
+ #: sitemap.php:2903
347
+ #, php-format
348
+ msgid "No registration required, but you can join the <a href=\"%s\">Google Webmaster Tools</a> to check crawling statistics."
349
+ msgstr "不需要註冊,但您可加入 <a href=\"%s\">Google 網站管理員工具</a>來檢查搜索統計。"
350
 
351
+ #: sitemap.php:2907
352
+ msgid "Notify Ask.com about updates of your Blog"
353
+ msgstr "通知 Ask.com 關於您網站的更新"
354
 
355
+ #: sitemap.php:2908
356
+ msgid "No registration required."
357
+ msgstr "不需要註冊。"
358
 
359
+ #: sitemap.php:2912
360
+ msgid "Notify YAHOO about updates of your Blog"
361
+ msgstr "通知 YAHOO 關於您網站的更新"
362
 
363
+ #: sitemap.php:2913
364
+ #, php-format
365
+ msgid "No registration required, but you can sign up for the <a href=\"%s\">YAHOO Site Explorer</a> to view the crawling progress."
366
+ msgstr "不需要註冊,但您可加入 <a href=\"%s\">YAHOO Site Explorer</a> 來檢查搜索統計。"
367
+
368
+ #: sitemap.php:2918
369
+ #, php-format
370
+ msgid "Modify or create %s file in blog root which contains the sitemap location."
371
+ msgstr "於網誌根目錄修改或者產生 %s 檔案,該檔案包含網站地圖的位置資訊。"
372
+
373
+ #: sitemap.php:2921
374
+ msgid "File permissions: "
375
+ msgstr "檔案權限:"
376
+
377
+ #: sitemap.php:2926
378
+ msgid "OK, robots.txt is writable."
379
+ msgstr "OK,可寫入 robots.txt。"
380
+
381
+ #: sitemap.php:2928
382
+ msgid "Error, robots.txt is not writable."
383
+ msgstr "錯誤,不可寫入 robots.txt。"
384
+
385
+ #: sitemap.php:2932
386
+ msgid "OK, robots.txt doesn't exist but the directory is writable."
387
+ msgstr "OK,robots.txt 並不存在但該目錄可寫入。"
388
+
389
+ #: sitemap.php:2934
390
+ msgid "Error, robots.txt doesn't exist and the directory is not writable"
391
+ msgstr "錯誤,robots.txt 並不存在且該目錄不可寫入。"
392
+
393
+ # msgid "Rebuild Sitemap"
394
+ # msgstr ""
395
+ #: sitemap.php:2940
396
+ msgid "Advanced options:"
397
+ msgstr "進階選項:"
398
+
399
+ #: sitemap.php:2943
400
+ msgid "Try to increase the memory limit to:"
401
+ msgstr "試著將記憶體限制增加至:"
402
+
403
+ #: sitemap.php:2943
404
+ msgid "e.g. \"4M\", \"16M\""
405
+ msgstr "例如:「4M」,「16M」"
406
+
407
+ #: sitemap.php:2946
408
+ msgid "Try to increase the execution time limit to:"
409
+ msgstr "試著將執行時間限制增加至:"
410
+
411
+ #: sitemap.php:2946
412
+ msgid "in seconds, e.g. \"60\" or \"0\" for unlimited"
413
+ msgstr "以秒為單位,例如:「60」或者「0」則不限制"
414
+
415
+ #: sitemap.php:2949
416
+ msgid "Include a XSLT stylesheet:"
417
+ msgstr "包含 XSLT 樣式:"
418
+
419
+ #: sitemap.php:2949
420
+ msgid "Use Default"
421
+ msgstr "使用預設值"
422
+
423
+ #: sitemap.php:2949
424
+ msgid "Full or relative URL to your .xsl file"
425
+ msgstr "您 .xsl 檔案的絕對或者相對路徑"
426
+
427
+ #: sitemap.php:2960
428
  msgid "Additional pages"
429
  msgstr "其他的頁面"
430
 
431
+ #: sitemap.php:2965
432
  msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
433
+ msgstr "您可以在此指定那些應被納入網站地圖的檔案或者網址,但是不屬於您的部落格(Blog/WordPress)。<br />舉例來說,若是您的部落格是 www.foo.com/blog,而您想要將您 www.foo.com 下的網頁納入此網站地圖。"
434
+
435
+ #: sitemap.php:2967
436
+ #: sitemap.php:3270
437
+ msgid "Note"
438
+ msgstr "注意"
439
 
440
+ #: sitemap.php:2968
441
+ msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the &quot;Location of your sitemap file&quot; section on this page)!"
442
+ msgstr "若是您的部落格是在子目錄下而您想要增加的頁面並<strong>不在</strong>部落格的目錄下面,您<strong>必須</strong>將您的網站地圖置於網站的根目錄下。(請見本頁「網站地圖的位置」小節)!"
443
+
444
+ #: sitemap.php:2970
445
+ #: sitemap.php:3116
446
  msgid "URL to the page"
447
+ msgstr "頁面<abbr title=\"URL\">網址</attr>"
448
 
449
+ #: sitemap.php:2971
450
  msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
451
+ msgstr "輸入頁面的網址。例如:http://www.foo.com/index.html 或者 www.foo.com/home "
452
 
453
+ #: sitemap.php:2973
454
+ #: sitemap.php:3117
455
  msgid "Priority"
456
  msgstr "優先權 "
457
 
458
+ #: sitemap.php:2974
459
  msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
460
+ msgstr "選擇該頁面的優先權(相較於其他頁面而言)。例如:您的首頁或許會比版權說明頁的優先權來得高。"
461
 
462
+ #: sitemap.php:2976
463
+ #: sitemap.php:3119
464
  msgid "Last Changed"
465
  msgstr "最近更動"
466
 
467
+ #: sitemap.php:2977
468
  msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
469
+ msgstr "輸入最近更動的日期,格式為 YYYY-MM-DD(例如:2005-12-31)(非必要)"
470
 
471
+ #: sitemap.php:3118
472
  msgid "Change Frequency"
473
  msgstr "設定更新頻率"
474
 
475
+ #: sitemap.php:3120
476
  msgid "#"
477
  msgstr "#"
478
 
479
+ #: sitemap.php:3125
480
  msgid "No pages defined."
481
  msgstr "還沒有頁面已被設定"
482
 
483
+ #: sitemap.php:3130
484
  msgid "Add new page"
485
  msgstr "新增頁面"
486
 
487
+ #: sitemap.php:3141
488
+ msgid "Post Priority"
489
+ msgstr "文章優先權 "
 
490
 
491
+ #: sitemap.php:3145
492
+ msgid "Please select how the priority of each post should be calculated:"
493
+ msgstr "請選擇每篇文章應該用多少優先權來計算:"
 
494
 
495
+ #: sitemap.php:3147
496
+ msgid "Do not use automatic priority calculation"
497
+ msgstr "不使用自動優先權計算"
 
498
 
499
+ #: sitemap.php:3147
500
+ msgid "All posts will have the same priority which is defined in &quot;Priorities&quot;"
501
+ msgstr "所有的文章使用相同定義在&quot;優先權&quot;內的優先權。"
 
 
502
 
503
+ #: sitemap.php:3164
504
+ msgid "Location of your sitemap file"
505
+ msgstr "網站地圖的位置"
506
 
507
+ #: sitemap.php:3169
508
+ msgid "Automatic detection"
509
+ msgstr "自動位置"
510
 
511
+ #: sitemap.php:3173
512
  msgid "Filename of the sitemap file"
513
  msgstr "網站地圖的檔名"
514
 
515
+ #: sitemap.php:3176
516
+ msgid "Detected Path"
517
+ msgstr "偵測到的路徑"
518
 
519
+ #: sitemap.php:3176
520
  msgid "Detected URL"
521
  msgstr "偵測到的網址"
522
 
523
+ #: sitemap.php:3181
524
+ msgid "Custom location"
525
+ msgstr "自定位置"
526
 
527
+ #: sitemap.php:3185
528
+ msgid "Absolute or relative path to the sitemap file, including name."
529
+ msgstr "網站地圖的絕對或相對路徑,包括檔名。"
530
+
531
+ #: sitemap.php:3187
532
+ #: sitemap.php:3196
533
+ msgid "Example"
534
+ msgstr "範例"
535
 
536
+ #: sitemap.php:3194
537
+ msgid "Complete URL to the sitemap file, including name."
538
+ msgstr "網站地圖的完整網址,包括檔名。"
539
 
540
+ #: sitemap.php:3213
541
+ msgid "Sitemap Content"
542
+ msgstr "網站地圖內容"
543
 
544
+ #: sitemap.php:3221
545
  msgid "Include homepage"
546
  msgstr "包含首頁"
547
 
548
+ #: sitemap.php:3227
549
  msgid "Include posts"
550
  msgstr "包含文章"
551
 
552
+ #: sitemap.php:3233
553
  msgid "Include static pages"
554
+ msgstr "包含網誌分頁"
555
 
556
+ #: sitemap.php:3239
557
  msgid "Include categories"
558
  msgstr "包含分類"
559
 
560
+ #: sitemap.php:3245
561
  msgid "Include archives"
562
  msgstr "包含匯整"
563
 
564
+ #: sitemap.php:3251
565
+ msgid "Include author pages"
566
+ msgstr "包含作者頁面"
567
+
568
+ #: sitemap.php:3265
569
  msgid "Change frequencies"
570
  msgstr "更新頻率設定"
571
 
572
+ #: sitemap.php:3271
 
 
 
 
573
  msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
574
+ msgstr "請注意下列各設定值僅被視為提示而非命令。雖然搜尋引擎漫遊器會考慮這資訊做出決定,他們也許會較少漫遊被標記為「Hourly」的頁面,或者更加頻繁地漫遊被標記為「Yearly」的頁面。搜尋引擎漫遊機制會週期性地漫遊被標記為「Never」的頁面,以便他們能處理對那些頁面的變動。"
575
 
576
+ #: sitemap.php:3277
577
+ #: sitemap.php:3335
578
  msgid "Homepage"
579
  msgstr "首頁"
580
 
581
+ #: sitemap.php:3283
582
  msgid "Posts"
583
  msgstr "文章"
584
 
585
+ #: sitemap.php:3289
586
+ #: sitemap.php:3353
587
  msgid "Static pages"
588
+ msgstr "網誌分頁"
589
 
590
+ #: sitemap.php:3295
591
+ #: sitemap.php:3359
592
  msgid "Categories"
593
  msgstr "分類"
594
 
595
+ #: sitemap.php:3301
596
  msgid "The current archive of this month (Should be the same like your homepage)"
597
+ msgstr "現有的每月彙整(應該與您的首頁相同)"
598
 
599
+ #: sitemap.php:3307
600
  msgid "Older archives (Changes only if you edit an old post)"
601
+ msgstr "較舊的彙整(只有在您修改舊文章的時候才會改變)"
602
 
603
+ #: sitemap.php:3313
604
+ #: sitemap.php:3371
605
+ msgid "Author pages"
606
+ msgstr "作者頁面"
607
+
608
+ #: sitemap.php:3327
609
  msgid "Priorities"
610
  msgstr "優先權"
611
 
612
+ #: sitemap.php:3341
613
  msgid "Posts (If auto calculation is disabled)"
614
+ msgstr "文章(如果自動計算沒有打開)"
615
 
616
+ #: sitemap.php:3347
617
  msgid "Minimum post priority (Even if auto calculation is enabled)"
618
+ msgstr "優先權最小值(即使自動計算有打開)"
619
 
620
+ #: sitemap.php:3365
621
  msgid "Archives"
622
  msgstr "彙整"
623
 
624
+ #: sitemap.php:3382
 
 
 
 
 
 
 
 
625
  msgid "Update options"
626
  msgstr "更新選項"
627
 
628
+ #: sitemap.php:3383
629
+ msgid "Reset options"
630
+ msgstr "重置選項"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
631
 
sitemap.php CHANGED
@@ -1,92 +1,179 @@
1
  <?php
2
  /*
3
 
4
- $Id: sitemap.php 8854 2007-03-19 23:14:15Z arnee $
5
 
6
- Sitemap Generator for WordPress
7
  ==============================================================================
8
 
9
- This generator will create a google compliant sitemap of your WordPress blog.
10
- Currently homepage, posts, static pages, categories and archives are supported.
11
 
12
- The priority of a post depends on its comments. More comments, higher priority!
 
13
 
14
  Feel free to visit my website under www.arnebrachhold.de or contact me at
15
- himself@arnebrachhold.de
 
 
 
 
 
 
 
 
 
 
 
16
 
17
 
18
  Info for WordPress:
19
  ==============================================================================
20
- Plugin Name: Google Sitemaps
21
- Plugin URI: http://www.arnebrachhold.de/2005/06/05/google-sitemaps-generator-v2-final
22
- Description: This generator will create a Google compliant sitemap of your WordPress blog.
23
- Version: 2.7.1
24
  Author: Arne Brachhold
25
  Author URI: http://www.arnebrachhold.de/
26
 
27
 
28
  Contributors:
29
  ==============================================================================
30
- Basic Idea Michael Nguyen http://www.socialpatterns.com/
31
- SQL Improvements Rodney Shupe http://www.shupe.ca/
32
- Japanse Lang. File Hirosama http://hiromasa.zone.ne.jp/
33
- Spanish lang. File C�sar G�mez Mart�n http://www.cesargomez.org/
34
- Italian lang. File Stefano Aglietti http://wordpress-it.it/
35
- Trad.Chinese File Kirin Lin http://kirin-lin.idv.tw/
36
- Simpl.Chinese File june6 http://www.june6.cn/
37
- Swedish Lang. File Tobias Bergius http://tobiasbergius.se/
38
- Ping Code Template 1 James http://www.adlards.com/
39
- Ping Code Template 2 John http://www.jonasblog.com/
40
- Bug Report Brad http://h3h.net/
41
- Bug Report Christian Aust http://publicvoidblog.de/
 
 
 
 
 
 
 
42
 
43
  Code, Documentation, Hosting and all other Stuff:
44
- Arne Brachhold http://www.arnebrachhold.de/
45
 
46
  Thanks to all contributors and bug reporters! :)
47
 
48
 
49
  Release History:
50
  ==============================================================================
51
- 2005-06-05 1.0 First release
52
- 2005-06-05 1.1 Added archive support
53
- 2005-06-05 1.2 Added category support
54
- 2005-06-05 0.2 Beta: Real Plugin! Static file generation, Admin UI
55
- 2005-06-05 2.0 Various fixes, more help, more comments, configurable filename
56
- 2005-06-07 2.01 Fixed 2 Bugs: 147 is now _e(strval($i)); instead of _e($i); 344 uses a full < ?php instead of < ?
57
- Thanks to Christian Aust for reporting this :)
58
- 2005-06-07 2.1 Correct usage of last modification date for cats and archives (thx to Rodney Shupe (http://www.shupe.ca/))
59
- Added support for .gz generation
60
- Fixed bug which ignored different post/page priorities
61
- Should support now different wordpress/admin directories
62
- 2005-06-07 2.11 Fixed bug with hardcoded table table names instead of the $wpd vars
63
- 2005-06-07 2.12 Changed SQL Statement of the categories to get it work on MySQL 3
64
- 2005-06-08 2.2 Added language file support:
65
- - Japanese Language Files and code modifications by hiromasa <webmaster@hiromasa.zone.ne.jp> http://hiromasa.zone.ne.jp/
66
- - German Language File by Arne Brachhold <himself@arnebrachhold.de>
67
- 2005-06-14 2.5 Added support for external pages
68
- Added support for Google Ping
69
- Added the minimum Post Priority option
70
- Added Spanish Language File by C�sar G�mez Mart�n (http://www.cesargomez.org/)
71
- Added Italian Language File by Stefano Aglietti (http://wordpress-it.it/)
72
- Added Traditional Chine Language File by Kirin Lin (http://kirin-lin.idv.tw/)
73
- 2005-07-03 2.6 Added support to store the files at a custom location
74
- Changed the home URL to have a slash at the end
75
- Required admin-functions.php so the script will work with external calls, wp-mail for example
76
- Added support for other plugins to add content to the sitemap via add_filter()
77
- 2005-07-20 2.7 Fixed wrong date format in additional pages
78
- Added Simplified Chinese Language Files by june6 (http://www.june6.cn/)
79
- Added Swedish Language File by Tobias Bergius (http://tobiasbergius.se/)
80
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  Maybe Todo:
82
  ==============================================================================
83
- - Autogenerate priority of categories (by postcount?)
84
- - Better priority calculator
85
  - Your wishes :)
86
 
 
87
  License:
88
  ==============================================================================
89
- Copyright 2005 ARNE BRACHHOLD (email : himself@arnebrachhold.de)
90
 
91
  This program is free software; you can redistribute it and/or modify
92
  it under the terms of the GNU General Public License as published by
@@ -102,439 +189,2316 @@
102
  along with this program; if not, write to the Free Software
103
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
104
 
 
105
  Developer Documentation
106
  ==============================================================================
 
107
  Adding other pages to the sitemap via other plugins
108
- This plugin uses the filter system of wordpress to allow other plugins
109
- to add urls to the sitemap. Simply add your function with add_filter to
 
110
  the list and the plugin will execute yours every time the sitemap is build.
111
- Use the sm_addUrl function to add your content.
 
112
 
113
  Sample:
114
- function your_pages($str) {
115
- $str.=sm_addUrl("http://wwww","2005-05-05","daily",0.5);
116
- return $str;
117
  }
118
- add_filter("sm_buildmap","your_pages");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
 
120
- Please double-check that you are using a correct last modified date. Check out
121
- this code for samples.
122
 
123
- About the pages storage:
124
- Every external page is represented in a instance of the sm_page class.
125
- I use an array to store them in the WordPress options table. Note
126
- that if you want to serialize a class, it must be available BEFORE you
127
- call unserialize(). So it's very important to set the autoload property
128
- of the option to false.
129
 
130
- About the pages editor:
131
- To store modifications to the pages without using session variables,
132
- i restore the state of the modifications in hidden fields. Based on
133
- these, the array with the pages from the database gets overwritten.
134
- It's very important that you call the sm_apply_pages function on
135
- every request if modifications to the pages should be saved. If
136
- you dont't all changes will be lost. (So works the Reset Changes button)
137
 
138
- All other methods are commented with phpDoc style.
139
- The "#region" tags and "#type $example example_class" comments are helpers which
140
- may be used by your editor. #region gives the ability to create custom code
141
- folding areas, #type are type definitions for auto-complete.
 
 
142
  */
143
 
144
- //Enable for dev
145
  //error_reporting(E_ALL);
 
146
 
147
- /******** Required files ********/
148
 
149
- #region wp-admin/admin-functions.php
150
- /*
151
- Check if ABSPATH and WPINC is defined, this is done in wp-settings.php
152
- If not defined, we can't guarante that all required functions are available.
153
- If defined but get_home_path is not defined, the script is not loaded through
154
- the admin menu and admin-functions.php is not included.
155
- Maybe we find another way to get the home paths, so we don't need the admin file.
156
- */
157
- if(defined("ABSPATH") && defined("WPINC")) {
158
- define("SM_ACTIVE",true);
159
- } else {
160
- define("SM_ACTIVE",false);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
  }
162
- #endregion
163
-
164
- /******** Needed classes ********/
165
 
166
- #region class sm_page
167
- if(!class_exists("sm_page")) {
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  /**
169
- * Represents an item in the page list
170
- * @author Arne Brachhold <himself@arnebrachhold.de>
171
- * @since 2005-06-12
 
 
 
 
 
 
 
172
  */
173
- class sm_page {
174
- /**
175
- * @var bool $_enabled Sets if page is enabled ans hould be listed in the sitemap
176
- * @access private
177
- */
178
- var $_enabled;
179
-
180
- /**
181
- * @var string $_url Sets the URL or the relative path to the blog dir of the page
182
- * @access private
183
- */
184
- var $_url;
185
-
186
- /**
187
- * @var float $_priority Sets the priority of this page
188
- * @access private
189
- */
190
- var $_priority;
191
-
192
- /**
193
- * @var string $_changeFreq Sets the chanfe frequency of the page. I want Enums!
194
- * @access private
195
- */
196
- var $_changeFreq;
197
-
198
- /**
199
- * @var int $_lastMod Sets the lastMod of the page as a php timestamp.
200
- * @access private
201
- */
202
- var $_lastMod;
203
-
204
- /**
205
- * Initialize a new page object
206
- *
207
- * @param bool $enabled bool Should this page be included in thesitemap
208
- * @param string $url The URL or path of the file
209
- * @param float $priority The Priority of the page 0.0 to 1.0
210
- * @param string $changeFreq The change frequency like daily, hourly, weekly
211
- * @param int $lastMod The last mod date as a php timestamp
212
- */
213
- function sm_page($enabled=false,$url="",$priority=0.0,$changeFreq="never",$lastMod=0) {
214
- $this->setEnabled($enabled);
215
- $this->setUrl($url);
216
- $this->setProprity($priority);
217
- $this->setChangeFreq($changeFreq);
218
- $this->setLastMod($lastMod);
219
  }
220
-
221
 
222
- /**
223
- * Returns if the page should be included in the sitemap
224
- * @return bool
225
- */
226
- function getEnabled() {
227
- return $this->_enabled;
228
  }
229
 
230
- /**
231
- * Sets if the page should be included in the sitemap
232
- * @param bool $enabled value;
233
- */
234
- function setEnabled($enabled) {
235
- $this->_enabled=(bool) $enabled;
236
- }
237
 
238
- /**
239
- * Returns the URL of the page
240
- * @return string The URL
241
- */
242
- function getUrl() {
243
- return $this->_url;
244
- }
245
 
246
- /**
247
- * Sets the URL of the page
248
- * @param string $url The new URL
249
- */
250
- function setUrl($url) {
251
- $this->_url=(string) $url;
252
- }
253
 
254
- /**
255
- * Returns the priority of this page
256
- * @return float the priority, from 0.0 to 1.0
257
- */
258
- function getPriority() {
259
- return $this->_priority;
260
  }
261
 
262
- /**
263
- * Sets the priority of the page
264
- * @param float $priority The new priority from 0.1 to 1.0
265
- */
266
- function setProprity($priority) {
267
- $this->_priority=floatval($priority);
268
  }
269
 
270
- /**
271
- * Returns the change frequency of the page
272
- * @return string The change frequncy like hourly, weekly, monthly etc.
273
- */
274
- function getChangeFreq() {
275
- return $this->_changeFreq;
276
  }
277
 
278
- /**
279
- * Sets the change frequency of the page
280
- * @param string $changeFreq The new change frequency
281
- */
282
- function setChangeFreq($changeFreq) {
283
- $this->_changeFreq=(string) $changeFreq;
284
- }
285
 
286
- /**
287
- * Returns the last mod of the page
288
- * @return int The lastmod value in seconds
289
- */
290
- function getLastMod() {
291
- return $this->_lastMod;
292
  }
293
 
294
- /**
295
- * Sets the last mod of the page
296
- * @param int $lastMod The lastmod of the page
297
- */
298
- function setLastMod($lastMod) {
299
- $this->_lastMod=intval($lastMod);
300
- }
301
  }
 
302
  }
303
  #endregion
304
 
305
- #region Default configuration values
306
- $sm_options=array();
307
- $sm_options["sm_b_auto_prio"]=true; //Use automatic priority calculation
308
- $sm_options["sm_b_filename"]="sitemap.xml"; //Name of the Sitemap file
309
- $sm_options["sm_b_debug"]=true; //Write debug messages in the xml file
310
- $sm_options["sm_b_xml"]=true; //Create a .xml file
311
- $sm_options["sm_b_gzip"]=true; //Create a gzipped .xml file(.gz) file
312
- $sm_options["sm_b_ping"]=true; //Auto ping Google
313
-
314
- $sm_options["sm_b_location_mode"]="auto"; //Mode of location, auto or manual
315
- $sm_options["sm_b_filename_manual"]=""; //Manuel filename
316
- $sm_options["sm_b_fileurl_manual"]=""; //Manuel fileurl
317
-
318
- $sm_options["sm_in_home"]=true; //Include homepage
319
- $sm_options["sm_in_posts"]=true; //Include posts
320
- $sm_options["sm_in_pages"]=true; //Include static pages
321
- $sm_options["sm_in_cats"]=true; //Include categories
322
- $sm_options["sm_in_arch"]=true; //Include archives
323
-
324
- $sm_options["sm_cf_home"]="daily"; //Change frequency of the homepage
325
- $sm_options["sm_cf_posts"]="monthly"; //Change frequency of posts
326
- $sm_options["sm_cf_pages"]="weekly"; //Change frequency of static pages
327
- $sm_options["sm_cf_cats"]="weekly"; //Change frequency of categories
328
- $sm_options["sm_cf_arch_curr"]="daily"; //Change frequency of the current archive (this month)
329
- $sm_options["sm_cf_arch_old"]="yearly"; //Change frequency of older archives
330
-
331
- $sm_options["sm_pr_home"]=1.0; //Priority of the homepage
332
- $sm_options["sm_pr_posts"]=0.7; //Priority of posts (if auto prio is disabled)
333
- $sm_options["sm_pr_posts_min"]=0.1; //Minimum Priority of posts, even if autocalc is enabled
334
- $sm_options["sm_pr_pages"]=0.6; //Priority of static pages
335
- $sm_options["sm_pr_cats"]=0.5; //Priority of categories
336
- $sm_options["sm_pr_arch"]=0.5; //Priority of archives
337
- #endregion
338
-
339
- #region Load configuration
340
- //Addition sites
341
- $sm_pages=array();
342
-
343
- //First init default values, then overwrite it with stored values so we can add default
344
- //values with an update which get stored by the next edit.
345
- $sm_storedoptions=get_option("sm_options");
346
- if($sm_storedoptions) {
347
- foreach($sm_storedoptions AS $k=>$v) {
348
- $sm_options[$k]=$v;
349
- }
350
- } else update_option("sm_options",$sm_options); //First time use, store default values
351
-
352
- $sm_storedpages=get_option("sm_cpages");
353
 
354
- if($sm_storedpages) {
355
- $sm_pages=$sm_storedpages;
356
- } else {
357
- //Add the option, Note the autoload=false because when the autoload happens, our class sm_page doesn't exist
358
- add_option("sm_cpages",$sm_pages,"Storage for custom pages of the sitemap plugin","no");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
359
  }
360
 
361
  /**
362
- * @var array Contains all valid values for change frequency
 
 
 
363
  */
364
- $sm_freq_names=array("always", "hourly", "daily", "weekly", "monthly", "yearly","never");
365
- #endregion
366
-
367
- /******** Path and URL functions ********/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
368
 
369
- function sm_getHomePath() {
370
- $res="";
371
- //Check if we are in the admin area -> get_home_path() is avaiable
372
- if(function_exists("get_home_path")) {
373
- $res = get_home_path();
374
- } else {
375
- //get_home_path() is not available, but we can't include the admin
376
- //libraries because many plugins check for the "check_admin_referer"
377
- //function to detect if you are on an admin page. So we have to copy
378
- //the get_home_path function in our own...
379
- $home = get_settings('home');
380
- if ( $home != '' && $home != get_settings('siteurl') ) {
381
- $home_path = parse_url($home);
382
- $home_path = $home_path['path'];
383
- $root = str_replace($_SERVER["PHP_SELF"], '', $_SERVER["SCRIPT_FILENAME"]);
384
- $home_path = trailingslashit($root . $home_path);
385
- } else {
386
- $home_path = ABSPATH;
387
- }
388
- $res = $home_path;
389
- }
390
- return $res;
391
  }
392
 
 
 
 
 
 
 
393
 
394
- #region sm_getXmlUrl
395
- if(!function_exists("sm_getXmlUrl")) {
 
 
 
 
 
 
396
  /**
397
- * Returns the URL for the sitemap file
398
- * @param bool $forceAuto Force the return value to the autodetected value.
399
- *
400
- * @return The URL to the Sitemap file
 
 
 
 
 
 
 
 
 
 
 
 
 
 
401
  */
402
- function sm_getXmlUrl($forceAuto=false) {
403
- global $sm_options;
404
-
405
- if(!$forceAuto && $sm_options["sm_b_location_mode"]=="manual") {
406
- return $sm_options["sm_b_fileurl_manual"];
407
- } else {
408
- //URL comes without /
409
- return get_bloginfo('siteurl') . "/" . sm_go("sm_b_filename");
410
- }
411
  }
412
- }
413
- #endregion
414
-
415
- #region sm_getZipUrl
416
- if(!function_exists("sm_getZipUrl")) {
417
  /**
418
- * Returns the URL for the gzipped sitemap file
419
- * @param bool $forceAuto Force the return value to the autodetected value.
420
- *
421
- * @return The URL to the gzipped Sitemap file
 
 
422
  */
423
- function sm_getZipUrl($forceAuto=false) {
424
- return sm_getXmlUrl($forceAuto) . ".gz";
425
  }
426
- }
427
- #endregion
428
-
429
- #region sm_getXmlPath
430
- if(!function_exists("sm_getXmlPath")) {
431
  /**
432
- * Returns the file system path to the sitemap file
433
- * @param bool $forceAuto Force the return value to the autodetected value.
434
- *
435
- * @return The file system path;
 
 
 
436
  */
437
- function sm_getXmlPath($forceAuto=false) {
438
- global $sm_options;
 
439
 
440
- if(!$forceAuto && $sm_options["sm_b_location_mode"]=="manual") {
441
- return $sm_options["sm_b_filename_manual"];
442
- } else {
443
- //ABSPATH has a slash
444
- return sm_getHomePath() . sm_go("sm_b_filename");
445
- }
446
- }
 
 
 
 
 
 
 
 
447
  }
448
- #endregion
449
 
450
- #region sm_getZipPath
451
- if(!function_exists("sm_getZipPath")) {
 
 
 
 
 
 
452
  /**
453
- * Returns the file system path to the gzipped sitemap file
454
- * @param bool $forceAuto Force the return value to the autodetected value.
455
- *
456
- * @return The file system path;
 
 
457
  */
458
- function sm_getZipPath($forceAuto=false) {
459
- return sm_getXmlPath($forceAuto) . ".gz";
460
  }
461
- }
462
- #endregion
463
-
464
- /******** Helper functions ********/
465
-
466
- #region sm_go
467
- if(!function_exists("sm_go")) {
468
  /**
469
- * Returns the option value for the given key
470
- *
471
- * @param $key string The Configuration Key
472
- * @return mixed The value
 
 
473
  */
474
- function sm_go($key) {
475
- global $sm_options;
476
- return $sm_options[$key];
477
  }
478
- }
479
- #endregion
480
-
481
- #region sm_freq_names
482
- if(!function_exists("sm_freq_names")) {
483
  /**
484
- * Echos option fields for an select field containing the valid change frequencies
485
- *
486
- * @param $currentVal The value which should be selected
487
- * @return all valid change frequencies as html option fields
 
 
 
488
  */
489
- function sm_freq_names($currentVal) {
490
- global $sm_freq_names;
491
- foreach($sm_freq_names AS $v) {
492
- echo "<option value=\"$v\" " . ($v==$currentVal?"selected=\"selected\"":"") .">";
493
- echo ucfirst(__($v,'sitemap'));
494
- echo "</option>";
495
- }
496
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
497
  }
498
- #endregion
499
 
500
- #region sm_prio_names
501
- if(!function_exists("sm_prio_names")) {
 
 
 
 
 
 
502
  /**
503
- * Echos option fields for an select field containing the valid priorities (0- 1.0)
504
- *
505
- * @param $currentVal string The value which should be selected
506
- * @return 0.0 - 1.0 as html option fields
507
- */
508
- function sm_prio_names($currentVal) {
509
- $currentVal=(float) $currentVal;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
510
  for($i=0.0; $i<=1.0; $i+=0.1) {
511
- echo "<option value=\"$i\" " . ("$i" == "$currentVal"?"selected=\"selected\"":"") .">";
512
  _e(strval($i));
513
  echo "</option>";
514
  }
515
  }
516
- }
517
- #endregion
518
-
519
- /******** Admin Page functions ********/
520
-
521
- #region sm_apply_pages
522
- if(!function_exists("sm_apply_pages")) {
523
  /**
524
- * This method will create new page objcts based on the input fields int he POST request
525
- */
526
- function sm_apply_pages() {;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
527
  // Array with all page URLs
528
- $sm_pages_ur=(!isset($_POST["sm_pages_ur"]) || !is_array($_POST["sm_pages_ur"])?array():$_POST["sm_pages_ur"]);
529
 
530
  //Array with all priorities
531
- $sm_pages_pr=(!isset($_POST["sm_pages_pr"]) || !is_array($_POST["sm_pages_pr"])?array():$_POST["sm_pages_pr"]);
532
 
533
  //Array with all change frequencies
534
- $sm_pages_cf=(!isset($_POST["sm_pages_cf"]) || !is_array($_POST["sm_pages_cf"])?array():$_POST["sm_pages_cf"]);
535
 
536
  //Array with all lastmods
537
- $sm_pages_lm=(!isset($_POST["sm_pages_lm"]) || !is_array($_POST["sm_pages_lm"])?array():$_POST["sm_pages_lm"]);
538
 
539
  //Array where the new pages are stored
540
  $pages=array();
@@ -543,763 +2507,1179 @@ if(!function_exists("sm_apply_pages")) {
543
  if(isset($_POST["sm_pages_mark"]) && is_array($_POST["sm_pages_mark"])) {
544
  for($i=0; $i<count($_POST["sm_pages_mark"]); $i++) {
545
  //Create new object
546
- $p=new sm_page();
547
- if(substr($sm_pages_ur[$i],0,4)=="www.") $sm_pages_ur[$i]="http://" . $sm_pages_ur[$i];
548
- $p->setUrl($sm_pages_ur[$i]);
549
- $p->setProprity($sm_pages_pr[$i]);
550
- $p->setChangeFreq($sm_pages_cf[$i]);
551
  //Try to parse last modified, if -1 (note ===) automatic will be used (0)
552
- $lm=(!empty($sm_pages_lm[$i])?strtotime($sm_pages_lm[$i],time()):-1);
553
  if($lm===-1) $p->setLastMod(0);
554
  else $p->setLastMod($lm);
555
 
556
  //Add it to the array
557
- $pages[count($pages)]=$p;
558
  }
559
  }
560
- //Return it, cause I don't care about PHP4 references...
561
  return $pages;
562
  }
563
- }
564
- #endregion
565
-
566
- #region sm_array_remove
567
- if(!function_exists("sm_array_remove")) {
568
- /**
569
- * Removes an element of an array and reorders the indexes
570
- *
571
- * @param array $array The array with the values
572
- * @param object $indice The key which vallue should be removed
573
- * @return array The modified array
574
- */
575
- function sm_array_remove ($array, $indice) {
576
- if (array_key_exists($indice, $array)) {
577
- $temp = $array[0];
578
- $array[0] = $array[$indice];
579
- $array[$indice] = $temp;
580
- array_shift($array);
581
 
582
- for ($i = 0 ; $i < $indice ; $i++)
583
- {
584
- $dummy = $array[$i];
585
- $array[$i] = $temp;
586
- $temp = $dummy;
587
- }
 
 
 
 
 
 
 
588
  }
589
- return $array;
590
- }
591
- }
592
- #endregion
593
-
594
- #region sm_options_page
595
- if(!function_exists("sm_options_page")) {
596
  /**
597
- * Generated the admin option page and saves the configuration
598
- */
599
- function sm_options_page() {
600
- //#type $sm_options array
601
- global $sm_options;
602
- //#type $sm_pages array
603
- global $sm_pages;
604
-
605
- //All output should go in this var which get printed at the end
606
- $message="";
607
 
608
- //Pressed Button: Rebuild Sitemap
609
- if(!empty($_POST["doRebuild"])) {
610
- $msg = sm_buildSitemap();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
611
 
612
- if($msg && is_array($msg)) {
613
- foreach($msg AS $ms) {
614
- $message.=$ms . "<br /><br />";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
615
  }
 
 
 
 
616
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
617
  }
618
- //Pressed Button: Update Config
619
- else if (!empty($_POST['info_update'])) {
620
- foreach($sm_options as $k=>$v) {
621
- //Check vor values and convert them into their types, based on the category they are in
622
- if(!isset($_POST[$k])) $_POST[$k]=""; // Empty string will get false on 2bool and 0 on 2float
623
-
624
- //Options of the category "Basic Settings" are boolean, except the filename
625
- if(substr($k,0,5)=="sm_b_") {
626
- if($k=="sm_b_filename" || $k=="sm_b_fileurl_manual" || $k=="sm_b_filename_manual") $sm_options[$k]=(string) $_POST[$k];
627
- else if($k=="sm_b_location_mode") {
628
- $tmp=(string) $_POST[$k];
629
- $tmp=strtolower($tmp);
630
- if($tmp=="auto" || $tmp="manual") $sm_options[$k]=$tmp;
631
- else $sm_options[$k]="auto";
632
- } else $sm_options[$k]=(bool) $_POST[$k];
633
- //Options of the category "Includes" are boolean
634
- } else if(substr($k,0,6)=="sm_in_") {
635
- $sm_options[$k]=(bool) $_POST[$k];
636
- //Options of the category "Change frequencies" are string
637
- } else if(substr($k,0,6)=="sm_cf_") {
638
- $sm_options[$k]=(string) $_POST[$k];
639
- //Options of the category "Priorities" are float
640
- } else if(substr($k,0,6)=="sm_pr_") {
641
- $sm_options[$k]=(float) $_POST[$k];
642
  }
 
 
 
 
 
 
 
 
 
643
  }
 
644
 
645
- if(update_option("sm_options",$sm_options)) $message.=__('Configuration updated', 'sitemap');
646
- else $message.=__('Error', 'sitemap');
647
-
648
- //Pressed Button: New Page
649
- } else if(!empty($_POST["sm_pages_new"])) {
650
-
651
- //Apply page changes from POST
652
- $sm_pages=sm_apply_pages();
653
-
654
- //Add a new page to the array with default values
655
- $p=new sm_page(true,"",0.0,"never",0);
656
- $sm_pages[count($sm_pages)]=$p;
657
- $message.=__('A new page was added. Click on &quot;Save page changes&quot; to save your changes.','sitemap');
658
 
659
- //Pressed Button: Save pages
660
- } else if(!empty($_POST["sm_pages_save"])) {
661
-
662
- //Apply page changes from POST
663
- $sm_pages=sm_apply_pages();
664
-
665
- //Store in the database
666
- if(update_option("sm_cpages",$sm_pages)) $message.=__("Pages saved",'sitemap');
667
- else $message.=__("Error while saving pages",'sitemap');
668
-
669
- //Pressed Button: Delete page
670
- } else if(!empty($_POST["sm_pages_del"])) {
671
-
672
- //Apply page changes from POST
673
- $sm_pages=sm_apply_pages();
674
 
675
- //the selected page is stored in value of the radio button
676
- $i=intval($_POST["sm_pages_action"]);
677
-
678
- //Remove the page from the array
679
- $sm_pages= sm_array_remove($sm_pages,$i);
680
- $message.=__('The page was deleted. Click on &quot;Save page changes&quot; to save your changes.','sitemap');
681
-
682
- //Pressed Button: Clear page Changes
683
- } else if(!empty($_POST["sm_pages_undo"])) {
684
-
685
- //In all other page changes, we do the sm_apply_pages functions. Here we don't, so we got the original settings from the db
686
-
687
- $message.=__('You changes have been cleared.','sitemap');
688
- }
689
 
690
- //Print out the message to the user, if any
691
- if($message!="") {
692
- ?>
693
- <div class="updated"><strong><p><?php
694
- echo $message;
695
- ?></p></strong></div><?php
696
  }
697
- ?>
698
-
699
- <div class=wrap>
700
- <form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
701
- <h2><?php _e('Sitemap Generator', 'sitemap') ?> 2.7.1</h2>
702
-
703
- <!-- Rebuild Area -->
704
- <fieldset name="sm_rebuild" class="options">
705
- <legend><?php _e('Manual rebuild', 'sitemap') ?></legend>
706
- <?php _e('If you want to build the sitemap without editing a post, click on here!', 'sitemap') ?><br />
707
- <input type="submit" id="doRebuild" name="doRebuild" Value="<?php _e('Rebuild Sitemap','sitemap'); ?>" />
708
- </fieldset>
709
-
710
- <!-- Pages area -->
711
- <fieldset name="sm_pages" class="options">
712
- <legend><?php _e('Additional pages', 'sitemap') ?></legend>
713
- <?php
714
- _e('Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com','sitemap');
715
- echo "<ul><li>";
716
- echo "<strong>" . __('Note','sitemap'). "</strong>: ";
717
- _e("If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the &quot;Location of your sitemap file&quot; section on this page)!",'sitemap');
718
- echo "</li><li>";
719
- echo "<strong>" . __('URL to the page','sitemap'). "</strong>: ";
720
- _e("Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home ",'sitemap');
721
- echo "</li><li>";
722
- echo "<strong>" . __('Priority','sitemap') . "</strong>: ";
723
- _e("Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint.",'sitemap');
724
- echo "</li><li>";
725
- echo "<strong>" . __('Last Changed','sitemap'). "</strong>: ";
726
- _e("Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional).",'sitemap');
727
-
728
- echo "</li></ul>";
729
- ?>
730
- <table width="100%" cellpadding="3" cellspacing="3">
731
- <tr>
732
- <th scope="col"><?php _e('URL to the page','sitemap'); ?></th>
733
- <th scope="col"><?php _e('Priority','sitemap'); ?></th>
734
- <th scope="col"><?php _e('Change Frequency','sitemap'); ?></th>
735
- <th scope="col"><?php _e('Last Changed','sitemap'); ?></th>
736
- <th scope="col"><?php _e('#','sitemap'); ?></th>
737
- </tr>
738
- <?php
739
- if(count($sm_pages)>0) {
740
- $class="";
741
- for($i=0; $i<count($sm_pages); $i++) {
742
- $v=$sm_pages[$i];
743
- //#type $v sm_page
744
- $class = ('alternate' == $class) ? '' : 'alternate';
745
- echo "<input type=\"hidden\" name=\"sm_pages_mark[$i]\" value=\"true\" />";
746
- echo "<tr class=\"$class\">";
747
- echo "<td><input type=\"textbox\" name=\"sm_pages_ur[$i]\" style=\"width:95%\" value=\"" . $v->getUrl() . "\" /></td>";
748
- echo "<td width=\"150\"><select name=\"sm_pages_pr[$i]\" style=\"width:95%\">";
749
- echo sm_prio_names($v->getPriority());
750
- echo "</select></td>";
751
- echo "<td width=\"150\"><select name=\"sm_pages_cf[$i]\" style=\"width:95%\">";
752
- echo sm_freq_names($v->getChangeFreq());
753
- echo "</select></td>";
754
- echo "<td width=\"150\"><input type=\"textbox\" name=\"sm_pages_lm[$i]\" style=\"width:95%\" value=\"" . ($v->getLastMod()>0?date("Y-m-d",$v->getLastMod()):"") . "\" /></td>";
755
- echo "<td width=\"5\"><input type=\"radio\" name=\"sm_pages_action\" value=\"$i\" /></td>";
756
- echo "</tr>";
757
- }
758
- } else {
759
- ?><tr>
760
- <td colspan="5"><?php _e('No pages defined.','sitemap') ?></td>
761
- </tr><?php
762
- }
763
- ?>
764
- </table>
765
- <div>
766
- <div style="float:left; width:70%">
767
- <input type="submit" name="sm_pages_new" value="<?php _e("Add new page",'sitemap'); ?>" />
768
- <input type="submit" name="sm_pages_save" value="<?php _e("Save page changes",'sitemap'); ?>" />
769
- <input type="submit" name="sm_pages_undo" value="<?php _e("Undo all page changes",'sitemap'); ?>" />
770
- </div>
771
- <div style="width:30%; text-align:right; float:left;">
772
- <input type="submit" name="sm_pages_del" value="<?php _e("Delete marked page",'sitemap'); ?>" />
773
- </div>
774
- </div>
775
- </fieldset>
776
-
777
- <!-- Basic Options -->
778
- <fieldset name="sm_basic_options" class="options">
779
- <legend><?php _e('Basic Options', 'sitemap') ?></legend>
780
- <ul>
781
- <li>
782
- <label for="sm_b_auto_prio">
783
- <input type="checkbox" id="sm_b_auto_prio" name="sm_b_auto_prio" <?php echo (sm_go("sm_b_auto_prio")==true?"checked=\"checked\"":"") ?> />
784
- <?php _e('Enable automatic priority calculation for posts based on comment count', 'sitemap') ?>
785
- </label>
786
- </li>
787
- <li>
788
- <label for="sm_b_debug">
789
- <input type="checkbox" id="sm_b_debug" name="sm_b_debug" <?php echo (sm_go("sm_b_debug")==true?"checked=\"checked\"":"") ?> />
790
- <?php _e('Write debug comments', 'sitemap') ?>
791
- </label>
792
- </li>
793
- <li>
794
- <label for="sm_b_xml">
795
- <input type="checkbox" id="sm_b_xml" name="sm_b_xml" <?php echo (sm_go("sm_b_xml")==true?"checked=\"checked\"":"") ?> />
796
- <?php _e('Write a normal XML file (your filename)', 'sitemap') ?>
797
- </label>
798
- </li>
799
- <li>
800
- <label for="sm_b_gzip">
801
- <input type="checkbox" id="sm_b_gzip" name="sm_b_gzip" <?php if(function_exists("gzencode")) { echo (sm_go("sm_b_gzip")==true?"checked=\"checked\"":""); } else echo "disabled=\"disabled\""; ?> />
802
- <?php _e('Write a gzipped file (your filename + .gz)', 'sitemap') ?>
803
- </label>
804
- </li>
805
- <li>
806
- <label for="sm_b_ping">
807
- <input type="checkbox" id="sm_b_ping" name="sm_b_ping" <?php echo (sm_go("sm_b_ping")==true?"checked=\"checked\"":"") ?> />
808
- <?php _e('Auto-Ping Google Sitemaps', 'sitemap') ?><br />
809
- <?php _e('This option will automatically tell Google about changes.','sitemap') ?>
810
- </label>
811
- </li>
812
- </ul>
813
- </fieldset>
814
-
815
- <!-- Location Options -->
816
- <fieldset name="sm_location" class="options">
817
- <legend><?php _e('Location of your sitemap file', 'sitemap') ?></legend>
818
-
819
- <fieldset name="sm_location_auto">
820
- <legend><label for="sm_location_useauto"><input type="radio" id="sm_location_useauto" name="sm_b_location_mode" value="auto" <?php echo (sm_go("sm_b_location_mode")=="auto"?"checked=\"checked\"":"") ?> /><?php _e('Automatic location','sitemap') ?></label></legend>
821
- <ul>
822
- <li>
823
- <label for="sm_b_filename">
824
- <?php _e('Filename of the sitemap file', 'sitemap') ?>
825
- <input type="text" id="sm_b_filename" name="sm_b_filename" value="<?php echo sm_go("sm_b_filename"); ?>" />
826
- </label><br />
827
- <?php _e('Detected Path', 'sitemap') ?>: <?php echo sm_getXmlPath(true); ?><br /><?php _e('Detected URL', 'sitemap') ?>: <a href="<?php echo sm_getXmlUrl(true); ?>"><?php echo sm_getXmlUrl(true); ?></a>
828
- </li>
829
- </ul>
830
- </fieldset>
831
-
832
- <p><?php _e('OR','sitemap'); ?></p>
833
-
834
- <fieldset name="sm_location_manual">
835
- <legend><label for="sm_location_usemanual"><input type="radio" id="sm_location_usemanual" name="sm_b_location_mode" value="manual" <?php echo (sm_go("sm_b_location_mode")=="manual"?"checked=\"checked\"":"") ?> /><?php _e('Manual location','sitemap') ?></label></legend>
836
- <ul>
837
- <li>
838
- <label for="sm_b_filename_manual">
839
- <?php _e('Absolute or relative path to the sitemap file, including name.','sitemap');
840
- echo "<br />";
841
- _e('Example','sitemap');
842
- echo ": /var/www/htdocs/wordpress/sitemap.xml"; ?><br />
843
- <input style="width:300px;" type="text" id="sm_b_filename_manual" name="sm_b_filename_manual" value="<?php echo (!sm_go("sm_b_filename_manual")?sm_getXmlPath():sm_go("sm_b_filename_manual")); ?>" />
844
- </label>
845
- </li>
846
- <li>
847
- <label for="sm_b_fileurl_manual">
848
- <?php _e('Complete URL to the sitemap file, including name.','sitemap');
849
- echo "<br />";
850
- _e('Example','sitemap');
851
- echo ": http://www.yourdomain.com/sitemap.xml"; ?><br />
852
- <input style="width:300px;" type="text" id="sm_b_fileurl_manual" name="sm_b_fileurl_manual" value="<?php echo (!sm_go("sm_b_fileurl_manual")?sm_getXmlUrl():sm_go("sm_b_fileurl_manual")); ?>" />
853
- </label>
854
- </li>
855
- </ul>
856
- </fieldset>
857
- </fieldset>
858
-
859
- <!-- Includes -->
860
- <fieldset name="sm_includes" class="options">
861
- <legend><?php _e('Includings', 'sitemap') ?></legend>
862
- <ul>
863
- <li>
864
- <label for="sm_in_home">
865
- <input type="checkbox" id="sm_in_home" name="sm_in_home" <?php echo (sm_go("sm_in_home")==true?"checked=\"checked\"":"") ?> />
866
- <?php _e('Include homepage', 'sitemap') ?>
867
- </label>
868
- </li>
869
- <li>
870
- <label for="sm_in_posts">
871
- <input type="checkbox" id="sm_in_posts" name="sm_in_posts" <?php echo (sm_go("sm_in_posts")==true?"checked=\"checked\"":"") ?> />
872
- <?php _e('Include posts', 'sitemap') ?>
873
- </label>
874
- </li>
875
- <li>
876
- <label for="sm_in_pages">
877
- <input type="checkbox" id="sm_in_pages" name="sm_in_pages" <?php echo (sm_go("sm_in_pages")==true?"checked=\"checked\"":"") ?> />
878
- <?php _e('Include static pages', 'sitemap') ?>
879
- </label>
880
- </li>
881
- <li>
882
- <label for="sm_in_cats">
883
- <input type="checkbox" id="sm_in_cats" name="sm_in_cats" <?php echo (sm_go("sm_in_cats")==true?"checked=\"checked\"":"") ?> />
884
- <?php _e('Include categories', 'sitemap') ?>
885
- </label>
886
- </li>
887
- <li>
888
- <label for="sm_in_arch">
889
- <input type="checkbox" id="sm_in_arch" name="sm_in_arch" <?php echo (sm_go("sm_in_arch")==true?"checked=\"checked\"":"") ?> />
890
- <?php _e('Include archives', 'sitemap') ?>
891
- </label>
892
- </li>
893
- </ul>
894
- </fieldset>
895
-
896
- <!-- Change frequencies -->
897
- <fieldset name="sm_change_frequencies" class="options">
898
- <legend><?php _e('Change frequencies', 'sitemap') ?></legend>
899
- <b><?php _e('Note', 'sitemap') ?>:</b>
900
- <?php _e('Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked "hourly" less frequently than that, and they may crawl pages marked "yearly" more frequently than that. It is also likely that crawlers will periodically crawl pages marked "never" so that they can handle unexpected changes to those pages.', 'sitemap') ?>
901
- <ul>
902
- <li>
903
- <label for="sm_cf_home">
904
- <select id="sm_cf_home" name="sm_cf_home"><?php sm_freq_names(sm_go("sm_cf_home")); ?></select>
905
- <?php _e('Homepage', 'sitemap') ?>
906
- </label>
907
- </li>
908
- <li>
909
- <label for="sm_cf_posts">
910
- <select id="sm_cf_posts" name="sm_cf_posts"><?php sm_freq_names(sm_go("sm_cf_posts")); ?></select>
911
- <?php _e('Posts', 'sitemap') ?>
912
- </label>
913
- </li>
914
- <li>
915
- <label for="sm_cf_pages">
916
- <select id="sm_cf_pages" name="sm_cf_pages"><?php sm_freq_names(sm_go("sm_cf_pages")); ?></select>
917
- <?php _e('Static pages', 'sitemap') ?>
918
- </label>
919
- </li>
920
- <li>
921
- <label for="sm_cf_cats">
922
- <select id="sm_cf_cats" name="sm_cf_cats"><?php sm_freq_names(sm_go("sm_cf_cats")); ?></select>
923
- <?php _e('Categories', 'sitemap') ?>
924
- </label>
925
- </li>
926
- <li>
927
- <label for="sm_cf_arch_curr">
928
- <select id="sm_cf_arch_curr" name="sm_cf_arch_curr"><?php sm_freq_names(sm_go("sm_cf_arch_curr")); ?></select>
929
- <?php _e('The current archive of this month (Should be the same like your homepage)', 'sitemap') ?>
930
- </label>
931
- </li>
932
- <li>
933
- <label for="sm_cf_arch_old">
934
- <select id="sm_cf_arch_old" name="sm_cf_arch_old"><?php sm_freq_names(sm_go("sm_cf_arch_old")); ?></select>
935
- <?php _e('Older archives (Changes only if you edit an old post)', 'sitemap') ?>
936
- </label>
937
- </li>
938
- </ul>
939
- </fieldset>
940
-
941
- <!-- Priorities -->
942
- <fieldset name="sm_priorities" class="options">
943
- <legend><?php _e('Priorities', 'sitemap') ?></legend>
944
- <ul>
945
- <li>
946
- <label for="sm_pr_home">
947
- <select id="sm_pr_home" name="sm_pr_home"><?php sm_prio_names(sm_go("sm_pr_home")); ?></select>
948
- <?php _e('Homepage', 'sitemap') ?>
949
- </label>
950
- </li>
951
- <li>
952
- <label for="sm_pr_posts">
953
- <select id="sm_pr_posts" name="sm_pr_posts"><?php sm_prio_names(sm_go("sm_pr_posts")); ?></select>
954
- <?php _e('Posts (If auto calculation is disabled)', 'sitemap') ?>
955
- </label>
956
- </li>
957
- <li>
958
- <label for="sm_pr_posts_min">
959
- <select id="sm_pr_posts_min" name="sm_pr_posts_min"><?php sm_prio_names(sm_go("sm_pr_posts_min")); ?></select>
960
- <?php _e('Minimum post priority (Even if auto calculation is enabled)', 'sitemap') ?>
961
- </label>
962
- </li>
963
- <li>
964
- <label for="sm_pr_pages">
965
- <select id="sm_pr_pages" name="sm_pr_pages"><?php sm_prio_names(sm_go("sm_pr_pages")); ?></select>
966
- <?php _e('Static pages', 'sitemap'); ?>
967
- </label>
968
- </li>
969
- <li>
970
- <label for="sm_pr_cats">
971
- <select id="sm_pr_cats" name="sm_pr_cats"><?php sm_prio_names(sm_go("sm_pr_cats")); ?></select>
972
- <?php _e('Categories', 'sitemap') ?>
973
- </label>
974
- </li>
975
- <li>
976
- <label for="sm_pr_arch">
977
- <select id="sm_pr_arch" name="sm_pr_arch"><?php sm_prio_names(sm_go("sm_pr_arch")); ?></select>
978
- <?php _e('Archives', 'sitemap') ?>
979
- </label>
980
- </li>
981
- </ul>
982
- </fieldset>
983
- <div class="submit"><input type="submit" name="info_update" value="<?php _e('Update options', 'sitemap') ?>" /></div>
984
-
985
- <fieldset class="options">
986
- <legend><?php _e('Informations and support', 'sitemap') ?></legend>
987
- <p><?php echo str_replace("%s","<a href=\"http://www.arnebrachhold.de/2005/06/05/google-sitemaps-generator-v2-final\">http://www.arnebrachhold.de/2005/06/05/google-sitemaps-generator-v2-final</a>",__("Check %s for updates and comment there if you have any problems / questions / suggestions.",'sitemap')); ?></p>
988
- </fieldset>
989
- </form>
990
- </div> <?php
991
- }
992
- }
993
- #endregion
994
-
995
- #region sm_reg_admin
996
- if(!function_exists("sm_reg_admin")) {
997
- /**
998
- * Add the options page in the admin menu
999
- */
1000
- function sm_reg_admin() {
1001
- if (function_exists('add_options_page')) {
1002
- add_options_page('Sitemap Generator', 'Sitemap', 8, basename(__FILE__), 'sm_options_page');
1003
- }
1004
- }
1005
- }
1006
- #endregion
1007
-
1008
- /******** Sitemap Builder Helper functions ********/
1009
-
1010
- #region sm_addUrl
1011
- if(!function_exists("sm_addUrl")) {
1012
- /**
1013
- Adds a url to the sitemap
1014
-
1015
- @param $loc string The location (url) of the page
1016
- @param $lastMod string THe last Modification time in ISO 8601 format
1017
- @param $changeFreq string The change frequenty of the page, Valid values are "always", "hourly", "daily", "weekly", "monthly", "yearly" and "never".
1018
- @param $priorty float The priority of the page, between 0.0 and 1.0
1019
-
1020
- @return string The URL node
1021
- */
1022
- function sm_addUrl($loc,$lastMod,$changeFreq="monthly",$priority=0.5) {
1023
- global $sm_freq_names;
1024
- $s="";
1025
- $s.= "\t<url>\n";
1026
- $s.= "\t\t<loc>$loc</loc>\n";
1027
- if(!empty($lastMod) && $lastMod!="0000-00-00T00:00:00+00:00") $s.= "\t\t<lastmod>$lastMod</lastmod>\n";
1028
- if(!empty($changeFreq) && in_array($changeFreq,$sm_freq_names)) $s.= "\t\t<changefreq>$changeFreq</changefreq>\n";
1029
- if($priority!==false && $priority!=="") $s.= "\t\t<priority>$priority</priority>\n";
1030
- $s.= "\t</url>\n";
1031
- return $s;
1032
- }
1033
- }
1034
- #endregion
1035
-
1036
- #region sm_getComments
1037
- if(!function_exists("sm_getComments")) {
1038
- /**
1039
- * Retrieves the number of comments of a post in a asso. array
1040
- * The key is the postID, the value the number of comments
1041
- *
1042
- * @return array An array with postIDs and their comment count
1043
- */
1044
- function sm_getComments() {
1045
- global $wpdb;
1046
- $comments=array();
1047
-
1048
- //Query comments and add them into the array
1049
- $commentRes=$wpdb->get_results("SELECT `comment_post_ID` as `post_id`, COUNT(comment_ID) as `comment_count`, comment_approved FROM `" . $wpdb->comments . "` GROUP BY `comment_post_ID`");
1050
- if($commentRes) {
1051
- foreach($commentRes as $comment) {
1052
- $comments[$comment->post_id]=$comment->comment_count;
1053
- }
1054
  }
1055
- return $comments;
1056
- }
1057
- }
1058
- #endregion
1059
-
1060
- #region sm_countComments
1061
- if(!function_exists("sm_countComments")) {
1062
- /**
1063
- * Calculates the full number of comments from an sm_getComments() generated array
1064
- *
1065
- * @param $comments array The Array with posts and c0mment count
1066
- * @see sm_getComments
1067
- * @return The full number of comments
1068
- */
1069
- function sm_countComments($comments) {
1070
- $commentCount=0;
1071
- foreach($comments AS $k=>$v) {
1072
- $commentCount+=$v;
1073
- }
1074
- return $commentCount;
1075
- }
1076
- }
1077
- #endregion
1078
-
1079
- #region sm_buildSitemap
1080
- if(!function_exists("sm_buildSitemap")) {
1081
- /**
1082
- Builds the sitemap and writes it into a xml file.
1083
-
1084
- @return array An array with messages such as failed writes etc.
1085
- */
1086
- function sm_buildSitemap() {
1087
- global $wpdb, $sm_pages;
1088
-
1089
- //Return messages to the user in frontend
1090
- $messages=array();
1091
-
1092
- //Debug mode?
1093
- $debug=sm_go("sm_b_debug");
1094
-
1095
- //Content of the XML file
1096
- $s='<?xml version="1.0" encoding="UTF-8"' . '?' . '>'. "\n";
1097
-
1098
- //WordPress powered... and me! :D
1099
- $s.="<!-- generator=\"wordpress/" . get_bloginfo('version') . "\" -->\n";
1100
- $s.="<!-- sitemap-generator-url=\"http://www.arnebrachhold.de\" sitemap-generator-version=\"2.7.1\" -->\n";
1101
 
1102
- //All comments as an asso. Array (postID=>commentCount)
1103
- $comments=(sm_go("sm_b_auto_prio")?sm_getComments():array());
 
 
 
 
 
 
 
 
1104
 
1105
- //Full number of comments
1106
- $commentCount=sm_countComments($comments);
 
1107
 
1108
- if($debug && sm_go("sm_b_auto_prio")) {
1109
- $s.="<!-- Debug: Total comment count: " . $commentCount . " -->\n";
1110
  }
1111
 
1112
- //Go XML!
1113
- $s.='<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">'. "\n";
 
1114
 
1115
- //Add the home page (WITH a slash!!)
1116
- if(sm_go("sm_in_home")) {
1117
- $s.=sm_addUrl(trailingslashit(get_bloginfo('url')),mysql2date('Y-m-d\TH:i:s+00:00', get_lastpostmodified('GMT'), false),sm_go("sm_cf_home"),sm_go("sm_pr_home"));
1118
  }
1119
 
1120
- //Add the posts
1121
- if(sm_go("sm_in_posts")) {
1122
- if($debug) $s.="<!-- Debug: Start Postings -->\n";
1123
-
1124
- //Retrieve all posts and static pages (if enabled)
1125
- $postRes=$wpdb->get_results("SELECT `ID` ,`post_modified`, `post_date`, `post_status` FROM `" . $wpdb->posts . "` WHERE post_status = 'publish' " . (sm_go("sm_in_pages")?"OR post_status='static'":"") . " ORDER BY post_modified DESC");
1126
-
1127
- $minPrio=sm_go("sm_pr_posts_min");
1128
-
1129
- if($postRes) {
1130
- //Count of all posts
1131
- $postCount=count($postRes);
1132
-
1133
- //Cycle through all posts and add them
1134
- foreach($postRes as $post) {
1135
- //Default Priority if auto calc is disabled
1136
- $prio=0;
1137
- if($post->post_status=="static") {
1138
- //Priority for static pages
1139
- $prio=sm_go("sm_pr_pages");
1140
- } else {
1141
- //Priority for normal posts
1142
- $prio=sm_go("sm_pr_posts");
1143
- }
1144
-
1145
- //If priority calc is enabled, calc (but only for posts)!
1146
- if(sm_go("sm_b_auto_prio") && $post->post_status!="static") {
1147
- //Comment count for this post
1148
- $cmtcnt=(array_key_exists($post->ID,$comments)?$comments[$post->ID]:0);
1149
-
1150
- //Percentage of comments for this post
1151
- $prio=($cmtcnt>0&&$commentCount>0?round(($cmtcnt*100/$commentCount)/100,1):0);
1152
-
1153
- if($debug) {
1154
- $s.="<!-- Debug: Priority report of postID " . $post->ID . ": Comments: " . $cmtcnt . " of " . $commentCount . " = " . $prio . " points -->\n";
1155
- }
1156
- }
1157
-
1158
- if($post->post_status!="static" && !empty($minPrio) && $prio<$minPrio) {
1159
- $prio=sm_go("sm_pr_posts_min");
1160
- }
1161
-
1162
- //Add it
1163
- $s.=sm_addUrl(get_permalink($post->ID),mysql2date('Y-m-d\TH:i:s+00:00', (!empty($post->post_modified) && $post->post_modified!='0000-00-00 00:00:00'?$post->post_modified:$post->post_date), false),sm_go(($post->post_status=="static"?"sm_cf_posts":"sm_cf_pages")),$prio);
1164
- }
1165
- }
1166
- if($debug) $s.="<!-- Debug: End Postings -->\n";
1167
  }
1168
 
1169
- //Add the cats
1170
- if(sm_go("sm_in_cats")) {
1171
- if($debug) $s.="<!-- Debug: Start Cats -->\n";
1172
-
1173
- //Add Categories... Big thanx to Rodney Shupe (http://www.shupe.ca) for the SQL
1174
- //$catsRes=$wpdb->get_results("SELECT cat_ID AS ID FROM $wpdb->categories");
1175
- $catsRes=$wpdb->get_results("SELECT cat_ID AS ID, MAX(post_modified) AS last_mod FROM `" . $wpdb->posts . "` p LEFT JOIN `" . $wpdb->post2cat . "` pc ON p.ID = pc.post_id LEFT JOIN `" . $wpdb->categories . "` c ON pc.category_id = c.cat_ID WHERE post_status = 'publish' GROUP BY cat_ID");
1176
- if($catsRes) {
1177
- foreach($catsRes as $cat) {
1178
- $s.=sm_addUrl(get_category_link($cat->ID),mysql2date('Y-m-d\TH:i:s+00:00', $cat->last_mod, false),sm_go("sm_cf_cats"),sm_go("sm_pr_cats"));
1179
- }
1180
- }
1181
- if($debug) $s.="<!-- Debug: End Cats -->\n";
1182
  }
1183
- //Add the archives
1184
- if(sm_go("sm_in_arch")) {
1185
- if($debug) $s.="<!-- Debug: Start Archive -->\n";
1186
- $now = current_time('mysql');
1187
- //Add archives... Big thanx to Rodney Shupe (http://www.shupe.ca) for the SQL
1188
- $arcresults = $wpdb->get_results("SELECT DISTINCT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, MAX(post_date) as last_mod, count(ID) as posts FROM $wpdb->posts WHERE post_date < '$now' AND post_status = 'publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC");
1189
- //$arcresults = $wpdb->get_results("SELECT DISTINCT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM $wpdb->posts WHERE post_date < '$now' AND post_status = 'publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC");
1190
- if ($arcresults) {
1191
- foreach ($arcresults as $arcresult) {
1192
-
1193
- $url = get_month_link($arcresult->year, $arcresult->month);
1194
- $changeFreq="";
1195
-
1196
- //Archive is the current one
1197
- if($arcresult->month==date("n") && $arcresult->year==date("Y")) {
1198
- $changeFreq=sm_go("sm_cf_arch_curr");
1199
- } else { // Archive is older
1200
- $changeFreq=sm_go("sm_cf_arch_old");
1201
- }
1202
-
1203
- $s.=sm_addUrl($url,mysql2date('Y-m-d\TH:i:s+00:00', $arcresult->last_mod, false),$changeFreq,sm_go("sm_pr_arch"));
1204
- }
1205
- }
1206
- if($debug) $s.="<!-- Debug: End Archive -->\n";
1207
  }
1208
 
1209
- //Add the custom pages
1210
- if($debug) $s.="<!-- Debug: Start Custom Pages -->\n";
1211
- if($sm_pages && is_array($sm_pages) && count($sm_pages)>0) {
1212
- //#type $page sm_page
1213
- foreach($sm_pages AS $page) {
1214
- $s.=sm_addUrl($page->GetUrl(),($page->getLastMod()>0?date('Y-m-d\TH:i:s+00:00',$page->getLastMod()):0),$page->getChangeFreq(),$page->getPriority());
1215
- }
1216
  }
1217
- if($debug) $s.="<!-- Debug: End Custom Pages -->\n";
1218
 
1219
- if($debug) $s.="<!-- Debug: Start additional urls -->\n";
1220
-
1221
- $s = apply_filters("sm_buildmap",$s);
1222
-
1223
- if($debug) $s.="<!-- Debug: End additional urls -->\n";
1224
-
1225
- $s.="</urlset>";
1226
 
1227
- $pingUrl="";
 
 
1228
 
1229
- //Write normal sitemap file
1230
- if(sm_go("sm_b_xml")) {
1231
- $fileName = sm_getXmlPath();
1232
- $f=@fopen($fileName,"w");
1233
- if($f) {
1234
- if(fwrite($f,$s)) {
1235
- $pingUrl=sm_getXmlUrl();
1236
- $messages[count($messages)]=__("Successfully built sitemap file:",'sitemap') . "<br />" . "- " . __("URL:",'sitemap') . " <a href=\"" . sm_getXmlUrl() . "\">" . sm_getXmlUrl() . "</a><br />- " . __("Path:",'sitemap') . " " . sm_getXmlPath();
1237
- }
1238
- fclose($f);
1239
- } else {
1240
- $messages[count($messages)]=str_replace("%s",sm_getXmlPath(),__("Could not write into %s",'sitemap'));
1241
- }
1242
  }
1243
 
1244
- //Write gzipped sitemap file
1245
- if(sm_go("sm_b_gzip")===true && function_exists("gzencode")) {
1246
- $fileName = sm_getZipPath();
1247
- $f=@fopen($fileName,"w");
1248
- if($f) {
1249
- if(fwrite($f,gzencode($s))) {
1250
- $pingUrl=sm_getZipUrl();
1251
- $messages[count($messages)]=__("Successfully built gzipped sitemap file:",'sitemap') . "<br />" . "- " . __("URL:",'sitemap') . " <a href=\"" . sm_getZipUrl() . "\">" . sm_getZipUrl() . "</a><br />- " . __("Path:",'sitemap') . " " . sm_getZipPath();
1252
- }
1253
- fclose($f);
1254
- } else {
1255
- $messages[count($messages)]=str_replace("%s",sm_getZipPath(),__("Could not write into %s",'sitemap'));
1256
- }
1257
  }
1258
 
1259
- //Ping Google
1260
- if(sm_go("sm_b_ping") && $pingUrl!="") {
1261
- $pingUrl="http://www.google.com/webmasters/sitemaps/ping?sitemap=" . urlencode($pingUrl);
1262
- $pingres=@wp_remote_fopen($pingUrl);
1263
-
1264
- if($pingres==NULL || $pingres===false) {
1265
- $messages[count($messages)]=str_replace("%s","<a href=\"$pingUrl\">$pingUrl</a>",__("Could not ping to Google at %s",'sitemap'));
1266
- } else {
1267
- $messages[count($messages)]=str_replace("%s","<a href=\"$pingUrl\">$pingUrl</a>",__("Successfully pinged Google at %s",'sitemap'));
1268
- }
1269
  }
1270
 
1271
- //done...
1272
- return $messages;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1273
  }
1274
  }
1275
- #endregion
1276
-
1277
- /******** Other Stuff ********/
1278
 
1279
- #region Register to WordPress API
1280
- //Loading language file...
1281
- //load_plugin_textdomain('sitemap');
1282
- //Hmm, doesn't work if the plugin file has its own directory.
1283
- //Let's make it our way... load_plugin_textdomain() searches only in the wp-content/plugins dir.
1284
- $sm_locale = get_locale();
1285
- $sm_mofile = dirname(__FILE__) . "/sitemap-$sm_locale.mo";
1286
- load_textdomain('sitemap', $sm_mofile);
1287
 
1288
- //Register the sitemap creator to wordpress...
1289
- add_action('admin_menu', 'sm_reg_admin');
1290
 
1291
- //Register to various events... @WordPress Dev Team: I wish me a 'public_content_changed' action :)
1292
- //Only register of the SM_ACTIVE constant is defined!
1293
- if(defined("SM_ACTIVE") && SM_ACTIVE===true) {
1294
- //If a new post gets published
1295
- add_action('publish_post', 'sm_buildSitemap');
1296
 
1297
- //Existing post gets edited (published or not)
1298
- add_action('edit_post', 'sm_buildSitemap');
 
 
 
1299
 
1300
- //Existing posts gets deleted (published or not)
1301
- add_action('delete_post', 'sm_buildSitemap');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1302
  }
1303
  #endregion
1304
-
1305
- ?>
1
  <?php
2
  /*
3
 
4
+ $Id: sitemap.php 19712 2007-09-24 11:32:47Z arnee $
5
 
6
+ XML Sitemap Generator for WordPress
7
  ==============================================================================
8
 
9
+ This generator will create a sitemaps.org compliant sitemap of your WordPress blog.
10
+ Currently homepage, posts, static pages, categories, archives and author pages are supported.
11
 
12
+ The priority of a post depends on its comments. You can choose the way the priority
13
+ is calculated in the options screen.
14
 
15
  Feel free to visit my website under www.arnebrachhold.de or contact me at
16
+ himself [at] arnebrachhold [dot] de
17
+
18
+ Have fun!
19
+ Arne
20
+
21
+ Installation:
22
+ ==============================================================================
23
+ 1. Upload the full directory into your wp-content/plugins directory
24
+ 2. Make your blog directory writeable OR create two files called sitemap.xml
25
+ and sitemap.xml.gz and make them writeable via CHMOD In most cases, your blog directory is already writeable.
26
+ 2. Activate it in the Plugin options
27
+ 3. Edit or publish a post or click on Rebuild Sitemap on the Sitemap Administration Interface
28
 
29
 
30
  Info for WordPress:
31
  ==============================================================================
32
+ Plugin Name: Google XML Sitemaps
33
+ Plugin URI: http://www.arnebrachhold.de/redir/sitemap-home/
34
+ Description: This plugin will generate a sitemaps.org compatible sitemap of your WordPress blog which is supported by Ask.com, Google, MSN Search and YAHOO. <a href="options-general.php?page=sitemap.php">Configuration Page</a>
35
+ Version: 3.0
36
  Author: Arne Brachhold
37
  Author URI: http://www.arnebrachhold.de/
38
 
39
 
40
  Contributors:
41
  ==============================================================================
42
+ Basic Idea Michael Nguyen http://www.socialpatterns.com/
43
+ SQL Improvements Rodney Shupe http://www.shupe.ca/
44
+ Japanse Lang. File Hirosama http://hiromasa.zone.ne.jp/
45
+ Spanish lang. File C�sar G�mez Mart�n http://www.cesargomez.org/
46
+ Italian lang. File Stefano Aglietti http://wordpress-it.it/
47
+ Trad.Chinese File Kirin Lin http://kirin-lin.idv.tw/
48
+ Simpl.Chinese File june6 http://www.june6.cn/
49
+ Swedish Lang. File Tobias Bergius http://tobiasbergius.se/
50
+ Czech Lang. File Peter Kahoun http://kahi.cz
51
+ Ping Code Template 1 James http://www.adlards.com/
52
+ Ping Code Template 2 John http://www.jonasblog.com/
53
+ Bug Report Brad http://h3h.net/
54
+ Bug Report Christian Aust http://publicvoidblog.de/
55
+ Bug Report Joseph Abboud
56
+ Bug Report Mike http://baptiste.us/
57
+ Bug Report Peter http://fastagent.de/
58
+ Bug Report Glenn http://publicityship.com.au/
59
+ Bug Report froosh
60
+ File Handling VJTD3 http://www.vjtd3.com/
61
 
62
  Code, Documentation, Hosting and all other Stuff:
63
+ Arne Brachhold http://www.arnebrachhold.de/
64
 
65
  Thanks to all contributors and bug reporters! :)
66
 
67
 
68
  Release History:
69
  ==============================================================================
70
+ 2005-06-05 1.0 First release
71
+ 2005-06-05 1.1 Added archive support
72
+ 2005-06-05 1.2 Added category support
73
+ 2005-06-05 2.0a Beta: Real Plugin! Static file generation, Admin UI
74
+ 2005-06-05 2.0 Various fixes, more help, more comments, configurable filename
75
+ 2005-06-07 2.01 Fixed 2 Bugs: 147 is now _e(strval($i)); instead of _e($i); 344 uses a full < ?php instead of < ?
76
+ Thanks to Christian Aust for reporting this :)
77
+ 2005-06-07 2.1 Correct usage of last modification date for cats and archives (thx to Rodney Shupe (http://www.shupe.ca/))
78
+ Added support for .gz generation
79
+ Fixed bug which ignored different post/page priorities
80
+ Should support now different wordpress/admin directories
81
+ 2005-06-07 2.11 Fixed bug with hardcoded table table names instead of the $wpd vars
82
+ 2005-06-07 2.12 Changed SQL Statement of the categories to get it work on MySQL 3
83
+ 2005-06-08 2.2 Added language file support:
84
+ - Japanese Language Files and code modifications by hiromasa (http://hiromasa.zone.ne.jp/)
85
+ - German Language File by Arne Brachhold (http://www.arnebrachhold.de)
86
+ 2005-06-14 2.5 Added support for external pages
87
+ Added support for Google Ping
88
+ Added the minimum Post Priority option
89
+ Added Spanish Language File by C�sar G�mez Mart�n (http://www.cesargomez.org/)
90
+ Added Italian Language File by Stefano Aglietti (http://wordpress-it.it/)
91
+ Added Traditional Chine Language File by Kirin Lin (http://kirin-lin.idv.tw/)
92
+ 2005-07-03 2.6 Added support to store the files at a custom location
93
+ Changed the home URL to have a slash at the end
94
+ Required admin-functions.php so the script will work with external calls, wp-mail for example
95
+ Added support for other plugins to add content to the sitemap via add_filter()
96
+ 2005-07-20 2.7 Fixed wrong date format in additional pages
97
+ Added Simplified Chinese Language Files by june6 (http://www.june6.cn/)
98
+ Added Swedish Language File by Tobias Bergius (http://tobiasbergius.se/)
99
+ 2006-01-07 3.0b Added different priority calculation modes and introduced an API to create custom ones
100
+ Added support to use the Popularity Contest plugin by Alex King to calculate post priority
101
+ Added Button to restore default configuration
102
+ Added several links to homepage and support
103
+ Added option to exclude password protected posts
104
+ Added function to start sitemap creation via GET and a secret key
105
+ Posts and pages marked for publish with a date in the future won't be included
106
+ Improved compatiblity with other plugins
107
+ Improved speed and optimized settings handling
108
+ Improved user-interface
109
+ Recoded plugin architecture which is now fully OOP
110
+ 2006-01-07 3.0b1 Changed the way for hook support to be PHP5 and PHP4 compatible
111
+ Readded support for tools like w.Bloggar
112
+ Fixed "doubled-content" bug with WP2
113
+ Added xmlns to enable validation
114
+ 2006-03-01 3.0b3 More performance
115
+ More caching
116
+ Better support for Popularity Contest and WP 2.x
117
+ 2006-11-16 3.0b4 Fixed bug with option SELECTS
118
+ Decreased memory usage which should solve timeout and memory problems
119
+ Updated namespace to support YAHOO and MSN
120
+ 2007-01-19 3.0b5 Javascripted page editor
121
+ WP 2 Design
122
+ YAHOO notification
123
+ New status report, removed ugly logfiles
124
+ Better Popularity Contest Support
125
+ Fixed double backslashes on windows systems
126
+ Added option to specify time limit and memory limit
127
+ Added option to define a XSLT stylesheet and added a default one
128
+ Fixed bug with sub-pages. Thanks to:
129
+ - Mike Baptiste (http://baptiste.us),
130
+ - Peter Claus Lamprecht (http://fastagent.de)
131
+ - Glenn Nicholas (http://publicityship.com.au)
132
+ Improved file handling, thanks to VJTD3 (http://www.VJTD3.com)
133
+ WP 2.1 improvements
134
+ 2007-01-23 3.0b6 Use memory_get_peak_usage instead of memory_get_usage if available
135
+ Removed the usage of REQUEST_URI since it not correct in all environments
136
+ Fixed that sitemap.xml.gz was not compressed
137
+ Added compat function "stripos" for PHP4 (Thanks to Joseph Abboud!)
138
+ Streamlined some code
139
+ 2007-05-17 3.0b7 Added option to include the author pages like /author/john
140
+ Small enhancements, removed stripos dependency and the added compat function
141
+ Added check to not build the sitemap if importing posts
142
+ Fixed missing domain parameter for translator name
143
+ Fixed WP 2.1 / Pre 2.1 post / pages database changes
144
+ Fixed wrong XSLT location (Thanks froosh)
145
+ Added Ask.com notification
146
+ Removed unused javascript
147
+ 2007-07-22 3.0b8 Changed category SQL to prevent unused cats from beeing included
148
+ Plugin will be loaded on "init" instead of direclty after the file has been loaded.
149
+ Added support for robots.txt modification
150
+ Switched YAHOO ping API from YAHOO Web Services to the "normal" ping service which doesn't require an app id
151
+ Search engines will only be pinged if the sitemap file has changed
152
+ 2007-09-02 3.0b9 Added tag support for WordPress 2.3
153
+ Now using post_date_gmt instead of post_date everywhere
154
+ Fixed archive bug with static pages (Thanks to Peter Claus Lamprecht)
155
+ Fixed some missing translation domains, thanks to Kirin Lin!
156
+ Added Czech translation files for 2.7.1, thanks to Peter Kahoun (http://kahi.cz)
157
+ 2007-09-04 3.0b10 Added category support for WordPress 2.3
158
+ Fixed bug with empty URLs in sitemap
159
+ Repaired GET building
160
+ Added more info on debug mode
161
+ 2007-09-23 3.0b11 Changed mysql queries to unbuffered queries
162
+ Uses MUCH less memory
163
+ Fixed really stupid bug with search engine pings
164
+ Option to set how many posts will be included
165
+ 2007-09-24 3.0 Yeah, 3.0 Final after one and a half year ;)
166
+ Removed useless functions
167
+
168
+
169
  Maybe Todo:
170
  ==============================================================================
 
 
171
  - Your wishes :)
172
 
173
+
174
  License:
175
  ==============================================================================
176
+ Copyright 2005, 2006, 2007 ARNE BRACHHOLD (email : himself - arnebrachhold - de)
177
 
178
  This program is free software; you can redistribute it and/or modify
179
  it under the terms of the GNU General Public License as published by
189
  along with this program; if not, write to the Free Software
190
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
191
 
192
+
193
  Developer Documentation
194
  ==============================================================================
195
+
196
  Adding other pages to the sitemap via other plugins
197
+
198
+ This plugin uses the action system of WordPress to allow other plugins
199
+ to add urls to the sitemap. Simply add your function with add_action to
200
  the list and the plugin will execute yours every time the sitemap is build.
201
+ Use the static method "GetInstance" to get the generator and AddUrl method
202
+ to add your content.
203
 
204
  Sample:
205
+ function your_pages() {
206
+ $generatorObject = &GoogleSitemapGenerator::GetInstance(); //Please note the "&" sign!
207
+ if($generatorObject!=null) $generatorObject->AddUrl("http://blog.uri/tags/hello/",time(),"daily",0.5);
208
  }
209
+ add_action("sm_buildmap","your_pages");
210
+
211
+ Parameters:
212
+ - The URL to the page
213
+ - The last modified data, as a UNIX timestamp (optional)
214
+ - The Change Frequency (daily, hourly, weekly and so on) (optional)
215
+ - The priority 0.0 to 1.0 (optional)
216
+
217
+ ===============================================
218
+
219
+ Adding additional PriorityProviders
220
+
221
+ This plugin uses several classes to calculate the post priority.
222
+ You can register your own provider and choose it at the options screen.
223
+
224
+ Your class has to extend the GoogleSitemapGeneratorPrioProviderBase class
225
+ which has a default constructor and a method called GetPostPriority
226
+ which you can override.
227
+
228
+ Look at the GoogleSitemapGeneratorPrioByPopularityContestProvider class
229
+ for an example.
230
 
231
+ To register your provider to the sitemap generator, use the following filter:
 
232
 
233
+ add_filter("sm_add_prio_provider","AddMyProvider");
 
 
 
 
 
234
 
235
+ Your function could look like this:
 
 
 
 
 
 
236
 
237
+ function AddMyProvider($providers) {
238
+ array_push($providers,"MyProviderClass");
239
+ return $providers;
240
+ }
241
+
242
+ Note that you have to return the modified list!
243
  */
244
 
245
+ //Enable for dev! Good code doesn't generate any notices...
246
  //error_reporting(E_ALL);
247
+ //ini_set("display_errors",1);
248
 
 
249
 
250
+ #region PHP5 compat functions
251
+ if(!function_exists('file_get_contents')) {
252
+ /**
253
+ * Replace file_get_contents()
254
+ *
255
+ * @category PHP
256
+ * @package PHP_Compat
257
+ * @link http://php.net/function.file_get_contents
258
+ * @author Aidan Lister <aidan - php - net>
259
+ * @version $Revision: 1.21 $
260
+ * @internal resource_context is not supported
261
+ * @since PHP 5
262
+ */
263
+ if (!function_exists('file_get_contents')) {
264
+ function file_get_contents($filename, $incpath = false, $resource_context = null) {
265
+ if (false === $fh = fopen($filename, 'rb', $incpath)) {
266
+ user_error('file_get_contents() failed to open stream: No such file or directory', E_USER_WARNING);
267
+ return false;
268
+ }
269
+
270
+ clearstatcache();
271
+ if ($fsize = @filesize($filename)) {
272
+ $data = fread($fh, $fsize);
273
+ } else {
274
+ $data = '';
275
+ while (!feof($fh)) {
276
+ $data .= fread($fh, 8192);
277
+ }
278
+ }
279
+
280
+ fclose($fh);
281
+ return $data;
282
+ }
283
+ }
284
  }
 
 
 
285
 
286
+ if(!function_exists('file_put_contents')) {
287
+
288
+ if (!defined('FILE_USE_INCLUDE_PATH')) {
289
+ define('FILE_USE_INCLUDE_PATH', 1);
290
+ }
291
+
292
+ if (!defined('LOCK_EX')) {
293
+ define('LOCK_EX', 2);
294
+ }
295
+
296
+ if (!defined('FILE_APPEND')) {
297
+ define('FILE_APPEND', 8);
298
+ }
299
+
300
+
301
  /**
302
+ * Replace file_put_contents()
303
+ *
304
+ * @category PHP
305
+ * @package PHP_Compat
306
+ * @link http://php.net/function.file_put_contents
307
+ * @author Aidan Lister <aidan - php - net>
308
+ * @version $Revision: 1.25 $
309
+ * @internal resource_context is not supported
310
+ * @since PHP 5
311
+ * @require PHP 4.0.0 (user_error)
312
  */
313
+ function file_put_contents($filename, $content, $flags = null, $resource_context = null) {
314
+ // If $content is an array, convert it to a string
315
+ if (is_array($content)) {
316
+ $content = implode('', $content);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
317
  }
 
318
 
319
+ // If we don't have a string, throw an error
320
+ if (!is_scalar($content)) {
321
+ user_error('file_put_contents() The 2nd parameter should be either a string or an array',E_USER_WARNING);
322
+ return false;
 
 
323
  }
324
 
325
+ // Get the length of data to write
326
+ $length = strlen($content);
 
 
 
 
 
327
 
328
+ // Check what mode we are using
329
+ $mode = ($flags & FILE_APPEND)?'a':'wb';
 
 
 
 
 
330
 
331
+ // Check if we're using the include path
332
+ $use_inc_path = ($flags & FILE_USE_INCLUDE_PATH)?true:false;
 
 
 
 
 
333
 
334
+ // Open the file for writing
335
+ if (($fh = @fopen($filename, $mode, $use_inc_path)) === false) {
336
+ user_error('file_put_contents() failed to open stream: Permission denied',E_USER_WARNING);
337
+ return false;
 
 
338
  }
339
 
340
+ // Attempt to get an exclusive lock
341
+ $use_lock = ($flags & LOCK_EX) ? true : false ;
342
+ if ($use_lock === true) {
343
+ if (!flock($fh, LOCK_EX)) {
344
+ return false;
345
+ }
346
  }
347
 
348
+ // Write to the file
349
+ $bytes = 0;
350
+ if (($bytes = @fwrite($fh, $content)) === false) {
351
+ $errormsg = sprintf('file_put_contents() Failed to write %d bytes to %s',$length,$filename);
352
+ user_error($errormsg, E_USER_WARNING);
353
+ return false;
354
  }
355
 
356
+ // Close the handle
357
+ @fclose($fh);
 
 
 
 
 
358
 
359
+ // Check all the data was written
360
+ if ($bytes != $length) {
361
+ $errormsg = sprintf('file_put_contents() Only %d of %d bytes written, possibly out of free disk space.',$bytes,$length);
362
+ user_error($errormsg, E_USER_WARNING);
363
+ return false;
 
364
  }
365
 
366
+ // Return length
367
+ return $bytes;
 
 
 
 
 
368
  }
369
+
370
  }
371
  #endregion
372
 
373
+ /**
374
+ * Represents the status (success and failures) of a building process
375
+ * @author Arne Brachhold
376
+ * @package sitemap
377
+ * @since 3.0b5
378
+ */
379
+ class GoogleSitemapGeneratorStatus {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
380
 
381
+ function GoogleSitemapGeneratorStatus() {
382
+ $this->_startTime = $this->GetMicrotimeFloat();
383
+
384
+ $exists = get_option("sm_status");
385
+
386
+ if($exists === false) add_option("sm_status","","Status","no");
387
+
388
+ $this->Save();
389
+ }
390
+
391
+ function Save() {
392
+ update_option("sm_status",$this);
393
+ }
394
+
395
+ function Load() {
396
+ $status = @get_option("sm_status");
397
+ if(is_a($status,"GoogleSitemapGeneratorStatus")) return $status;
398
+ else return null;
399
+ }
400
+
401
+ /**
402
+ * @var float $_startTime The start time of the building process
403
+ * @access private
404
+ */
405
+ var $_startTime = 0;
406
+
407
+ /**
408
+ * @var float $_endTime The end time of the building process
409
+ * @access private
410
+ */
411
+ var $_endTime = 0;
412
+
413
+ /**
414
+ * @var bool $$_hasChanged Indicates if the sitemap content has changed
415
+ * @access private
416
+ */
417
+ var $_hasChanged = true;
418
+
419
+ /**
420
+ * @var int $_memoryUsage The amount of memory used in bytes
421
+ * @access private
422
+ */
423
+ var $_memoryUsage = 0;
424
+
425
+ /**
426
+ * @var int $_lastPost The number of posts processed. This value is updated every 50 posts.
427
+ * @access private
428
+ */
429
+ var $_lastPost = 0;
430
+
431
+ /**
432
+ * @var int $_lastTime The time when the last step-update occured. This value is updated every 50 posts.
433
+ * @access private
434
+ */
435
+ var $_lastTime = 0;
436
+
437
+ function End($hasChanged = true) {
438
+ $this->_endTime = $this->GetMicrotimeFloat();
439
+
440
+ $this->SetMemoryUsage();
441
+
442
+ $this->_hasChanged = $hasChanged;
443
+
444
+ $this->Save();
445
+ }
446
+
447
+ function SetMemoryUsage() {
448
+ if(function_exists("memory_get_peak_usage")) {
449
+ $this->_memoryUsage = memory_get_peak_usage(true);
450
+ } else if(function_exists("memory_get_usage")) {
451
+ $this->_memoryUsage = memory_get_usage(true);
452
+ }
453
+ }
454
+
455
+ function GetMemoryUsage() {
456
+ return round($this->_memoryUsage / 1024 / 1024,2);
457
+ }
458
+
459
+ function SaveStep($postCount) {
460
+ $this->SetMemoryUsage();
461
+ $this->_lastPost = $postCount;
462
+ $this->_lastTime = $this->GetMicrotimeFloat();
463
+
464
+ $this->Save();
465
+ }
466
+
467
+ function GetTime() {
468
+ return round($this->_endTime - $this->_startTime,2);
469
+ }
470
+
471
+ function GetLastTime() {
472
+ return round($this->_lastTime - $this->_startTime,2);
473
+ }
474
+
475
+ function GetLastPost() {
476
+ return $this->_lastPost;
477
+ }
478
+
479
+ var $_usedXml = false;
480
+ var $_xmlSuccess = false;
481
+ var $_xmlPath = '';
482
+ var $_xmlUrl = '';
483
+
484
+ function StartXml($path,$url) {
485
+ $this->_usedXml = true;
486
+ $this->_xmlPath = $path;
487
+ $this->_xmlUrl = $url;
488
+
489
+ $this->Save();
490
+ }
491
+
492
+ function EndXml($success) {
493
+ $this->_xmlSuccess = $success;
494
+
495
+ $this->Save();
496
+ }
497
+
498
+
499
+ var $_usedZip = false;
500
+ var $_zipSuccess = false;
501
+ var $_zipPath = '';
502
+ var $_zipUrl = '';
503
+
504
+ function StartZip($path,$url) {
505
+ $this->_usedZip = true;
506
+ $this->_zipPath = $path;
507
+ $this->_zipUrl = $url;
508
+
509
+ $this->Save();
510
+ }
511
+
512
+ function EndZip($success) {
513
+ $this->_zipSuccess = $success;
514
+
515
+ $this->Save();
516
+ }
517
+
518
+ var $_usedGoogle = false;
519
+ var $_gooogleSuccess = false;
520
+ var $_googleStartTime = 0;
521
+ var $_googleEndTime = 0;
522
+
523
+ function StartGooglePing() {
524
+ $this->_usedGoogle = true;
525
+ $this->_googleStartTime = $this->GetMicrotimeFloat();
526
+
527
+ $this->Save();
528
+ }
529
+
530
+ function EndGooglePing($success) {
531
+ $this->_googleEndTime = $this->GetMicrotimeFloat();
532
+ $this->_gooogleSuccess = $success;
533
+
534
+ $this->Save();
535
+ }
536
+
537
+ function GetGoogleTime() {
538
+ return round($this->_googleEndTime - $this->_googleStartTime,2);
539
+ }
540
+
541
+ var $_usedYahoo = false;
542
+ var $_yahooSuccess = false;
543
+ var $_yahooStartTime = 0;
544
+ var $_yahooEndTime = 0;
545
+
546
+ function StartYahooPing() {
547
+ $this->_usedYahoo = true;
548
+ $this->_yahooStartTime = $this->GetMicrotimeFloat();
549
+
550
+ $this->Save();
551
+ }
552
+
553
+ function EndYahooPing($success) {
554
+ $this->_yahooEndTime = $this->GetMicrotimeFloat();
555
+ $this->_yahooSuccess = $success;
556
+
557
+ $this->Save();
558
+ }
559
+
560
+ function GetYahooTime() {
561
+ return round($this->_yahooEndTime - $this->_yahooStartTime,2);
562
+ }
563
+
564
+ var $_usedAsk = false;
565
+ var $_askSuccess = false;
566
+ var $_askStartTime = 0;
567
+ var $_askEndTime = 0;
568
+
569
+ function StartAskPing() {
570
+ $this->_usedAsk = true;
571
+ $this->_askStartTime = $this->GetMicrotimeFloat();
572
+
573
+ $this->Save();
574
+ }
575
+
576
+ function EndAskPing($success) {
577
+ $this->_askEndTime = $this->GetMicrotimeFloat();
578
+ $this->_askSuccess = $success;
579
+
580
+ $this->Save();
581
+ }
582
+
583
+ function GetAskTime() {
584
+ return round($this->_askEndTime - $this->_askStartTime,2);
585
+ }
586
+
587
+ function GetMicrotimeFloat() {
588
+ list($usec, $sec) = explode(" ", microtime());
589
+ return ((float)$usec + (float)$sec);
590
+ }
591
  }
592
 
593
  /**
594
+ * Represents an item in the page list
595
+ * @author Arne Brachhold
596
+ * @package sitemap
597
+ * @since 3.0
598
  */
599
+ class GoogleSitemapGeneratorPage {
600
+
601
+ /**
602
+ * @var string $_url Sets the URL or the relative path to the blog dir of the page
603
+ * @access private
604
+ */
605
+ var $_url;
606
+
607
+ /**
608
+ * @var float $_priority Sets the priority of this page
609
+ * @access private
610
+ */
611
+ var $_priority;
612
+
613
+ /**
614
+ * @var string $_changeFreq Sets the chanfe frequency of the page. I want Enums!
615
+ * @access private
616
+ */
617
+ var $_changeFreq;
618
+
619
+ /**
620
+ * @var int $_lastMod Sets the lastMod date as a UNIX timestamp.
621
+ * @access private
622
+ */
623
+ var $_lastMod;
624
+
625
+ /**
626
+ * Initialize a new page object
627
+ *
628
+ * @since 3.0
629
+ * @access public
630
+ * @author Arne Brachhold
631
+ * @param bool $enabled Should this page be included in thesitemap
632
+ * @param string $url The URL or path of the file
633
+ * @param float $priority The Priority of the page 0.0 to 1.0
634
+ * @param string $changeFreq The change frequency like daily, hourly, weekly
635
+ * @param int $lastMod The last mod date as a unix timestamp
636
+ */
637
+ function GoogleSitemapGeneratorPage($url="",$priority=0.0,$changeFreq="never",$lastMod=0) {
638
+ $this->SetUrl($url);
639
+ $this->SetProprity($priority);
640
+ $this->SetChangeFreq($changeFreq);
641
+ $this->SetLastMod($lastMod);
642
+ }
643
+
644
+ /**
645
+ * Returns the URL of the page
646
+ *
647
+ * @return string The URL
648
+ */
649
+ function GetUrl() {
650
+ return $this->_url;
651
+ }
652
+
653
+ /**
654
+ * Sets the URL of the page
655
+ *
656
+ * @param string $url The new URL
657
+ */
658
+ function SetUrl($url) {
659
+ $this->_url=(string) $url;
660
+ }
661
+
662
+ /**
663
+ * Returns the priority of this page
664
+ *
665
+ * @return float the priority, from 0.0 to 1.0
666
+ */
667
+ function GetPriority() {
668
+ return $this->_priority;
669
+ }
670
+
671
+ /**
672
+ * Sets the priority of the page
673
+ *
674
+ * @param float $priority The new priority from 0.1 to 1.0
675
+ */
676
+ function SetProprity($priority) {
677
+ $this->_priority=floatval($priority);
678
+ }
679
+
680
+ /**
681
+ * Returns the change frequency of the page
682
+ *
683
+ * @return string The change frequncy like hourly, weekly, monthly etc.
684
+ */
685
+ function GetChangeFreq() {
686
+ return $this->_changeFreq;
687
+ }
688
+
689
+ /**
690
+ * Sets the change frequency of the page
691
+ *
692
+ * @param string $changeFreq The new change frequency
693
+ */
694
+ function SetChangeFreq($changeFreq) {
695
+ $this->_changeFreq=(string) $changeFreq;
696
+ }
697
+
698
+ /**
699
+ * Returns the last mod of the page
700
+ *
701
+ * @return int The lastmod value in seconds
702
+ */
703
+ function GetLastMod() {
704
+ return $this->_lastMod;
705
+ }
706
+
707
+ /**
708
+ * Sets the last mod of the page
709
+ *
710
+ * @param int $lastMod The lastmod of the page
711
+ */
712
+ function SetLastMod($lastMod) {
713
+ $this->_lastMod=intval($lastMod);
714
+ }
715
+
716
+ function Render() {
717
+
718
+ if($this->_url == "/" || empty($this->_url)) return '';
719
+
720
+ $r="";
721
+ $r.= "\t<url>\n";
722
+ $r.= "\t\t<loc>" . $this->EscapeXML($this->_url) . "</loc>\n";
723
+ if($this->_lastMod>0) $r.= "\t\t<lastmod>" . date('Y-m-d\TH:i:s+00:00',$this->_lastMod) . "</lastmod>\n";
724
+ if(!empty($this->_changeFreq)) $r.= "\t\t<changefreq>" . $this->_changeFreq . "</changefreq>\n";
725
+ if($this->_priority!==false && $this->_priority!=="") $r.= "\t\t<priority>" . number_format($this->_priority,1) . "</priority>\n";
726
+ $r.= "\t</url>\n";
727
+ return $r;
728
+ }
729
+
730
+ function EscapeXML($string) {
731
+ return str_replace ( array ( '&', '"', "'", '<', '>'), array ( '&amp;' , '&quot;', '&apos;' , '&lt;' , '&gt;'), $string);
732
+ }
733
+ }
734
 
735
+ class GoogleSitemapGeneratorXmlEntry {
736
+
737
+ var $_xml;
738
+
739
+ function GoogleSitemapGeneratorXmlEntry($xml) {
740
+ $this->_xml = $xml;
741
+ }
742
+
743
+ function Render() {
744
+ return $this->_xml;
745
+ }
 
 
 
 
 
 
 
 
 
 
 
746
  }
747
 
748
+ class GoogleSitemapGeneratorDebugEntry extends GoogleSitemapGeneratorXmlEntry {
749
+
750
+ function Render() {
751
+ return "<!-- " . $this->_xml . " -->";
752
+ }
753
+ }
754
 
755
+ /**
756
+ * Base class for all priority providers
757
+ * @author Arne Brachhold
758
+ * @package sitemap
759
+ * @since 3.0
760
+ */
761
+ class GoogleSitemapGeneratorPrioProviderBase {
762
+
763
  /**
764
+ * @var int $_totalComments The total number of comments of all posts
765
+ * @access protected
766
+ */
767
+ var $_totalComments=0;
768
+
769
+ /**
770
+ * @var int $_totalComments The total number of posts
771
+ * @access protected
772
+ */
773
+ var $_totalPosts=0;
774
+
775
+ /**
776
+ * Returns the (translated) name of this priority provider
777
+ *
778
+ * @since 3.0
779
+ * @access public
780
+ * @author Arne Brachhold
781
+ * @return string The translated name
782
  */
783
+ function GetName() {
784
+ return "";
 
 
 
 
 
 
 
785
  }
786
+
 
 
 
 
787
  /**
788
+ * Returns the (translated) description of this priority provider
789
+ *
790
+ * @since 3.0
791
+ * @access public
792
+ * @author Arne Brachhold
793
+ * @return string The translated description
794
  */
795
+ function GetDescription() {
796
+ return "";
797
  }
798
+
 
 
 
 
799
  /**
800
+ * Initializes a new priority provider
801
+ *
802
+ * @param $totalComments int The total number of comments of all posts
803
+ * @param $totalPosts int The total number of posts
804
+ * @since 3.0
805
+ * @access public
806
+ * @author Arne Brachhold
807
  */
808
+ function GoogleSitemapGeneratorPrioProviderBase($totalComments,$totalPosts) {
809
+ $this->_totalComments=$totalComments;
810
+ $this->_totalPosts=$totalPosts;
811
 
812
+ }
813
+
814
+ /**
815
+ * Returns the priority for a specified post
816
+ *
817
+ * @param $postID int The ID of the post
818
+ * @param $commentCount int The number of comments for this post
819
+ * @since 3.0
820
+ * @access public
821
+ * @author Arne Brachhold
822
+ * @return int The calculated priority
823
+ */
824
+ function GetPostPriority($postID,$commentCount) {
825
+ return 0;
826
+ }
827
  }
 
828
 
829
+ /**
830
+ * Priority Provider which calculates the priority based on the number of comments
831
+ * @author Arne Brachhold
832
+ * @package sitemap
833
+ * @since 3.0
834
+ */
835
+ class GoogleSitemapGeneratorPrioByCountProvider extends GoogleSitemapGeneratorPrioProviderBase {
836
+
837
  /**
838
+ * Returns the (translated) name of this priority provider
839
+ *
840
+ * @since 3.0
841
+ * @access public
842
+ * @author Arne Brachhold
843
+ * @return string The translated name
844
  */
845
+ function GetName() {
846
+ return __("Comment Count",'sitemap');
847
  }
848
+
 
 
 
 
 
 
849
  /**
850
+ * Returns the (translated) description of this priority provider
851
+ *
852
+ * @since 3.0
853
+ * @access public
854
+ * @author Arne Brachhold
855
+ * @return string The translated description
856
  */
857
+ function GetDescription() {
858
+ return __("Uses the number of comments of the post to calculate the priority",'sitemap');
 
859
  }
860
+
 
 
 
 
861
  /**
862
+ * Initializes a new priority provider which calculates the post priority based on the number of comments
863
+ *
864
+ * @param $totalComments int The total number of comments of all posts
865
+ * @param $totalPosts int The total number of posts
866
+ * @since 3.0
867
+ * @access public
868
+ * @author Arne Brachhold
869
  */
870
+ function GoogleSitemapGeneratorPrioByCountProvider($totalComments,$totalPosts) {
871
+ parent::GoogleSitemapGeneratorPrioProviderBase($totalComments,$totalPosts);
 
 
 
 
 
872
  }
873
+
874
+ /**
875
+ * Returns the priority for a specified post
876
+ *
877
+ * @param $postID int The ID of the post
878
+ * @param $commentCount int The number of comments for this post
879
+ * @since 3.0
880
+ * @access public
881
+ * @author Arne Brachhold
882
+ * @return int The calculated priority
883
+ */
884
+ function GetPostPriority($postID,$commentCount) {
885
+ $prio=0;
886
+ if($this->_totalComments>0 && $commentCount>0) {
887
+ $prio = round(($commentCount*100/$this->_totalComments)/100,1);
888
+ } else {
889
+ $prio = 0;
890
+ }
891
+ return $prio;
892
+ }
893
  }
 
894
 
895
+ /**
896
+ * Priority Provider which calculates the priority based on the average number of comments
897
+ * @author Arne Brachhold
898
+ * @package sitemap
899
+ * @since 3.0
900
+ */
901
+ class GoogleSitemapGeneratorPrioByAverageProvider extends GoogleSitemapGeneratorPrioProviderBase {
902
+
903
  /**
904
+ * @var int $_average The average number of comments per post
905
+ * @access protected
906
+ */
907
+ var $_average=0.0;
908
+
909
+ /**
910
+ * Returns the (translated) name of this priority provider
911
+ *
912
+ * @since 3.0
913
+ * @access public
914
+ * @author Arne Brachhold
915
+ * @return string The translated name
916
+ */
917
+ function GetName() {
918
+ return __("Comment Average",'sitemap');
919
+ }
920
+
921
+ /**
922
+ * Returns the (translated) description of this priority provider
923
+ *
924
+ * @since 3.0
925
+ * @access public
926
+ * @author Arne Brachhold
927
+ * @return string The translated description
928
+ */
929
+ function GetDescription() {
930
+ return __("Uses the average comment count to calculate the priority",'sitemap');
931
+ }
932
+
933
+ /**
934
+ * Initializes a new priority provider which calculates the post priority based on the average number of comments
935
+ *
936
+ * @param $totalComments int The total number of comments of all posts
937
+ * @param $totalPosts int The total number of posts
938
+ * @since 3.0
939
+ * @access public
940
+ * @author Arne Brachhold
941
+ */
942
+ function GoogleSitemapGeneratorPrioByAverageProvider($totalComments,$totalPosts) {
943
+ parent::GoogleSitemapGeneratorPrioProviderBase($totalComments,$totalPosts);
944
+
945
+ if($this->_totalComments>0 && $this->_totalPosts>0) {
946
+ $this->_average= (double) $this->_totalComments / $this->_totalPosts;
947
+ }
948
+ }
949
+
950
+ /**
951
+ * Returns the priority for a specified post
952
+ *
953
+ * @param $postID int The ID of the post
954
+ * @param $commentCount int The number of comments for this post
955
+ * @since 3.0
956
+ * @access public
957
+ * @author Arne Brachhold
958
+ * @return int The calculated priority
959
+ */
960
+ function GetPostPriority($postID,$commentCount) {
961
+ $prio = 0;
962
+ //Do not divide by zero!
963
+ if($this->_average==0) {
964
+ if($commentCount>0) $prio = 1;
965
+ else $prio = 0;
966
+ } else {
967
+ $prio = $commentCount/$this->_average;
968
+ if($prio>1) $prio = 1;
969
+ else if($prio<0) $prio = 0;
970
+ }
971
+
972
+ return round($prio,1);
973
+ }
974
+ }
975
+
976
+ /**
977
+ * Priority Provider which calculates the priority based on the popularity by the PopularityContest Plugin
978
+ * @author Arne Brachhold
979
+ * @package sitemap
980
+ * @since 3.0
981
+ */
982
+ class GoogleSitemapGeneratorPrioByPopularityContestProvider extends GoogleSitemapGeneratorPrioProviderBase {
983
+
984
+ /**
985
+ * Returns the (translated) name of this priority provider
986
+ *
987
+ * @since 3.0
988
+ * @access public
989
+ * @author Arne Brachhold
990
+ * @return string The translated name
991
+ */
992
+ function GetName() {
993
+ return __("Popularity Contest",'sitemap');
994
+ }
995
+
996
+ /**
997
+ * Returns the (translated) description of this priority provider
998
+ *
999
+ * @since 3.0
1000
+ * @access public
1001
+ * @author Arne Brachhold
1002
+ * @return string The translated description
1003
+ */
1004
+ function GetDescription() {
1005
+ return str_replace("%4","index.php?page=popularity-contest.php",str_replace("%3","options-general.php?page=popularity-contest.php",str_replace("%2","http://www.alexking.org/",str_replace("%1","http://www.alexking.org/index.php?content=software/wordpress/content.php",__("Uses the activated <a href=\"%1\">Popularity Contest Plugin</a> from <a href=\"%2\">Alex King</a>. See <a href=\"%3\">Settings</a> and <a href=\"%4\">Most Popular Posts</a>",'sitemap')))));
1006
+ }
1007
+
1008
+ /**
1009
+ * Initializes a new priority provider which calculates the post priority based on the popularity by the PopularityContest Plugin
1010
+ *
1011
+ * @param $totalComments int The total number of comments of all posts
1012
+ * @param $totalPosts int The total number of posts
1013
+ * @since 3.0
1014
+ * @access public
1015
+ * @author Arne Brachhold
1016
+ */
1017
+ function GoogleSitemapGeneratorPrioByPopularityContestProvider($totalComments,$totalPosts) {
1018
+ parent::GoogleSitemapGeneratorPrioProviderBase($totalComments,$totalPosts);
1019
+ }
1020
+
1021
+ /**
1022
+ * Returns the priority for a specified post
1023
+ *
1024
+ * @param $postID int The ID of the post
1025
+ * @param $commentCount int The number of comments for this post
1026
+ * @since 3.0
1027
+ * @access public
1028
+ * @author Arne Brachhold
1029
+ * @return int The calculated priority
1030
+ */
1031
+ function GetPostPriority($postID,$commentCount) {
1032
+ //$akpc is the global instance of the Popularity Contest Plugin
1033
+ global $akpc,$posts;
1034
+
1035
+ $res=0;
1036
+ //Better check if its there
1037
+ if(!empty($akpc) && is_object($akpc)) {
1038
+ //Is the method we rely on available?
1039
+ if(method_exists($akpc,"get_post_rank")) {
1040
+ if(!is_array($posts) || !$posts) $posts = array();
1041
+ if(!isset($posts[$postID])) $posts[$postID] = get_post($postID);
1042
+ //popresult comes as a percent value
1043
+ $popresult=$akpc->get_post_rank($postID);
1044
+ if(!empty($popresult) && strpos($popresult,"%")!==false) {
1045
+ //We need to parse it to get the priority as an int (percent)
1046
+ $matches=null;
1047
+ preg_match("/([0-9]{1,3})\%/si",$popresult,$matches);
1048
+ if(!empty($matches) && is_array($matches) && count($matches)==2) {
1049
+ //Divide it so 100% = 1, 10% = 0.1
1050
+ $res=round(intval($matches[1])/100,1);
1051
+ }
1052
+ }
1053
+ }
1054
+ }
1055
+ return $res;
1056
+ }
1057
+ }
1058
+
1059
+ /**
1060
+ * Class to generate a sitemaps.org Sitemaps compliant sitemap of a WordPress blog.
1061
+ *
1062
+ * @package sitemap
1063
+ * @author Arne Brachhold
1064
+ * @since 3.0
1065
+ */
1066
+ class GoogleSitemapGenerator {
1067
+ /**
1068
+ * @var Version of the generator
1069
+ */
1070
+ var $_version = "3.0";
1071
+
1072
+ /**
1073
+ * @var Version of the generator in SVN
1074
+ */
1075
+ var $_svnVersion = '$Id: sitemap.php 19712 2007-09-24 11:32:47Z arnee $';
1076
+
1077
+ /**
1078
+ * @var string The full path to the blog directory
1079
+ */
1080
+ var $_homePath = "";
1081
+
1082
+ /**
1083
+ * @var array The unserialized array with the stored options
1084
+ */
1085
+ var $_options = array();
1086
+
1087
+ /**
1088
+ * @var array The saved additional pages
1089
+ */
1090
+ var $_pages = array();
1091
+
1092
+ /**
1093
+ * @var array A list of available freuency names
1094
+ */
1095
+ var $_freqNames = array();
1096
+
1097
+ /**
1098
+ * @var array A list of class names which my be called for priority calculation
1099
+ */
1100
+ var $_prioProviders = array();
1101
+
1102
+ /**
1103
+ * @var bool True if init complete (options loaded etc)
1104
+ */
1105
+ var $_initiated = false;
1106
+
1107
+ /**
1108
+ * @var string Holds the last error if one occurs when writing the files
1109
+ */
1110
+ var $_lastError=null;
1111
+
1112
+ /**
1113
+ * @var array Contains the elements of the sitemap
1114
+ */
1115
+ var $_content = array();
1116
+
1117
+ /**
1118
+ * @var int The last handled post ID
1119
+ */
1120
+ var $_lastPostID = 0;
1121
+
1122
+ /**
1123
+ * @var bool Defines if the sitemap building process is active at the moment
1124
+ */
1125
+ var $_isActive = false;
1126
+
1127
+ /**
1128
+ * @var object The file handle which is used to write the sitemap file
1129
+ */
1130
+ var $_fileHandle = null;
1131
+
1132
+ /**
1133
+ * @var object The file handle which is used to write the zipped sitemap file
1134
+ */
1135
+ var $_fileZipHandle = null;
1136
+
1137
+ /**
1138
+ * Returns the path to the blog directory
1139
+ *
1140
+ * @since 3.0
1141
+ * @access private
1142
+ * @author Arne Brachhold
1143
+ * @return string The full path to the blog directory
1144
+ */
1145
+ function GetHomePath() {
1146
+
1147
+ $res="";
1148
+ //Check if we are in the admin area -> get_home_path() is avaiable
1149
+ if(function_exists("get_home_path")) {
1150
+ $res = get_home_path();
1151
+ } else {
1152
+ //get_home_path() is not available, but we can't include the admin
1153
+ //libraries because many plugins check for the "check_admin_referer"
1154
+ //function to detect if you are on an admin page. So we have to copy
1155
+ //the get_home_path function in our own...
1156
+ $home = get_settings('home');
1157
+ $home_path="";
1158
+ if ( $home != '' && $home != get_settings('siteurl') ) {
1159
+ $home_path = parse_url($home);
1160
+ $home_path = $home_path['path'];
1161
+ $root = str_replace($_SERVER["PHP_SELF"], '', str_replace("\\","/",$_SERVER["SCRIPT_FILENAME"]));
1162
+ $home_path = trailingslashit($root . $home_path);
1163
+ } else {
1164
+ $home_path = ABSPATH;
1165
+ }
1166
+ $res = $home_path;
1167
+ }
1168
+ return $res;
1169
+ }
1170
+
1171
+ /**
1172
+ * Returns the path to the directory where the plugin file is located
1173
+ * @since 3.0b5
1174
+ * @access private
1175
+ * @author Arne Brachhold
1176
+ * @return string The path to the plugin directory
1177
+ */
1178
+ function GetPluginPath() {
1179
+ $path = dirname(__FILE__);
1180
+ return trailingslashit(str_replace("\\","/",$path));
1181
+ }
1182
+
1183
+ /**
1184
+ * Returns the URL to the directory where the plugin file is located
1185
+ * @since 3.0b5
1186
+ * @access private
1187
+ * @author Arne Brachhold
1188
+ * @return string The URL to the plugin directory
1189
+ */
1190
+ function GetPluginUrl() {
1191
+ $path = dirname(__FILE__);
1192
+ $path = str_replace("\\","/",$path);
1193
+ $path = trailingslashit(get_bloginfo('wpurl')) . trailingslashit(substr($path,strpos($path,"wp-content/")));
1194
+ return $path;
1195
+ }
1196
+
1197
+ /**
1198
+ * Returns the URL to default XSLT style if it exists
1199
+ * @since 3.0b5
1200
+ * @access private
1201
+ * @author Arne Brachhold
1202
+ * @return string The URL to the default stylesheet, empry string if not available.
1203
+ */
1204
+ function GetDefaultStyle() {
1205
+ $p = $this->GetPluginPath();
1206
+ if(file_exists($p . "sitemap.xsl")) {
1207
+ return $this->GetPluginUrl() . 'sitemap.xsl';
1208
+ }
1209
+ return '';
1210
+ }
1211
+
1212
+ /**
1213
+ * Returns the path to the robots.txt file in the blog root
1214
+ *
1215
+ * @since 3.0b8
1216
+ * @access private
1217
+ * @author Arne Brachhold
1218
+ * @return The full path to the robots.txt file
1219
+ */
1220
+ function GetRobotsFilePath() {
1221
+ return trailingslashit($this->GetHomePath()) . 'robots.txt';
1222
+ }
1223
+
1224
+ /**
1225
+ * Returns the URL to the robots.txt file in the blog root
1226
+ *
1227
+ * @since 3.0b8
1228
+ * @access private
1229
+ * @author Arne Brachhold
1230
+ * @return The full URL to the robots.txt file
1231
+ */
1232
+ function GetRobotsFileUrl() {
1233
+ return trailingslashit(get_bloginfo('siteurl')) . 'robots.txt';
1234
+ }
1235
+
1236
+ /**
1237
+ * Sets up the default configuration
1238
+ *
1239
+ * @since 3.0
1240
+ * @access private
1241
+ * @author Arne Brachhold
1242
+ */
1243
+ function InitOptions() {
1244
+
1245
+ $this->_options=array();
1246
+ $this->_options["sm_b_prio_provider"]="GoogleSitemapGeneratorPrioByCountProvider"; //Provider for automatic priority calculation
1247
+ $this->_options["sm_b_filename"]="sitemap.xml"; //Name of the Sitemap file
1248
+ $this->_options["sm_b_debug"]=true; //Write debug messages in the xml file
1249
+ $this->_options["sm_b_xml"]=true; //Create a .xml file
1250
+ $this->_options["sm_b_gzip"]=true; //Create a gzipped .xml file(.gz) file
1251
+ $this->_options["sm_b_ping"]=true; //Auto ping Google
1252
+ $this->_options["sm_b_pingyahoo"]=false; //Auto ping YAHOO
1253
+ $this->_options["sm_b_pingask"]=true; //Auto ping YAHOO
1254
+ $this->_options["sm_b_manual_enabled"]=false; //Allow manual creation of the sitemap via GET request
1255
+ $this->_options["sm_b_auto_enabled"]=true; //Rebuild sitemap when content is changed
1256
+ $this->_options["sm_b_manual_key"]=md5(microtime());//The secret key to build the sitemap via GET request
1257
+ $this->_options["sm_b_hide_donors"]=false; //Hide the list of donations
1258
+ $this->_options["sm_b_donated"]=false; //Did you donate? Thank you! :)
1259
+ $this->_options["sm_b_hide_donated"]=false; //And hide the thank you..
1260
+ $this->_options["sm_b_memory"] = ''; //Set Memory Limit (e.g. 16M)
1261
+ $this->_options["sm_b_time"] = -1; //Set time limit in seconds, 0 for unlimited, -1 for disabled
1262
+ $this->_options["sm_b_max_posts"] = -1; //Maximum number of posts, <= 0 for all
1263
+ $this->_options["sm_b_style"] = $this->GetDefaultStyle(); //Include a stylesheet in the XML
1264
+ $this->_options["sm_b_robots"] = false; //Modify or create robots.txt file in blog root which contains the sitemap location
1265
+
1266
+
1267
+ $this->_options["sm_b_location_mode"]="auto"; //Mode of location, auto or manual
1268
+ $this->_options["sm_b_filename_manual"]=""; //Manuel filename
1269
+ $this->_options["sm_b_fileurl_manual"]=""; //Manuel fileurl
1270
+
1271
+ $this->_options["sm_in_home"]=true; //Include homepage
1272
+ $this->_options["sm_in_posts"]=true; //Include posts
1273
+ $this->_options["sm_in_pages"]=true; //Include static pages
1274
+ $this->_options["sm_in_cats"]=false; //Include categories
1275
+ $this->_options["sm_in_arch"]=false; //Include archives
1276
+ $this->_options["sm_in_auth"]=false; //Include author pages
1277
+ $this->_options["sm_in_tags"]=false; //Include tag pages
1278
+
1279
+ $this->_options["sm_cf_home"]="daily"; //Change frequency of the homepage
1280
+ $this->_options["sm_cf_posts"]="monthly"; //Change frequency of posts
1281
+ $this->_options["sm_cf_pages"]="weekly"; //Change frequency of static pages
1282
+ $this->_options["sm_cf_cats"]="weekly"; //Change frequency of categories
1283
+ $this->_options["sm_cf_auth"]="weekly"; //Change frequency of author pages
1284
+ $this->_options["sm_cf_arch_curr"]="daily"; //Change frequency of the current archive (this month)
1285
+ $this->_options["sm_cf_arch_old"]="yearly"; //Change frequency of older archives
1286
+ $this->_options["sm_cf_tags"]="weekly"; //Change frequency of tags
1287
+
1288
+ $this->_options["sm_pr_home"]=1.0; //Priority of the homepage
1289
+ $this->_options["sm_pr_posts"]=0.6; //Priority of posts (if auto prio is disabled)
1290
+ $this->_options["sm_pr_posts_min"]=0.2; //Minimum Priority of posts, even if autocalc is enabled
1291
+ $this->_options["sm_pr_pages"]=0.6; //Priority of static pages
1292
+ $this->_options["sm_pr_cats"]=0.3; //Priority of categories
1293
+ $this->_options["sm_pr_arch"]=0.3; //Priority of archives
1294
+ $this->_options["sm_pr_auth"]=0.3; //Priority of author pages
1295
+ $this->_options["sm_pr_tags"]=0.3; //Priority of tags
1296
+ }
1297
+
1298
+ /**
1299
+ * Loads the configuration from the database
1300
+ *
1301
+ * @since 3.0
1302
+ * @access private
1303
+ * @author Arne Brachhold
1304
+ */
1305
+ function LoadOptions() {
1306
+
1307
+ $this->InitOptions();
1308
+
1309
+ //First init default values, then overwrite it with stored values so we can add default
1310
+ //values with an update which get stored by the next edit.
1311
+ $storedoptions=get_option("sm_options");
1312
+ if($storedoptions && is_array($storedoptions)) {
1313
+ foreach($storedoptions AS $k=>$v) {
1314
+ $this->_options[$k]=$v;
1315
+ }
1316
+ } else update_option("sm_options",$this->_options); //First time use, store default values
1317
+ }
1318
+
1319
+ /**
1320
+ * Initializes a new Google Sitemap Generator
1321
+ *
1322
+ * @since 3.0
1323
+ * @access private
1324
+ * @author Arne Brachhold
1325
+ */
1326
+ function GoogleSitemapGenerator() {
1327
+
1328
+ $this->_freqNames = array("always", "hourly", "daily", "weekly", "monthly", "yearly","never");
1329
+ $this->_prioProviders = array();
1330
+ $this->_homePath = $this->GetHomePath();
1331
+ }
1332
+
1333
+ /**
1334
+ * Returns the version of the generator
1335
+ *
1336
+ * @since 3.0
1337
+ * @access public
1338
+ * @author Arne Brachhold
1339
+ * @return int The version
1340
+ */
1341
+ function GetVersion() {
1342
+ return $this->_version;
1343
+ }
1344
+
1345
+ /**
1346
+ * Returns all parent classes of a class
1347
+ *
1348
+ * @param $className string The name of the class
1349
+ *
1350
+ * @since 3.0
1351
+ * @access private
1352
+ * @author Arne Brachhold
1353
+ * @return array An array which contains the names of the parent classes
1354
+ */
1355
+ function GetParentClasses($classname) {
1356
+ $parent = get_parent_class($classname);
1357
+ $parents = array();
1358
+ if (!empty($parent)) {
1359
+ $parents = $this->GetParentClasses($parent);
1360
+ $parents[] = strtolower($parent);
1361
+ }
1362
+ return $parents;
1363
+ }
1364
+
1365
+ /**
1366
+ * Returns if a class is a subclass of another class
1367
+ *
1368
+ * @param $className string The name of the class
1369
+ * @param $$parentName string The name of the parent class
1370
+ *
1371
+ * @since 3.0
1372
+ * @access private
1373
+ * @author Arne Brachhold
1374
+ * @return bool true if the given class is a subclass of the other one
1375
+ */
1376
+ function IsSubclassOf($className, $parentName) {
1377
+
1378
+ $className = strtolower($className);
1379
+ $parentName = strtolower($parentName);
1380
+
1381
+ if(empty($className) || empty($parentName) || !class_exists($className) || !class_exists($parentName)) return false;
1382
+
1383
+ $parents=$this->GetParentClasses($className);
1384
+
1385
+ return in_array($parentName,$parents);
1386
+ }
1387
+
1388
+ /**
1389
+ * Loads up the configuration and validates the prioity providers
1390
+ *
1391
+ * This method is only called if the sitemaps needs to be build or the admin page is displayed.
1392
+ *
1393
+ * @since 3.0
1394
+ * @access private
1395
+ * @author Arne Brachhold
1396
+ */
1397
+ function Initate() {
1398
+ if(!$this->_initiated) {
1399
+
1400
+ //Loading language file...
1401
+ //load_plugin_textdomain('sitemap');
1402
+ //Hmm, doesn't work if the plugin file has its own directory.
1403
+ //Let's make it our way... load_plugin_textdomain() searches only in the wp-content/plugins dir.
1404
+ $currentLocale = get_locale();
1405
+ if(!empty($currentLocale)) {
1406
+ $moFile = dirname(__FILE__) . "/sitemap-" . $currentLocale . ".mo";
1407
+ if(@file_exists($moFile) && is_readable($moFile)) load_textdomain('sitemap', $moFile);
1408
+ }
1409
+
1410
+ $this->LoadOptions();
1411
+ $this->LoadPages();
1412
+
1413
+ add_filter("sm_add_prio_provider",array(&$this, 'AddDefaultPrioProviders'));
1414
+
1415
+ $r = apply_filters("sm_add_prio_provider",$this->_prioProviders);
1416
+
1417
+ if($r != null) $this->_prioProviders = $r;
1418
+
1419
+ $this->ValidatePrioProviders();
1420
+
1421
+ $this->_initiated = true;
1422
+ }
1423
+ }
1424
+
1425
+ /**
1426
+ * Returns the instance of the Sitemap Generator
1427
+ *
1428
+ * @since 3.0
1429
+ * @access public
1430
+ * @return GoogleSitemapGenerator The instance or null if not available.
1431
+ * @author Arne Brachhold
1432
+ */
1433
+ function &GetInstance() {
1434
+ if(isset($GLOBALS["sm_instance"])) {
1435
+ return $GLOBALS["sm_instance"];
1436
+ } else return null;
1437
+ }
1438
+
1439
+ /**
1440
+ * Returns if the sitemap building process is currently active
1441
+ *
1442
+ * @since 3.0
1443
+ * @access public
1444
+ * @return bool true if active
1445
+ * @author Arne Brachhold
1446
+ */
1447
+ function IsActive() {
1448
+ $inst = &GoogleSitemapGenerator::GetInstance();
1449
+ return ($inst != null && $inst->_isActive);
1450
+ }
1451
+
1452
+ /**
1453
+ * Returns if the compressed sitemap was activated
1454
+ *
1455
+ * @since 3.0b8
1456
+ * @access private
1457
+ * @author Arne Brachhold
1458
+ * @return true if compressed
1459
+ */
1460
+ function IsGzipEnabled() {
1461
+ return ($this->GetOption("b_gzip")===true && function_exists("gzwrite"));
1462
+ }
1463
+
1464
+ /**
1465
+ * Returns if this version of WordPress supports the new taxonomy system
1466
+ *
1467
+ * @since 3.0b8
1468
+ * @access private
1469
+ * @author Arne Brachhold
1470
+ * @return true if supported
1471
+ */
1472
+ function IsTaxonomySupported() {
1473
+ return (function_exists("get_taxonomy") && function_exists("get_terms"));
1474
+ }
1475
+
1476
+ /**
1477
+ * Enables the Google Sitemap Generator and registers the WordPress hooks
1478
+ *
1479
+ * @since 3.0
1480
+ * @access public
1481
+ * @author Arne Brachhold
1482
+ */
1483
+ function Enable() {
1484
+
1485
+ if(!isset($GLOBALS["sm_instance"])) {
1486
+
1487
+ $GLOBALS["sm_instance"]=new GoogleSitemapGenerator();
1488
+
1489
+ //Register the sitemap creator to wordpress...
1490
+ add_action('admin_menu', array(&$GLOBALS["sm_instance"], 'RegisterAdminPage'));
1491
+
1492
+ //Register to various events... @WordPress Dev Team: I wish me a 'public_content_changed' action :)
1493
+
1494
+ //If a new post gets saved
1495
+ add_action('save_post', array(&$GLOBALS["sm_instance"], 'CheckForAutoBuild'),9999,1);
1496
+
1497
+ //Existing post gets edited
1498
+ add_action('edit_post', array(&$GLOBALS["sm_instance"], 'CheckForAutoBuild'),9999,1);
1499
+
1500
+ //Existing posts gets deleted
1501
+ add_action('delete_post', array(&$GLOBALS["sm_instance"], 'CheckForAutoBuild'),9999,1);
1502
+
1503
+ //Existing post gets published
1504
+ add_action('publish_post', array(&$GLOBALS["sm_instance"], 'CheckForAutoBuild'),9999,1);
1505
+
1506
+ //Manual Hook via GET
1507
+ $GLOBALS["sm_instance"]->CheckForManualBuild();
1508
+ }
1509
+ }
1510
+
1511
+ /**
1512
+ * Checks if sitemap building after content changed is enabled and rebuild the sitemap
1513
+ *
1514
+ * @param int $postID The ID of the post to handle. Used to avoid double rebuilding if more than one hook was fired.
1515
+ * @since 3.0
1516
+ * @access public
1517
+ * @author Arne Brachhold
1518
+ */
1519
+ function CheckForAutoBuild($postID) {
1520
+ $this->Initate();
1521
+ if($this->GetOption("b_auto_enabled")===true && $this->_lastPostID != $postID && (!defined('WP_IMPORTING') || WP_IMPORTING != true)) {
1522
+ $this->_lastPostID = $postID;
1523
+ $this->BuildSitemap();
1524
+ }
1525
+ }
1526
+
1527
+ /**
1528
+ * Checks if the rebuild request was send and starts to rebuilt the sitemap
1529
+ *
1530
+ * @since 3.0
1531
+ * @access public
1532
+ * @author Arne Brachhold
1533
+ */
1534
+ function CheckForManualBuild() {
1535
+ if(!empty($_GET["sm_command"]) && !empty($_GET["sm_key"])) {
1536
+ $this->Initate();
1537
+ if($this->GetOption("b_manual_enabled")===true && $_GET["sm_command"]=="build" && $_GET["sm_key"]==$this->GetOption("b_manual_key")) {
1538
+ $this->BuildSitemap();
1539
+ exit;
1540
+ }
1541
+ }
1542
+ }
1543
+
1544
+ /**
1545
+ * Validates all given Priority Providers by checking them for required methods and existence
1546
+ *
1547
+ * @since 3.0
1548
+ * @access private
1549
+ * @author Arne Brachhold
1550
+ */
1551
+ function ValidatePrioProviders() {
1552
+ $validProviders=array();
1553
+
1554
+ for($i=0; $i<count($this->_prioProviders); $i++) {
1555
+ if(class_exists($this->_prioProviders[$i])) {
1556
+ if($this->IsSubclassOf($this->_prioProviders[$i],"GoogleSitemapGeneratorPrioProviderBase")) {
1557
+ array_push($validProviders,$this->_prioProviders[$i]);
1558
+ }
1559
+ }
1560
+ }
1561
+ $this->_prioProviders=$validProviders;
1562
+
1563
+ if(!$this->GetOption("b_prio_provider")) {
1564
+ if(!in_array($this->GetOption("b_prio_provider"),$this->_prioProviders,true)) {
1565
+ $this->SetOption("b_prio_provider","");
1566
+ }
1567
+ }
1568
+ }
1569
+
1570
+ /**
1571
+ * Adds the default Priority Providers to the provider list
1572
+ *
1573
+ * @since 3.0
1574
+ * @access private
1575
+ * @author Arne Brachhold
1576
+ */
1577
+ function AddDefaultPrioProviders($providers) {
1578
+ array_push($providers,"GoogleSitemapGeneratorPrioByCountProvider");
1579
+ array_push($providers,"GoogleSitemapGeneratorPrioByAverageProvider");
1580
+ if(class_exists("ak_popularity_contest")) {
1581
+ array_push($providers,"GoogleSitemapGeneratorPrioByPopularityContestProvider");
1582
+ }
1583
+ return $providers;
1584
+ }
1585
+
1586
+ /**
1587
+ * Loads the stored pages from the database
1588
+ *
1589
+ * @since 3.0
1590
+ * @access private
1591
+ * @author Arne Brachhold
1592
+ */
1593
+ function LoadPages() {
1594
+ global $wpdb;
1595
+
1596
+ $needsUpdate=false;
1597
+
1598
+ $pagesString=$wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name = 'sm_cpages'");
1599
+
1600
+ //Class sm_page was renamed with 3.0 -> rename it in serialized value for compatibility
1601
+ if(!empty($pagesString) && strpos($pagesString,"sm_page")!==false) {
1602
+ $pagesString = str_replace("O:7:\"sm_page\"","O:26:\"GoogleSitemapGeneratorPage\"",$pagesString);
1603
+ $needsUpdate=true;
1604
+ }
1605
+
1606
+ if(!empty($pagesString)) {
1607
+ $storedpages=unserialize($pagesString);
1608
+ $this->_pages=$storedpages;
1609
+ } else {
1610
+ $this->_pages=array();
1611
+ }
1612
+
1613
+ if($needsUpdate) $this->SavePages();
1614
+ }
1615
+
1616
+ /**
1617
+ * Saved the additional pages back to the database
1618
+ *
1619
+ * @since 3.0
1620
+ * @access private
1621
+ * @author Arne Brachhold
1622
+ * @return true on success
1623
+ */
1624
+ function SavePages() {
1625
+ $oldvalue = get_option("sm_cpages");
1626
+ if($oldvalue == $this->_pages) {
1627
+ return true;
1628
+ } else {
1629
+ delete_option("sm_cpages");
1630
+ //Add the option, Note the autoload=false because when the autoload happens, our class GoogleSitemapGeneratorPage doesn't exist
1631
+ add_option("sm_cpages",$this->_pages,"Storage for custom pages of the sitemap plugin","no");
1632
+ return true;
1633
+ }
1634
+ }
1635
+
1636
+
1637
+ /**
1638
+ * Returns the URL for the sitemap file
1639
+ *
1640
+ * @since 3.0
1641
+ * @access private
1642
+ * @author Arne Brachhold
1643
+ * @param bool $forceAuto Force the return value to the autodetected value.
1644
+ * @return The URL to the Sitemap file
1645
+ */
1646
+ function GetXmlUrl($forceAuto=false) {
1647
+
1648
+ if(!$forceAuto && $this->GetOption("b_location_mode")=="manual") {
1649
+ return $this->GetOption("b_fileurl_manual");
1650
+ } else {
1651
+ return trailingslashit(get_bloginfo('siteurl')). $this->GetOption("b_filename");
1652
+ }
1653
+ }
1654
+
1655
+ /**
1656
+ * Returns the URL for the gzipped sitemap file
1657
+ *
1658
+ * @since 3.0
1659
+ * @access private
1660
+ * @author Arne Brachhold
1661
+ * @param bool $forceAuto Force the return value to the autodetected value.
1662
+ * @return The URL to the gzipped Sitemap file
1663
+ */
1664
+ function GetZipUrl($forceAuto=false) {
1665
+ return $this->GetXmlUrl($forceAuto) . ".gz";
1666
+ }
1667
+
1668
+ /**
1669
+ * Returns the file system path to the sitemap file
1670
+ *
1671
+ * @since 3.0
1672
+ * @access private
1673
+ * @author Arne Brachhold
1674
+ * @param bool $forceAuto Force the return value to the autodetected value.
1675
+ * @return The file system path;
1676
+ */
1677
+ function GetXmlPath($forceAuto=false) {
1678
+ if(!$forceAuto && $this->GetOption("b_location_mode")=="manual") {
1679
+ return $this->GetOption("b_filename_manual");
1680
+ } else {
1681
+ return $this->GetHomePath() . $this->GetOption("b_filename");
1682
+ }
1683
+ }
1684
+
1685
+ /**
1686
+ * Returns the file system path to the gzipped sitemap file
1687
+ *
1688
+ * @since 3.0
1689
+ * @access private
1690
+ * @author Arne Brachhold
1691
+ * @param bool $forceAuto Force the return value to the autodetected value.
1692
+ * @return The file system path;
1693
+ */
1694
+ function GetZipPath($forceAuto=false) {
1695
+ return $this->GetXmlPath($forceAuto) . ".gz";
1696
+ }
1697
+
1698
+ /**
1699
+ * Returns the option value for the given key
1700
+ * Alias for getOption
1701
+ *
1702
+ * @since 3.0
1703
+ * @access private
1704
+ * @author Arne Brachhold
1705
+ * @param $key string The Configuration Key
1706
+ * @return mixed The value
1707
+ */
1708
+ function Go($key) {
1709
+ return $this->getOption($key);
1710
+ }
1711
+
1712
+ /**
1713
+ * Returns the option value for the given key
1714
+ *
1715
+ * @since 3.0
1716
+ * @access private
1717
+ * @author Arne Brachhold
1718
+ * @param $key string The Configuration Key
1719
+ * @return mixed The value
1720
+ */
1721
+ function GetOption($key) {
1722
+ if(strpos($key,"sm_")!==0) $key="sm_" . $key;
1723
+ if(array_key_exists($key,$this->_options)) {
1724
+ return $this->_options[$key];
1725
+ } else return null;
1726
+ }
1727
+
1728
+ /**
1729
+ * Sets an option to a new value
1730
+ *
1731
+ * @since 3.0
1732
+ * @access private
1733
+ * @author Arne Brachhold
1734
+ * @param $key string The configuration key
1735
+ * @param $value mixed The new object
1736
+ */
1737
+ function SetOption($key,$value) {
1738
+ if(strstr($key,"sm_")!==0) $key="sm_" . $key;
1739
+
1740
+ $this->_options[$key]=$value;
1741
+ }
1742
+
1743
+ /**
1744
+ * Saves the options back to the database
1745
+ *
1746
+ * @since 3.0
1747
+ * @access private
1748
+ * @author Arne Brachhold
1749
+ * @return bool true on success
1750
+ */
1751
+ function SaveOptions() {
1752
+ $oldvalue = get_option("sm_options");
1753
+ if($oldvalue == $this->_options) {
1754
+ return true;
1755
+ } else return update_option("sm_options",$this->_options);
1756
+ }
1757
+
1758
+ /**
1759
+ * Retrieves the number of comments of a post in a asso. array
1760
+ * The key is the postID, the value the number of comments
1761
+ *
1762
+ * @since 3.0
1763
+ * @access private
1764
+ * @author Arne Brachhold
1765
+ * @return array An array with postIDs and their comment count
1766
+ */
1767
+ function GetComments() {
1768
+ global $wpdb;
1769
+ $comments=array();
1770
+
1771
+ //Query comments and add them into the array
1772
+ $commentRes=$wpdb->get_results("SELECT `comment_post_ID` as `post_id`, COUNT(comment_ID) as `comment_count` FROM `" . $wpdb->comments . "` WHERE `comment_approved`='1' GROUP BY `comment_post_ID`");
1773
+ if($commentRes) {
1774
+ foreach($commentRes as $comment) {
1775
+ $comments[$comment->post_id]=$comment->comment_count;
1776
+ }
1777
+ }
1778
+ return $comments;
1779
+ }
1780
+
1781
+ /**
1782
+ * Calculates the full number of comments from an sm_getComments() generated array
1783
+ *
1784
+ * @since 3.0
1785
+ * @access private
1786
+ * @author Arne Brachhold
1787
+ * @param $comments array The Array with posts and c0mment count
1788
+ * @see sm_getComments
1789
+ * @return The full number of comments
1790
+ */
1791
+ function GetCommentCount($comments) {
1792
+ $commentCount=0;
1793
+ foreach($comments AS $k=>$v) {
1794
+ $commentCount+=$v;
1795
+ }
1796
+ return $commentCount;
1797
+ }
1798
+
1799
+ /**
1800
+ * Adds a url to the sitemap. You can use this method or call AddElement directly.
1801
+ *
1802
+ * @since 3.0
1803
+ * @access public
1804
+ * @author Arne Brachhold
1805
+ * @param $loc string The location (url) of the page
1806
+ * @param $lastMod int The last Modification time as a UNIX timestamp
1807
+ * @param $changeFreq string The change frequenty of the page, Valid values are "always", "hourly", "daily", "weekly", "monthly", "yearly" and "never".
1808
+ * @param $priorty float The priority of the page, between 0.0 and 1.0
1809
+ * @see AddElement
1810
+ * @return string The URL node
1811
+ */
1812
+ function AddUrl($loc,$lastMod=0,$changeFreq="monthly",$priority=0.5) {
1813
+ $page = new GoogleSitemapGeneratorPage($loc,$priority,$changeFreq,$lastMod);
1814
+
1815
+ $this->AddElement($page);
1816
+ }
1817
+
1818
+ /**
1819
+ * Adds an element to the sitemap
1820
+ *
1821
+ * @since 3.0
1822
+ * @access private
1823
+ * @author Arne Brachhold
1824
+ * @param $page The element
1825
+ */
1826
+ function AddElement(&$page) {
1827
+ if(empty($page)) return;
1828
+
1829
+ $s = $page->Render();
1830
+
1831
+ if($this->_fileZipHandle && $this->IsGzipEnabled()) {
1832
+ gzwrite($this->_fileZipHandle,$s);
1833
+ }
1834
+
1835
+ if($this->_fileHandle && $this->GetOption("b_xml")) {
1836
+ fwrite($this->_fileHandle,$s);
1837
+ }
1838
+ }
1839
+
1840
+ /**
1841
+ * Checks if a file is writable and tries to make it if not.
1842
+ *
1843
+ * @since 3.05b
1844
+ * @access private
1845
+ * @author VJTD3 <http://www.VJTD3.com>
1846
+ * @return bool true if writable
1847
+ */
1848
+ function IsFileWritable($filename) {
1849
+ //can we write?
1850
+ if(!is_writable($filename)) {
1851
+ //no we can't.
1852
+ if(!@chmod($filename, 0666)) {
1853
+ $pathtofilename = dirname($filename);
1854
+ //Lets check if parent directory is writable.
1855
+ if(!is_writable($pathtofilename)) {
1856
+ //it's not writeable too.
1857
+ if(!@chmod($pathtoffilename, 0666)) {
1858
+ //darn couldn't fix up parrent directory this hosting is foobar.
1859
+ //Lets error because of the permissions problems.
1860
+ return false;
1861
+ }
1862
+ }
1863
+ }
1864
+ }
1865
+ //we can write, return 1/true/happy dance.
1866
+ return true;
1867
+ }
1868
+
1869
+ /**
1870
+ * Creates or opens the robots.txt in blog root and inserts the sitemap location
1871
+ *
1872
+ * @since 3.0b8
1873
+ * @access private
1874
+ * @author Arne Brachhold
1875
+ * @return true on success
1876
+ */
1877
+ function WriteRobotsFile() {
1878
+ $file = $this->GetRobotsFilePath();
1879
+
1880
+ $marker = 'XML-SITEMAP-PLUGIN';
1881
+
1882
+ $current = extract_from_markers($file,$marker);
1883
+ if(is_array($current)) $current = $current[0];
1884
+
1885
+ $smUrl = $this->GetXmlUrl();
1886
+ if($this->IsGzipEnabled()) {
1887
+ $smUrl = $this->GetZipUrl();
1888
+ }
1889
+
1890
+ $new = "Sitemap: " . $smUrl;
1891
+
1892
+ if($current != $new) {
1893
+ if($this->IsFileWritable($file)) return insert_with_markers($file,$marker,array($new));
1894
+ else return false;
1895
+ }
1896
+ return true;
1897
+ }
1898
+
1899
+ /**
1900
+ * Builds the sitemap and writes it into a xml file.
1901
+ *
1902
+ * @since 3.0
1903
+ * @access public
1904
+ * @author Arne Brachhold <himself [at] arnebrachhold [dot] de>
1905
+ * @return array An array with messages such as failed writes etc.
1906
+ */
1907
+ function BuildSitemap() {
1908
+ global $wpdb, $posts, $wp_version;
1909
+ $this->Initate();
1910
+
1911
+ if($this->GetOption("b_memory")!='') {
1912
+ @ini_set("memory_limit",$this->GetOption("b_memory"));
1913
+ }
1914
+
1915
+ if($this->GetOption("sm_b_time")!=-1) {
1916
+ @set_time_limit($this->GetOption("sm_b_time"));
1917
+ }
1918
+
1919
+ //This object saves the status information of the script directly to the database
1920
+ $status = new GoogleSitemapGeneratorStatus();
1921
+
1922
+ //Other plugins can detect if the building process is active
1923
+ $this->_isActive = true;
1924
+
1925
+ //$this->AddElement(new GoogleSitemapGeneratorXmlEntry());
1926
+
1927
+ //Debug mode?
1928
+ $debug=$this->GetOption("b_debug");
1929
+
1930
+
1931
+ if($this->GetOption("b_xml")) {
1932
+ $fileName = $this->GetXmlPath();
1933
+ $status->StartXml($this->GetXmlPath(),$this->GetXmlUrl());
1934
+
1935
+ if($this->IsFileWritable($fileName)) {
1936
+
1937
+ $this->_fileHandle = fopen($fileName,"w");
1938
+ if(!$this->_fileHandle) $status->EndXml(false,"Not openable");
1939
+
1940
+ } else $status->EndXml(false,"not writable");
1941
+ }
1942
+
1943
+ //Write gzipped sitemap file
1944
+ if($this->IsGzipEnabled()) {
1945
+ $fileName = $this->GetZipPath();
1946
+ $status->StartZip($this->GetZipPath(),$this->GetZipUrl());
1947
+
1948
+ if($this->IsFileWritable($fileName)) {
1949
+
1950
+ $this->_fileZipHandle = gzopen($fileName,"w1");
1951
+ if(!$this->_fileZipHandle) $status->EndZip(false,"Not openable");
1952
+
1953
+ } else $status->EndZip(false,"not writable");
1954
+ }
1955
+
1956
+ if(!$this->_fileHandle && !$this->_fileZipHandle) {
1957
+ $status->End();
1958
+ return;
1959
+ }
1960
+
1961
+
1962
+ //Content of the XML file
1963
+ $this->AddElement(new GoogleSitemapGeneratorXmlEntry('<?xml version="1.0" encoding="UTF-8"' . '?' . '>'));
1964
+
1965
+ if($this->GetOption("b_style")!='') {
1966
+ $this->AddElement(new GoogleSitemapGeneratorXmlEntry('<' . '?xml-stylesheet type="text/xsl" href="' . $this->GetOption("b_style") . '"?' . '>'));
1967
+ }
1968
+
1969
+ $this->AddElement(new GoogleSitemapGeneratorDebugEntry("generator=\"wordpress/" . get_bloginfo('version') . "\""));
1970
+ $this->AddElement(new GoogleSitemapGeneratorDebugEntry("sitemap-generator-url=\"http://www.arnebrachhold.de\" sitemap-generator-version=\"" . $this->GetVersion() . "\""));
1971
+ $this->AddElement(new GoogleSitemapGeneratorDebugEntry("generated-on=\"" . date(get_option("date_format") . " " . get_option("time_format")) . "\""));
1972
+
1973
+ //All comments as an asso. Array (postID=>commentCount)
1974
+ $comments=($this->GetOption("b_prio_provider")!=""?$this->GetComments():array());
1975
+
1976
+ //Full number of comments
1977
+ $commentCount=(count($comments)>0?$this->GetCommentCount($comments):0);
1978
+
1979
+ if($debug && $this->GetOption("b_prio_provider")!="") {
1980
+ $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Total comment count: " . $commentCount));
1981
+ }
1982
+
1983
+ //Go XML!
1984
+ $this->AddElement(new GoogleSitemapGeneratorXmlEntry('<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/09/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'));
1985
+
1986
+ $home = get_bloginfo('url');
1987
+
1988
+ //Add the home page (WITH a slash!)
1989
+ if($this->GetOption("in_home")) {
1990
+ $this->AddUrl(trailingslashit($home),$this->GetTimestampFromMySql(get_lastpostmodified('GMT')),$this->GetOption("cf_home"),$this->GetOption("pr_home"));
1991
+ }
1992
+
1993
+ //Add the posts
1994
+ if($this->GetOption("in_posts") || $this->GetOption("in_pages")) {
1995
+
1996
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start Postings"));
1997
+
1998
+ //Pre 2.1 compatibility. 2.1 introduced 'future' as post_status so we don't need to check post_date
1999
+ $wpCompat = (floatval($wp_version) < 2.1);
2000
+
2001
+ $sql="SELECT `ID`, `post_author`, `post_date`, `post_date_gmt`, `post_status`, `post_name`, `post_modified`, `post_modified_gmt`, `post_parent`, `post_type` FROM `" . $wpdb->posts . "` WHERE ";
2002
+
2003
+ $where = '(';
2004
+
2005
+ if($this->GetOption('in_posts')) {
2006
+ //WP < 2.1: posts are post_status = publish
2007
+ //WP >= 2.1: post_type must be 'post', no date check required because future posts are post_status='future'
2008
+ if($wpCompat) $where.="(post_status = 'publish' AND post_date_gmt <= '" . gmdate('Y-m-d H:i:59') . "')";
2009
+ else $where.=" (post_status = 'publish' AND (post_type = 'post' OR post_type = '')) ";
2010
+ }
2011
+
2012
+ if($this->GetOption('in_pages')) {
2013
+ if($this->GetOption('in_posts')) {
2014
+ $where.=" OR ";
2015
+ }
2016
+ if($wpCompat) {
2017
+ //WP < 2.1: posts have post_status = published, pages have post_status = static
2018
+ $where.=" post_status='static' ";
2019
+ } else {
2020
+ //WP >= 2.1: posts have post_type = 'post' and pages have post_type = 'page'. Both must be published.
2021
+ $where.=" (post_status = 'publish' AND post_type = 'page') ";
2022
+ }
2023
+ }
2024
+
2025
+ $where.=") ";
2026
+
2027
+ $where.=" AND post_password='' ORDER BY post_modified DESC";
2028
+
2029
+ $sql .= $where;
2030
+
2031
+ if($this->GetOption("sm_b_max_posts")>0) {
2032
+ $sql.=" LIMIT 0," . $this->GetOption("sm_b_max_posts");
2033
+ }
2034
+
2035
+ $postCount = intval($wpdb->get_var("SELECT COUNT(*) AS cnt FROM `" . $wpdb->posts . "` WHERE ". $where,0,0));
2036
+
2037
+
2038
+ //Retrieve all posts and static pages (if enabled)
2039
+
2040
+ $con = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD,true);
2041
+ mysql_select_db(DB_NAME,$con);
2042
+
2043
+ $postRes = mysql_unbuffered_query($sql,$con);
2044
+
2045
+ if($postRes) {
2046
+
2047
+ //#type $prioProvider GoogleSitemapGeneratorPrioProviderBase
2048
+ $prioProvider=NULL;
2049
+
2050
+ if($this->GetOption("b_prio_provider") != '') {
2051
+ $providerClass=$this->GetOption('b_prio_provider');
2052
+ $prioProvider = new $providerClass($commentCount,$postCount);
2053
+ }
2054
+
2055
+ //$posts is used by Alex King's Popularity Contest plugin
2056
+ //if($posts == null || !is_array($posts)) {
2057
+ // $posts = &$postRes;
2058
+ //}
2059
+
2060
+ $z = 1;
2061
+ $zz = 1;
2062
+
2063
+ //Default priorities
2064
+ $default_prio_posts = $this->GetOption('pr_posts');
2065
+ $default_prio_pages = $this->GetOption('pr_pages');
2066
+
2067
+ //Change frequencies
2068
+ $cf_pages = $this->GetOption('sm_cf_pages');
2069
+ $cf_posts = $this->GetOption('sm_cf_posts');
2070
+
2071
+ $minPrio=$this->GetOption('pr_posts_min');
2072
+
2073
+
2074
+ //Cycle through all posts and add them
2075
+ while($post = mysql_fetch_object($postRes)) {
2076
+
2077
+ //Fill the cache with our DB result. Since it's incomplete (no text-content for example), we will clean it later.
2078
+ $cache = array(&$post);
2079
+ update_post_cache($cache);
2080
+
2081
+ $permalink = get_permalink($post->ID);
2082
+ if($permalink != $home) {
2083
+
2084
+ $isPage = false;
2085
+ if($wpCompat) {
2086
+ $isPage = ($post->post_status == 'static');
2087
+ } else {
2088
+ $isPage = ($post->post_type == 'page');
2089
+ }
2090
+
2091
+ //Set the current working post
2092
+ $GLOBALS['post'] = &$post;
2093
+
2094
+ //Default Priority if auto calc is disabled
2095
+ $prio = 0;
2096
+
2097
+ if($isPage) {
2098
+ //Priority for static pages
2099
+ $prio = $default_prio_pages;
2100
+ } else {
2101
+ //Priority for normal posts
2102
+ $prio = $default_prio_posts;
2103
+ }
2104
+
2105
+ //If priority calc. is enabled, calculate (but only for posts, not pages)!
2106
+ if($prioProvider !== null && !$isPage) {
2107
+
2108
+ //Comment count for this post
2109
+ $cmtcnt = (isset($comments[$post->ID])?$comments[$post->ID]:0);
2110
+ $prio = $prioProvider->GetPostPriority($post->ID,$cmtcnt);
2111
+
2112
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry('Debug: Priority report of postID ' . $post->ID . ': Comments: ' . $cmtcnt . ' of ' . $commentCount . ' = ' . $prio . ' points'));
2113
+ }
2114
+
2115
+ if(!$isPage && $minPrio>0 && $prio<$minPrio) {
2116
+ $prio = $minPrio;
2117
+ }
2118
+
2119
+ //Add it
2120
+ $this->AddUrl($permalink,$this->GetTimestampFromMySql(($post->post_modified_gmt && $post->post_modified_gmt!='0000-00-00 00:00:00'?$post->post_modified_gmt:$post->post_date_gmt)),($isPage?$cf_pages:$cf_posts),$prio);
2121
+ }
2122
+
2123
+ //Update the status every 100 posts and at the end.
2124
+ //If the script breaks because of memory or time limit,
2125
+ //we have a "last reponded" value which can be compared to the server settings
2126
+ if($zz==100 || $z == $postCount) {
2127
+ $status->SaveStep($z);
2128
+ $zz=0;
2129
+ } else $zz++;
2130
+
2131
+ $z++;
2132
+
2133
+ //Clean cache because it's incomplete
2134
+ clean_post_cache($post->ID);
2135
+ }
2136
+ unset($postRes);
2137
+ unset($prioProvider);
2138
+
2139
+ mysql_close($con);
2140
+ }
2141
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Postings"));
2142
+ }
2143
+
2144
+ //Add the cats
2145
+ if($this->GetOption("in_cats")) {
2146
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start Cats"));
2147
+
2148
+ if(!$this->IsTaxonomySupported()) {
2149
+
2150
+ $catsRes=$wpdb->get_results("
2151
+ SELECT
2152
+ c.cat_ID AS ID,
2153
+ MAX(p.post_modified_gmt) AS last_mod
2154
+ FROM
2155
+ `" . $wpdb->categories . "` c,
2156
+ `" . $wpdb->post2cat . "` pc,
2157
+ `" . $wpdb->posts . "` p
2158
+ WHERE
2159
+ pc.category_id = c.cat_ID
2160
+ AND p.ID = pc.post_id
2161
+ AND p.post_status = 'publish'
2162
+ AND p.post_type='post'
2163
+ GROUP
2164
+ BY c.cat_id
2165
+ ");
2166
+ if($catsRes) {
2167
+ foreach($catsRes as $cat) {
2168
+ if($cat && $cat->ID && $cat->ID>0) {
2169
+ if($debug) if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Cat-ID:" . $cat->ID));
2170
+ $this->AddUrl(get_category_link($cat->ID),$this->GetTimestampFromMySql($cat->last_mod),$this->GetOption("cf_cats"),$this->GetOption("pr_cats"));
2171
+ }
2172
+ }
2173
+ }
2174
+ } else {
2175
+ $cats = get_terms("category",array("hide_empty"=>true,"hierarchical"=>false));
2176
+ if($cats && is_array($cats) && count($cats)>0) {
2177
+ foreach($cats AS $cat) {
2178
+ $this->AddUrl(get_category_link($cat->term_id),0,$this->GetOption("cf_cats"),$this->GetOption("pr_cats"));
2179
+ }
2180
+ }
2181
+ }
2182
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Cats"));
2183
+ }
2184
+
2185
+ //Add the archives
2186
+ if($this->GetOption("in_arch")) {
2187
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start Archive"));
2188
+ $now = current_time('mysql');
2189
+
2190
+ //WP2.1 introduced post_status='future', for earlier WP versions we need to check the post_date_gmt
2191
+ $arcresults = $wpdb->get_results("
2192
+ SELECT DISTINCT
2193
+ YEAR(post_date_gmt) AS `year`,
2194
+ MONTH(post_date_gmt) AS `month`,
2195
+ MAX(post_date_gmt) as last_mod,
2196
+ count(ID) as posts
2197
+ FROM
2198
+ $wpdb->posts
2199
+ WHERE
2200
+ post_date < '$now'
2201
+ AND post_status = 'publish'
2202
+ AND post_type = 'post'
2203
+ " . (floatval($wp_version) < 2.1?"AND {$wpdb->posts}.post_date_gmt <= '" . gmdate('Y-m-d H:i:59') . "'":"") . "
2204
+ GROUP BY
2205
+ YEAR(post_date_gmt),
2206
+ MONTH(post_date_gmt)
2207
+ ORDER BY
2208
+ post_date_gmt DESC");
2209
+ if ($arcresults) {
2210
+ foreach ($arcresults as $arcresult) {
2211
+
2212
+ $url = get_month_link($arcresult->year, $arcresult->month);
2213
+ $changeFreq="";
2214
+
2215
+ //Archive is the current one
2216
+ if($arcresult->month==date("n") && $arcresult->year==date("Y")) {
2217
+ $changeFreq=$this->GetOption("cf_arch_curr");
2218
+ } else { // Archive is older
2219
+ $changeFreq=$this->GetOption("cf_arch_old");
2220
+ }
2221
+
2222
+ $this->AddUrl($url,$this->GetTimestampFromMySql($arcresult->last_mod),$changeFreq,$this->GetOption("pr_arch"));
2223
+ }
2224
+ }
2225
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Archive"));
2226
+ }
2227
+
2228
+ //Add the author pages
2229
+ if($this->GetOption("in_auth")) {
2230
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start Author pages"));
2231
+
2232
+ $linkFunc = null;
2233
+
2234
+ //get_author_link is deprecated in WP 2.1, try to use get_author_posts_url first.
2235
+ if(function_exists('get_author_posts_url')) {
2236
+ $linkFunc = 'get_author_posts_url';
2237
+ } else if(function_exists('get_author_link')) {
2238
+ $linkFunc = 'get_author_link';
2239
+ }
2240
+
2241
+ //Who knows what happens in later WP versions, so check again if it worked
2242
+ if($linkFunc !== null) {
2243
+ //Unfortunately there is no API function to get all authors, so we have to do it the dirty way...
2244
+ //We retrieve only users with published and not password protected posts (and not pages)
2245
+ //WP2.1 introduced post_status='future', for earlier WP versions we need to check the post_date_gmt
2246
+ $sql = "SELECT DISTINCT
2247
+ {$wpdb->users}.ID,
2248
+ {$wpdb->users}.user_nicename,
2249
+ MAX({$wpdb->posts}.post_modified_gmt) AS last_post
2250
+ FROM
2251
+ {$wpdb->users},
2252
+ {$wpdb->posts}
2253
+ WHERE
2254
+ {$wpdb->posts}.post_author = {$wpdb->posts}.ID
2255
+ AND {$wpdb->posts}.post_status = 'publish'
2256
+ AND {$wpdb->posts}.post_type = 'post'
2257
+ AND {$wpdb->posts}.post_password = ''
2258
+ " . (floatval($wp_version) < 2.1?"AND {$wpdb->posts}.post_date_gmt <= '" . gmdate('Y-m-d H:i:59') . "'":"") . "
2259
+ GROUP BY
2260
+ {$wpdb->posts}.ID,
2261
+ {$wpdb->users}.user_nicename";
2262
+ $authors = $wpdb->get_results($sql);
2263
+
2264
+ if($authors && is_array($authors)) {
2265
+ foreach($authors as $author) {
2266
+ if($debug) if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Author-ID:" . $author->ID));
2267
+ $url = ($linkFunc=='get_author_posts_url'?get_author_posts_url($author->ID,$author->user_nicename):get_author_link(false,$author->ID,$author->user_nicename));
2268
+ $this->AddUrl($url,$this->GetTimestampFromMySql($author->last_post),$this->GetOption("cf_auth"),$this->GetOption("pr_auth"));
2269
+ }
2270
+ }
2271
+ } else {
2272
+ //Too bad, no author pages for you :(
2273
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: No valid author link function found"));
2274
+ }
2275
+
2276
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Author pages"));
2277
+ }
2278
+
2279
+ //Add tag pages
2280
+ if($this->GetOption("in_tags") && $this->IsTaxonomySupported()) {
2281
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start Tags"));
2282
+ $tags = get_terms("post_tag",array("hide_empty"=>true,"hierarchical"=>false));
2283
+ if($tags && is_array($tags) && count($tags)>0) {
2284
+ foreach($tags AS $tag) {
2285
+ $this->AddUrl(get_tag_link($tag->term_id),0,$this->GetOption("cf_tags"),$this->GetOption("pr_tags"));
2286
+ }
2287
+ }
2288
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Tags"));
2289
+ }
2290
+
2291
+ //Add the custom pages
2292
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start Custom Pages"));
2293
+ if($this->_pages && is_array($this->_pages) && count($this->_pages)>0) {
2294
+ //#type $page GoogleSitemapGeneratorPage
2295
+ foreach($this->_pages AS $page) {
2296
+ $this->AddUrl($page->GetUrl(),$page->getLastMod(),$page->getChangeFreq(),$page->getPriority());
2297
+ }
2298
+ }
2299
+
2300
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End Custom Pages"));
2301
+
2302
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: Start additional URLs"));
2303
+
2304
+ do_action("sm_buildmap");
2305
+
2306
+ if($debug) $this->AddElement(new GoogleSitemapGeneratorDebugEntry("Debug: End additional URLs"));
2307
+
2308
+ $this->AddElement(new GoogleSitemapGeneratorXmlEntry("</urlset>"));
2309
+
2310
+
2311
+ $pingUrl='';
2312
+
2313
+ if($this->GetOption("b_xml")) {
2314
+ if($this->_fileHandle && fclose($this->_fileHandle)) {
2315
+ $this->_fileHandle = null;
2316
+ $status->EndXml(true);
2317
+ $pingUrl=$this->GetXmlUrl();
2318
+ } else $status->EndXml(false,"Could not close the sitemap file.");
2319
+ }
2320
+
2321
+ if($this->IsGzipEnabled()) {
2322
+ if($this->_fileZipHandle && fclose($this->_fileZipHandle)) {
2323
+ $this->_fileZipHandle = null;
2324
+ $status->EndZip(true);
2325
+ $pingUrl=$this->GetZipUrl();
2326
+ } else $status->EndZip(false,"Could not close the zipped sitemap file");
2327
+ }
2328
+
2329
+ //Ping Google
2330
+ if($this->GetOption("b_ping") && !empty($pingUrl)) {
2331
+ $status->StartGooglePing();
2332
+ $sPingUrl="http://www.google.com/webmasters/sitemaps/ping?sitemap=" . urlencode($pingUrl);
2333
+ $pingres=wp_remote_fopen($sPingUrl);
2334
+
2335
+ if($pingres==NULL || $pingres===false) {
2336
+ $status->EndGooglePing(false,$this->_lastError);
2337
+ } else {
2338
+ $status->EndGooglePing(true);
2339
+ }
2340
+ }
2341
+
2342
+ //Ping Ask.com
2343
+ if($this->GetOption("b_pingask") && !empty($pingUrl)) {
2344
+ $status->StartAskPing();
2345
+ $sPingUrl="http://submissions.ask.com/ping?sitemap=" . urlencode($pingUrl);
2346
+ $pingres=wp_remote_fopen($sPingUrl);
2347
+
2348
+ if($pingres==NULL || $pingres===false || strpos($pingres,"successfully received and added")===false) { //Ask.com returns 200 OK even if there was an error, so we need to check the content.
2349
+ $status->EndAskPing(false,$this->_lastError);
2350
+ } else {
2351
+ $status->EndAskPing(true);
2352
+ }
2353
+ }
2354
+
2355
+ //Ping YAHOO
2356
+ if($this->GetOption("sm_b_pingyahoo")===true && !empty($pingUrl)) {
2357
+ $status->StartYahooPing();
2358
+ $sPingUrl="http://search.yahooapis.com/SiteExplorerService/V1/ping?sitemap=" . urlencode($pingUrl);
2359
+ $pingres=wp_remote_fopen($sPingUrl);
2360
+
2361
+ if($pingres==NULL || $pingres===false || strpos(strtolower($pingres),"success")===false) {
2362
+ $status->EndYahooPing(false,$this->_lastError);
2363
+ } else {
2364
+ $status->EndYahooPing(true);
2365
+ }
2366
+ }
2367
+
2368
+ $status->End();
2369
+
2370
+
2371
+ $this->_isActive = false;
2372
+
2373
+ //done...
2374
+ return $status;
2375
+ }
2376
+
2377
+ /**
2378
+ * Tracks the last error (gets called by PHP)
2379
+ *
2380
+ * @since 3.0
2381
+ * @access private
2382
+ * @author Arne Brachhold
2383
+ */
2384
+ function TrackError($log_level, $log_text, $error_file, $error_line) {
2385
+ $this->_lastError = $log_text;
2386
+ }
2387
+
2388
+ /**
2389
+ * Adds the options page in the admin menu
2390
+ *
2391
+ * @since 3.0
2392
+ * @access public
2393
+ * @author Arne Brachhold
2394
+ */
2395
+ function RegisterAdminPage() {
2396
+ if (function_exists('add_options_page')) {
2397
+ add_options_page(__('XML-Sitemap Generator','sitemap'), __('XML-Sitemap','sitemap'), 'administrator', basename(__FILE__), array(&$this,'HtmlShowOptionsPage'));
2398
+ }
2399
+ }
2400
+
2401
+ /**
2402
+ * Echos option fields for an select field containing the valid change frequencies
2403
+ *
2404
+ * @since 3.0
2405
+ * @access private
2406
+ * @author Arne Brachhold
2407
+ * @param $currentVal The value which should be selected
2408
+ * @return all valid change frequencies as html option fields
2409
+ */
2410
+ function HtmlGetFreqNames($currentVal) {
2411
+ foreach($this->_freqNames AS $v) {
2412
+ echo "<option value=\"$v\" " . $this->HtmlGetSelected($v,$currentVal) .">";
2413
+ echo ucfirst(__($v,'sitemap'));
2414
+ echo "</option>";
2415
+ }
2416
+ }
2417
+
2418
+ /**
2419
+ * Echos option fields for an select field containing the valid priorities (0- 1.0)
2420
+ *
2421
+ * @since 3.0
2422
+ * @access private
2423
+ * @author Arne Brachhold
2424
+ * @param $currentVal string The value which should be selected
2425
+ * @return 0.0 - 1.0 as html option fields
2426
+ */
2427
+ function HtmlGetPriorityValues($currentVal) {
2428
+ $currentVal=(float) $currentVal;
2429
  for($i=0.0; $i<=1.0; $i+=0.1) {
2430
+ echo "<option value=\"$i\" " . $this->HtmlGetSelected("$i","$currentVal") .">";
2431
  _e(strval($i));
2432
  echo "</option>";
2433
  }
2434
  }
2435
+
 
 
 
 
 
 
2436
  /**
2437
+ * Returns the checked attribute if the given values match
2438
+ *
2439
+ * @since 3.0
2440
+ * @access private
2441
+ * @author Arne Brachhold
2442
+ * @param $val string The current value
2443
+ * @param $equals string The value to match
2444
+ * @return The checked attribute if the given values match, an empty string if not
2445
+ */
2446
+ function HtmlGetChecked($val,$equals) {
2447
+ if($val==$equals) return $this->HtmlGetAttribute("checked");
2448
+ else return "";
2449
+ }
2450
+
2451
+ /**
2452
+ * Returns the selected attribute if the given values match
2453
+ *
2454
+ * @since 3.0
2455
+ * @access private
2456
+ * @author Arne Brachhold
2457
+ * @param $val string The current value
2458
+ * @param $equals string The value to match
2459
+ * @return The selected attribute if the given values match, an empty string if not
2460
+ */
2461
+ function HtmlGetSelected($val,$equals) {
2462
+ if($val==$equals) return $this->HtmlGetAttribute("selected");
2463
+ else return "";
2464
+ }
2465
+
2466
+ /**
2467
+ * Returns an formatted attribute. If the value is NULL, the name will be used.
2468
+ *
2469
+ * @since 3.0
2470
+ * @access private
2471
+ * @author Arne Brachhold
2472
+ * @param $attr string The attribute name
2473
+ * @param $value string The attribute value
2474
+ * @return The formatted attribute
2475
+ */
2476
+ function HtmlGetAttribute($attr,$value=NULL) {
2477
+ if($value==NULL) $value=$attr;
2478
+ return " " . $attr . "=\"" . $value . "\" ";
2479
+ }
2480
+
2481
+ /**
2482
+ * Returns an array with GoogleSitemapGeneratorPage objects which is generated from POST values
2483
+ *
2484
+ * @since 3.0
2485
+ * @see GoogleSitemapGeneratorPage
2486
+ * @access private
2487
+ * @author Arne Brachhold
2488
+ * @return array An array with GoogleSitemapGeneratorPage objects
2489
+ */
2490
+ function HtmlApplyPages() {
2491
  // Array with all page URLs
2492
+ $pages_ur=(!isset($_POST["sm_pages_ur"]) || !is_array($_POST["sm_pages_ur"])?array():$_POST["sm_pages_ur"]);
2493
 
2494
  //Array with all priorities
2495
+ $pages_pr=(!isset($_POST["sm_pages_pr"]) || !is_array($_POST["sm_pages_pr"])?array():$_POST["sm_pages_pr"]);
2496
 
2497
  //Array with all change frequencies
2498
+ $pages_cf=(!isset($_POST["sm_pages_cf"]) || !is_array($_POST["sm_pages_cf"])?array():$_POST["sm_pages_cf"]);
2499
 
2500
  //Array with all lastmods
2501
+ $pages_lm=(!isset($_POST["sm_pages_lm"]) || !is_array($_POST["sm_pages_lm"])?array():$_POST["sm_pages_lm"]);
2502
 
2503
  //Array where the new pages are stored
2504
  $pages=array();
2507
  if(isset($_POST["sm_pages_mark"]) && is_array($_POST["sm_pages_mark"])) {
2508
  for($i=0; $i<count($_POST["sm_pages_mark"]); $i++) {
2509
  //Create new object
2510
+ $p=new GoogleSitemapGeneratorPage();
2511
+ if(substr($pages_ur[$i],0,4)=="www.") $pages_ur[$i]="http://" . $pages_ur[$i];
2512
+ $p->SetUrl($pages_ur[$i]);
2513
+ $p->SetProprity($pages_pr[$i]);
2514
+ $p->SetChangeFreq($pages_cf[$i]);
2515
  //Try to parse last modified, if -1 (note ===) automatic will be used (0)
2516
+ $lm=(!empty($pages_lm[$i])?strtotime($pages_lm[$i],time()):-1);
2517
  if($lm===-1) $p->setLastMod(0);
2518
  else $p->setLastMod($lm);
2519
 
2520
  //Add it to the array
2521
+ array_push($pages,$p);
2522
  }
2523
  }
 
2524
  return $pages;
2525
  }
2526
+
2527
+ function GetTimestampFromMySql($mysqlDateTime) {
2528
+ list($date, $hours) = split(' ', $mysqlDateTime);
2529
+ list($year,$month,$day) = split('-',$date);
2530
+ list($hour,$min,$sec) = split(':',$hours);
2531
+ return mktime($hour, $min, $sec, $month, $day, $year);
2532
+ }
 
 
 
 
 
 
 
 
 
 
 
2533
 
2534
+
2535
+ function GetResourceLink($resourceID) {
2536
+ return trailingslashit(get_bloginfo('siteurl')) . '?res=' . $resourceID;
2537
+ }
2538
+
2539
+ function GetRedirectLink($redir) {
2540
+ return trailingslashit("http://www.arnebrachhold.de/redir/" . $redir);
2541
+ }
2542
+
2543
+ function GetBackLink() {
2544
+ $page = basename(__FILE__);
2545
+ if(isset($_GET['page']) && !empty($_GET['page'])) {
2546
+ $page = preg_replace('[^a-zA-Z0-9\.\_\-]','',$_GET['page']);
2547
  }
2548
+ return $_SERVER['PHP_SELF'] . "?page=" . $page;
2549
+ }
2550
+
 
 
 
 
2551
  /**
2552
+ * Displays the option page
2553
+ *
2554
+ * @since 3.0
2555
+ * @access public
2556
+ * @author Arne Brachhold
2557
+ */
2558
+ function HtmlShowOptionsPage() {
2559
+
2560
+ $this->Initate();
 
2561
 
2562
+ //All output should go in this var which get printed at the end
2563
+ $message="";
2564
+
2565
+ if(isset($_GET['sm_donated'])) {
2566
+ $this->SetOption('b_donated',true);
2567
+ $this->SaveOptions();
2568
+ }
2569
+ if(isset($_GET['sm_hidedonate'])) {
2570
+ $this->SetOption('b_hide_donated',true);
2571
+ $this->SaveOptions();
2572
+ }
2573
+
2574
+ if(isset($_GET['sm_hidedonors'])) {
2575
+ $this->SetOption('b_hide_donors',true);
2576
+ $this->SaveOptions();
2577
+ }
2578
+
2579
+ if(isset($_GET['sm_donated']) || ($this->GetOption('b_donated')===true && $this->GetOption('b_hide_donated')!==true)) {
2580
+ ?>
2581
+ <div class="updated">
2582
+ <strong><p><?php _e('Thank you very much for your donation. You help me to continue support and development of this plugin and other free software!','sitemap'); ?> <a href="<?php echo $this->GetBackLink() . "&amp;sm_hidedonate=true"; ?>"><small style="font-weight:normal;"><?php _e('Hide this notice', 'sitemap'); ?></small></a></p></strong>
2583
+ </div>
2584
+ <?php
2585
+ }
2586
+
2587
+ if(!empty($_REQUEST["sm_rebuild"])) { //Pressed Button: Rebuild Sitemap
2588
+ if(isset($_GET["sm_do_debug"]) && $_GET["sm_do_debug"]=="true") {
2589
+
2590
+ //Check again, just for the case that something went wrong before
2591
+ if(!current_user_can("administrator")) {
2592
+ echo '<p>Please log in as admin</p>';
2593
+ return;
2594
+ }
2595
 
2596
+ $oldErr = error_reporting(E_ALL);
2597
+ $oldIni = ini_set("display_errors",1);
2598
+
2599
+ echo '<div class="wrap">';
2600
+ echo '<h2>' . __('XML Sitemap Generator for WordPress', 'sitemap') . " " . $this->GetVersion(). '</h2>';
2601
+ echo '<p>This is the debug mode of the XML Sitemap Generator. It will show all PHP notices and warnings as well as the internal logs, messages and configuration.</p>';
2602
+ echo '<p style="font-weight:bold; color:red; padding:5px; border:1px red solid; text-align:center;">DO NOT POST THIS INFORMATION ON PUBLIC PAGES LIKE SUPPORT FORUMS AS IT MAY CONTAIN PASSWORDS OR SECRET SERVER INFORMATION!</p>';
2603
+ echo "<h3>WordPress and PHP Information</h3>";
2604
+ echo '<p>WordPress ' . $GLOBALS['wp_version'] . ' with ' . ' DB ' . $GLOBALS['wp_db_version'] . ' on PHP ' . phpversion() . '</p>';
2605
+ echo '<p>Plugin version: ' . $this->_version . ' (' . $this->_svnVersion . ')';
2606
+ echo '<h4>Environment</h4>';
2607
+ echo "<pre>";
2608
+ $sc = $_SERVER;
2609
+ unset($sc["HTTP_COOKIE"]);
2610
+ print_r($sc);
2611
+ echo "</pre>";
2612
+ echo "<h4>WordPress Config</h4>";
2613
+ echo "<pre>";
2614
+ $opts = wp_load_alloptions();
2615
+ $popts = array();
2616
+ foreach($opts as $k=>$v) {
2617
+ //Try to filter out passwords etc...
2618
+ if(preg_match("/(pass|login|pw|secret|user|usr)/si",$v)) continue;
2619
+ $popts[$k] = htmlspecialchars($v);
2620
+ }
2621
+ print_r($popts);
2622
+ echo "</pre>";
2623
+ echo '<h4>Sitemap Config</h4>';
2624
+ echo "<pre>";
2625
+ print_r($this->_options);
2626
+ echo "</pre>";
2627
+ echo '<h3>Errors, Warnings, Notices</h3>';
2628
+ echo '<div>';
2629
+ $status = $this->BuildSitemap();
2630
+ echo '</div>';
2631
+ echo '<h3>MySQL Queries</h3>';
2632
+ if(defined('SAVEQUERIES') && SAVEQUERIES) {
2633
+ echo '<pre>';
2634
+ var_dump($GLOBALS['wpdb']->queries);
2635
+ echo '</pre>';
2636
+
2637
+ $total = 0;
2638
+ foreach($GLOBALS['wpdb']->queries as $q) {
2639
+ $total+=$q[1];
2640
  }
2641
+ echo '<h4>Total Query Time</h4>';
2642
+ echo '<pre>' . count($GLOBALS['wpdb']->queries) . ' queries in ' . round($total,2) . ' seconds.</pre>';
2643
+ } else {
2644
+ echo '<p>Please edit wp-db.inc.php in wp-includes and set SAVEQUERIES to true if you want to see the queries.</p>';
2645
  }
2646
+ echo "<h3>Build Process Results</h3>";
2647
+ echo "<pre>";
2648
+ print_r($status);
2649
+ echo "</pre>";
2650
+ echo '<p>Done. <a href="' . $this->GetBackLink() . '&sm_rebuild=true&sm_do_debug=true">Rebuild</a> or <a href="' . $this->GetBackLink() . '">Return</a></p>';
2651
+ echo '<p style="font-weight:bold; color:red; padding:5px; border:1px red solid; text-align:center;">DO NOT POST THIS INFORMATION ON PUBLIC PAGES LIKE SUPPORT FORUMS AS IT MAY CONTAIN PASSWORDS OR SECRET SERVER INFORMATION!</p>';
2652
+ echo '</div>';
2653
+ @error_reporting($oldErr);
2654
+ @ini_set("display_errors",$oldIni);
2655
+ return;
2656
+ } else {
2657
+ $this->BuildSitemap();
2658
+ //Redirect so the sm_rebuild GET parameter no longer exists.
2659
+ @header("location: " . $this->GetBackLink());
2660
+ //If there was already any other output, the header redirect will fail
2661
+ echo '<script type="text/javascript">location.replace("' . $this->GetBackLink() . '");</script>';
2662
+ echo '<noscript><a href="' . $this->GetBackLink() . '">Click here to continue</a></noscript>';
2663
+ exit;
2664
  }
2665
+ } else if (!empty($_POST['sm_update'])) { //Pressed Button: Update Config
2666
+
2667
+ foreach($this->_options as $k=>$v) {
2668
+ //Check vor values and convert them into their types, based on the category they are in
2669
+ if(!isset($_POST[$k])) $_POST[$k]=""; // Empty string will get false on 2bool and 0 on 2float
2670
+ //Options of the category "Basic Settings" are boolean, except the filename and the autoprio provider
2671
+ if(substr($k,0,5)=="sm_b_") {
2672
+ if($k=="sm_b_filename" || $k=="sm_b_fileurl_manual" || $k=="sm_b_filename_manual" || $k=="sm_b_prio_provider" || $k=="sm_b_manual_key" || $k == "sm_b_style" || $k == "sm_b_memory") {
2673
+ if($k=="sm_b_filename_manual" && strpos($_POST[$k],"\\")!==false){
2674
+ $_POST[$k]=stripslashes($_POST[$k]);
2675
+ }
2676
+ $this->_options[$k]=(string) $_POST[$k];
2677
+ } else if($k=="sm_b_location_mode") {
2678
+ $tmp=(string) $_POST[$k];
2679
+ $tmp=strtolower($tmp);
2680
+ if($tmp=="auto" || $tmp="manual") $this->_options[$k]=$tmp;
2681
+ else $this->_options[$k]="auto";
2682
+ } else if($k == "sm_b_time" || $k=="sm_b_max_posts") {
2683
+ if($_POST[$k]=='') $_POST[$k] = -1;
2684
+ $this->_options[$k] = intval($_POST[$k]);
2685
+ } else {
2686
+ $this->_options[$k]=(bool) $_POST[$k];
 
 
2687
  }
2688
+ //Options of the category "Includes" are boolean
2689
+ } else if(substr($k,0,6)=="sm_in_") {
2690
+ $this->_options[$k]=(bool) $_POST[$k];
2691
+ //Options of the category "Change frequencies" are string
2692
+ } else if(substr($k,0,6)=="sm_cf_") {
2693
+ $this->_options[$k]=(string) $_POST[$k];
2694
+ //Options of the category "Priorities" are float
2695
+ } else if(substr($k,0,6)=="sm_pr_") {
2696
+ $this->_options[$k]=(float) $_POST[$k];
2697
  }
2698
+ }
2699
 
2700
+ //Apply page changes from POST
2701
+ $this->_pages=$this->HtmlApplyPages();
 
 
 
 
 
 
 
 
 
 
 
2702
 
2703
+ if($this->SaveOptions()) $message.=__('Configuration updated', 'sitemap') . "<br />";
2704
+ else $message.=__('Error while saving options', 'sitemap') . "<br />";
 
 
 
 
 
 
 
 
 
 
 
 
 
2705
 
2706
+ if($this->SavePages()) $message.=__("Pages saved",'sitemap') . "<br />";
2707
+ else $message.=__('Error while saving pages', 'sitemap'). "<br />";
 
 
 
 
 
 
 
 
 
 
 
 
2708
 
2709
+ if($this->GetOption('sm_b_robots')===true) {
2710
+ if($this->WriteRobotsFile()) {
2711
+ $message.=str_replace("%s",$this->GetRobotsFileUrl(),__("<a href=\"%s\">Robots.txt</a> file saved",'sitemap')) . "<br />";
2712
+ } else {
2713
+ $message.=__("Error while saving Robots.txt file",'sitemap') . "<br />";
2714
+ }
2715
  }
2716
+
2717
+ } else if(!empty($_POST["sm_reset_config"])) { //Pressed Button: Reset Config
2718
+ $this->InitOptions();
2719
+ $this->SaveOptions();
2720
+
2721
+ $message.=__('The default configuration was restored.','sitemap');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2722
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2723
 
2724
+ //Print out the message to the user, if any
2725
+ if($message!="") {
2726
+ ?>
2727
+ <div class="updated"><strong><p><?php
2728
+ echo $message;
2729
+ ?></p></strong></div><?php
2730
+ }
2731
+ ?>
2732
+
2733
+ <style type="text/css">
2734
 
2735
+ li.sm_hint {
2736
+ color:green;
2737
+ }
2738
 
2739
+ li.sm_optimize {
2740
+ color:orange;
2741
  }
2742
 
2743
+ li.sm_error {
2744
+ color:red;
2745
+ }
2746
 
2747
+ input.sm_warning:hover {
2748
+ background: #ce0000;
2749
+ color: #fff;
2750
  }
2751
 
2752
+ a.sm_button {
2753
+ padding:4px;
2754
+ display:block;
2755
+ padding-left:25px;
2756
+ background-repeat:no-repeat;
2757
+ background-position:5px 50%;
2758
+ text-decoration:none;
2759
+ border:none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2760
  }
2761
 
2762
+ a.sm_button:hover {
2763
+ border-bottom-width:1px;
 
 
 
 
 
 
 
 
 
 
 
2764
  }
2765
+
2766
+ a.sm_donatePayPal {
2767
+ background-image:url(<?php echo $this->GetResourceLink("{8C0BAD8C-77FA-4842-956E-CDEF7635F2C7}"); ?>);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2768
  }
2769
 
2770
+ a.sm_donateAmazon {
2771
+ background-image:url(<?php echo $this->GetResourceLink("{9866EAFC-3F85-44df-8A72-4CD1566E2D4F}"); ?>);
 
 
 
 
 
2772
  }
 
2773
 
2774
+ a.sm_pluginHome {
2775
+ background-image:url(<?php echo $this->GetResourceLink("{AD59B831-BF3D-49b1-A649-9DD8EDA1798A}"); ?>);
2776
+ }
 
 
 
 
2777
 
2778
+ a.sm_pluginList {
2779
+ background-image:url(<?php echo $this->GetResourceLink("{FFA3E2B1-D2B1-4c66-B8A4-5F6E7D8781F2}"); ?>);
2780
+ }
2781
 
2782
+ a.sm_pluginSupport {
2783
+ background-image:url(<?php echo $this->GetResourceLink("{234C74C9-3DF4-4ae2-A12E-C157C67059D8}"); ?>);
 
 
 
 
 
 
 
 
 
 
 
2784
  }
2785
 
2786
+ a.sm_resGoogle {
2787
+ background-image:url(<?php echo $this->GetResourceLink("{7E5622AF-0DE3-4e43-99F9-33EC61308376}"); ?>);
 
 
 
 
 
 
 
 
 
 
 
2788
  }
2789
 
2790
+ a.sm_resYahoo {
2791
+ background-image:url(<?php echo $this->GetResourceLink("{BC853F21-410E-47ff-BB6D-2B89C9D7E76B}"); ?>);
 
 
 
 
 
 
 
 
2792
  }
2793
 
2794
+ </style>
2795
+
2796
+ <div class="wrap" id="sm_div">
2797
+ <form method="post" action="<?php echo $this->GetBackLink() ?>">
2798
+ <h2><?php _e('XML Sitemap Generator for WordPress', 'sitemap'); echo " " . $this->GetVersion() ?> </h2>
2799
+ <script type="text/javascript" src="../wp-includes/js/dbx.js"></script>
2800
+ <script type="text/javascript">
2801
+ //<![CDATA[
2802
+ addLoadEvent( function() {
2803
+ var manager = new dbxManager('sm_sitemap_meta_33');
2804
+
2805
+ //create new docking boxes group
2806
+ var meta = new dbxGroup(
2807
+ 'grabit', // container ID [/-_a-zA-Z0-9/]
2808
+ 'vertical', // orientation ['vertical'|'horizontal']
2809
+ '10', // drag threshold ['n' pixels]
2810
+ 'no', // restrict drag movement to container axis ['yes'|'no']
2811
+ '10', // animate re-ordering [frames per transition, or '0' for no effect]
2812
+ 'yes', // include open/close toggle buttons ['yes'|'no']
2813
+ 'open', // default state ['open'|'closed']
2814
+ <?php echo "'" . js_escape(__('open')); ?>', // word for "open", as in "open this box"
2815
+ <?php echo "'" . js_escape(__('close')); ?>', // word for "close", as in "close this box"
2816
+ <?php echo "'" . js_escape(__('click-down and drag to move this box')); ?>', // sentence for "move this box" by mouse
2817
+ <?php echo "'" . js_escape(__('click to %toggle% this box')); ?>', // pattern-match sentence for "(open|close) this box" by mouse
2818
+ <?php echo "'" . js_escape(__('use the arrow keys to move this box')); ?>', // sentence for "move this box" by keyboard
2819
+ <?php echo "'" . js_escape(__(', or press the enter key to %toggle% it')); ?>', // pattern-match sentence-fragment for "(open|close) this box" by keyboard
2820
+ '%mytitle% [%dbxtitle%]' // pattern-match syntax for title-attribute conflicts
2821
+ );
2822
+
2823
+ var advanced = new dbxGroup(
2824
+ 'advancedstuff', // container ID [/-_a-zA-Z0-9/]
2825
+ 'vertical', // orientation ['vertical'|'horizontal']
2826
+ '10', // drag threshold ['n' pixels]
2827
+ 'yes', // restrict drag movement to container axis ['yes'|'no']
2828
+ '10', // animate re-ordering [frames per transition, or '0' for no effect]
2829
+ 'yes', // include open/close toggle buttons ['yes'|'no']
2830
+ 'open', // default state ['open'|'closed']
2831
+ <?php echo "'" . js_escape(__('open')); ?>', // word for "open", as in "open this box"
2832
+ <?php echo "'" . js_escape(__('close')); ?>', // word for "close", as in "close this box"
2833
+ <?php echo "'" . js_escape(__('click-down and drag to move this box')); ?>', // sentence for "move this box" by mouse
2834
+ <?php echo "'" . js_escape(__('click to %toggle% this box')); ?>', // pattern-match sentence for "(open|close) this box" by mouse
2835
+ <?php echo "'" . js_escape(__('use the arrow keys to move this box')); ?>', // sentence for "move this box" by keyboard
2836
+ <?php echo "'" . js_escape(__(', or press the enter key to %toggle% it')); ?>', // pattern-match sentence-fragment for "(open|close) this box" by keyboard
2837
+ '%mytitle% [%dbxtitle%]' // pattern-match syntax for title-attribute conflicts
2838
+ );
2839
+ });
2840
+ //]]>
2841
+ </script>
2842
+
2843
+ <div id="poststuff">
2844
+ <div id="moremeta">
2845
+ <div id="grabit" class="dbx-group">
2846
+ <fieldset id="sm_pnres" class="dbx-box">
2847
+ <h3 class="dbx-handle"><?php _e('About this Plugin:','sitemap'); ?></h3>
2848
+ <div class="dbx-content">
2849
+ <a class="sm_button sm_pluginHome" href="<?php echo $this->GetRedirectLink('sitemap-home'); ?>"><?php _e('Plugin Homepage','sitemap'); ?></a>
2850
+ <a class="sm_button sm_pluginList" href="<?php echo $this->GetRedirectLink('sitemap-list'); ?>"><?php _e('Notify List','sitemap'); ?></a>
2851
+ <a class="sm_button sm_pluginSupport" href="<?php echo $this->GetRedirectLink('sitemap-support'); ?>"><?php _e('Support Forum','sitemap'); ?></a>
2852
+ <a class="sm_button sm_donatePayPal" href="<?php echo $this->GetRedirectLink('sitemap-paypal'); ?>"><?php _e('Donate with PayPal','sitemap'); ?></a>
2853
+ <a class="sm_button sm_donateAmazon" href="<?php echo $this->GetRedirectLink('sitemap-amazon'); ?>"><?php _e('My Amazon Wish List','sitemap'); ?></a>
2854
+ <?php if(__('translator_name','sitemap')!='translator_name') {?><a class="sm_button sm_pluginSupport" href="<?php _e('translator_url','sitemap'); ?>"><?php _e('translator_name','sitemap'); ?></a><?php } ?>
2855
+ </div>
2856
+ </fieldset>
2857
+ <fieldset id="sm_smres" class="dbx-box">
2858
+ <h3 class="dbx-handle"><?php _e('Sitemap Resources:','sitemap'); ?></h3>
2859
+ <div class="dbx-content">
2860
+ <a class="sm_button sm_resGoogle" href="<?php echo $this->GetRedirectLink('sitemap-gwt'); ?>"><?php _e('Webmaster Tools','sitemap'); ?></a>
2861
+ <a class="sm_button sm_resGoogle" href="<?php echo $this->GetRedirectLink('sitemap-gwb'); ?>"><?php _e('Webmaster Blog','sitemap'); ?></a>
2862
+
2863
+ <a class="sm_button sm_resYahoo" href="<?php echo $this->GetRedirectLink('sitemap-yse'); ?>"><?php _e('Site Explorer','sitemap'); ?></a>
2864
+ <a class="sm_button sm_resYahoo" href="<?php echo $this->GetRedirectLink('sitemap-ywb'); ?>"><?php _e('Search Blog','sitemap'); ?></a>
2865
+ <br />
2866
+ <a class="sm_button sm_resGoogle" href="<?php echo $this->GetRedirectLink('sitemap-prot'); ?>"><?php _e('Sitemaps Protocol','sitemap'); ?></a>
2867
+ <a class="sm_button sm_resGoogle" href="<?php echo $this->GetRedirectLink('sitemap-ofaq'); ?>"><?php _e('Official Sitemaps FAQ','sitemap'); ?></a>
2868
+ <a class="sm_button sm_pluginHome" href="<?php echo $this->GetRedirectLink('sitemap-afaq'); ?>"><?php _e('My Sitemaps FAQ','sitemap'); ?></a>
2869
+ </div>
2870
+ </fieldset>
2871
+
2872
+ <fieldset id="dm_donations" class="dbx-box">
2873
+ <h3 class="dbx-handle"><?php _e('Recent Donations:','siteinfo'); ?></h3>
2874
+ <div class="dbx-content">
2875
+ <?php if($this->GetOption('b_hide_donors')!==true) { ?>
2876
+ <iframe border="0" frameborder="0" scrolling="no" allowtransparency="yes" style="width:100%; height:60px;" src="<?php echo $this->GetRedirectLink('sitemap-donorlist'); ?>">
2877
+ <?php _e('List of the donors','sitemap'); ?>
2878
+ </iframe><br />
2879
+ <a href="<?php echo $this->GetBackLink() . "&amp;sm_hidedonors=true"; ?>"><small><?php _e('Hide this list','sitemap'); ?></small></a><br /><br />
2880
+ <?php } ?>
2881
+ <a style="float:left; margin-right:5px; border:none;" href="javascript:document.getElementById('sm_donate_form').submit();"><img style="vertical-align:middle; border:none; margin-top:2px;" src="<?php echo $this->GetResourceLink("{6E89EFD4-A853-4321-B5CF-3E36C60B268D}"); ?>" border="0" alt="PayPal" title="Help me to continue support of this plugin :)" /></a>
2882
+ <span><small><?php _e('Thanks for your support!','sitemap'); ?></small></span>
2883
+ </div>
2884
+ </fieldset>
2885
+ </div>
2886
+ </div>
2887
+
2888
+ <div id="advancedstuff" class="dbx-group" >
2889
+
2890
+ <!-- Rebuild Area -->
2891
+ <div class="dbx-b-ox-wrapper">
2892
+ <fieldset id="sm_rebuild" class="dbx-box">
2893
+ <div class="dbx-h-andle-wrapper">
2894
+ <h3 class="dbx-handle"><?php _e('Status', 'sitemap') ?></h3>
2895
+ </div>
2896
+ <div class="dbx-c-ontent-wrapper">
2897
+ <div class="dbx-content">
2898
+ <ul>
2899
+ <?php
2900
+
2901
+ //#type $status GoogleSitemapGeneratorStatus
2902
+ $status = GoogleSitemapGeneratorStatus::Load();
2903
+ if($status == null) {
2904
+ echo "<li>" . str_replace("%s",$this->GetBackLink() . "&sm_rebuild=true",__('The sitemap wasn\'t built yet. <a href="%s">Click here</a> to build it the first time.','sitemap')) . "</li>";
2905
+ } else {
2906
+ if($status->_endTime !== 0) {
2907
+ if($status->_usedXml) {
2908
+ if($status->_xmlSuccess) {
2909
+ $ft = filemtime($status->_xmlPath);
2910
+ echo "<li>" . str_replace("%url%",$status->_xmlUrl,str_replace("%date%",date(get_option('date_format'),$ft) . " " . date(get_option('time_format'),$ft),__("Your <a href=\"%url%\">sitemap</a> was last built on <b>%date%</b>.",'sitemap'))) . "</li>";
2911
+ } else {
2912
+ echo "<li class=\"sm_error\">" . str_replace("%url%",$this->GetRedirectLink('sitemap-help-files'),__("There was a problem writing your sitemap file. Make sure the file exists and is writable. <a href=\"%url%\">Learn more</a",'sitemap')) . "</li>";
2913
+ }
2914
+ }
2915
+
2916
+ if($status->_usedZip) {
2917
+ if($status->_zipSuccess) {
2918
+ $ft = filemtime($status->_zipPath);
2919
+ echo "<li>" . str_replace("%url%",$status->_zipUrl,str_replace("%date%",date(get_option('date_format'),$ft) . " " . date(get_option('time_format'),$ft),__("Your sitemap (<a href=\"%url%\">zipped</a>) was last built on <b>%date%</b>.",'sitemap'))) . "</li>";
2920
+ } else {
2921
+ echo "<li class=\"sm_error\">" . str_replace("%url%",$this->GetRedirectLink('sitemap-help-files'),__("There was a problem writing your zipped sitemap file. Make sure the file exists and is writable. <a href=\"%url%\">Learn more</a",'sitemap')) . "</li>";
2922
+ }
2923
+ }
2924
+
2925
+ if($status->_usedGoogle) {
2926
+ if($status->_gooogleSuccess) {
2927
+ echo "<li>" .__("Google was <b>successfully notified</b> about changes.",'sitemap'). "</li>";
2928
+ $gt = $status->GetGoogleTime();
2929
+ if($gt>4) {
2930
+ echo "<li class=\sm_optimize\">" . str_replace("%time%",$gt,__("It took %time% seconds to notify Google, maybe you want to disable this feature to reduce the building time.",'sitemap')) . "</li>";
2931
+ }
2932
+ } else {
2933
+ echo "<li class=\"sm_error\">" . __("There was a problem while notifying Google.",'sitemap') . "</li>";
2934
+ }
2935
+ }
2936
+
2937
+ if($status->_usedYahoo) {
2938
+ if($status->_yahooSuccess) {
2939
+ echo "<li>" .__("YAHOO was <b>successfully notified</b> about changes.",'sitemap'). "</li>";
2940
+ $yt = $status->GetYahooTime();
2941
+ if($yt>4) {
2942
+ echo "<li class=\sm_optimize\">" . str_replace("%time%",$yt,__("It took %time% seconds to notify YAHOO, maybe you want to disable this feature to reduce the building time.",'sitemap')) . "</li>";
2943
+ }
2944
+ } else {
2945
+ echo "<li class=\"sm_error\">" . __("There was a problem while notifying YAHOO",'sitemap') . "</li>";
2946
+ }
2947
+ }
2948
+
2949
+ if($status->_usedAsk) {
2950
+ if($status->_askSuccess) {
2951
+ echo "<li>" .__("Ask.com was <b>successfully notified</b> about changes.",'sitemap'). "</li>";
2952
+ $at = $status->GetAskTime();
2953
+ if($at>4) {
2954
+ echo "<li class=\sm_optimize\">" . str_replace("%time%",$at,__("It took %time% seconds to notify Ask.com, maybe you want to disable this feature to reduce the building time.",'sitemap')) . "</li>";
2955
+ }
2956
+ } else {
2957
+ echo "<li class=\"sm_error\">" . __("There was a problem while notifying Ask.com",'sitemap') . "</li>";
2958
+ }
2959
+ }
2960
+
2961
+ $et = $status->GetTime();
2962
+ $mem = $status->GetMemoryUsage();
2963
+
2964
+ if($mem > 0) {
2965
+ echo "<li>" .str_replace(array("%time%","%memory%"),array($et,$mem),__("The building process took about <b>%time% seconds</b> to complete and used %memory% MB of memory.",'sitemap')). "</li>";
2966
+ } else {
2967
+ echo "<li>" .str_replace("%time%",$et,__("The building process took about <b>%time% seconds</b> to complete.",'sitemap')). "</li>";
2968
+ }
2969
+
2970
+ if(!$status->_hasChanged) {
2971
+ echo "<li>" . __("The content of your sitemap <strong>didn't change</strong> since the last time so the files were not written and no search engine was pinged.",'sitemap'). "</li>";
2972
+ }
2973
+
2974
+ } else {
2975
+ echo '<li class="sm_error">'. str_replace("%url%",$this->GetRedirectLink('sitemap-help-memtime'),__("The last run didn't finish! Maybe you can raise the memory or time limit for PHP scripts. <a href=\"%url%\">Learn more</a>",'sitemap')) . '</li>';
2976
+ if($status->_memoryUsage > 0) {
2977
+ echo '<li class="sm_error">'. str_replace(array("%memused%","%memlimit%"),array($status->GetMemoryUsage(),ini_get('memory_limit')),__("The last known memory usage of the script was %memused%MB, the limit of your server is %memlimit%.",'sitemap')) . '</li>';
2978
+ }
2979
+
2980
+ if($status->_lastTime > 0) {
2981
+ echo '<li class="sm_error">'. str_replace(array("%timeused%","%timelimit%"),array($status->GetLastTime(),ini_get('max_execution_time')),__("The last known execution time of the script was %timeused% seconds, the limit of your server is %timelimit% seconds.",'sitemap')) . '</li>';
2982
+ }
2983
+
2984
+ if($status->GetLastPost() > 0) {
2985
+ echo '<li class="sm_optimize">'. str_replace("%lastpost%",$status->GetLastPost(),__("The script stopped around post number %lastpost% (+/- 100)",'sitemap')) . '</li>';
2986
+ }
2987
+ }
2988
+ echo "<li>" . str_replace("%s",$this->GetBackLink() . "&amp;sm_rebuild=true",__('If you changed something on your server or blog, you should <a href="%s">rebuild the sitemap</a> manually.','sitemap')) . "</li>";
2989
+ }
2990
+ echo "<li>" . str_replace("%d",$this->GetBackLink() . "&amp;sm_rebuild=true&sm_do_debug=true",__('If you encounter any problems with the build process you can use the <a href="%d">debug function</a> to get more information.','sitemap')) . "</li>";
2991
+ ?>
2992
+
2993
+ </ul>
2994
+ </div>
2995
+ </div>
2996
+ </fieldset>
2997
+ </div>
2998
+
2999
+ <!-- Basic Options -->
3000
+ <div class="dbx-b-ox-wrapper">
3001
+ <fieldset id="sm_basic_options" class="dbx-box">
3002
+ <div class="dbx-h-andle-wrapper">
3003
+ <h3 class="dbx-handle"><?php _e('Basic Options', 'sitemap') ?></h3>
3004
+ </div>
3005
+ <div class="dbx-c-ontent-wrapper">
3006
+ <div class="dbx-content">
3007
+ <b><?php _e('Sitemap files:','sitemap'); ?></b> <a href="<?php echo $this->GetRedirectLink('sitemap-help-options-files'); ?>"><?php _e('Learn more','sitemap'); ?></a>
3008
+ <ul>
3009
+ <li>
3010
+ <label for="sm_b_xml">
3011
+ <input type="checkbox" id="sm_b_xml" name="sm_b_xml" <?php echo ($this->GetOption("b_xml")==true?"checked=\"checked\"":"") ?> />
3012
+ <?php _e('Write a normal XML file (your filename)', 'sitemap') ?>
3013
+ </label>
3014
+ </li>
3015
+ <li>
3016
+ <label for="sm_b_gzip">
3017
+ <input type="checkbox" id="sm_b_gzip" name="sm_b_gzip" <?php if(function_exists("gzencode")) { echo ($this->GetOption("b_gzip")==true?"checked=\"checked\"":""); } else echo "disabled=\"disabled\""; ?> />
3018
+ <?php _e('Write a gzipped file (your filename + .gz)', 'sitemap') ?>
3019
+ </label>
3020
+ </li>
3021
+ </ul>
3022
+ <b><?php _e('Building mode:','sitemap'); ?></b> <a href="<?php echo $this->GetRedirectLink('sitemap-help-options-process'); ?>"><?php _e('Learn more','sitemap'); ?></a>
3023
+ <ul>
3024
+ <li>
3025
+ <label for="sm_b_auto_enabled">
3026
+ <input type="checkbox" id="sm_b_auto_enabled" name="sm_b_auto_enabled" <?php echo ($this->GetOption("sm_b_auto_enabled")==true?"checked=\"checked\"":""); ?> />
3027
+ <?php _e('Rebuild sitemap if you change the content of your blog', 'sitemap') ?>
3028
+ </label>
3029
+ </li>
3030
+ <li>
3031
+ <label for="sm_b_manual_enabled">
3032
+ <input type="hidden" name="sm_b_manual_key" value="<?php echo $this->GetOption("b_manual_key"); ?>" />
3033
+ <input type="checkbox" id="sm_b_manual_enabled" name="sm_b_manual_enabled" <?php echo ($this->GetOption("b_manual_enabled")==true?"checked=\"checked\"":"") ?> />
3034
+ <?php _e('Enable manual sitemap building via GET Request', 'sitemap') ?>
3035
+ </label>
3036
+ <a href="javascript:void(document.getElementById('sm_manual_help').style.display='');">[?]</a>
3037
+ <span id="sm_manual_help" style="display:none;"><br />
3038
+ <?php echo str_replace("%1",trailingslashit(get_bloginfo('siteurl')) . "?sm_command=build&amp;sm_key=" . $this->GetOption("b_manual_key"),__('This will allow you to refresh your sitemap if an external tool wrote into the WordPress database without using the WordPress API. Use the following URL to start the process: <a href="%1">%1</a> Please check the logfile above to see if sitemap was successfully built.', 'sitemap')); ?>
3039
+ </span>
3040
+ </li>
3041
+ </ul>
3042
+ <b><?php _e('Update notification:','sitemap'); ?></b> <a href="<?php echo $this->GetRedirectLink('sitemap-help-options-ping'); ?>"><?php _e('Learn more','sitemap'); ?></a>
3043
+ <ul>
3044
+ <li>
3045
+ <input type="checkbox" id="sm_b_ping" name="sm_b_ping" <?php echo ($this->GetOption("b_ping")==true?"checked=\"checked\"":"") ?> />
3046
+ <label for="sm_b_ping"><?php _e('Notify Google about updates of your Blog', 'sitemap') ?></label><br />
3047
+ <small><?php echo str_replace("%s",$this->GetRedirectLink('sitemap-gwt'),__('No registration required, but you can join the <a href="%s">Google Webmaster Tools</a> to check crawling statistics.','sitemap')); ?></small>
3048
+ </li>
3049
+ <li>
3050
+ <input type="checkbox" id="sm_b_pingask" name="sm_b_pingask" <?php echo ($this->GetOption("b_pingask")==true?"checked=\"checked\"":"") ?> />
3051
+ <label for="sm_b_pingask"><?php _e('Notify Ask.com about updates of your Blog', 'sitemap') ?></label><br />
3052
+ <small><?php _e('No registration required.','sitemap'); ?></small>
3053
+ </li>
3054
+ <li>
3055
+ <input type="checkbox" id="sm_b_pingyahoo" name="sm_b_pingyahoo" <?php echo ($this->GetOption("sm_b_pingyahoo")==true?"checked=\"checked\"":"") ?> />
3056
+ <label for="sm_b_pingyahoo"><?php _e('Notify YAHOO about updates of your Blog', 'sitemap') ?></label><br />
3057
+ <small><?php echo str_replace('%s',$this->GetRedirectLink('sitemap-yse'),__('No registration required, but you can sign up for the <a href="%s">YAHOO Site Explorer</a> to view the crawling progress.','sitemap')); ?></small>
3058
+ </li>
3059
+ <li>
3060
+
3061
+ <input type="checkbox" id="sm_b_robots" name="sm_b_robots" <?php echo ($this->GetOption("sm_b_robots")==true?"checked=\"checked\"":"") ?> />
3062
+ <?php echo str_replace('%s',(file_exists($this->GetRobotsFilePath())?'<a href="' . $this->GetRobotsFileUrl() . '">robots.txt</a>':'robots.txt'),__("Modify or create %s file in blog root which contains the sitemap location.",'sitemap')); ?>
3063
+
3064
+ <br />
3065
+ <?php _e("File permissions: ",'sitemap');
3066
+ $f = $this->GetRobotsFilePath();
3067
+ $link = ' <a href="' . $this->GetRedirectLink("sitemap-help-options-robots",'sitemap') . '">' . __("Learn more",'sitemap') . '</a>';
3068
+ if(file_exists($f)) {
3069
+ if(is_writable($f)) {
3070
+ _e("OK, robots.txt is writable.",'sitemap');
3071
+ } else {
3072
+ echo __("Error, robots.txt is not writable.",'sitemap') . $link;
3073
+ }
3074
+ } else {
3075
+ if(is_writable(dirname($f))) {
3076
+ _e("OK, robots.txt doesn't exist but the directory is writable.",'sitemap');
3077
+ } else {
3078
+ echo __("Error, robots.txt doesn't exist and the directory is not writable",'sitemap') . $link;
3079
+ }
3080
+ }
3081
+ ?>
3082
+ </li>
3083
+ </ul>
3084
+ <b><?php _e('Advanced options:','sitemap'); ?></b> <a href="<?php echo $this->GetRedirectLink('sitemap-help-options-adv'); ?>"><?php _e('Learn more','sitemap'); ?></a>
3085
+ <ul>
3086
+ <li>
3087
+ <label for="sm_b_max_posts"><?php _e('Limit the number of posts in the sitemap:', 'sitemap') ?> <input type="text" name="sm_b_max_posts" id="sm_b_max_posts" style="width:40px;" value="<?php echo ($this->GetOption("sm_b_max_posts")<=0?"":$this->GetOption("sm_b_max_posts")); ?>" /></label> (<?php echo __('Newer posts will be included first', 'sitemap'); ?>)
3088
+ </li>
3089
+ <li>
3090
+ <label for="sm_b_memory"><?php _e('Try to increase the memory limit to:', 'sitemap') ?> <input type="text" name="sm_b_memory" id="sm_b_memory" style="width:40px;" value="<?php echo $this->GetOption("sm_b_memory"); ?>" /></label> (<?php echo htmlspecialchars(__('e.g. "4M", "16M"', 'sitemap')); ?>)
3091
+ </li>
3092
+ <li>
3093
+ <label for="sm_b_time"><?php _e('Try to increase the execution time limit to:', 'sitemap') ?> <input type="text" name="sm_b_time" id="sm_b_time" style="width:40px;" value="<?php echo ($this->GetOption("sm_b_time")===-1?'':$this->GetOption("sm_b_time")); ?>" /></label> (<?php echo htmlspecialchars(__('in seconds, e.g. "60" or "0" for unlimited', 'sitemap')) ?>)
3094
+ </li>
3095
+ <li>
3096
+ <label for="sm_b_style"><?php _e('Include a XSLT stylesheet:', 'sitemap') ?> <input type="text" name="sm_b_style" id="sm_b_style" value="<?php echo $this->GetOption("sm_b_style"); ?>" /></label> <?php if($this->GetDefaultStyle()) { echo ' <a href="javascript:void(0);" onclick="document.getElementById(\'sm_b_style\').value=\'' . $this->GetDefaultStyle() . '\';">' . __('Use Default','sitemap') . '</a>'; } ?> (<?php _e('Full or relative URL to your .xsl file', 'sitemap') ?>)
3097
+ </li>
3098
+ </ul>
3099
+ </div>
3100
+ </div>
3101
+ </fieldset>
3102
+ </div>
3103
+
3104
+ <div class="dbx-b-ox-wrapper">
3105
+ <fieldset id="sm_pages" class="dbx-box">
3106
+ <div class="dbx-h-andle-wrapper">
3107
+ <h3 class="dbx-handle"><?php _e('Additional pages', 'sitemap') ?></h3>
3108
+ </div>
3109
+ <div class="dbx-c-ontent-wrapper">
3110
+ <div class="dbx-content">
3111
+ <?php
3112
+ _e('Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com','sitemap');
3113
+ echo "<ul><li>";
3114
+ echo "<strong>" . __('Note','sitemap'). "</strong>: ";
3115
+ _e("If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the &quot;Location of your sitemap file&quot; section on this page)!",'sitemap');
3116
+ echo "</li><li>";
3117
+ echo "<strong>" . __('URL to the page','sitemap'). "</strong>: ";
3118
+ _e("Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home ",'sitemap');
3119
+ echo "</li><li>";
3120
+ echo "<strong>" . __('Priority','sitemap') . "</strong>: ";
3121
+ _e("Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint.",'sitemap');
3122
+ echo "</li><li>";
3123
+ echo "<strong>" . __('Last Changed','sitemap'). "</strong>: ";
3124
+ _e("Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional).",'sitemap');
3125
+
3126
+ echo "</li></ul>";
3127
+
3128
+
3129
+ ?>
3130
+ <script type="text/javascript">
3131
+ //<![CDATA[
3132
+ <?php
3133
+ $freqVals = "'" . implode("','",$this->_freqNames). "'";
3134
+ $transUpper = create_function('&$s',' return ucfirst(__($s,"sitemap"));');
3135
+
3136
+ $freqNamesArr = array_map($transUpper,$this->_freqNames);
3137
+ $freqNames = "'" . implode("','",$freqNamesArr). "'";
3138
+ ?>
3139
+
3140
+ var changeFreqVals = new Array( <?php echo $freqVals; ?> );
3141
+ var changeFreqNames= new Array( <?php echo $freqNames; ?> );
3142
+
3143
+ var priorities= new Array(0 <?php for($i=0.1; $i<1; $i+=0.1) { echo "," . $i; } ?>);
3144
+
3145
+ var pages = [ <?php
3146
+ if(count($this->_pages)>0) {
3147
+ for($i=0; $i<count($this->_pages); $i++) {
3148
+ $v=&$this->_pages[$i];
3149
+ if($i>0) echo ",";
3150
+ echo '{url:"' . $v->getUrl() . '", priority:"' . $v->getPriority() . '", changeFreq:"' . $v->getChangeFreq() . '", lastChanged:"' . ($v!=null && $v->getLastMod()>0?date("Y-m-d",$v->getLastMod()):"") . '"}';
3151
+ }
3152
+ }
3153
+ ?> ];
3154
+
3155
+ function sm_addPage(url,priority,changeFreq,lastChanged) {
3156
+
3157
+ var table = document.getElementById('sm_pageTable').getElementsByTagName('TBODY')[0];
3158
+ var ce = function(ele) { return document.createElement(ele) };
3159
+ var tr = ce('TR');
3160
+
3161
+ var td = ce('TD');
3162
+ var iUrl = ce('INPUT');
3163
+ iUrl.type="text";
3164
+ iUrl.style.width='95%';
3165
+ iUrl.name="sm_pages_ur[]";
3166
+ if(url) iUrl.value=url;
3167
+ td.appendChild(iUrl);
3168
+ tr.appendChild(td);
3169
+
3170
+ td = ce('TD');
3171
+ td.style.width='150px';
3172
+ var iPrio = ce('SELECT');
3173
+ iPrio.style.width='95%';
3174
+ iPrio.name="sm_pages_pr[]";
3175
+ for(var i=0; i <priorities.length; i++) {
3176
+ var op = ce('OPTION');
3177
+ op.text = priorities[i];
3178
+ op.value = priorities[i];
3179
+ try {
3180
+ iPrio.add(op, null); // standards compliant; doesn't work in IE
3181
+ } catch(ex) {
3182
+ iPrio.add(op); // IE only
3183
+ }
3184
+ if(priority && priority == op.value) {
3185
+ iPrio.selectedIndex = i;
3186
+ }
3187
+ }
3188
+ td.appendChild(iPrio);
3189
+ tr.appendChild(td);
3190
+
3191
+ td = ce('TD');
3192
+ td.style.width='150px';
3193
+ var iFreq = ce('SELECT');
3194
+ iFreq.name="sm_pages_cf[]";
3195
+ iFreq.style.width='95%';
3196
+ for(var i=0; i<changeFreqVals.length; i++) {
3197
+ var op = ce('OPTION');
3198
+ op.text = changeFreqNames[i];
3199
+ op.value = changeFreqVals[i];
3200
+ try {
3201
+ iFreq.add(op, null); // standards compliant; doesn't work in IE
3202
+ } catch(ex) {
3203
+ iFreq.add(op); // IE only
3204
+ }
3205
+
3206
+ if(changeFreq && changeFreq == op.value) {
3207
+ iFreq.selectedIndex = i;
3208
+ }
3209
+ }
3210
+ td.appendChild(iFreq);
3211
+ tr.appendChild(td);
3212
+
3213
+ var td = ce('TD');
3214
+ td.style.width='150px';
3215
+ var iChanged = ce('INPUT');
3216
+ iChanged.type="text";
3217
+ iChanged.name="sm_pages_lm[]";
3218
+ iChanged.style.width='95%';
3219
+ if(lastChanged) iChanged.value=lastChanged;
3220
+ td.appendChild(iChanged);
3221
+ tr.appendChild(td);
3222
+
3223
+ var td = ce('TD');
3224
+ td.style.textAlign="center";
3225
+ td.style.width='5px';
3226
+ var iAction = ce('A');
3227
+ iAction.innerHTML = 'X';
3228
+ iAction.href="javascript:void(0);"
3229
+ iAction.onclick = function() { table.removeChild(tr); };
3230
+ td.appendChild(iAction);
3231
+ tr.appendChild(td);
3232
+
3233
+ var mark = ce('INPUT');
3234
+ mark.type="hidden";
3235
+ mark.name="sm_pages_mark[]";
3236
+ mark.value="true";
3237
+ tr.appendChild(mark);
3238
+
3239
+
3240
+ var firstRow = table.getElementsByTagName('TR')[1];
3241
+ if(firstRow) {
3242
+ var firstCol = (firstRow.childNodes[1]?firstRow.childNodes[1]:firstRow.childNodes[0]);
3243
+ if(firstCol.colSpan>1) {
3244
+ firstRow.parentNode.removeChild(firstRow);
3245
+ }
3246
+ }
3247
+ var cnt = table.getElementsByTagName('TR').length;
3248
+ if(cnt%2) tr.className="alternate";
3249
+
3250
+ table.appendChild(tr);
3251
+ }
3252
+
3253
+ function sm_loadPages() {
3254
+ for(var i=0; i<pages.length; i++) {
3255
+ sm_addPage(pages[i].url,pages[i].priority,pages[i].changeFreq,pages[i].lastChanged);
3256
+ }
3257
+ }
3258
+
3259
+ //]]>
3260
+ </script>
3261
+ <table width="100%" cellpadding="3" cellspacing="3" id="sm_pageTable">
3262
+ <tr>
3263
+ <th scope="col"><?php _e('URL to the page','sitemap'); ?></th>
3264
+ <th scope="col"><?php _e('Priority','sitemap'); ?></th>
3265
+ <th scope="col"><?php _e('Change Frequency','sitemap'); ?></th>
3266
+ <th scope="col"><?php _e('Last Changed','sitemap'); ?></th>
3267
+ <th scope="col"><?php _e('#','sitemap'); ?></th>
3268
+ </tr>
3269
+ <?php
3270
+ if(count($this->_pages)<=0) { ?>
3271
+ <tr>
3272
+ <td colspan="5" align="center"><?php _e('No pages defined.','sitemap') ?></td>
3273
+ </tr><?php
3274
+ }
3275
+ ?>
3276
+ </table>
3277
+ <a href="javascript:void(0);" onclick="sm_addPage();"><?php _e("Add new page",'sitemap'); ?></a>
3278
+ </div>
3279
+ </div>
3280
+ </fieldset>
3281
+ </div>
3282
+
3283
+
3284
+ <!-- AutoPrio Options -->
3285
+ <div class="dbx-b-ox-wrapper">
3286
+ <fieldset id="sm_postprio" class="dbx-box">
3287
+ <div class="dbx-h-andle-wrapper">
3288
+ <h3 class="dbx-handle"><?php _e('Post Priority', 'sitemap') ?></h3>
3289
+ </div>
3290
+ <div class="dbx-c-ontent-wrapper">
3291
+ <div class="dbx-content">
3292
+ <p><?php _e('Please select how the priority of each post should be calculated:', 'sitemap') ?></p>
3293
+ <ul>
3294
+ <li><p><input type="radio" name="sm_b_prio_provider" id="sm_b_prio_provider__0" value="" <?php echo $this->HtmlGetChecked($this->GetOption("b_prio_provider"),"") ?> /> <label for="sm_b_prio_provider__0"><?php _e('Do not use automatic priority calculation', 'sitemap') ?></label><br /><?php _e('All posts will have the same priority which is defined in &quot;Priorities&quot;', 'sitemap') ?></p></li>
3295
+ <?php
3296
+ for($i=0; $i<count($this->_prioProviders); $i++) {
3297
+ echo "<li><p><input type=\"radio\" id=\"sm_b_prio_provider_$i\" name=\"sm_b_prio_provider\" value=\"" . $this->_prioProviders[$i] . "\" " . $this->HtmlGetChecked($this->GetOption("b_prio_provider"),$this->_prioProviders[$i]) . " /> <label for=\"sm_b_prio_provider_$i\">" . call_user_func(array(&$this->_prioProviders[$i], 'getName')) . "</label><br />" . call_user_func(array(&$this->_prioProviders[$i], 'getDescription')) . "</p></li>";
3298
+ }
3299
+ ?>
3300
+ </ul>
3301
+ </div>
3302
+ </div>
3303
+ </fieldset>
3304
+ </div>
3305
+
3306
+
3307
+ <!-- Location Options -->
3308
+ <div class="dbx-b-ox-wrapper">
3309
+ <fieldset id="sm_location" class="dbx-box">
3310
+ <div class="dbx-h-andle-wrapper">
3311
+ <h3 class="dbx-handle"><?php _e('Location of your sitemap file', 'sitemap') ?></h3>
3312
+ </div>
3313
+ <div class="dbx-c-ontent-wrapper">
3314
+ <div class="dbx-content">
3315
+ <div>
3316
+ <b><label for="sm_location_useauto"><input type="radio" id="sm_location_useauto" name="sm_b_location_mode" value="auto" <?php echo ($this->GetOption("b_location_mode")=="auto"?"checked=\"checked\"":"") ?> /> <?php _e('Automatic detection','sitemap') ?></label></b>
3317
+ <ul>
3318
+ <li>
3319
+ <label for="sm_b_filename">
3320
+ <?php _e('Filename of the sitemap file', 'sitemap') ?>
3321
+ <input type="text" id="sm_b_filename" name="sm_b_filename" value="<?php echo $this->GetOption("b_filename"); ?>" />
3322
+ </label><br />
3323
+ <?php _e('Detected Path', 'sitemap') ?>: <?php echo $this->getXmlPath(true); ?><br /><?php _e('Detected URL', 'sitemap') ?>: <a href="<?php echo $this->getXmlUrl(true); ?>"><?php echo $this->getXmlUrl(true); ?></a>
3324
+ </li>
3325
+ </ul>
3326
+ </div>
3327
+ <div>
3328
+ <b><label for="sm_location_usemanual"><input type="radio" id="sm_location_usemanual" name="sm_b_location_mode" value="manual" <?php echo ($this->GetOption("b_location_mode")=="manual"?"checked=\"checked\"":"") ?> /> <?php _e('Custom location','sitemap') ?></label></b>
3329
+ <ul>
3330
+ <li>
3331
+ <label for="sm_b_filename_manual">
3332
+ <?php _e('Absolute or relative path to the sitemap file, including name.','sitemap');
3333
+ echo "<br />";
3334
+ _e('Example','sitemap');
3335
+ echo ": /var/www/htdocs/wordpress/sitemap.xml"; ?><br />
3336
+ <input style="width:70%" type="text" id="sm_b_filename_manual" name="sm_b_filename_manual" value="<?php echo (!$this->GetOption("b_filename_manual")?$this->getXmlPath():$this->GetOption("b_filename_manual")); ?>" />
3337
+ </label>
3338
+ </li>
3339
+ <li>
3340
+ <label for="sm_b_fileurl_manual">
3341
+ <?php _e('Complete URL to the sitemap file, including name.','sitemap');
3342
+ echo "<br />";
3343
+ _e('Example','sitemap');
3344
+ echo ": http://www.yourdomain.com/sitemap.xml"; ?><br />
3345
+ <input style="width:70%" type="text" id="sm_b_fileurl_manual" name="sm_b_fileurl_manual" value="<?php echo (!$this->GetOption("b_fileurl_manual")?$this->getXmlUrl():$this->GetOption("b_fileurl_manual")); ?>" />
3346
+ </label>
3347
+ </li>
3348
+ </ul>
3349
+ </div>
3350
+ </div>
3351
+ </div>
3352
+ </fieldset>
3353
+ </div>
3354
+
3355
+
3356
+ <!-- Includes -->
3357
+ <div class="dbx-b-ox-wrapper">
3358
+ <fieldset id="sm_includes" class="dbx-box">
3359
+ <div class="dbx-h-andle-wrapper">
3360
+ <h3 class="dbx-handle"><?php _e('Sitemap Content', 'sitemap') ?></h3>
3361
+ </div>
3362
+ <div class="dbx-c-ontent-wrapper">
3363
+ <div class="dbx-content">
3364
+ <ul>
3365
+ <li>
3366
+ <label for="sm_in_home">
3367
+ <input type="checkbox" id="sm_in_home" name="sm_in_home" <?php echo ($this->GetOption("in_home")==true?"checked=\"checked\"":"") ?> />
3368
+ <?php _e('Include homepage', 'sitemap') ?>
3369
+ </label>
3370
+ </li>
3371
+ <li>
3372
+ <label for="sm_in_posts">
3373
+ <input type="checkbox" id="sm_in_posts" name="sm_in_posts" <?php echo ($this->GetOption("in_posts")==true?"checked=\"checked\"":"") ?> />
3374
+ <?php _e('Include posts', 'sitemap') ?>
3375
+ </label>
3376
+ </li>
3377
+ <li>
3378
+ <label for="sm_in_pages">
3379
+ <input type="checkbox" id="sm_in_pages" name="sm_in_pages" <?php echo ($this->GetOption("in_pages")==true?"checked=\"checked\"":"") ?> />
3380
+ <?php _e('Include static pages', 'sitemap') ?>
3381
+ </label>
3382
+ </li>
3383
+ <li>
3384
+ <label for="sm_in_cats">
3385
+ <input type="checkbox" id="sm_in_cats" name="sm_in_cats" <?php echo ($this->GetOption("in_cats")==true?"checked=\"checked\"":"") ?> />
3386
+ <?php _e('Include categories', 'sitemap') ?>
3387
+ </label>
3388
+ </li>
3389
+ <li>
3390
+ <label for="sm_in_arch">
3391
+ <input type="checkbox" id="sm_in_arch" name="sm_in_arch" <?php echo ($this->GetOption("in_arch")==true?"checked=\"checked\"":"") ?> />
3392
+ <?php _e('Include archives', 'sitemap') ?>
3393
+ </label>
3394
+ </li>
3395
+ <?php if($this->IsTaxonomySupported()): ?>
3396
+ <li>
3397
+ <label for="sm_in_tags">
3398
+ <input type="checkbox" id="sm_in_tags" name="sm_in_tags" <?php echo ($this->GetOption("in_tags")==true?"checked=\"checked\"":"") ?> />
3399
+ <?php _e('Include tag pages', 'sitemap') ?>
3400
+ </label>
3401
+ </li>
3402
+ <?php endif; ?>
3403
+ <li>
3404
+ <label for="sm_in_auth">
3405
+ <input type="checkbox" id="sm_in_auth" name="sm_in_auth" <?php echo ($this->GetOption("in_auth")==true?"checked=\"checked\"":"") ?> />
3406
+ <?php _e('Include author pages', 'sitemap') ?>
3407
+ </label>
3408
+ </li>
3409
+ </ul>
3410
+ </div>
3411
+ </div>
3412
+ </fieldset>
3413
+ </div>
3414
+
3415
+
3416
+ <!-- Change frequencies -->
3417
+ <div class="dbx-b-ox-wrapper">
3418
+ <fieldset id="sm_change_frequencies" class="dbx-box">
3419
+ <div class="dbx-h-andle-wrapper">
3420
+ <h3 class="dbx-handle"><?php _e('Change frequencies', 'sitemap') ?></h3>
3421
+ </div>
3422
+ <div class="dbx-c-ontent-wrapper">
3423
+ <div class="dbx-content">
3424
+ <p>
3425
+ <b><?php _e('Note', 'sitemap') ?>:</b>
3426
+ <?php _e('Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked "hourly" less frequently than that, and they may crawl pages marked "yearly" more frequently than that. It is also likely that crawlers will periodically crawl pages marked "never" so that they can handle unexpected changes to those pages.', 'sitemap') ?>
3427
+ </p>
3428
+ <ul>
3429
+ <li>
3430
+ <label for="sm_cf_home">
3431
+ <select id="sm_cf_home" name="sm_cf_home"><?php $this->HtmlGetFreqNames($this->GetOption("cf_home")); ?></select>
3432
+ <?php _e('Homepage', 'sitemap') ?>
3433
+ </label>
3434
+ </li>
3435
+ <li>
3436
+ <label for="sm_cf_posts">
3437
+ <select id="sm_cf_posts" name="sm_cf_posts"><?php $this->HtmlGetFreqNames($this->GetOption("cf_posts")); ?></select>
3438
+ <?php _e('Posts', 'sitemap') ?>
3439
+ </label>
3440
+ </li>
3441
+ <li>
3442
+ <label for="sm_cf_pages">
3443
+ <select id="sm_cf_pages" name="sm_cf_pages"><?php $this->HtmlGetFreqNames($this->GetOption("cf_pages")); ?></select>
3444
+ <?php _e('Static pages', 'sitemap') ?>
3445
+ </label>
3446
+ </li>
3447
+ <li>
3448
+ <label for="sm_cf_cats">
3449
+ <select id="sm_cf_cats" name="sm_cf_cats"><?php $this->HtmlGetFreqNames($this->GetOption("cf_cats")); ?></select>
3450
+ <?php _e('Categories', 'sitemap') ?>
3451
+ </label>
3452
+ </li>
3453
+ <li>
3454
+ <label for="sm_cf_arch_curr">
3455
+ <select id="sm_cf_arch_curr" name="sm_cf_arch_curr"><?php $this->HtmlGetFreqNames($this->GetOption("cf_arch_curr")); ?></select>
3456
+ <?php _e('The current archive of this month (Should be the same like your homepage)', 'sitemap') ?>
3457
+ </label>
3458
+ </li>
3459
+ <li>
3460
+ <label for="sm_cf_arch_old">
3461
+ <select id="sm_cf_arch_old" name="sm_cf_arch_old"><?php $this->HtmlGetFreqNames($this->GetOption("cf_arch_old")); ?></select>
3462
+ <?php _e('Older archives (Changes only if you edit an old post)', 'sitemap') ?>
3463
+ </label>
3464
+ </li>
3465
+ <?php if($this->IsTaxonomySupported()): ?>
3466
+ <li>
3467
+ <label for="sm_cf_tags">
3468
+ <select id="sm_cf_tags" name="sm_cf_tags"><?php $this->HtmlGetFreqNames($this->GetOption("cf_tags")); ?></select>
3469
+ <?php _e('Tag pages', 'sitemap') ?>
3470
+ </label>
3471
+ </li>
3472
+ <?php endif; ?>
3473
+ <li>
3474
+ <label for="sm_cf_auth">
3475
+ <select id="sm_cf_auth" name="sm_cf_auth"><?php $this->HtmlGetFreqNames($this->GetOption("cf_auth")); ?></select>
3476
+ <?php _e('Author pages', 'sitemap') ?>
3477
+ </label>
3478
+ </li>
3479
+ </ul>
3480
+ </div>
3481
+ </div>
3482
+ </fieldset>
3483
+ </div>
3484
+
3485
+
3486
+ <!-- Priorities -->
3487
+ <div class="dbx-b-ox-wrapper">
3488
+ <fieldset id="sm_priorities" class="dbx-box">
3489
+ <div class="dbx-h-andle-wrapper">
3490
+ <h3 class="dbx-handle"><?php _e('Priorities', 'sitemap') ?></h3>
3491
+ </div>
3492
+ <div class="dbx-c-ontent-wrapper">
3493
+ <div class="dbx-content">
3494
+ <ul>
3495
+ <li>
3496
+ <label for="sm_pr_home">
3497
+ <select id="sm_pr_home" name="sm_pr_home"><?php $this->HtmlGetPriorityValues($this->GetOption("pr_home")); ?></select>
3498
+ <?php _e('Homepage', 'sitemap') ?>
3499
+ </label>
3500
+ </li>
3501
+ <li>
3502
+ <label for="sm_pr_posts">
3503
+ <select id="sm_pr_posts" name="sm_pr_posts"><?php $this->HtmlGetPriorityValues($this->GetOption("pr_posts")); ?></select>
3504
+ <?php _e('Posts (If auto calculation is disabled)', 'sitemap') ?>
3505
+ </label>
3506
+ </li>
3507
+ <li>
3508
+ <label for="sm_pr_posts_min">
3509
+ <select id="sm_pr_posts_min" name="sm_pr_posts_min"><?php $this->HtmlGetPriorityValues($this->GetOption("pr_posts_min")); ?></select>
3510
+ <?php _e('Minimum post priority (Even if auto calculation is enabled)', 'sitemap') ?>
3511
+ </label>
3512
+ </li>
3513
+ <li>
3514
+ <label for="sm_pr_pages">
3515
+ <select id="sm_pr_pages" name="sm_pr_pages"><?php $this->HtmlGetPriorityValues($this->GetOption("pr_pages")); ?></select>
3516
+ <?php _e('Static pages', 'sitemap'); ?>
3517
+ </label>
3518
+ </li>
3519
+ <li>
3520
+ <label for="sm_pr_cats">
3521
+ <select id="sm_pr_cats" name="sm_pr_cats"><?php $this->HtmlGetPriorityValues($this->GetOption("pr_cats")); ?></select>
3522
+ <?php _e('Categories', 'sitemap') ?>
3523
+ </label>
3524
+ </li>
3525
+ <li>
3526
+ <label for="sm_pr_arch">
3527
+ <select id="sm_pr_arch" name="sm_pr_arch"><?php $this->HtmlGetPriorityValues($this->GetOption("pr_arch")); ?></select>
3528
+ <?php _e('Archives', 'sitemap') ?>
3529
+ </label>
3530
+ </li>
3531
+ <?php if($this->IsTaxonomySupported()): ?>
3532
+ <li>
3533
+ <label for="sm_pr_tags">
3534
+ <select id="sm_pr_tags" name="sm_pr_tags"><?php $this->HtmlGetPriorityValues($this->GetOption("pr_tags")); ?></select>
3535
+ <?php _e('Tag pages', 'sitemap') ?>
3536
+ </label>
3537
+ </li>
3538
+ <?php endif; ?>
3539
+ <li>
3540
+ <label for="sm_pr_auth">
3541
+ <select id="sm_pr_auth" name="sm_pr_auth"><?php $this->HtmlGetPriorityValues($this->GetOption("pr_auth")); ?></select>
3542
+ <?php _e('Author pages', 'sitemap') ?>
3543
+ </label>
3544
+ </li>
3545
+ </ul>
3546
+ </div>
3547
+ </div>
3548
+ </fieldset>
3549
+ </div>
3550
+ </div>
3551
+ <div>
3552
+ <p class="submit">
3553
+ <input type="submit" name="sm_update" value="<?php _e('Update options', 'sitemap'); ?>" />
3554
+ <input type="submit" onclick='return confirm("Do you really want to reset your configuration?");' class="sm_warning" name="sm_reset_config" value="<?php _e('Reset options', 'sitemap'); ?>" />
3555
+ </p>
3556
+ </div>
3557
+ </div>
3558
+ <script type="text/javascript">if(typeof(sm_loadPages)=='function') addLoadEvent(sm_loadPages); </script>
3559
+ </form>
3560
+ <form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="sm_donate_form">
3561
+ <input type="hidden" name="cmd" value="_xclick" />
3562
+ <input type="hidden" name="business" value="<?php echo "donate" /* N O S P A M */ . "@" . "arnebra" . "chhold.de"; ?>" />
3563
+ <input type="hidden" name="item_name" value="Sitemap Generator for WordPress. Please tell me if if you don't want to be listed on the donator list." />
3564
+ <input type="hidden" name="no_shipping" value="1" />
3565
+ <input type="hidden" name="return" value="<?php echo 'http://' . $_SERVER['HTTP_HOST'] . $this->GetBackLink(); ?>&amp;sm_donated=true" />
3566
+ <input type="hidden" name="item_number" value="0001" />
3567
+ <input type="hidden" name="currency_code" value="USD" />
3568
+ <input type="hidden" name="bn" value="PP-BuyNowBF" />
3569
+ <input type="hidden" name="rm" value="2" />
3570
+ <input type="hidden" name="on0" value="Your Website" />
3571
+ <input type="hidden" name="os0" value="<?php echo get_bloginfo("home"); ?>"/>
3572
+ </form>
3573
+ </div>
3574
+ <?php
3575
  }
3576
  }
 
 
 
3577
 
 
 
 
 
 
 
 
 
3578
 
 
 
3579
 
 
 
 
 
 
3580
 
3581
+ //Check if ABSPATH and WPINC is defined, this is done in wp-settings.php
3582
+ //If not defined, we can't guarante that all required functions are available.
3583
+ if(defined('ABSPATH') && defined('WPINC')) {
3584
+ add_action("init",array("GoogleSitemapGenerator","Enable"),1000,0);
3585
+ }
3586
 
3587
+ #region Embedded resources
3588
+ if(isset($_GET["res"]) && !empty($_GET["res"])) {
3589
+ $resources = array(
3590
+ //PayPal
3591
+ "{8C0BAD8C-77FA-4842-956E-CDEF7635F2C7}"
3592
+ =>"R0lGODlhEAAQAMQQANbe5sjT3gAzZpGmvOTp7v///629zYSctK28zbvI1ZKnvfH094SbtHaQrHaRrJ+xxf///wAAAAAAAAAAAAAAAAAAAAAAA"
3593
+ . "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAHoAxAALAAAAAAQABAAQAVZICSOZDkGQqGuBTqUSMqqiTACwqIKgGkKwCDwVRIodkDVwjYSMFSNoCNQIgSugZ6"
3594
+ . "vBMBetSYCj0UwCA6lgyy4YoqWASRAZSYNZNaA+VxM7B5bEA9CboGGIyEAOw==",
3595
+
3596
+ //Amazon
3597
+ "{9866EAFC-3F85-44df-8A72-4CD1566E2D4F}"
3598
+ =>"R0lGODlhEAAQAMQGADc1NVBOTmloaERCQl1bW9rZ2f///7Szs8rKyubm5nZ0dJuamvPy8qinp31gOLeDOuWgPPGnPM6SO05DNoKBgY+NjXFZN8"
3599
+ . "OLOpRuOWZSN0M8NdqZO1pKNqB1OYhnOOrBhSwAAAAAEAAQAEAFeSAgBsIgnqiYGOxaAM4DRZE0AcOCMOyS/hxLR0KLPCaciEOEMCQKLMVPRIgCetPsaYLRXCKaIm3Tu"
3600
+ . "Z08mhMByjpoAQhE4GrwZaGMBnYq6OkNL1kBCwsUABUDFhcXGDIRGVMTDl8QExsSABcbYjQXkABDIh8XHQ5mWiEAOw==",
3601
+
3602
+ //Homepage
3603
+ "{AD59B831-BF3D-49b1-A649-9DD8EDA1798A}"
3604
+ =>"R0lGODlhEAAQAPc6AKG82qK72aG62KC52KK52Z+32aG526C315631aK52KG71qC516O62aO82qC42qO63KW83KK72p+41p+415+62KG42J+51K"
3605
+ . "S72qG62aK526S726O62qW616O92KW52qC41KK61qG51Z230p611aS31ae826O71aa516a72KO416i816K61KO41aC40p+306G21aW41qe62KK30qS51qG20aq+2am61"
3606
+ . "qi51aa61aW51LHD2aq52Ka306690qi20aa606O402R7nae40rW70bK817C606u507C70a651a6406m506+71a2916KwzVVwm1Fokqa30ai40au51Ka20Ke1z6m50qy4"
3607
+ . "0qa11Ke30ae41F9xlVlym1Zsk0tsl6O30qS1z6W20qK2z6W1z6O3z6O0zqq60am1z5+uy110ll1zmlNvl09rk1h0nKO00KW20KC0zV52kFV1m1l0n150nVRwl150m1F"
3608
+ . "zmU9slmp+n560zJ+zzKGyzmF0kk5rlVJymV11mVtzmVhvm0xpkWh4nFJulmR0mGqTwW2Sv2ySv2uOuFtym1pxmldzm2V3nV1xllBvm1hxmlhwkmR4m1x0mGRzmmCHsm"
3609
+ . "CKtF+FtGSGs1p/rFeBq1d8qVZ7qFt9q1h/qlN8qll5qlV3pFJ0oU90oFFzoVWAq1V9rlWArVZ/rVeCr1Z/q1h+rVR+rleArlN+q1d9rFB6rFN7rFF8qVR6q1F6qFN5q"
3610
+ . "FJ9qlB7qFJ7p1J7qVR6qVJ4pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
3611
+ . "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
3612
+ . "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAEAAQAAAI/wABBBAwgECAAgYEHBCAIMEABQsYBGjg4AGECAskTABAoYIECwYYXMAgIIMGAQwWCFC5ge"
3613
+ . "GCBBwYdKjgAcMHECBCiBiRgACJEgxMMDiBIgUHFSZWsGjhQsELGByiwoghI8aJGTBQ0ADxoYaNGzhsqMiBQ8eOGzx6+PgBJAgPIUOIFDFyZAiSJEqWMGni5AmUKFKmU"
3614
+ . "KliJcqUK1iyaNnCpYuXL2DCiBlDpowQM2fQpFGzhk0bN2DefMkCJ84WOXPo1LFzB0+bPHra7OHTx88fQH0CCRpEqJChQ4gSKVrEqJGjR5DSRJI0iVIlS5cwZdK0iVMn"
3615
+ . "T59AhRI1ilQpU6dQpSBCpWoVK1anWrlileoVrFiyZtGqRcuVrVu0cNHKpWtXQAA7",
3616
+
3617
+ //List
3618
+ "{FFA3E2B1-D2B1-4c66-B8A4-5F6E7D8781F2}"
3619
+ =>"R0lGODlhEAAQAJECAAAAAP///////wAAACH5BAHoAwIALAAAAAAQABAAAAIrlI+py50Ao4QIhosvPSD07HmVln3ASIYaqn0rB4InHGOz4da3MP"
3620
+ . "W7AwwKCwA7",
3621
+
3622
+ //Support
3623
+ "{234C74C9-3DF4-4ae2-A12E-C157C67059D8}"
3624
+ =>"R0lGODlhEAANALMPAFV3uxFBoCJOpzNcrd3k8Yigz3eSyczW62aFwgAzmURptJmt1qq73bvJ5O7x+P///yH5BAHoAw8ALAAAAAAQAA0AAARaEA"
3625
+ . "QxSBHUvHcGfkhybEeCbBuREFyibUqAPguAeuiSMPe46Y1NSEEazBwJmyMASDhAi9lD4igYGonC8jnDLgQsyuIkfQQCxEchEfBJDbtUwljmCGYKXn3P7z8iADs=",
3626
+
3627
+ //XML Sitemap
3628
+ "{7428F989-4DE9-4a97-AFF8-9E7E4B2E5BA9}"
3629
+ =>"R0lGODlhUAAPAJEBAGZmZv////9mAImOeSwAAAAAUAAPAAACn4SPqcvtD0+YtNqLs968myCE4kiWYTCk6sq27gu7wWfWNRrn+s7OAGgLinC8or"
3630
+ . "FHOw2VTOBwRUnhogMq8Yol5nxOAcg58QK7XpW2ak6bUROpGw3fJpfLL/O5Vset6Km1vcM1Ync3RnIGd6W39zZlJFgYKQa2pvhWBWjpGBc4J2SDeCQq9/MpFDqa2gJpe"
3631
+ . "qP6CsPVMUtba4sRkau7y6tQAAA7",
3632
+
3633
+ //Google
3634
+ "{7E5622AF-0DE3-4e43-99F9-33EC61308376}"
3635
+ =>"R0lGODlhEAAQAOYAAERx0ypnuRcvx9waAP/9+dEnKf/6/llutvb9//b/8hc5uik3s0i3T4iP1SYuku3//hll5NocEMrS1CtX1//5+lO2OxpZ9/"
3636
+ . "/2/+n//8smABVn0Rpf1vr/4dUjG//19dHm/x1Gskq1OhQrpfb7/iNcy02yQ/r7/+X2/vj///v///X/6//9///9/fn9//P///D//+7/9v/z/+f5//3/6f7/9Pr+7ykwd"
3637
+ . "C23QBxascrq+YGZ38rT8mWF2Hqk1hgiiKq2wv7///z99/fx//L8/eT29vf/7ff/+0+tVd3r/3ec6fj79P/58/z/8wAlvSFY6AQ2sf/x+Bw4jP/1+ur5/9fy/yJg2a/S"
3638
+ . "+s4SC84UGeHf7MnX/w0Uov/42f/45m+s783c83yPx/D/9/j/5uDm/O/v/AAilv/07Rc7k9IoD7zX/7/e8KOpzQdj6Pv191a2Suj/9mKEqe//8zdb1vz/9v7/9/z//8L"
3639
+ . "O/vb668Tb4wATVtPZ+cH1//7/4//8/zy1RP///yH5BAAAAAAALAAAAAAQABAAAAf/gGxuIUclDBWGfhUMITd+fhN3f218DyknWS5kLRcUUAUWKCgPVEkHCwJPAV5qCV"
3640
+ . "0ZGnQwewAKSBh1GFpRNmQxVyR8KDwOU3w1LC19XxIJS2gQIzpneihiYRwJFyZ9CTMZTi5JChcENAYvLx4pNEUGVxMPATgzBAYXfX1SK3MqFBEQHpAA4YnGkAt0CKRYM"
3641
+ . "YNLgQ0uAJRRwkLIHxdv8OT4sONbFRU9moCBgaIPHTsLRCxoEKSDhT8yBGxJYwSImT4mPvhYwwfLBhocxjjY0kAGkzgPrOT5wSeChhcIEJw44EOEAAUCQMAh8qeDnBh8"
3642
+ . "/ogdK3ZEnwseOjxay7atnwGBAQAAOw==",
3643
+
3644
+ //YAHOO
3645
+ "{BC853F21-410E-47ff-BB6D-2B89C9D7E76B}"
3646
+ =>"R0lGODlhEAAQAJEAAAAAAP8AAP///wAAACH5BAAAAAAALAAAAAAQABAAAAIplI+py+0dogwOSADEnEf2kHkfFWUamEzmpZSfmaIHPHrRguUm/f"
3647
+ . "T+UwAAOw==",
3648
+
3649
+ //PayPal
3650
+ "{6E89EFD4-A853-4321-B5CF-3E36C60B268D}"
3651
+ =>"R0lGODlhPgAfAMQAADJXgRVBcMHN2k5uktHV2oiguLTE08jT3tfh6QAhWPb4+kRli+fs8KS3yp2wxOPx93CMqeHn7VZ2mHyWsef1+u7x9GiDoi"
3652
+ . "RIc7u7u+np6QY0ZiI2TZSnvQAAAOr3/P///yH5BAAAAAAALAAAAAA+AB8AAAX/INdwZGmeaKquLFlYQ+HNdG3feK7vNlB8wKBwSCwaj8jhxfK5PZ5Qng4a3T0K2AJn9"
3653
+ . "sksiYKAZqwJLBxJIuNCHgMmFaNAAwAEAMAK4WubXAyABg4WGhYzFIg8BgEOgQ0QdxQeiJIzEwAVCgMSM3pfQwtMQw2FC3UAMQOqAxAMEqp1RAgBm6cLHJpMCgAceXtM"
3654
+ . "NQ8BDR8MCwMIHxUXARZZEmOsA4UBEBAXEkAWCwZA085YFmYXvQgaAp2/QwcBBB8GCQloFQE/QgXyHwjxxBEBvQw0JIDgbcAQA2MOfHAQIIgnYDQ4XFCwcAnFA4UkXAD"
3655
+ . "g7sDADxE0LPCWIJkAVBE+/ygwY2FjNwYBAlCEQePhEBiyACTwYeAAgw8cEhhcJuBDgwQX4gipYAHphJ4/MRr84MOhuhoXfigQIOBRgAT2DnT7IGGnAgXE1ggFckCAgQ"
3656
+ . "IXEkigGKFBHAdgQQYwUFNdkJBFMZY5NvHDhLW7FgT4qS3AhQnK2NyBluxogDhNuy1K6YvPjAaXgV44gMBDAzwfDjiIM4uhwg9zCgQoas4AAgpzUkbgwJnZz0s1bAaBs"
3657
+ . "ICBq6mpNaxWcMBng9EaiO2yMAcBA7gOq2WKYIABRgDGFxC06tnDgjYTakDQcIENmQUSAFCcEADBejKcaJBy3KZ/g+B+AUEAV1wpFQQBDjggQNZbB0yggTvmlEOgAJwF"
3658
+ . "gUCCPU1IIEXkQSTFDbNkVQAAC1Ty4YnCpVEEB6eQmIyKMHbm4Yk01qhDijHmqGMRNtno4499fYJEB0R2EESRQBiZ5JFEJlmkkU8m0eMOHdBQZZUzXInlllZ2mSWKAR6"
3659
+ . "h5AdQHknmmUo+OeaaTUp5FZVdYunBlVly+eWdc4IppJhIOpmmmWcuKSiZfR4xJZCIngjEBUNl4OijkEYq6aSUVmppBggYsFGmGHTq6aeghirqqKSW2ikHG7S3waqstu"
3660
+ . "rqq7DGKuusroYAADs="
3661
+
3662
+ );
3663
+
3664
+ if(array_key_exists($_GET["res"],$resources)) {
3665
+ $key = $_GET["res"];
3666
+ $content = base64_decode($resources[$key]);
3667
+
3668
+ $lastMod = filemtime(__FILE__);
3669
+ $client = (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])?$_SERVER['HTTP_IF_MODIFIED_SINCE']:false);
3670
+ // Checking if the client is validating his cache and if it is current.
3671
+ if (isset($client) && (strtotime($client) == $lastMod)) {
3672
+ // Client's cache IS current, so we just respond '304 Not Modified'.
3673
+ header('Last-Modified: '.gmdate('D, d M Y H:i:s', $lastMod).' GMT', true, 304);
3674
+ exit;
3675
+ } else {
3676
+ // Image not cached or cache outdated, we respond '200 OK' and output the image.
3677
+ header('Last-Modified: '.gmdate('D, d M Y H:i:s', $lastMod).' GMT', true, 200);
3678
+ header('Content-Length: '.strlen($content));
3679
+ header('Content-Type: image/gif');
3680
+ echo $content;
3681
+ exit;
3682
+ }
3683
+ }
3684
  }
3685
  #endregion
 
 
sitemap.xsl ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xsl:stylesheet version="2.0"
3
+ xmlns:html="http://www.w3.org/TR/REC-html40"
4
+ xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
5
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
6
+ <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
7
+ <xsl:template match="/">
8
+ <html xmlns="http://www.w3.org/1999/xhtml">
9
+ <head>
10
+ <title>XML Sitemap</title>
11
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
12
+ <style type="text/css">
13
+ body {
14
+ font-family:"Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana;
15
+ font-size:13px;
16
+ }
17
+
18
+ #intro {
19
+ background-color:#CFEBF7;
20
+ border:1px #2580B2 solid;
21
+ padding:5px 13px 5px 13px;
22
+ margin:10px;
23
+ }
24
+
25
+ #intro p {
26
+ line-height: 16.8667px;
27
+ }
28
+
29
+ td {
30
+ font-size:11px;
31
+ }
32
+
33
+ th {
34
+ text-align:left;
35
+ padding-right:30px;
36
+ font-size:11px;
37
+ }
38
+
39
+ tr.high {
40
+ background-color:whitesmoke;
41
+ }
42
+
43
+ #footer {
44
+ padding:2px;
45
+ margin:10px;
46
+ font-size:8pt;
47
+ color:gray;
48
+ }
49
+
50
+ #footer a {
51
+ color:gray;
52
+ }
53
+
54
+ a {
55
+ color:black;
56
+ }
57
+ </style>
58
+ </head>
59
+ <body>
60
+ <h1>XML Sitemap</h1>
61
+ <div id="intro">
62
+ <p>
63
+ This is a XML Sitemap which is supposed to be processed by search engines like <a href="http://www.google.com">Google</a>, <a href="http://search.msn.com">MSN Search</a> and <a href="http://www.yahoo.com">YAHOO</a>.<br />
64
+ It was generated using the Blogging-Software <a href="http://wordpress.org/">WordPress</a> and the <a href="http://www.arnebrachhold.de/redir/sitemap-home/" title="Google Sitemap Generator Plugin for WordPress">Google Sitemap Generator Plugin</a> by <a href="http://www.arnebrachhold.de/">Arne Brachhold</a>.<br />
65
+ You can find more information about XML sitemaps on <a href="http://sitemaps.org">sitemaps.org</a> and Google's <a href="http://code.google.com/sm_thirdparty.html">list of sitemap programs</a>.
66
+ </p>
67
+ </div>
68
+ <div id="content">
69
+ <table cellpadding="5">
70
+ <tr style="border-bottom:1px black solid;">
71
+ <th>URL</th>
72
+ <th>Priority</th>
73
+ <th>Change Frequency</th>
74
+ <th>LastChange</th>
75
+ </tr>
76
+ <xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
77
+ <xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
78
+ <xsl:for-each select="sitemap:urlset/sitemap:url">
79
+ <tr>
80
+ <xsl:if test="position() mod 2 != 1">
81
+ <xsl:attribute name="class">high</xsl:attribute>
82
+ </xsl:if>
83
+ <td>
84
+ <xsl:variable name="itemURL">
85
+ <xsl:value-of select="sitemap:loc"/>
86
+ </xsl:variable>
87
+ <a href="{$itemURL}">
88
+ <xsl:value-of select="sitemap:loc"/>
89
+ </a>
90
+ </td>
91
+ <td>
92
+ <xsl:value-of select="concat(sitemap:priority*100,'%')"/>
93
+ </td>
94
+ <td>
95
+ <xsl:value-of select="concat(translate(substring(sitemap:changefreq, 1, 1),concat($lower, $upper),concat($upper, $lower)),substring(sitemap:changefreq, 2))"/>
96
+ </td>
97
+ <td>
98
+ <xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/>
99
+ </td>
100
+ </tr>
101
+ </xsl:for-each>
102
+ </table>
103
+ </div>
104
+ <div id="footer">
105
+ Generated with <a href="http://www.arnebrachhold.de/redir/sitemap-home/" title="Google Sitemap Generator Plugin for WordPress">Google Sitemap Generator Plugin for WordPress</a> by <a href="http://www.arnebrachhold.de/">Arne Brachhold</a>. This XSLT template is released under GPL.
106
+ </div>
107
+ </body>
108
+ </html>
109
+ </xsl:template>
110
+ </xsl:stylesheet>
/303/230/303/276/302/256/303/234/303/231/302/264.txt ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === صانع خريطة الموقع لبرنامج ووردبريس ===
2
+
3
+
4
+ المطورون: Arne, Michael, Rodney, Hirosama, James, John, Brad, Christian
5
+ ترجمة: سوار - http://www.sewar.be/wordpress/plugins/sitemap/
6
+
7
+ هذه الأداة ستشئ خريطة لموقعك متوافقة مع محرك البحث google لمدونة ووردبريس الخاصة بك. حالياً يتم إضافة الصفحة الرئيسية, التدوينات, الصفحات, التصنيفات و الأرشيف إلى الخريطة آلياً. أفضلية التدوينة تعتمد على عدد التعليقات عليها. تعليقات أكثر, أفضلية أعلى! إذا كان لديك صفحات خارجية لا تنتمي إلى مدونتك, تستطيع أيضاً إضافتهم إلى الخريطة. هذه الأداة ستخبر Google تلقائياً عندما يتم إعادة إنشاء خريطة الموقع.
8
+
9
+ == التثبيت ==
10
+
11
+ 1. ارفع المجلد بالكامل إلى مجلد wp-content/plugins في موقعك، يكفي رفع الملفات التالية: sitemap.php و sitemap-ar.mo لكي تعمل الإضافة باللغة العربية.
12
+ 2. إجعل مجلد مدونتك الرئيسي قابل للكتابة أو إنشأ ملفين و سمهم: sitemap.xml و sitemap.xml.gz و أجعلهم قابلين للكتابة.
13
+ 2. فعل الإضافة من لوحة تحكم مدونتك.
14
+ 3. حرر أو إنشر تدوينة أو إضغط على زر "إعادة إنشاء خريطة الموقع" في إعدادات خريطة الموقع.
15
+
16
+ == الأسئلة المتكررة ==
17
+
18
+ = لا يوجد في مدونتي تعليقات (أو قمت بإلغائهم) و جميع تدويناتي لديها الأفضلية صفر! =
19
+ قم بتعطل حساب الأفضلية الآلية و حدد أفضلية ثابتة للتدوينات!
20
+
21
+ = هل يجب علي دائماً الضغط على زر "إعادة إنشاء خريطة الموقع" إذا قمت بتعديل تدوينة? =
22
+ A: لا! إذا قمت بتحرير أو نشر أو حذف تدوينة, سيتم إعادة إنشاء خريطة موقعك تلقائياً!
23
+
24
+ = الإعدادات كثيرة جداً … هل يجب عليّ تغييرهم كلهم? =
25
+ A: لا! فقط إذا أردت ذلك. الإعدادات الإفتراضية مناسبة!
26
+
27
+ = ما هي الإصدارات التي تعمل عليها هذه الإضافة في ووردبريس? =
28
+ A: هذه الإضافة تعمل على الإصدارة 1.5.1.1 و الإصدارات الأحدث بما في ذلك الإصدارة 2.0. بعض المستخدمين حصلت لهم مشاكل في الإصدارة 1.5. يجب أن تحدث مدونتك إلى آخر إصدار من برنامج ووردبريس لأنه يتضمن أيضاً على إغلاق ثغرات خطيرة.
29
+
30
+ = ظهرت لي رسالة خطأ "fopen error" و / أو "permission denied" =
31
+ A: إذا ظهرت لك أخطاء في الصلاحيات تأكد من إعدادات خريطة الموقع في لوحة التحكم. حاول أن تنشئ ملفين باسم sitemap.xml و sitemap.xml.gz يدوياً ثم أرفعهم إلى موقعك و غير الصلاحيات "CHMOD" إلى 666. ثم أعد إنشاء خارطة الموقع من لوحة التحكم. يوجد درس رائع لطريقة تغيير صلاحيات ملف تستطيع إيجاده في ووردبريس كوديكس.
32
+
33
+ = ما هي إصدارات قاعدة البيانات MySQL المدعومة? =
34
+ A: جميع إصدارات MySQL 4 تعمل, دعم إصدار MySQL 3 أضيف في الإصدارة 2.12 من هذه الإضافة.
35
+
36
+ = هل أنا أحتاج حقاً إلى إستخدام هذه الأداة? =
37
+ ربما لا إذا كان Google يعرف موقعك جيداً و يزوره يومياً. إذا لم يكن كذلك, ستكون أداة جيدة لإعلام Google بموقعك و التحديثات التي طرأت عليه. هذا سيجعل Google يحدث الصفحة فقط إذا تطلب الأمر ذلك و سوف يجعلك تحافظ على الـ Bandwith.