Revision Control - Version 2.3.1

Version Description

PHP compatability changes, Fix the Revision Restore link, Requires WordPress 4.0+

=

Download this release

Release Info

Developer dd32
Plugin Icon wp plugin Revision Control
Version 2.3.1
Comparing to
See all releases

Code changes from version 2.3 to 2.3.1

old_langs/revision-control-by_BY.mo DELETED
Binary file
old_langs/revision-control-by_BY.po DELETED
@@ -1,86 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Revision Control\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-08-15 18:23+1000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Fat Cow <zhr@tut.by>\n"
8
- "Language-Team: Marcis Gasuns <zhr@tut.by>\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Poedit-Language: Belarusian\n"
13
- "X-Poedit-Country: BELARUS\n"
14
- "X-Poedit-SourceCharset: utf-8\n"
15
- "X-Poedit-Basepath: ../\n"
16
- "X-Poedit-KeywordsList: __;_e\n"
17
- "X-Poedit-SearchPath-0: .\n"
18
-
19
- #: revision-control.php:38
20
- #: revision-control.php:151
21
- #: revision-control.php:294
22
- msgid "Revisions"
23
- msgstr "Рэвізіі"
24
-
25
- #: revision-control.php:41
26
- #: revision-control.php:337
27
- msgid "Revision Control"
28
- msgstr "Кіраванне рэвізіямі"
29
-
30
- #: revision-control.php:142
31
- msgid "Post Revisions"
32
- msgstr "Рэвізіі запісу"
33
-
34
- #: revision-control.php:153
35
- #: revision-control.php:347
36
- #: revision-control.php:368
37
- msgid "Enabled"
38
- msgstr "Уключана"
39
-
40
- #: revision-control.php:154
41
- #: revision-control.php:157
42
- #: revision-control.php:165
43
- msgid " (default)"
44
- msgstr "(па змаўчанні)"
45
-
46
- #: revision-control.php:156
47
- #: revision-control.php:350
48
- #: revision-control.php:371
49
- msgid "Disabled"
50
- msgstr "Адключана"
51
-
52
- #: revision-control.php:164
53
- #: revision-control.php:357
54
- #: revision-control.php:377
55
- #, php-format
56
- msgid "Limit to %d Revisions"
57
- msgstr "Абмежаваць да %d рэвізій"
58
-
59
- #: revision-control.php:262
60
- msgid "Are you sure you wish to delete this Revision?"
61
- msgstr "Вы ўпэўненыя што жадаеце выдаліць гэтую рэвізію?"
62
-
63
- #: revision-control.php:262
64
- msgid "(delete)"
65
- msgstr "(выдаліць)"
66
-
67
- #: revision-control.php:329
68
- msgid "Settings saved."
69
- msgstr "Налады захаваныя."
70
-
71
- #: revision-control.php:334
72
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
73
- msgstr "<strong>Памылка:</strong> Вы вызначылі <code>WP_POST_REVISIONS</code> у вашым файле <code>wp-config.php</code>. Каб выкарыстаць гэтая ўбудова, вы павінны выдаліць/закаментаваць гэты радок."
74
-
75
- #: revision-control.php:343
76
- msgid "Default Revision Status for Posts"
77
- msgstr "Статут рэвізій па змаўчанні для запісаў"
78
-
79
- #: revision-control.php:364
80
- msgid "Default Revision Status for Pages"
81
- msgstr "Статут рэвізій па змаўчанні для старонак"
82
-
83
- #: revision-control.php:385
84
- msgid "Save Changes"
85
- msgstr "Захаваць змены"
86
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
old_langs/revision-control-cs_CZ.mo DELETED
Binary file
old_langs/revision-control-cs_CZ.po DELETED
@@ -1,85 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: \n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-08-11 16:38+1000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Dion Hulse <contact@dd32.id.au>\n"
8
- "Language-Team: \n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Poedit-Language: Czech\n"
13
- "X-Poedit-Country: CZECH REPUBLIC\n"
14
- "X-Poedit-KeywordsList: __;_e\n"
15
- "X-Poedit-Basepath: ../\n"
16
- "X-Poedit-SearchPath-0: .\n"
17
-
18
- #: revision-control.php:38
19
- #: revision-control.php:151
20
- #: revision-control.php:294
21
- msgid "Revisions"
22
- msgstr "Verze"
23
-
24
- #: revision-control.php:41
25
- #: revision-control.php:337
26
- msgid "Revision Control"
27
- msgstr "Správa verzí"
28
-
29
- #: revision-control.php:142
30
- msgid "Post Revisions"
31
- msgstr "Předchozí verze"
32
-
33
- #: revision-control.php:153
34
- #: revision-control.php:347
35
- #: revision-control.php:368
36
- msgid "Enabled"
37
- msgstr "Zapnuto"
38
-
39
- #: revision-control.php:154
40
- #: revision-control.php:157
41
- #: revision-control.php:165
42
- msgid " (default)"
43
- msgstr "(přednastavené)"
44
-
45
- #: revision-control.php:156
46
- #: revision-control.php:350
47
- #: revision-control.php:371
48
- msgid "Disabled"
49
- msgstr "Vypnuto"
50
-
51
- #: revision-control.php:164
52
- #: revision-control.php:357
53
- #: revision-control.php:377
54
- #, php-format
55
- msgid "Limit to %d Revisions"
56
- msgstr "Povol %d"
57
-
58
- #: revision-control.php:262
59
- msgid "Are you sure you wish to delete this Revision?"
60
- msgstr "Opravdu smazat tuto verzi?"
61
-
62
- #: revision-control.php:262
63
- msgid "(delete)"
64
- msgstr "(smazat)"
65
-
66
- #: revision-control.php:329
67
- msgid "Settings saved."
68
- msgstr "Nastavení uloženo"
69
-
70
- #: revision-control.php:334
71
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
72
- msgstr "<strong>Chyba:</strong> V konfiguračním souboru <code>wp-config.php</code> je nastaveno <code>WP_POST_REVISIONS</code>, pro správný běh tohoto pluginu je nutné tuto volbu odstranit."
73
-
74
- #: revision-control.php:343
75
- msgid "Default Revision Status for Posts"
76
- msgstr "Přednastavený stav verzí pro příspěvky"
77
-
78
- #: revision-control.php:364
79
- msgid "Default Revision Status for Pages"
80
- msgstr "Přednastavený stav verzí pro stránky"
81
-
82
- #: revision-control.php:385
83
- msgid "Save Changes"
84
- msgstr "Uložit změny"
85
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
old_langs/revision-control-es_ES.mo DELETED
Binary file
old_langs/revision-control-es_ES.po DELETED
@@ -1,207 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: \n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-10-01 19:22+1000\n"
6
- "PO-Revision-Date: 2008-10-01 19:22+1000\n"
7
- "Last-Translator: Dion Hulse <contact@dd32.id.au>\n"
8
- "Language-Team: SteAgl <stefano.aglietti@gmail.com>\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
- "X-Poedit-Language: Italian\n"
14
- "X-Poedit-Country: ITALY\n"
15
- "X-Poedit-SourceCharset: utf-8\n"
16
- "X-Poedit-KeywordsList: __;_e\n"
17
- "X-Poedit-Basepath: ../\n"
18
- "X-Poedit-SearchPath-0: .\n"
19
-
20
- #: revision-control.php:38
21
- #: revision-control.php:151
22
- #: revision-control.php:294
23
- msgid "Revisions"
24
- msgstr "Revisiones"
25
-
26
- #: revision-control.php:41
27
- #: revision-control.php:337
28
- msgid "Revision Control"
29
- msgstr "Control de Revisiones"
30
-
31
- #: revision-control.php:142
32
- msgid "Post Revisions"
33
- msgstr "Revisiones de Entrada"
34
-
35
- #: revision-control.php:153
36
- #: revision-control.php:347
37
- #: revision-control.php:368
38
- msgid "Enabled"
39
- msgstr "Activado"
40
-
41
- #: revision-control.php:154
42
- #: revision-control.php:157
43
- #: revision-control.php:165
44
- msgid " (default)"
45
- msgstr " (por defecto)"
46
-
47
- #: revision-control.php:156
48
- #: revision-control.php:350
49
- #: revision-control.php:371
50
- msgid "Disabled"
51
- msgstr "Desactivado"
52
-
53
- #: revision-control.php:164
54
- #: revision-control.php:357
55
- #: revision-control.php:377
56
- #, php-format
57
- msgid "Limit to %d Revisions"
58
- msgstr "Limitar a %d Revisiones"
59
-
60
- #: revision-control.php:262
61
- msgid "Are you sure you wish to delete this Revision?"
62
- msgstr "¿Estás seguro de querer eliminar esta Revisión?"
63
-
64
- #: revision-control.php:262
65
- msgid "(delete)"
66
- msgstr "(borrar)"
67
-
68
- #: revision-control.php:329
69
- msgid "Settings saved."
70
- msgstr "Preferencias guardadas."
71
-
72
- #: revision-control.php:334
73
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
74
- msgstr "<strong>Error:</strong> Has definido <code>WP_POST_REVISIONS</code> en tu fichero <code>wp-config.php</code>, para usar este plugin debes eliminar la definición del fichero."
75
-
76
- #: revision-control.php:343
77
- msgid "Default Revision Status for Posts"
78
- msgstr "Estado por defecto de las revisiones en las entradas"
79
-
80
- #: revision-control.php:364
81
- msgid "Default Revision Status for Pages"
82
- msgstr "Estado por defecto de las revisiones en las páginas"
83
-
84
- #: revision-control.php:385
85
- msgid "Save Changes"
86
- msgstr "Guardar Cambios"
87
-
88
- #~ msgid "Revisions:"
89
- #~ msgstr "Revisioni:"
90
- #~ msgid "Limit to"
91
- #~ msgstr "Limitate a"
92
- #~ msgid "<h1>Add From Server</h1> Sorry, This plugin requires WordPress 2.5+"
93
- #~ msgstr ""
94
- #~ "<h1>Aggiungi da server</h1> Questo plugin richiede almeno WordPress 2.5+"
95
- #~ msgid "Add From Server"
96
- #~ msgstr "Aggiungi da server"
97
- #~ msgid "Import"
98
- #~ msgstr "Importa"
99
- #~ msgid "Filename"
100
- #~ msgstr "Nome file"
101
- #~ msgid "Parent Folder"
102
- #~ msgstr "Cartella madre"
103
- #~ msgid "Toggle All"
104
- #~ msgstr "Cambia tutti"
105
- #~ msgid ""
106
- #~ "Note: Will not take effect if selected file is within an upload folder at "
107
- #~ "present"
108
- #~ msgstr ""
109
- #~ "Nota: Non avrà effetto se i file selezionati sono al momento nelal "
110
- #~ "cartella di upload"
111
- #~ msgid "Do not add selected files to current post Gallery"
112
- #~ msgstr ""
113
- #~ "Non aggiungere i file selezionati alla Galleria dell'articolo corrente"
114
- #~ msgid "Import selected files"
115
- #~ msgstr "Importa i file selezionati"
116
- #~ msgid "<em>%s</em> has been added to Media library"
117
- #~ msgstr "<em>%s</em> è statp aggiunto alla Libreria media"
118
- #~ msgid "The uploaded file could not be moved to %s."
119
- #~ msgstr "I file caricati non possono venir spostati in %s."
120
- #~ msgid ""
121
- #~ "Once you have selected files to be imported, Head over to the <a href=\"%s"
122
- #~ "\">Media Library tab</a> to add them to your post."
123
- #~ msgstr ""
124
- #~ "Una volta selezionati i file da importare, andare sulla <a href=\"%s"
125
- #~ "\">linguetta Libreria media</a> per aggiungerli al proprio articolo."
126
- #~ msgid "Current Directory"
127
- #~ msgstr "Directory corrente"
128
- #~ msgid "Security hash missing."
129
- #~ msgstr "Has di sicurezza mancante."
130
- #~ msgid "You don't have enough access rights."
131
- #~ msgstr "Non disponi dei permessi di accesso."
132
- #~ msgid "<h2>Set Up Your FeedBurner Feed</h2>"
133
- #~ msgstr "<h2>Imposta il tuo feed FeedBurner</h2>"
134
- #~ msgid ""
135
- #~ "<p>This plugin makes it easy to redirect 100% of traffic for your feeds "
136
- #~ "to a FeedBurner feed you have created. FeedBurner can then track all of "
137
- #~ "your feed subscriber traffic and usage and apply a variety of features "
138
- #~ "you choose to improve and enhance your original WordPress feed.</p>"
139
- #~ msgstr ""
140
- #~ "<p>Questo plugin rende semplicissimo reindirizzare il 100% del traffico "
141
- #~ "dei vostri feed ad un feed FeedBurner da voi creato. FeedBurner può "
142
- #~ "tenere traccia di tutto il traffico e l'utilizzo effettuato dagli "
143
- #~ "abbonati al feed ed applicare una serie di funzioni a vostra scelta per "
144
- #~ "migliorare e incrementare il feed originale WordPress.</p>"
145
- #~ msgid "To get started,"
146
- #~ msgstr "Per iniziare,"
147
- #~ msgid "create a FeedBurner feed for "
148
- #~ msgstr "crea un feed Feedburner per "
149
- #~ msgid "This feed will handle all traffic for your posts."
150
- #~ msgstr "Questo feed gestirà tutto il traffico per gli articoli."
151
- #~ msgid ""
152
- #~ "Once you have created your FeedBurner feed, enter its address into the "
153
- #~ "field below"
154
- #~ msgstr ""
155
- #~ "Una volta creato il feed su FeedBurner, inserire il suo indirizzo nel "
156
- #~ "campo seguente"
157
- #~ msgid ""
158
- #~ "Optional: If you also want to handle your WordPress comments feed using "
159
- #~ "FeedBurner"
160
- #~ msgstr ""
161
- #~ "Opzionale: Se si desidera gestire anche il feed dei commenti di WordPress "
162
- #~ "utilizzando FeedBurner"
163
- #~ msgid ""
164
- #~ "create a FeedBurner comments feed</a> and then enter its address below:"
165
- #~ msgstr ""
166
- #~ "crea un feed dei commenti su FeedBurner</a> e quindi inserisci "
167
- #~ "l'indirizzo qui sotto:"
168
- #~ msgid "Save"
169
- #~ msgstr "Salva"
170
- #~ msgid "Sorry, you are not allowed to access this page."
171
- #~ msgstr "Non ti è permesso accedere a questa pagina."
172
- #~ msgid "ShareThis Options"
173
- #~ msgstr "Opzioni ShareThis"
174
- #~ msgid ""
175
- #~ "Where do I go to get the ShareThis Code?<br><br>You can configure your "
176
- #~ "ShareThis widget using our customizing tool (and be sure to register to "
177
- #~ "get tracking) located here: <a href=\"http://sharethis.com/publisher?"
178
- #~ "type=wpplugin\">sharethis.com/publisher?type=wpplugin</a>"
179
- #~ msgstr ""
180
- #~ "Dove andare per ottenere il Codice ShareThis?<br><br>Puoi configurare il "
181
- #~ "tuo widget ShareThis tramite il nostro strumento di personalizzazione (e "
182
- #~ "assicurati di registrarti per avere accesso al tracking) che si trova "
183
- #~ "qui: <a href=\"http://sharethis.com/publisher?type=wpplugin\">sharethis."
184
- #~ "com/publisher?type=wpplugin</a>"
185
- #~ msgid "Paste your widget code in here:"
186
- #~ msgstr "Incolla qui il tuo codice del widget:"
187
- #~ msgid "Automatically add ShareThis to your posts?*"
188
- #~ msgstr "Aggiungi automaticamente ShareThis ai tuoi articoli?*"
189
- #~ msgid "Automatically add ShareThis to your pages?*"
190
- #~ msgstr "Aggiungi automaticamente ShareThis alle tue pagine?*"
191
- #~ msgid "Yes"
192
- #~ msgstr "Si"
193
- #~ msgid "No"
194
- #~ msgstr "No"
195
- #~ msgid ""
196
- #~ "* Note, if you turn this off, you will want to add the <a href=\"http://"
197
- #~ "support.sharethis.com/publishers/publishers-faq/wordpress/66\">ShareThis "
198
- #~ "template tag</a> to your theme."
199
- #~ msgstr ""
200
- #~ "* Nota, se disabiliti questa opzione, dovrai aggiungere il <a href="
201
- #~ "\"http://support.sharethis.com/publishers/publishers-faq/wordpress/66"
202
- #~ "\">marcatore dei tempate di ShareThis</a> al tuo tema."
203
- #~ msgid "Update ShareThis Options"
204
- #~ msgstr "Aggiorna opzioni ShareThis"
205
- #~ msgid "ShareThis"
206
- #~ msgstr "ShareThis"
207
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
old_langs/revision-control-et.mo DELETED
Binary file
old_langs/revision-control-et.po DELETED
@@ -1,83 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Revision Control 1.9.1\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-07-27 18:26+1000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Lembit Kivisik <lembit@designux.com>\n"
8
- "Language-Team: Lembit Kivisik <lembit@designux.com>\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Poedit-Language: Estonian\n"
13
- "X-Poedit-Country: ESTONIA\n"
14
- "X-Poedit-SourceCharset: utf-8\n"
15
-
16
- #: revision-control.php:38
17
- #: revision-control.php:151
18
- #: revision-control.php:294
19
- msgid "Revisions"
20
- msgstr "Versioonid"
21
-
22
- #: revision-control.php:41
23
- #: revision-control.php:337
24
- msgid "Revision Control"
25
- msgstr "Versioonihaldus"
26
-
27
- #: revision-control.php:142
28
- msgid "Post Revisions"
29
- msgstr "Postituse versioonid"
30
-
31
- #: revision-control.php:153
32
- #: revision-control.php:347
33
- #: revision-control.php:368
34
- msgid "Enabled"
35
- msgstr "Luba"
36
-
37
- #: revision-control.php:154
38
- #: revision-control.php:157
39
- #: revision-control.php:165
40
- msgid " (default)"
41
- msgstr " (vaikimisi)"
42
-
43
- #: revision-control.php:156
44
- #: revision-control.php:350
45
- #: revision-control.php:371
46
- msgid "Disabled"
47
- msgstr "Ära luba"
48
-
49
- #: revision-control.php:164
50
- #: revision-control.php:357
51
- #: revision-control.php:377
52
- #, php-format
53
- msgid "Limit to %d Revisions"
54
- msgstr "Säilita kuni %d versiooni"
55
-
56
- #: revision-control.php:262
57
- msgid "Are you sure you wish to delete this Revision?"
58
- msgstr "Oled kindel, et soovid selle versiooni kustutada?"
59
-
60
- #: revision-control.php:262
61
- msgid "(delete)"
62
- msgstr "(kustuta)"
63
-
64
- #: revision-control.php:329
65
- msgid "Settings saved."
66
- msgstr "Seaded salvestatud."
67
-
68
- #: revision-control.php:334
69
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
70
- msgstr "<strong>Viga:</strong> seade <code>WP_POST_REVISIONS</code> on määratud konfiguratsioonifailis <code>wp-config.php</code>. Selle plugina kasutamiseks pead seade eemaldama."
71
-
72
- #: revision-control.php:343
73
- msgid "Default Revision Status for Posts"
74
- msgstr "Vaikimisi seade postitustele"
75
-
76
- #: revision-control.php:364
77
- msgid "Default Revision Status for Pages"
78
- msgstr "Vaikimisi seade lehekülgedele"
79
-
80
- #: revision-control.php:385
81
- msgid "Save Changes"
82
- msgstr "Salvesta muudatused"
83
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
old_langs/revision-control-fr_FR.mo DELETED
Binary file
old_langs/revision-control-fr_FR.po DELETED
@@ -1,86 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: 1.7\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-08-17 22:16+1000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Dion Hulse <contact@dd32.id.au>\n"
8
- "Language-Team: PozHonks\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Poedit-Language: French\n"
13
- "X-Poedit-Country: FRANCE\n"
14
- "X-Poedit-SourceCharset: utf-8\n"
15
- "X-Poedit-KeywordsList: _e;__\n"
16
- "X-Poedit-Basepath: ../\n"
17
- "X-Poedit-SearchPath-0: .\n"
18
-
19
- #: revision-control.php:38
20
- #: revision-control.php:151
21
- #: revision-control.php:294
22
- msgid "Revisions"
23
- msgstr "Révisions"
24
-
25
- #: revision-control.php:41
26
- #: revision-control.php:337
27
- msgid "Revision Control"
28
- msgstr "Contrôle des Révisions"
29
-
30
- #: revision-control.php:142
31
- msgid "Post Revisions"
32
- msgstr "Historique de l'article"
33
-
34
- #: revision-control.php:153
35
- #: revision-control.php:347
36
- #: revision-control.php:368
37
- msgid "Enabled"
38
- msgstr "Activé"
39
-
40
- #: revision-control.php:154
41
- #: revision-control.php:157
42
- #: revision-control.php:165
43
- msgid " (default)"
44
- msgstr " (par défaut)"
45
-
46
- #: revision-control.php:156
47
- #: revision-control.php:350
48
- #: revision-control.php:371
49
- msgid "Disabled"
50
- msgstr "Désactivé"
51
-
52
- #: revision-control.php:164
53
- #: revision-control.php:357
54
- #: revision-control.php:377
55
- #, php-format
56
- msgid "Limit to %d Revisions"
57
- msgstr "Limité à %d versions"
58
-
59
- #: revision-control.php:262
60
- msgid "Are you sure you wish to delete this Revision?"
61
- msgstr "Êtes-vous sûr de vouloir effacer cette version ?"
62
-
63
- #: revision-control.php:262
64
- msgid "(delete)"
65
- msgstr "(effacer)"
66
-
67
- #: revision-control.php:329
68
- msgid "Settings saved."
69
- msgstr "Paramètres enregistrés."
70
-
71
- #: revision-control.php:334
72
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
73
- msgstr "<strong>Erreur:</strong> Vous avez défini <code>WP_POST_REVISIONS</code> dans votre fichier <code>wp-config.php</code>. Afin d'utiliser cette extensions, vous devez retirer ce code."
74
-
75
- #: revision-control.php:343
76
- msgid "Default Revision Status for Posts"
77
- msgstr "Réglage Général de l'Historique des Articles"
78
-
79
- #: revision-control.php:364
80
- msgid "Default Revision Status for Pages"
81
- msgstr "Réglage Général de l'Historique des Pages"
82
-
83
- #: revision-control.php:385
84
- msgid "Save Changes"
85
- msgstr "Enregistrer les modifications"
86
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
old_langs/revision-control-it_IT.mo DELETED
Binary file
old_langs/revision-control-it_IT.po DELETED
@@ -1,207 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: \n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-07-27 18:02+1000\n"
6
- "PO-Revision-Date: 2008-07-27 12:23+0100\n"
7
- "Last-Translator: \n"
8
- "Language-Team: SteAgl <stefano.aglietti@gmail.com>\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
- "X-Poedit-Language: Italian\n"
14
- "X-Poedit-Country: ITALY\n"
15
- "X-Poedit-SourceCharset: utf-8\n"
16
- "X-Poedit-KeywordsList: __;_e\n"
17
- "X-Poedit-Basepath: ../\n"
18
- "X-Poedit-SearchPath-0: .\n"
19
-
20
- #: revision-control.php:38
21
- #: revision-control.php:151
22
- #: revision-control.php:283
23
- msgid "Revisions"
24
- msgstr "Revisioni"
25
-
26
- #: revision-control.php:41
27
- #: revision-control.php:326
28
- msgid "Revision Control"
29
- msgstr "Controllo revisioni"
30
-
31
- #: revision-control.php:142
32
- msgid "Post Revisions"
33
- msgstr "Revisioni articolo"
34
-
35
- #: revision-control.php:153
36
- #: revision-control.php:336
37
- #: revision-control.php:357
38
- msgid "Enabled"
39
- msgstr "Abilitate"
40
-
41
- #: revision-control.php:154
42
- #: revision-control.php:157
43
- #: revision-control.php:163
44
- msgid " (default)"
45
- msgstr " (predefinito)"
46
-
47
- #: revision-control.php:156
48
- #: revision-control.php:339
49
- #: revision-control.php:360
50
- msgid "Disabled"
51
- msgstr "Disabilitate"
52
-
53
- #: revision-control.php:163
54
- #: revision-control.php:346
55
- #: revision-control.php:366
56
- #, php-format
57
- msgid "Limit to %d Revisions"
58
- msgstr "Limite di %d revisioni"
59
-
60
- #: revision-control.php:252
61
- msgid "Are you sure you wish to delete this Revision?"
62
- msgstr "Si è sicuri di volre cancellare questa revisione?"
63
-
64
- #: revision-control.php:252
65
- msgid "(delete)"
66
- msgstr "(cancella)"
67
-
68
- #: revision-control.php:318
69
- msgid "Settings saved."
70
- msgstr "Le impostazioni sono state salvate."
71
-
72
- #: revision-control.php:323
73
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
74
- msgstr "<strong>Errore:</strong> Nel file <code>wp-config.php</code> la variabile <code>WP_POST_REVISIONS</code> è definita. Per poter usare questo plugin occorrerà rimuoverla."
75
-
76
- #: revision-control.php:332
77
- msgid "Default Revision Status for Posts"
78
- msgstr "Stato predefinito revisioni per gli articoli"
79
-
80
- #: revision-control.php:353
81
- msgid "Default Revision Status for Pages"
82
- msgstr "Stato predefinito revisioni per le pagine"
83
-
84
- #: revision-control.php:374
85
- msgid "Save Changes"
86
- msgstr "Salva le modifiche"
87
-
88
- #~ msgid "Revisions:"
89
- #~ msgstr "Revisioni:"
90
- #~ msgid "Limit to"
91
- #~ msgstr "Limitate a"
92
- #~ msgid "<h1>Add From Server</h1> Sorry, This plugin requires WordPress 2.5+"
93
- #~ msgstr ""
94
- #~ "<h1>Aggiungi da server</h1> Questo plugin richiede almeno WordPress 2.5+"
95
- #~ msgid "Add From Server"
96
- #~ msgstr "Aggiungi da server"
97
- #~ msgid "Import"
98
- #~ msgstr "Importa"
99
- #~ msgid "Filename"
100
- #~ msgstr "Nome file"
101
- #~ msgid "Parent Folder"
102
- #~ msgstr "Cartella madre"
103
- #~ msgid "Toggle All"
104
- #~ msgstr "Cambia tutti"
105
- #~ msgid ""
106
- #~ "Note: Will not take effect if selected file is within an upload folder at "
107
- #~ "present"
108
- #~ msgstr ""
109
- #~ "Nota: Non avrà effetto se i file selezionati sono al momento nelal "
110
- #~ "cartella di upload"
111
- #~ msgid "Do not add selected files to current post Gallery"
112
- #~ msgstr ""
113
- #~ "Non aggiungere i file selezionati alla Galleria dell'articolo corrente"
114
- #~ msgid "Import selected files"
115
- #~ msgstr "Importa i file selezionati"
116
- #~ msgid "<em>%s</em> has been added to Media library"
117
- #~ msgstr "<em>%s</em> è statp aggiunto alla Libreria media"
118
- #~ msgid "The uploaded file could not be moved to %s."
119
- #~ msgstr "I file caricati non possono venir spostati in %s."
120
- #~ msgid ""
121
- #~ "Once you have selected files to be imported, Head over to the <a href=\"%s"
122
- #~ "\">Media Library tab</a> to add them to your post."
123
- #~ msgstr ""
124
- #~ "Una volta selezionati i file da importare, andare sulla <a href=\"%s"
125
- #~ "\">linguetta Libreria media</a> per aggiungerli al proprio articolo."
126
- #~ msgid "Current Directory"
127
- #~ msgstr "Directory corrente"
128
- #~ msgid "Security hash missing."
129
- #~ msgstr "Has di sicurezza mancante."
130
- #~ msgid "You don't have enough access rights."
131
- #~ msgstr "Non disponi dei permessi di accesso."
132
- #~ msgid "<h2>Set Up Your FeedBurner Feed</h2>"
133
- #~ msgstr "<h2>Imposta il tuo feed FeedBurner</h2>"
134
- #~ msgid ""
135
- #~ "<p>This plugin makes it easy to redirect 100% of traffic for your feeds "
136
- #~ "to a FeedBurner feed you have created. FeedBurner can then track all of "
137
- #~ "your feed subscriber traffic and usage and apply a variety of features "
138
- #~ "you choose to improve and enhance your original WordPress feed.</p>"
139
- #~ msgstr ""
140
- #~ "<p>Questo plugin rende semplicissimo reindirizzare il 100% del traffico "
141
- #~ "dei vostri feed ad un feed FeedBurner da voi creato. FeedBurner può "
142
- #~ "tenere traccia di tutto il traffico e l'utilizzo effettuato dagli "
143
- #~ "abbonati al feed ed applicare una serie di funzioni a vostra scelta per "
144
- #~ "migliorare e incrementare il feed originale WordPress.</p>"
145
- #~ msgid "To get started,"
146
- #~ msgstr "Per iniziare,"
147
- #~ msgid "create a FeedBurner feed for "
148
- #~ msgstr "crea un feed Feedburner per "
149
- #~ msgid "This feed will handle all traffic for your posts."
150
- #~ msgstr "Questo feed gestirà tutto il traffico per gli articoli."
151
- #~ msgid ""
152
- #~ "Once you have created your FeedBurner feed, enter its address into the "
153
- #~ "field below"
154
- #~ msgstr ""
155
- #~ "Una volta creato il feed su FeedBurner, inserire il suo indirizzo nel "
156
- #~ "campo seguente"
157
- #~ msgid ""
158
- #~ "Optional: If you also want to handle your WordPress comments feed using "
159
- #~ "FeedBurner"
160
- #~ msgstr ""
161
- #~ "Opzionale: Se si desidera gestire anche il feed dei commenti di WordPress "
162
- #~ "utilizzando FeedBurner"
163
- #~ msgid ""
164
- #~ "create a FeedBurner comments feed</a> and then enter its address below:"
165
- #~ msgstr ""
166
- #~ "crea un feed dei commenti su FeedBurner</a> e quindi inserisci "
167
- #~ "l'indirizzo qui sotto:"
168
- #~ msgid "Save"
169
- #~ msgstr "Salva"
170
- #~ msgid "Sorry, you are not allowed to access this page."
171
- #~ msgstr "Non ti è permesso accedere a questa pagina."
172
- #~ msgid "ShareThis Options"
173
- #~ msgstr "Opzioni ShareThis"
174
- #~ msgid ""
175
- #~ "Where do I go to get the ShareThis Code?<br><br>You can configure your "
176
- #~ "ShareThis widget using our customizing tool (and be sure to register to "
177
- #~ "get tracking) located here: <a href=\"http://sharethis.com/publisher?"
178
- #~ "type=wpplugin\">sharethis.com/publisher?type=wpplugin</a>"
179
- #~ msgstr ""
180
- #~ "Dove andare per ottenere il Codice ShareThis?<br><br>Puoi configurare il "
181
- #~ "tuo widget ShareThis tramite il nostro strumento di personalizzazione (e "
182
- #~ "assicurati di registrarti per avere accesso al tracking) che si trova "
183
- #~ "qui: <a href=\"http://sharethis.com/publisher?type=wpplugin\">sharethis."
184
- #~ "com/publisher?type=wpplugin</a>"
185
- #~ msgid "Paste your widget code in here:"
186
- #~ msgstr "Incolla qui il tuo codice del widget:"
187
- #~ msgid "Automatically add ShareThis to your posts?*"
188
- #~ msgstr "Aggiungi automaticamente ShareThis ai tuoi articoli?*"
189
- #~ msgid "Automatically add ShareThis to your pages?*"
190
- #~ msgstr "Aggiungi automaticamente ShareThis alle tue pagine?*"
191
- #~ msgid "Yes"
192
- #~ msgstr "Si"
193
- #~ msgid "No"
194
- #~ msgstr "No"
195
- #~ msgid ""
196
- #~ "* Note, if you turn this off, you will want to add the <a href=\"http://"
197
- #~ "support.sharethis.com/publishers/publishers-faq/wordpress/66\">ShareThis "
198
- #~ "template tag</a> to your theme."
199
- #~ msgstr ""
200
- #~ "* Nota, se disabiliti questa opzione, dovrai aggiungere il <a href="
201
- #~ "\"http://support.sharethis.com/publishers/publishers-faq/wordpress/66"
202
- #~ "\">marcatore dei tempate di ShareThis</a> al tuo tema."
203
- #~ msgid "Update ShareThis Options"
204
- #~ msgstr "Aggiorna opzioni ShareThis"
205
- #~ msgid "ShareThis"
206
- #~ msgstr "ShareThis"
207
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
old_langs/revision-control-ja.mo DELETED
Binary file
old_langs/revision-control-ja.po DELETED
@@ -1,92 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: revison contorol ja\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-07-31 13:06+1000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Dion Hulse <contact@dd32.id.au>\n"
8
- "Language-Team: tekapo <tekapo@gmail.com>\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Poedit-Language: Japanese\n"
13
- "X-Poedit-Country: JAPAN\n"
14
- "X-Poedit-SourceCharset: utf-8\n"
15
- "X-Poedit-KeywordsList: __;_e\n"
16
- "X-Poedit-Basepath: C:\\www\\wordpress\\wp-content\\plugins\\revision-control\n"
17
- "X-Poedit-SearchPath-0: .\n"
18
-
19
- #: revision-control.php:38
20
- #: revision-control.php:151
21
- #: revision-control.php:294
22
- msgid "Revisions"
23
- msgstr "リビジョン"
24
-
25
- #: revision-control.php:41
26
- #: revision-control.php:337
27
- msgid "Revision Control"
28
- msgstr "リビジョンコントロール"
29
-
30
- #: revision-control.php:142
31
- msgid "Post Revisions"
32
- msgstr "投稿リビジョン"
33
-
34
- #: revision-control.php:153
35
- #: revision-control.php:347
36
- #: revision-control.php:368
37
- msgid "Enabled"
38
- msgstr "使用する"
39
-
40
- #: revision-control.php:154
41
- #: revision-control.php:157
42
- #: revision-control.php:165
43
- #, fuzzy
44
- msgid " (default)"
45
- msgstr "(削除)"
46
-
47
- #: revision-control.php:156
48
- #: revision-control.php:350
49
- #: revision-control.php:371
50
- msgid "Disabled"
51
- msgstr "使用しない"
52
-
53
- #: revision-control.php:164
54
- #: revision-control.php:357
55
- #: revision-control.php:377
56
- #, fuzzy, php-format
57
- msgid "Limit to %d Revisions"
58
- msgstr "%d リビジョン"
59
-
60
- #: revision-control.php:262
61
- msgid "Are you sure you wish to delete this Revision?"
62
- msgstr "このリビジョンを削除しますか ?"
63
-
64
- #: revision-control.php:262
65
- msgid "(delete)"
66
- msgstr "(削除)"
67
-
68
- #: revision-control.php:329
69
- msgid "Settings saved."
70
- msgstr "設定を保存しました。"
71
-
72
- #: revision-control.php:334
73
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
74
- msgstr "<strong>エラー:</strong> <code>wp-config.php</code> ファイル内で <code>WP_POST_REVISIONS</code> が設定されています。このプラグインを利用するにはこの設定を削除してください。"
75
-
76
- #: revision-control.php:343
77
- msgid "Default Revision Status for Posts"
78
- msgstr "投稿のリビジョン設定"
79
-
80
- #: revision-control.php:364
81
- msgid "Default Revision Status for Pages"
82
- msgstr "ページのリビジョン設定"
83
-
84
- #: revision-control.php:385
85
- msgid "Save Changes"
86
- msgstr "変更を保存"
87
-
88
- #~ msgid "Revisions:"
89
- #~ msgstr "リビジョン:"
90
- #~ msgid "Limit to"
91
- #~ msgstr "次のリビジョンまで保持:"
92
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
old_langs/revision-control-lv.mo DELETED
Binary file
old_langs/revision-control-lv.po DELETED
@@ -1,86 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Revision Control\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-12-03 22:24+1000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Dion Hulse <contact@dd32.id.au>\n"
8
- "Language-Team: <contact@dd32.id.au>\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Poedit-Language: French\n"
13
- "X-Poedit-Country: Australia\n"
14
- "X-Poedit-SourceCharset: utf-8\n"
15
- "X-Poedit-Basepath: C:\\www\\wordpress\\wp-content\\plugins\\revision-control\n"
16
- "X-Poedit-KeywordsList: __;_e\n"
17
- "X-Poedit-SearchPath-0: .\n"
18
-
19
- #: revision-control.php:38
20
- #: revision-control.php:151
21
- #: revision-control.php:294
22
- msgid "Revisions"
23
- msgstr "Revīzijas"
24
-
25
- #: revision-control.php:41
26
- #: revision-control.php:337
27
- msgid "Revision Control"
28
- msgstr "Revīziju kontrole"
29
-
30
- #: revision-control.php:142
31
- msgid "Post Revisions"
32
- msgstr "Raksta revīzija"
33
-
34
- #: revision-control.php:153
35
- #: revision-control.php:347
36
- #: revision-control.php:368
37
- msgid "Enabled"
38
- msgstr "Aktivizēta"
39
-
40
- #: revision-control.php:154
41
- #: revision-control.php:157
42
- #: revision-control.php:165
43
- msgid " (default)"
44
- msgstr "(pamata)"
45
-
46
- #: revision-control.php:156
47
- #: revision-control.php:350
48
- #: revision-control.php:371
49
- msgid "Disabled"
50
- msgstr "Deaktivizēta"
51
-
52
- #: revision-control.php:164
53
- #: revision-control.php:357
54
- #: revision-control.php:377
55
- #, php-format
56
- msgid "Limit to %d Revisions"
57
- msgstr "Saīsināt līdz %d revīzijām"
58
-
59
- #: revision-control.php:262
60
- msgid "Are you sure you wish to delete this Revision?"
61
- msgstr "Vai esi pārliecināts, ka vēlies šo revīziju dzēst?"
62
-
63
- #: revision-control.php:262
64
- msgid "(delete)"
65
- msgstr "(dzēst)"
66
-
67
- #: revision-control.php:329
68
- msgid "Settings saved."
69
- msgstr "Uzstādījumi saglabāti."
70
-
71
- #: revision-control.php:334
72
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
73
- msgstr "<strong>Kļūda:</strong> Esi definējis <code>WP_POST_REVISIONS</code> savā <code>wp-config.php</code> failā, Lai lietotu šo spraudni, tas ir jāizņem."
74
-
75
- #: revision-control.php:343
76
- msgid "Default Revision Status for Posts"
77
- msgstr "Pamata revīzijas statuss rakstiem"
78
-
79
- #: revision-control.php:364
80
- msgid "Default Revision Status for Pages"
81
- msgstr "Pamata revīzijas statuss lapām"
82
-
83
- #: revision-control.php:385
84
- msgid "Save Changes"
85
- msgstr "Saglabāt izmaiņas"
86
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
old_langs/revision-control-lv_LV.mo DELETED
Binary file
old_langs/revision-control-lv_LV.po DELETED
@@ -1,86 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Revision Control\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-12-03 22:24+1000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Dion Hulse <contact@dd32.id.au>\n"
8
- "Language-Team: <contact@dd32.id.au>\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Poedit-Language: French\n"
13
- "X-Poedit-Country: Australia\n"
14
- "X-Poedit-SourceCharset: utf-8\n"
15
- "X-Poedit-Basepath: C:\\www\\wordpress\\wp-content\\plugins\\revision-control\n"
16
- "X-Poedit-KeywordsList: __;_e\n"
17
- "X-Poedit-SearchPath-0: .\n"
18
-
19
- #: revision-control.php:38
20
- #: revision-control.php:151
21
- #: revision-control.php:294
22
- msgid "Revisions"
23
- msgstr "Revīzijas"
24
-
25
- #: revision-control.php:41
26
- #: revision-control.php:337
27
- msgid "Revision Control"
28
- msgstr "Revīziju kontrole"
29
-
30
- #: revision-control.php:142
31
- msgid "Post Revisions"
32
- msgstr "Raksta revīzija"
33
-
34
- #: revision-control.php:153
35
- #: revision-control.php:347
36
- #: revision-control.php:368
37
- msgid "Enabled"
38
- msgstr "Aktivizēta"
39
-
40
- #: revision-control.php:154
41
- #: revision-control.php:157
42
- #: revision-control.php:165
43
- msgid " (default)"
44
- msgstr "(pamata)"
45
-
46
- #: revision-control.php:156
47
- #: revision-control.php:350
48
- #: revision-control.php:371
49
- msgid "Disabled"
50
- msgstr "Deaktivizēta"
51
-
52
- #: revision-control.php:164
53
- #: revision-control.php:357
54
- #: revision-control.php:377
55
- #, php-format
56
- msgid "Limit to %d Revisions"
57
- msgstr "Saīsināt līdz %d revīzijām"
58
-
59
- #: revision-control.php:262
60
- msgid "Are you sure you wish to delete this Revision?"
61
- msgstr "Vai esi pārliecināts, ka vēlies šo revīziju dzēst?"
62
-
63
- #: revision-control.php:262
64
- msgid "(delete)"
65
- msgstr "(dzēst)"
66
-
67
- #: revision-control.php:329
68
- msgid "Settings saved."
69
- msgstr "Uzstādījumi saglabāti."
70
-
71
- #: revision-control.php:334
72
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
73
- msgstr "<strong>Kļūda:</strong> Esi definējis <code>WP_POST_REVISIONS</code> savā <code>wp-config.php</code> failā, Lai lietotu šo spraudni, tas ir jāizņem."
74
-
75
- #: revision-control.php:343
76
- msgid "Default Revision Status for Posts"
77
- msgstr "Pamata revīzijas statuss rakstiem"
78
-
79
- #: revision-control.php:364
80
- msgid "Default Revision Status for Pages"
81
- msgstr "Pamata revīzijas statuss lapām"
82
-
83
- #: revision-control.php:385
84
- msgid "Save Changes"
85
- msgstr "Saglabāt izmaiņas"
86
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
old_langs/revision-control-nl_NL.mo DELETED
Binary file
old_langs/revision-control-nl_NL.po DELETED
@@ -1,86 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Revision Control\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-08-12 12:00+1000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Dion Hulse <contact@dd32.id.au>\n"
8
- "Language-Team: <contact@dd32.id.au>\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Poedit-Language: French\n"
13
- "X-Poedit-Country: Australia\n"
14
- "X-Poedit-SourceCharset: utf-8\n"
15
- "X-Poedit-Basepath: ../\n"
16
- "X-Poedit-KeywordsList: __;_e\n"
17
- "X-Poedit-SearchPath-0: .\n"
18
-
19
- #: revision-control.php:38
20
- #: revision-control.php:151
21
- #: revision-control.php:294
22
- msgid "Revisions"
23
- msgstr "Revisies"
24
-
25
- #: revision-control.php:41
26
- #: revision-control.php:337
27
- msgid "Revision Control"
28
- msgstr "Revisie Beheer"
29
-
30
- #: revision-control.php:142
31
- msgid "Post Revisions"
32
- msgstr "Bericht Revisies"
33
-
34
- #: revision-control.php:153
35
- #: revision-control.php:347
36
- #: revision-control.php:368
37
- msgid "Enabled"
38
- msgstr "Geactiveerd"
39
-
40
- #: revision-control.php:154
41
- #: revision-control.php:157
42
- #: revision-control.php:165
43
- msgid " (default)"
44
- msgstr "(standaard)"
45
-
46
- #: revision-control.php:156
47
- #: revision-control.php:350
48
- #: revision-control.php:371
49
- msgid "Disabled"
50
- msgstr "Uitgeschakelt"
51
-
52
- #: revision-control.php:164
53
- #: revision-control.php:357
54
- #: revision-control.php:377
55
- #, php-format
56
- msgid "Limit to %d Revisions"
57
- msgstr "Beperk tot %d revisies"
58
-
59
- #: revision-control.php:262
60
- msgid "Are you sure you wish to delete this Revision?"
61
- msgstr "Weet je zeker dat je deze revisie wilt verwijderen?"
62
-
63
- #: revision-control.php:262
64
- msgid "(delete)"
65
- msgstr "(verwijderen)"
66
-
67
- #: revision-control.php:329
68
- msgid "Settings saved."
69
- msgstr "Instellingen opgeslagen."
70
-
71
- #: revision-control.php:334
72
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
73
- msgstr "<strong>Fout:</strong> <code>WP_POST_REVISIONS</code> is gedefinieerd in <code>wp-config.php</code>, je dient deze waarde te verwijderen als je gebruik wilt maken van deze plugin."
74
-
75
- #: revision-control.php:343
76
- msgid "Default Revision Status for Posts"
77
- msgstr "Standaard Revisie Status voor Berichten"
78
-
79
- #: revision-control.php:364
80
- msgid "Default Revision Status for Pages"
81
- msgstr "Standaard Revisie Status voor Paginas"
82
-
83
- #: revision-control.php:385
84
- msgid "Save Changes"
85
- msgstr "Wijzigingen Opslaan"
86
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
old_langs/revision-control-sv_SE.mo DELETED
Binary file
old_langs/revision-control-sv_SE.po DELETED
@@ -1,86 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Revision Control\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-07-27 18:26+1000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Linus Wileryd <linus@cutup.se>\n"
8
- "Language-Team: <contact@dd32.id.au>\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Poedit-Language: French\n"
13
- "X-Poedit-Country: Australia\n"
14
- "X-Poedit-SourceCharset: utf-8\n"
15
- "X-Poedit-Basepath: C:\\www\\wordpress\\wp-content\\plugins\\revision-control\n"
16
- "X-Poedit-KeywordsList: __;_e\n"
17
- "X-Poedit-SearchPath-0: .\n"
18
-
19
- #: revision-control.php:38
20
- #: revision-control.php:151
21
- #: revision-control.php:294
22
- msgid "Revisions"
23
- msgstr "Revision"
24
-
25
- #: revision-control.php:41
26
- #: revision-control.php:337
27
- msgid "Revision Control"
28
- msgstr "Revisionskontroll"
29
-
30
- #: revision-control.php:142
31
- msgid "Post Revisions"
32
- msgstr "Inläggsrevisioner"
33
-
34
- #: revision-control.php:153
35
- #: revision-control.php:347
36
- #: revision-control.php:368
37
- msgid "Enabled"
38
- msgstr "Aktiverad"
39
-
40
- #: revision-control.php:154
41
- #: revision-control.php:157
42
- #: revision-control.php:165
43
- msgid " (default)"
44
- msgstr " (standard)"
45
-
46
- #: revision-control.php:156
47
- #: revision-control.php:350
48
- #: revision-control.php:371
49
- msgid "Disabled"
50
- msgstr "Inaktiverad"
51
-
52
- #: revision-control.php:164
53
- #: revision-control.php:357
54
- #: revision-control.php:377
55
- #, php-format
56
- msgid "Limit to %d Revisions"
57
- msgstr "Begränsad till %d revisioner"
58
-
59
- #: revision-control.php:262
60
- msgid "Are you sure you wish to delete this Revision?"
61
- msgstr "Vill du verkligen radera denna revision?"
62
-
63
- #: revision-control.php:262
64
- msgid "(delete)"
65
- msgstr "(radera)"
66
-
67
- #: revision-control.php:329
68
- msgid "Settings saved."
69
- msgstr "Inställningar sparade."
70
-
71
- #: revision-control.php:334
72
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
73
- msgstr "<strong>Fel:</strong> Du har definierat <code>WP_POST_REVISIONS</code> i din fil <code>wp-config.php</code>, och för att kunna använda denna plugin behöver du ta bort det. "
74
-
75
- #: revision-control.php:343
76
- msgid "Default Revision Status for Posts"
77
- msgstr "Ursprunglig revisionsstatus för inlägg"
78
-
79
- #: revision-control.php:364
80
- msgid "Default Revision Status for Pages"
81
- msgstr "Ursprunglig revisionsstatus för sidor"
82
-
83
- #: revision-control.php:385
84
- msgid "Save Changes"
85
- msgstr "Spara ändringar"
86
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
old_langs/revision-control-tr_TR.mo DELETED
Binary file
old_langs/revision-control-tr_TR.po DELETED
@@ -1,85 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Revision\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-10-17 14:48+1000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Dion Hulse <contact@dd32.id.au>\n"
8
- "Language-Team: Semih Aksu (Seemsiyah) <systemcoder@windowslive.com>\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Poedit-Language: Turkish\n"
13
- "X-Poedit-Country: TURKEY\n"
14
- "X-Poedit-KeywordsList: _e;__\n"
15
- "X-Poedit-Basepath: ../\n"
16
- "X-Poedit-SearchPath-0: .\n"
17
-
18
- #: revision-control.php:38
19
- #: revision-control.php:151
20
- #: revision-control.php:294
21
- msgid "Revisions"
22
- msgstr "Revizyonlar"
23
-
24
- #: revision-control.php:41
25
- #: revision-control.php:337
26
- msgid "Revision Control"
27
- msgstr "Revizyon Ayarları"
28
-
29
- #: revision-control.php:142
30
- msgid "Post Revisions"
31
- msgstr "Yazı Revizyonları"
32
-
33
- #: revision-control.php:153
34
- #: revision-control.php:347
35
- #: revision-control.php:368
36
- msgid "Enabled"
37
- msgstr "Aktif"
38
-
39
- #: revision-control.php:154
40
- #: revision-control.php:157
41
- #: revision-control.php:165
42
- msgid " (default)"
43
- msgstr "(varsayılan)"
44
-
45
- #: revision-control.php:156
46
- #: revision-control.php:350
47
- #: revision-control.php:371
48
- msgid "Disabled"
49
- msgstr "Devre dışı"
50
-
51
- #: revision-control.php:164
52
- #: revision-control.php:357
53
- #: revision-control.php:377
54
- #, php-format
55
- msgid "Limit to %d Revisions"
56
- msgstr "%d Revizyonla Sınırla"
57
-
58
- #: revision-control.php:262
59
- msgid "Are you sure you wish to delete this Revision?"
60
- msgstr "Bu Revizyonu silmek istediğinize emin misiniz ?"
61
-
62
- #: revision-control.php:262
63
- msgid "(delete)"
64
- msgstr "(sil)"
65
-
66
- #: revision-control.php:329
67
- msgid "Settings saved."
68
- msgstr "Ayarlar kaydedildi."
69
-
70
- #: revision-control.php:334
71
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
72
- msgstr "<strong>Hata:</strong> <code>wp-config.php</code> dosyanızda, <code>WP_POST_REVISIONS</code> kodunu bulunduruyorsunuz. Bu eklentiyi kullanmak için gerekli alanı silmek zorundasınız."
73
-
74
- #: revision-control.php:343
75
- msgid "Default Revision Status for Posts"
76
- msgstr "Yazılar için Varsayılan Revizyon Durumu"
77
-
78
- #: revision-control.php:364
79
- msgid "Default Revision Status for Pages"
80
- msgstr "Sayfalar için Varsayılan Revizyon Durumu"
81
-
82
- #: revision-control.php:385
83
- msgid "Save Changes"
84
- msgstr "Değişiklikleri Kaydet"
85
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
old_langs/revision-control-zh-tw.mo DELETED
Binary file
old_langs/revision-control-zh-tw.po DELETED
@@ -1,92 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: revison contorol zh-tw\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2008-07-31 13:06+1000\n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Dion Hulse <contact@dd32.id.au>\n"
8
- "Language-Team: actercompany.com <frank@actercompany.com>\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Poedit-Language: Chinese Traditional\n"
13
- "X-Poedit-Country: Taiwan\n"
14
- "X-Poedit-SourceCharset: utf-8\n"
15
- "X-Poedit-KeywordsList: __;_e\n"
16
- "X-Poedit-Basepath: ../\n"
17
- "X-Poedit-SearchPath-0: .\n"
18
-
19
- #: revision-control.php:38
20
- #: revision-control.php:151
21
- #: revision-control.php:294
22
- msgid "Revisions"
23
- msgstr "修訂"
24
-
25
- #: revision-control.php:41
26
- #: revision-control.php:337
27
- msgid "Revision Control"
28
- msgstr "版本控制"
29
-
30
- #: revision-control.php:142
31
- msgid "Post Revisions"
32
- msgstr "修改後"
33
-
34
- #: revision-control.php:153
35
- #: revision-control.php:347
36
- #: revision-control.php:368
37
- msgid "Enabled"
38
- msgstr "使能夠"
39
-
40
- #: revision-control.php:154
41
- #: revision-control.php:157
42
- #: revision-control.php:165
43
- #, fuzzy
44
- msgid " (default)"
45
- msgstr "(刪除)"
46
-
47
- #: revision-control.php:156
48
- #: revision-control.php:350
49
- #: revision-control.php:371
50
- msgid "Disabled"
51
- msgstr "使用しない"
52
-
53
- #: revision-control.php:164
54
- #: revision-control.php:357
55
- #: revision-control.php:377
56
- #, fuzzy, php-format
57
- msgid "Limit to %d Revisions"
58
- msgstr "%d 修訂"
59
-
60
- #: revision-control.php:262
61
- msgid "Are you sure you wish to delete this Revision?"
62
- msgstr "您是否確定刪除此修訂版本嗎?"
63
-
64
- #: revision-control.php:262
65
- msgid "(delete)"
66
- msgstr "(刪除)"
67
-
68
- #: revision-control.php:329
69
- msgid "Settings saved."
70
- msgstr "設置已保存。"
71
-
72
- #: revision-control.php:334
73
- msgid "<strong>Error:</strong> You have defined <code>WP_POST_REVISIONS</code> in your <code>wp-config.php</code> file, In order to use this plugin you will need to remove it."
74
- msgstr "<strong>錯誤:</strong> 您所定義的 <code>WP_POST_REVISIONS</code> 在您的 <code>wp-config.php</code> 檔案,在以使用這個外掛程式,您需要將它移除。"
75
-
76
- #: revision-control.php:343
77
- msgid "Default Revision Status for Posts"
78
- msgstr "默認情況下修訂狀態的職位"
79
-
80
- #: revision-control.php:364
81
- msgid "Default Revision Status for Pages"
82
- msgstr "默認情況下修訂地位的頁面"
83
-
84
- #: revision-control.php:385
85
- msgid "Save Changes"
86
- msgstr "保存更改"
87
-
88
- #~ msgid "Revisions:"
89
- #~ msgstr "修訂:"
90
- #~ msgid "Limit to"
91
- #~ msgstr "限制"
92
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -1,111 +1,116 @@
1
- === Revision Control ===
2
- Contributors: dd32
3
- Tags: revisions, post, admin
4
- Requires at least: 3.2
5
- Stable tag: 2.3
6
-
7
- Revision Control allows finer control over the Post Revision system included with WordPress
8
-
9
- == Description ==
10
-
11
- Revision Control is a plugin for WordPress which gives the user more control over the Revision functionality.
12
-
13
- The plugin allows the user to set a site-global setting (Settings -> Revisions) for pages/posts to enable/disable/limit the number of revisions which are saved for the page/post. The user may change this setting on a per-page/post basis from the Revisions Meta box.
14
-
15
- The plugin also allows the deletion of specific revisions via the Revisions post metabox.
16
-
17
- == Ugrade Notice ==
18
-
19
- = 2.3 =
20
- WordPress.org accidentally released version 2.2 (A in-development re-work of Revision Control for WordPress 3.6+), This reverts the plugin back to the previous code, Sorry everyone :(
21
-
22
- = 2.1 =
23
- Belorussian Translation, 3.2.x styling, Compare/Delete toggle fix, properly delete Taxonomy relationships.
24
-
25
- == Changelog ==
26
-
27
- = 2.3 =
28
- * Revision Control 2.1 in disguise, WordPress.org accidentally released a development version as Version 2.2, This reverts the plugin to how it was with Version 2.1, Sorry everyone! :(
29
-
30
- = 2.2 =
31
- * Accidental release, This will become version 3.0 when released.
32
-
33
- = 2.1 =
34
- * Belorussian Translation from MarcisG
35
- * Bugfix: Delete Taxonomy relations for Revisions upon revision deletion
36
- * Bigfix: Compare/Delete toggling
37
- * Correct styling for WordPress 3.2+
38
-
39
- = 2.0.1 =
40
- * Small IE bug fix, Table formatting was a bit wacky.
41
- * RECALLED update, Had brought up some issues in other browsers
42
-
43
- = 2.0 =
44
- * Rewrite from scratch(99%) utilising 2.9 only functionality
45
- * Better support for custom post types, Next release will finialise it in line with WordPress 3.0 development
46
- * Storing of Taxonomy changes in revisions (eg. You can see that TagX was added, while Category Z was removed.)
47
- * Translations:
48
- * German Translation from Tux
49
- * Hebrew Translation from Elad Salomons - http://elad.blogli.co.il
50
- * Russian Translation from Lecactus
51
- * Italian Translation from Stefano Aglietti
52
- * Estonian Translation from Lembit
53
- * Japanese Translation from Tai
54
-
55
- = 2.0-pre =
56
- * Swedish Translation from Linus
57
- * Estonian Translation from "Lembit Kivisik" <lembit@designux.com>
58
-
59
- = 1.9.x =
60
- * Belorussian translation from Marcis
61
-
62
- = 1.9.7 =
63
- * 1.9.2, 1.9.3, 1.9.5 all seem screwy, Something was wrong with my SVN client, it was commiting from a previous revision and not my current revision...
64
- * 2.8.1 compatibility
65
-
66
- = 1.9.1 =
67
- * Small bugfixes
68
-
69
- = 1.9 =
70
- * Spanish Translation from Alejandro
71
- * Turkish Translation from Semih
72
- * Latvian Translation from Rolands
73
- * Fix 'Disabled' per-object checkbox
74
- * Introduce DD32's common data class, Adds Update version changelog functionality
75
- * WP 2.7 compatibility, This is mainly a maintanence release until version 2.0 is fully finalised.
76
-
77
- = 1.8 =
78
- * German Translation from Tux
79
- * Czech Translation from Pavel
80
- * Dutch Translation from Steven
81
- * Russian Translation from Кактус
82
- * French Translation from David
83
- * Bug fix: Limit revisions dropdown sticks to 2 revisions on admin panel.
84
- * No features added.
85
-
86
- = 1.7 =
87
- * Fix a bug with Firefox stealing the focus on the Revision limit drop-down, Thanks Viper007Bond
88
- * Added HeBrew translation, Thanks Elad!
89
- * No features added.
90
-
91
- = 1.6 =
92
- * oops, Forgot something from 1.5: If you set the page/posts's option to the *same* as the default, Then the per-page option is now forgotten.
93
-
94
- = 1.5 =
95
- * Skipped 1.4
96
- * Sticking option values should finally be fixed.
97
- * Thanks to Translators, Apologies to Translators for releasing 1.5 with changes before getting updated lang files
98
-
99
- = 1.1, 1.2, 1.3 =
100
- * Italian & Japanese Translations
101
- * Allows Deletion of a Single revision via the Revisions post box
102
- * The global setting has been divded into Posts and Pages, The setting should now stick past a page load
103
- * The per-post setting should now correctly work again (After a bug introduced in 1.2)
104
-
105
- = 1.0 =
106
- * Initial Release
107
-
108
- == Screenshots ==
109
-
110
- 1. The Revisions Meta box
111
- 2. Revision Controls global settings
 
 
 
 
 
1
+ === Revision Control ===
2
+ Contributors: dd32
3
+ Tags: revisions, post, admin
4
+ Requires at least: 4.0
5
+ Stable tag: 2.3.1
6
+
7
+ Revision Control allows finer control over the Post Revision system included with WordPress
8
+
9
+ == Description ==
10
+
11
+ Revision Control is a plugin for WordPress which gives the user more control over the Revision functionality.
12
+
13
+ PLEASE NOTE: Support for this plugin is no longer offered.
14
+
15
+ The plugin allows the user to set a site-global setting (Settings -> Revisions) for pages/posts to enable/disable/limit the number of revisions which are saved for the page/post. The user may change this setting on a per-page/post basis from the Revisions Meta box.
16
+
17
+ The plugin also allows the deletion of specific revisions via the Revisions post metabox.
18
+
19
+ == Upgrade Notice ==
20
+
21
+ = 2.3.1 =
22
+ PHP compatability changes, Fix the Revision Restore link, Requires WordPress 4.0+
23
+
24
+ == Changelog ==
25
+
26
+ = 2.3.1 =
27
+ * PHP compatability changes (PHP Strict mode warnings)
28
+ * Fix the Revision Restore link (Are you sure you want to do this?)
29
+ * Bumps the requirement to WordPress 4.0
30
+ * Added a no-support note.
31
+
32
+ = 2.3 =
33
+ * Revision Control 2.1 in disguise, WordPress.org accidentally released a development version as Version 2.2, This reverts the plugin to how it was with Version 2.1, Sorry everyone! :(
34
+
35
+ = 2.2 =
36
+ * Accidental release, This will become version 3.0 when released.
37
+
38
+ = 2.1 =
39
+ * Belorussian Translation from MarcisG
40
+ * Bugfix: Delete Taxonomy relations for Revisions upon revision deletion
41
+ * Bigfix: Compare/Delete toggling
42
+ * Correct styling for WordPress 3.2+
43
+
44
+ = 2.0.1 =
45
+ * Small IE bug fix, Table formatting was a bit wacky.
46
+ * RECALLED update, Had brought up some issues in other browsers
47
+
48
+ = 2.0 =
49
+ * Rewrite from scratch(99%) utilising 2.9 only functionality
50
+ * Better support for custom post types, Next release will finialise it in line with WordPress 3.0 development
51
+ * Storing of Taxonomy changes in revisions (eg. You can see that TagX was added, while Category Z was removed.)
52
+ * Translations:
53
+ * German Translation from Tux
54
+ * Hebrew Translation from Elad Salomons - http://elad.blogli.co.il
55
+ * Russian Translation from Lecactus
56
+ * Italian Translation from Stefano Aglietti
57
+ * Estonian Translation from Lembit
58
+ * Japanese Translation from Tai
59
+
60
+ = 2.0-pre =
61
+ * Swedish Translation from Linus
62
+ * Estonian Translation from "Lembit Kivisik" <lembit@designux.com>
63
+
64
+ = 1.9.x =
65
+ * Belorussian translation from Marcis
66
+
67
+ = 1.9.7 =
68
+ * 1.9.2, 1.9.3, 1.9.5 all seem screwy, Something was wrong with my SVN client, it was commiting from a previous revision and not my current revision...
69
+ * 2.8.1 compatibility
70
+
71
+ = 1.9.1 =
72
+ * Small bugfixes
73
+
74
+ = 1.9 =
75
+ * Spanish Translation from Alejandro
76
+ * Turkish Translation from Semih
77
+ * Latvian Translation from Rolands
78
+ * Fix 'Disabled' per-object checkbox
79
+ * Introduce DD32's common data class, Adds Update version changelog functionality
80
+ * WP 2.7 compatibility, This is mainly a maintanence release until version 2.0 is fully finalised.
81
+
82
+ = 1.8 =
83
+ * German Translation from Tux
84
+ * Czech Translation from Pavel
85
+ * Dutch Translation from Steven
86
+ * Russian Translation from Кактус
87
+ * French Translation from David
88
+ * Bug fix: Limit revisions dropdown sticks to 2 revisions on admin panel.
89
+ * No features added.
90
+
91
+ = 1.7 =
92
+ * Fix a bug with Firefox stealing the focus on the Revision limit drop-down, Thanks Viper007Bond
93
+ * Added HeBrew translation, Thanks Elad!
94
+ * No features added.
95
+
96
+ = 1.6 =
97
+ * oops, Forgot something from 1.5: If you set the page/posts's option to the *same* as the default, Then the per-page option is now forgotten.
98
+
99
+ = 1.5 =
100
+ * Skipped 1.4
101
+ * Sticking option values should finally be fixed.
102
+ * Thanks to Translators, Apologies to Translators for releasing 1.5 with changes before getting updated lang files
103
+
104
+ = 1.1, 1.2, 1.3 =
105
+ * Italian & Japanese Translations
106
+ * Allows Deletion of a Single revision via the Revisions post box
107
+ * The global setting has been divded into Posts and Pages, The setting should now stick past a page load
108
+ * The per-post setting should now correctly work again (After a bug introduced in 1.2)
109
+
110
+ = 1.0 =
111
+ * Initial Release
112
+
113
+ == Screenshots ==
114
+
115
+ 1. The Revisions Meta box
116
+ 2. Revision Controls global settings
revision-control.css CHANGED
@@ -1,34 +1,34 @@
1
- table.post-revisions tr.locked-revision,
2
- table.post-revisions tr.current-revision{
3
- background-color:#E1F8DA;
4
- }
5
-
6
- table.post-revisions a.lock,
7
- table.post-revisions a.unlock,
8
- table.post-revisions a.delete {
9
- color:#F00;
10
- }
11
-
12
- table.post-revisions th.check-column {
13
- margin: 0 5px;
14
- }
15
- table.post-revisions th.delete-column {
16
- margin-left: 0;
17
- padding-left: 0;
18
- }
19
- table.post-revisions .check-column {
20
- font-size: 14px;
21
- line-height: 1.3em;
22
- padding-bottom: 8px;
23
- padding-left: 7px;
24
- padding-right: 7px;
25
- padding-top: 7px;
26
- }
27
-
28
- h2.center {
29
- text-align: center !important;
30
- }
31
-
32
- body.revision-control.iframe .wrap {
33
- padding: 10px;
34
  }
1
+ table.post-revisions tr.locked-revision,
2
+ table.post-revisions tr.current-revision{
3
+ background-color:#E1F8DA;
4
+ }
5
+
6
+ table.post-revisions a.lock,
7
+ table.post-revisions a.unlock,
8
+ table.post-revisions a.delete {
9
+ color:#F00;
10
+ }
11
+
12
+ table.post-revisions th.check-column {
13
+ margin: 0 5px;
14
+ }
15
+ table.post-revisions th.delete-column {
16
+ margin-left: 0;
17
+ padding-left: 0;
18
+ }
19
+ table.post-revisions .check-column {
20
+ font-size: 14px;
21
+ line-height: 1.3em;
22
+ padding-bottom: 8px;
23
+ padding-left: 7px;
24
+ padding-right: 7px;
25
+ padding-top: 7px;
26
+ }
27
+
28
+ h2.center {
29
+ text-align: center !important;
30
+ }
31
+
32
+ body.revision-control.iframe .wrap {
33
+ padding: 10px;
34
  }
revision-control.js CHANGED
@@ -1,96 +1,96 @@
1
- jQuery(document).ready( function($) {
2
-
3
- $('a#revision-compare-delete-label').bind('click', function () {
4
- $(this).parents('table').find('.check-column input.toggle-type, tfoot input.toggle-type').toggle();
5
- });
6
-
7
- $('#post-revisions a.delete').click( function() {
8
- return confirm( RevisionControl.deleterevisions );
9
- });
10
-
11
- $('#revisions-delete').bind('click', function () {
12
- if ( !confirm( RevisionControl.deleterevisions ) )
13
- return;
14
-
15
- var checked = [];
16
- $('#revisionsdiv :checkbox').each(function(i, element) {
17
- if ( $(element).is(':checked') ) {
18
- checked[checked.length] = $(element).val();
19
- $(element).parents('tr').css('background-color', '#f7d2d6');
20
- }
21
- });
22
- $.post('admin-post.php', {
23
- action: 'revision-control-delete',
24
- revisions: checked.join(','),
25
- _wpnonce: $('#revision-control-delete-nonce').val()
26
- }, function (xml) {
27
-
28
- var r = wpAjax.parseAjaxResponse(xml);
29
-
30
- var success = r.responses[0].data;
31
- if ( -1 == success ) {
32
- //Error - Failed to delete.
33
- alert("The AJAX request has Failed, Please try again;\n The unexpected data was: " + xml);
34
- } else {
35
- //Removed OK
36
- var revs = r.responses[0].supplemental.revisions.split(',');
37
- for( var i in revs ) {
38
- $('#revision-row-' + revs[i]).animate( {backgroundColor:'#fb4357'}, 1000).fadeOut(300, function() { $(this).remove(); });
39
- }
40
- }
41
- });
42
- });
43
- $('#revisions-compare').click( function () {
44
- var left = $(this).parents('table').find('input.left:checked').val();
45
- var right = $(this).parents('table').find('input.right:checked').val();
46
- if ( undefined == left || undefined == right ) {
47
- alert( RevisionControl.selectbothradio );
48
- return;
49
- }
50
-
51
- tb_show(RevisionControl.revisioncompare, 'admin-post.php?action=revision-control-revision-compare&left=' + left + '&right=' + right + '&TB_iframe=true', false);
52
-
53
- this.blur();
54
-
55
- });
56
-
57
- /*$('table.post-revisions a.unlock').bind('click', function() {
58
- return confirm( RevisionControl.unlockrevision );
59
- });
60
-
61
- $('table.post-revisions .check-column :radio').bind('click',
62
- function() {
63
- var inputs = $('table.post-revisions .check-column :radio');
64
- var left = $('table.post-revisions .check-column :radio .left');
65
-
66
- var current_id = $(this).attr('value');
67
-
68
- var i, checkCount = 0, side, leftchecked = false, rightchecked = true;
69
- for ( i = 0; i < inputs.length; i++ ) {
70
- checked = $(inputs[i]).attr('checked');
71
- side = $(inputs[i]).attr('name');
72
- checkCount += checked ? 1 : 0;
73
- if ( checked ) {
74
- if ( 'left' == side )
75
- leftchecked = true;
76
- else if ( 'right' == side )
77
- rightchecked = true;
78
- $(inputs[i]).removeClass('red');
79
- } else if ( 'left' == side && !leftchecked & !checked )
80
- $(inputs[i]).addClass('red');
81
- elseif ( 'left' == side && leftchecked & !checked )
82
- $(inputs[i]).removeClass('red');
83
- else if ( 'right' == side && !leftchecked )
84
- $(inputs[i]).toggleClass('invisible');*/
85
- /*if ( ! $(inputs[i]).attr('checked') &&
86
- ( 'left' == side && 1 > checkCount || 'right' == side && 1 < checkCount && ( ! inputs[i-1] || ! $(inputs[i-1]).attr('checked') ) ) &&
87
- ! ( inputs[i+1] && $(inputs[i+1]).attr('checked') && 'right' == $(inputs[i+1]).attr('name') ) )
88
- $(inputs[i]).toggle();
89
- else if ( 'left' == side || 'right' == side )
90
- $(inputs[i]).toggle();
91
- }
92
-
93
- });*/
94
-
95
-
96
  });
1
+ jQuery(document).ready( function($) {
2
+
3
+ $('a#revision-compare-delete-label').bind('click', function () {
4
+ $(this).parents('table').find('.check-column input.toggle-type, tfoot input.toggle-type').toggle();
5
+ });
6
+
7
+ $('#post-revisions a.delete').click( function() {
8
+ return confirm( RevisionControl.deleterevisions );
9
+ });
10
+
11
+ $('#revisions-delete').bind('click', function () {
12
+ if ( !confirm( RevisionControl.deleterevisions ) )
13
+ return;
14
+
15
+ var checked = [];
16
+ $('#revisionsdiv :checkbox').each(function(i, element) {
17
+ if ( $(element).is(':checked') ) {
18
+ checked[checked.length] = $(element).val();
19
+ $(element).parents('tr').css('background-color', '#f7d2d6');
20
+ }
21
+ });
22
+ $.post('admin-post.php', {
23
+ action: 'revision-control-delete',
24
+ revisions: checked.join(','),
25
+ _wpnonce: $('#revision-control-delete-nonce').val()
26
+ }, function (xml) {
27
+
28
+ var r = wpAjax.parseAjaxResponse(xml);
29
+
30
+ var success = r.responses[0].data;
31
+ if ( -1 == success ) {
32
+ //Error - Failed to delete.
33
+ alert("The AJAX request has Failed, Please try again;\n The unexpected data was: " + xml);
34
+ } else {
35
+ //Removed OK
36
+ var revs = r.responses[0].supplemental.revisions.split(',');
37
+ for( var i in revs ) {
38
+ $('#revision-row-' + revs[i]).animate( {backgroundColor:'#fb4357'}, 1000).fadeOut(300, function() { $(this).remove(); });
39
+ }
40
+ }
41
+ });
42
+ });
43
+ $('#revisions-compare').click( function () {
44
+ var left = $(this).parents('table').find('input.left:checked').val();
45
+ var right = $(this).parents('table').find('input.right:checked').val();
46
+ if ( undefined == left || undefined == right ) {
47
+ alert( RevisionControl.selectbothradio );
48
+ return;
49
+ }
50
+
51
+ tb_show(RevisionControl.revisioncompare, 'admin-post.php?action=revision-control-revision-compare&left=' + left + '&right=' + right + '&TB_iframe=true', false);
52
+
53
+ this.blur();
54
+
55
+ });
56
+
57
+ /*$('table.post-revisions a.unlock').bind('click', function() {
58
+ return confirm( RevisionControl.unlockrevision );
59
+ });
60
+
61
+ $('table.post-revisions .check-column :radio').bind('click',
62
+ function() {
63
+ var inputs = $('table.post-revisions .check-column :radio');
64
+ var left = $('table.post-revisions .check-column :radio .left');
65
+
66
+ var current_id = $(this).attr('value');
67
+
68
+ var i, checkCount = 0, side, leftchecked = false, rightchecked = true;
69
+ for ( i = 0; i < inputs.length; i++ ) {
70
+ checked = $(inputs[i]).attr('checked');
71
+ side = $(inputs[i]).attr('name');
72
+ checkCount += checked ? 1 : 0;
73
+ if ( checked ) {
74
+ if ( 'left' == side )
75
+ leftchecked = true;
76
+ else if ( 'right' == side )
77
+ rightchecked = true;
78
+ $(inputs[i]).removeClass('red');
79
+ } else if ( 'left' == side && !leftchecked & !checked )
80
+ $(inputs[i]).addClass('red');
81
+ elseif ( 'left' == side && leftchecked & !checked )
82
+ $(inputs[i]).removeClass('red');
83
+ else if ( 'right' == side && !leftchecked )
84
+ $(inputs[i]).toggleClass('invisible');*/
85
+ /*if ( ! $(inputs[i]).attr('checked') &&
86
+ ( 'left' == side && 1 > checkCount || 'right' == side && 1 < checkCount && ( ! inputs[i-1] || ! $(inputs[i-1]).attr('checked') ) ) &&
87
+ ! ( inputs[i+1] && $(inputs[i+1]).attr('checked') && 'right' == $(inputs[i+1]).attr('name') ) )
88
+ $(inputs[i]).toggle();
89
+ else if ( 'left' == side || 'right' == side )
90
+ $(inputs[i]).toggle();
91
+ }
92
+
93
+ });*/
94
+
95
+
96
  });
revision-control.php CHANGED
@@ -1,750 +1,751 @@
1
- <?php
2
- /*
3
- Plugin Name: Revision Control
4
- Plugin URI: http://dd32.id.au/wordpress-plugins/revision-control/
5
- Description: Allows finer control over the number of Revisions stored on a global & per-type/page basis.
6
- Author: Dion Hulse
7
- Version: 2.3
8
- */
9
-
10
- $GLOBALS['revision_control'] = new Plugin_Revision_Control( plugin_basename(__FILE__) );
11
- class Plugin_Revision_Control {
12
- var $basename = '';
13
- var $folder = '';
14
- var $version = '2.3';
15
-
16
- var $define_failure = false;
17
- var $options = array( 'per-type' => array('post' => 'unlimited', 'page' => 'unlimited', 'all' => 'unlimited'), 'revision-range' => '2..5,10,20,50,100' );
18
-
19
- function __construct($plugin) {
20
- //Set the directory of the plugin:
21
- $this->basename = $plugin;
22
- $this->folder = dirname($plugin);
23
-
24
- // Load options - Must be done on inclusion as they're needed by plugins_loaded
25
- $this->load_options();
26
-
27
- add_action('plugins_loaded', array(&$this, 'define_WP_POST_REVISIONS'));
28
-
29
- if ( ! is_admin() )
30
- return;
31
-
32
- //Register general hooks.
33
- add_action('init', array(&$this, 'load_translations')); // Needs to be done before admin_menu.
34
- add_action('admin_menu', array(&$this, 'admin_menu'));
35
- add_action('admin_init', array(&$this, 'admin_init'));
36
- }
37
-
38
- function load_translations() {
39
- //Load any translations.
40
- load_plugin_textdomain( 'revision-control', false, $this->folder . '/langs/');
41
- }
42
-
43
- function admin_init() {
44
- // Register post/page hook:
45
- foreach ( array('load-post-new.php', 'load-post.php', 'load-page-new.php', 'load-page.php') as $page )
46
- add_action($page, array(&$this, 'meta_box'));
47
-
48
- wp_register_script('revision-control', plugins_url( $this->folder . '/revision-control.js' ), array('jquery', 'wp-ajax-response'), $this->version . time());
49
- wp_register_style('revision-control', plugins_url( $this->folder . '/revision-control.css' ), array(), $this->version);
50
- wp_localize_script('revision-control', 'RevisionControl',
51
- array(
52
- 'deleterevisions' => __('Are you sure you wish to delete the selected Revisions?', 'revision-control'),
53
- 'unlockrevision' => __('Warning: Unlocking this post will cause the latest revision to be published!\nContinue?', 'revision-control'),
54
- 'selectbothradio' => __('Please select a Left and Right revision to compare', 'revision-control'),
55
- 'revisioncompare' => __('Revision Compare', 'revision-control')
56
- ) );
57
-
58
- // Add post handlers.
59
- add_action('admin_post_revision-control-delete', array('Plugin_Revision_Control_Ajax', 'delete_revisions'));
60
- add_action('admin_post_revision-control-options', array('Plugin_Revision_Control_Ajax', 'save_options'));
61
- add_action('admin_post_revision-control-revision-compare', array('Plugin_Revision_Control_UI', 'compare_revisions_iframe'));
62
-
63
- add_action('save_post', array(&$this, 'save_post'), 10, 2);
64
-
65
- // Version the terms.
66
- add_action('_wp_put_post_revision', array(&$this, 'version_terms') );
67
- //Delete the terms
68
- add_action('wp_delete_post_revision', array(&$this, 'delete_terms'), 10, 2 );
69
-
70
- // Version the postmeta
71
- add_action('_wp_put_post_revision', array(&$this, 'version_postmeta') );
72
- // Postmeta deletion is handled by core.
73
- }
74
-
75
- function admin_menu() {
76
- add_options_page( __('Revision Control', 'revision-control'), __('Revisions', 'revision-control'), 'manage_options', 'revision-control', array('Plugin_Revision_Control_UI', 'admin_page'));
77
- }
78
-
79
- function meta_box() {
80
- foreach ( get_post_types() as $type ) {
81
- if ( post_type_supports($type, 'revisions') ) {
82
- remove_meta_box('revisionsdiv', $type, 'normal');
83
- add_meta_box('revisionsdiv', __('Post Revisions'), array('Plugin_Revision_Control_UI', 'revisions_meta_box'), $type, 'normal');
84
- }
85
- }
86
-
87
- //enqueue that Stylin' script!
88
- wp_enqueue_script('revision-control');
89
- wp_enqueue_style('revision-control');
90
-
91
- add_thickbox();
92
- }
93
-
94
- function save_post($id, $post) {
95
- $new = isset($_POST['limit_revisions']) ? stripslashes($_POST['limit_revisions']) : false;
96
- $old = isset($_POST['limit_revisions_before']) ? stripslashes_deep($_POST['limit_revisions_before']) : false;
97
-
98
- $id = 'revision' == $post->post_type ? $post->post_parent : $post->ID;
99
- if ( false !== $new )
100
- $this->delete_old_revisions($id, $new);
101
-
102
- if ( false === $new || false === $old || $new == $old)
103
- return;
104
-
105
- update_metadata('post', $id, '_revision-control', $new, $old);
106
- }
107
-
108
- function define_WP_POST_REVISIONS() {
109
- if ( defined('WP_POST_REVISIONS') ) {
110
- $this->define_failure = true; // This.. Is defineing failure.. as true!
111
- return;
112
- }
113
-
114
- $current_post = $this->get_current_post();
115
- if ( !empty($_REQUEST['limit_revisions']) ) { //Handle it when updating a post.
116
- if ( ! $default = $this->option($current_post->post_type, 'per-type') )
117
- $default = $this->option('all', 'per-type');
118
- $post_specific = array(stripslashes($_REQUEST['limit_revisions']));
119
- } else if ( $current_post ) {
120
- // Good, we've got a post so can base it off the post_type
121
- if ( ! $default = $this->option($current_post->post_type, 'per-type') )
122
- $default = $this->option('all', 'per-type');
123
- // Check to see if those post has a custom Revisions value:
124
- $post_specific = get_metadata('post', $current_post->ID, '_revision-control', true);
125
- if ( '' == $post_specific )
126
- $post_specific = false;
127
- else if ( ! is_array($post_specific) )
128
- $post_specific = Plugin_Revision_Control_Compat::postmeta($post_specific, $current_post);
129
-
130
- } else {
131
- // Guess based on the current page.
132
- global $pagenow;
133
- if ( !empty($_REQUEST['post_type']) )
134
- $post_type = stripslashes($_REQUEST['post_type']);
135
- else if ( 'page.php' == $pagenow || 'page-new.php' == $pagenow)
136
- $post_type = 'page';
137
- else if ( 'post.php' == $pagenow || 'post-new.php' == $pagenow)
138
- $post_type = 'post';
139
- else
140
- $post_type = '';
141
-
142
- if ( empty($post_type) )
143
- return; //Not needed.
144
-
145
- if ( ! $default = $this->option($post_type, 'per-type') )
146
- $default = $this->option('all', 'per-type');
147
-
148
- }
149
- // Ok, Lets define it.
150
- $define_to = isset($post_specific[0]) && '' != $post_specific[0] ? $post_specific[0] : $default;
151
- switch ( $define_to ) {
152
- case 'unlimited':
153
- define('WP_POST_REVISIONS', true);
154
- break;
155
- case 'never':
156
- define('WP_POST_REVISIONS', 0);
157
- break;
158
- case 'defaults':
159
- define('WP_POST_REVISIONS', $default);
160
- break;
161
- default:
162
- if ( is_numeric($define_to) )
163
- define('WP_POST_REVISIONS', (int)$define_to);
164
- else
165
- define('WP_POST_REVISIONS', true); // All else fails, Its this.
166
- break;
167
- }
168
- }
169
-
170
- function delete_old_revisions($id, $new) {
171
- $items = get_posts( array('post_type' => 'revision', 'numberposts' => 1000, 'post_parent' => $id, 'post_status' => 'inherit', 'order' => 'ASC', 'orderby' => 'ID') );
172
- if ( 'defaults' == $new ) {
173
- $post = get_post($id);
174
- if ( false === $default = $this->option($post->post_type, 'per-type') )
175
- $default = $this->option('all', 'per-type');
176
- $new = $default;
177
- }
178
- if ( ! is_numeric($new) ) {
179
- switch ( $new ) {
180
- case 'unlimited':
181
- $keep = count($items);
182
- break;
183
- case 'never':
184
- $keep = 0;
185
- break;
186
- }
187
- } else {
188
- $keep = $new;
189
- }
190
-
191
- while ( count($items) > $keep ) {
192
- $item = array_shift($items);
193
- wp_delete_post_revision($item->ID);
194
- }
195
- }
196
-
197
- function get_current_post() {
198
- foreach ( array( 'post_id', 'post_ID', 'post' ) as $field )
199
- if ( isset( $_REQUEST[ $field ] ) )
200
- return get_post(absint($_REQUEST[ $field ]));
201
-
202
- if ( isset($_REQUEST['revision']) )
203
- if ( $post = get_post( $id = absint($_REQUEST['revision']) ) )
204
- return get_post($post->post_parent);
205
-
206
- return false;
207
- }
208
-
209
- function version_terms($revision_id) {
210
- // Attach all the terms from the parent to the revision.
211
- if ( ! $rev = get_post($revision_id) )
212
- return;
213
- if ( ! $post = get_post($rev->post_parent) )
214
- return;
215
-
216
- // Only worry about taxonomies which are specifically linked.
217
- foreach ( get_object_taxonomies($post->post_type) as $taxonomy ) {
218
- $_terms = wp_get_object_terms($post->ID, $taxonomy);
219
- $terms = array();
220
- foreach ( $_terms as $t )
221
- $terms[] = (int)$t->term_id;
222
- if ( ! empty($terms) )
223
- wp_set_object_terms($revision_id, $terms, $taxonomy);
224
- }
225
- }
226
-
227
- function delete_terms($revision_id, $rev) {
228
- if ( ! $post = get_post($rev->post_parent) )
229
- return;
230
-
231
- // Delete the parent posts taxonomies from the revision.
232
- wp_delete_object_term_relationships($revision_id, get_object_taxonomies($post->post_type) );
233
- }
234
-
235
- function version_postmeta($revision_id) {
236
- // Attach all the terms from the parent to the revision.
237
- if ( ! $rev = get_post($revision_id) )
238
- return;
239
- if ( ! $post = get_post($rev->post_parent) )
240
- return;
241
-
242
- // Only worry about taxonomies which are specifically linked.
243
-
244
- }
245
-
246
- function sort_revisions_by_time($a, $b) {
247
- return strtotime($a->post_modified_gmt) < strtotime($b->post_modified_gmt);
248
- }
249
-
250
- function load_options() {
251
- $original = $options = get_option('revision-control', array());
252
- $options = Plugin_Revision_Control_Compat::options($options); // Lets upgrade the options..
253
- if ( $options != $original ) // Update it if an upgrade has taken place.
254
- update_option('revision-control', $options);
255
-
256
- $this->options = array_merge($this->options, $options); // Some default options may be set here, unless the user modifies them
257
- }
258
-
259
- function option($key, $bucket = false, $default = false ) {
260
- if ( $bucket )
261
- return isset($this->options[$bucket][$key]) ? $this->options[$bucket][$key] : $default;
262
- else
263
- return isset($this->options[$key]) ? $this->options[$key] : $default;
264
- }
265
-
266
- function set_option($key, $value, $bucket = false) {
267
- if ( $bucket )
268
- $this->options[$bucket][$key] = $value;
269
- else
270
- $this->options[$key] = $value;
271
- update_option('revision-control', $this->options);
272
- }
273
-
274
- function get_revision_limit_select_items($current = false) {
275
- $items = array(
276
- 'defaults' => __('Default Revision Settings', 'revision-control'),
277
- 'unlimited' => __('Unlimited number of Revisions', 'revision-control'),
278
- 'never' => __('Do not store Revisions', 'revision-control')
279
- );
280
- $values = $this->option('revision-range', '');
281
- $values = explode(',', $values);
282
- foreach ( $values as $val ) {
283
- $val = trim($val);
284
- if ( preg_match('|^(\d+)\.\.(\d+)$|', $val, $matches) ) {
285
- foreach ( range( (int)$matches[1], (int)$matches[2]) as $num )
286
- $items[ $num ] = sprintf( _n( 'Maximum %s Revision stored', 'Maximum %s Revisions stored', $num, 'revision-control' ), number_format_i18n($num) );
287
- } else if ( is_numeric($val) ) {
288
- $num = (int)$val;
289
- $items[ $num ] = sprintf( _n( 'Maximum %s Revision stored', 'Maximum %s Revisions stored', $num, 'revision-control' ), number_format_i18n($num) );
290
- }
291
- }
292
-
293
- if ( false != $current && is_numeric($current) && !isset($items[ $current ]) ) // Support for when the range changes and the global/per-post has changed since.
294
- $items[ $current ] = sprintf( _n( 'Maximum %s Revision stored', 'Maximum %s Revisions stored', $current, 'revision-control' ), number_format_i18n($current) );
295
-
296
- return $items;
297
- }
298
-
299
- }
300
-
301
- class Plugin_Revision_Control_Compat {
302
- function postmeta($meta, $post) {
303
- if ( is_array($meta) )
304
- return $meta;
305
-
306
- if ( ! is_numeric($meta) ) {
307
- $_meta = array($meta);
308
- } else {
309
- $_meta = array( (int) $meta );
310
- if ( 1 === $_meta[0] )
311
- $_meta[0] = 'unlimited';
312
- else if ( 0 === $meta[0] )
313
- $_meta[0] = 'never';
314
- }
315
- if ( $_meta != $meta )
316
- update_metadata('post', $post->ID, '_revision-control', $_meta, $meta);
317
-
318
- return $_meta;
319
- }
320
-
321
- function options($options) {
322
- $_options = $options;
323
- if ( ! is_array($options) ) { // Upgrade from 1.0 to 1.1
324
- $options = array( 'post' => $options, 'page' => $options );
325
- }
326
- if ( isset($options['post']) ) { // Upgrade from 1.1 to 2.0
327
- $options['per-type'] = array( 'post' => $options['post'], 'page' => $options['page'] );
328
- unset($options['post'], $options['page']);
329
-
330
- // The fun part, Move from (bool) & (int) to (string) and (int). Easier to seperate with is_numeric that way.
331
- foreach ( $options['per-type'] as $type => $value ) {
332
- if ( true === $value )
333
- $options['per-type'][$type] = 'unlimited';
334
- elseif ( 0 === $value )
335
- $options['per-type'][$type] = 'never';
336
- elseif ( is_numeric($value) && (int)$value > 0 )
337
- $options['per-type'][$type] = (int)$options['per-type'][$type];
338
- else
339
- $options['per-type'][$type] = 'unlimited';
340
- }
341
- }
342
- return $options;
343
- }
344
- }
345
-
346
- class Plugin_Revision_Control_Ajax {
347
- function delete_revisions() {
348
- //Add nonce check
349
- check_admin_referer('revision-control-delete');
350
-
351
- if ( empty($_POST['revisions']) ) {
352
- $x = new WP_AJAX_Response();
353
- $x->add( array('data' => -1) );
354
- $x->send();
355
- return;
356
- }
357
-
358
- $revisions = stripslashes($_POST['revisions']);
359
- $revisions = explode(',', $revisions);
360
- $revisions = array_map('intval', $revisions);
361
-
362
- $deleted = array();
363
-
364
- foreach ( $revisions as $revision_id ) {
365
- $revision = get_post($revision_id);
366
- if ( wp_is_post_revision($revision) && !wp_is_post_autosave($revision) && current_user_can('delete_post', $revision->post_parent) )
367
- if ( wp_delete_post_revision($revision_id) )
368
- $deleted[] = $revision_id;
369
- }
370
-
371
- $x = new WP_AJAX_Response();
372
- $x->add( array('data' => 1, 'supplemental' => array('revisions' => implode(',', $deleted)) ) );
373
- $x->send();
374
- }
375
- function save_options() {
376
- global $revision_control;
377
- check_Admin_referer('revision-control-options');
378
-
379
- $data = stripslashes_deep($_POST['options']);
380
- foreach ( $data as $option => $val ) {
381
- if ( is_string($val) ) // Option is the keyname
382
- $revision_control->set_option($option, $val);
383
- elseif ( is_array($val) ) // Option is the bucket, key => val are the options in the group.
384
- foreach ( $val as $subkey => $subval )
385
- $revision_control->set_option($subkey, $subval, $option);
386
- }
387
- wp_safe_redirect( add_query_arg('updated', 'true', wp_get_referer() ) );
388
- }
389
- }
390
-
391
- class Plugin_Revision_Control_UI {
392
- function compare_revisions_iframe() {
393
- //add_action('admin_init', 'register_admin_colors', 1);
394
-
395
- set_current_screen('revision-edit');
396
-
397
- $left = isset($_GET['left']) ? absint($_GET['left']) : false;
398
- $right = isset($_GET['right']) ? absint($_GET['right']) : false;
399
-
400
- if ( !$left_revision = get_post( $left ) )
401
- break;
402
- if ( !$right_revision = get_post( $right ) )
403
- break;
404
-
405
- if ( !current_user_can( 'read_post', $left_revision->ID ) || !current_user_can( 'read_post', $right_revision->ID ) )
406
- break;
407
-
408
- // Don't allow reverse diffs?
409
- if ( strtotime($right_revision->post_modified_gmt) < strtotime($left_revision->post_modified_gmt) ) {
410
- //$redirect = add_query_arg( array( 'left' => $right, 'right' => $left ) );
411
- // Switch-a-roo
412
- $temp_revision = $left_revision;
413
- $left_revision = $right_revision;
414
- $right_revision = $temp_revision;
415
- unset($temp_revision);
416
- }
417
-
418
- global $post;
419
-
420
- if ( $left_revision->ID == $right_revision->post_parent ) // right is a revision of left
421
- $post = $left_revision;
422
- elseif ( $left_revision->post_parent == $right_revision->ID ) // left is a revision of right
423
- $post = $right_revision;
424
- elseif ( $left_revision->post_parent == $right_revision->post_parent ) // both are revisions of common parent
425
- $post = get_post( $left_revision->post_parent );
426
- else
427
- wp_die( __('Sorry, But you cant compare unrelated Revisions.', 'revision-control') ); // Don't diff two unrelated revisions
428
-
429
-
430
- if (
431
- // They're the same
432
- $left_revision->ID == $right_revision->ID
433
- ||
434
- // Neither is a revision
435
- ( !wp_get_post_revision( $left_revision->ID ) && !wp_get_post_revision( $right_revision->ID ) )
436
- )
437
- wp_die( __('Sorry, But you cant compare a Revision to itself.', 'revision-control') );
438
-
439
- $title = sprintf( __( 'Compare Revisions of &#8220;%1$s&#8221;', 'revision-control' ), get_the_title() );
440
-
441
- $left = $left_revision->ID;
442
- $right = $right_revision->ID;
443
-
444
- $GLOBALS['hook_suffix'] = 'revision-control';
445
- wp_enqueue_style('revision-control');
446
-
447
- iframe_header();
448
-
449
- ?>
450
- <div class="wrap">
451
-
452
- <h2 class="long-header center"><?php echo $title ?></h2>
453
-
454
- <table class="form-table ie-fixed">
455
- <col class="th" />
456
- <tr id="revision">
457
- <th scope="col" class="th-full">
458
- <?php printf( __('Older: %s', 'revision-control'), wp_post_revision_title($left_revision, false) ); ?>
459
- <span class="alignright"><?php printf( __('Newer: %s', 'revision-control'), wp_post_revision_title($right_revision, false) ); ?></span>
460
- </th>
461
- </tr>
462
- <?php
463
-
464
- $fields = _wp_post_revision_fields();
465
-
466
- foreach ( get_object_taxonomies($post->post_type) as $taxonomy ) {
467
- $t = get_taxonomy($taxonomy);
468
- $fields[$taxonomy] = $t->label;
469
-
470
- $left_terms = $right_terms = array();
471
- foreach ( wp_get_object_terms($left_revision->ID, $taxonomy ) as $term )
472
- $left_terms[] = $term->name;
473
- foreach ( wp_get_object_terms($right_revision->ID, $taxonomy ) as $term )
474
- $right_terms[] = $term->name;
475
-
476
- $left_revision->$taxonomy = ( empty($left_terms) ? '' : "* " ) . join("\n* ", $left_terms);
477
- $right_revision->$taxonomy = ( empty($right_terms) ? '' : "* " ) . join("\n* ", $right_terms);
478
- }
479
-
480
- $fields['postmeta'] = __('Post Meta', 'revision-control');
481
- $left_revision->postmeta = $right_revision->postmeta = array();
482
- foreach ( (array)has_meta($right_revision->ID) as $meta ) {
483
- if ( '_' == $meta['meta_key'][0] )
484
- continue;
485
-
486
- $right_revision->postmeta[] = $meta['meta_key'] . ': ' . $meta['meta_value'];
487
- $left_val = get_post_meta('post', $left_revision->ID, $meta['meta_key'], true);
488
- if ( !empty( $left_val ) )
489
- $left_revision->postmeta[] = $meta['meta_key'] . ': ' . $left_val;
490
- }
491
-
492
- $right_revision->postmeta = implode("\n", $right_revision->postmeta);
493
- $left_revision->postmeta = implode("\n", $left_revision->postmeta);
494
-
495
- $identical = true;
496
- foreach ( $fields as $field => $field_title ) :
497
- if ( !$content = wp_text_diff( $left_revision->$field, $right_revision->$field ) )
498
- continue; // There is no difference between left and right
499
- $identical = false;
500
- ?>
501
- <tr>
502
- <th scope="row"><strong><?php echo esc_html( $field_title ); ?></strong></th>
503
- </tr>
504
- <tr id="revision-field-<?php echo $field; ?>">
505
- <td><div class="pre"><?php echo $content; ?></div></td>
506
- </tr>
507
- <?php
508
- endforeach;
509
-
510
- if ( $identical ) :
511
- ?><tr><td><div class="updated"><p><?php _e( 'These Revisions are identical.', 'revision-control' ); ?></p></div></td></tr><?php
512
- endif;
513
- ?>
514
- </table>
515
- <p><?php _e('<em>Please Note:</em> at present, Although Taxonomies <em>(Tags / Categories / Custom Taxonomies)</em> are stored with the revisions, Restoring a Revision will <strong>not</strong> restore the taxonomies at present.', 'revision-control'); ?></p>
516
- <br class="clear" />
517
- <?php
518
- iframe_footer();
519
- }
520
-
521
- function revisions_meta_box( $post_id = 0 ) {
522
- global $revision_control;
523
-
524
- if ( empty($post_id) )
525
- $post_id = $GLOBALS['post_ID'];
526
-
527
- if ( !$post = get_post( $post_id ) )
528
- return;
529
-
530
- if ( !$revisions = wp_get_post_revisions( $post->ID ) )
531
- $revisions = array();
532
- if ( !empty($post) && !empty($post->ID) )
533
- $revisions = $revisions + array($post);
534
-
535
- foreach ( $revisions as $key => $revision ) {
536
- if ( !current_user_can( 'read_post', $revision->ID ) )
537
- unset($revisions[$key]);
538
- }
539
-
540
- usort($revisions, array('Plugin_Revision_Control', 'sort_revisions_by_time'));
541
- ?>
542
- <noscript><div class="updated"><p><?php _e('<strong>Please Note</strong>: This module requires the use of Javascript.', 'revision-control') ?></p></div></noscript>
543
- <input type="hidden" id="revision-control-delete-nonce" value="<?php echo wp_create_nonce( 'revision-control-delete' ) ?>" />
544
- <table class="widefat post-revisions" id="post-revisions" cellspacing="0">
545
- <col class="check-column" />
546
- <col class="check-column hide-if-no-js" />
547
- <col />
548
- <col style="width: 15%" />
549
- <col style="width: 15" />
550
- <thead>
551
- <tr>
552
- <th scope="col" class="check-column delete-column" style="text-align:center; white-space:nowrap;"><input type='checkbox' name='checked[]' class='checklist' /><?php _e( 'Delete', 'revision-control' ); ?></th>
553
- <th scope="col" class="check-column hide-if-no-js" style="text-align:center; white-space:nowrap;"><?php _e( 'Compare', 'revision-control' ); ?></th>
554
- <th scope="col"><?php _e( 'Date Created', 'revision-control' ); ?></th>
555
- <th scope="col"><?php _e( 'Author', 'revision-control' ); ?></th>
556
- <th scope="col" class="action-links"><?php _e( 'Actions', 'revision-control' ); ?></th>
557
- </tr>
558
- </thead>
559
- <tbody>
560
-
561
- <?php
562
- $titlef = _x( '%1$s by %2$s', 'post revision 1:datetime, 2:name', 'revision-control' );
563
-
564
- $rows = '';
565
- $class = false;
566
- if ( 0 == $post->ID )
567
- $can_edit_post = true;
568
- else
569
- $can_edit_post = current_user_can( 'edit_post', $post->ID );
570
- //$locked_revision = false;
571
-
572
- if ( empty($revisions) ) {
573
- echo "<tr class='no-revisions'>\n";
574
- echo "\t<td style='text-align: center' colspan='5'>\n";
575
- $p_obj = get_post_type_object($post->post_type);
576
- $obj_name = $p_obj->label;
577
- printf(_x('Revisions are currently enabled for %s, However there are no current Autosaves or Revisions created.<br />They\'ll be listed here once you Save. Happy Writing!', '1: the Post_Type - Posts, Pages, etc. (plural always)', 'revision-control'), $obj_name);
578
- echo "</td>\n";
579
- echo "</tr>\n";
580
- }
581
-
582
- foreach ( $revisions as $revision ) {
583
- $date = wp_post_revision_title( $revision, false );
584
- $name = get_the_author_meta( 'display_name', $revision->post_author );
585
-
586
- $revision_is_current = $post->ID == $revision->ID;
587
- /*$revision_is_locked = $revision->ID == $locked_revision;*/
588
-
589
- $class = strpos($class, 'alternate') !== false ? '' : "alternate";
590
-
591
- $class .= ' revision-' . $revision->ID;
592
-
593
- if ( $revision_is_current )
594
- $class .= ' current-revision';
595
-
596
- /*if ( $revision_is_locked )
597
- $class .= ' locked-revision';*/
598
-
599
- $actions = array();
600
- /*if ( !$revision_is_locked )
601
- $actions[] = '<a href="#" class="lock" title="' . esc_attr__('Locks the selected revision to be the published copy. This allows you to work on modifications without making them public.', 'revision-control') . '">' . __('Lock', 'revision-control') . '</a>';
602
- else
603
- $actions[] = '<a href="#" class="unlock">' . __('Unlock', 'revision-control') . '</a>';*/
604
- if ( ! $revision_is_current && !wp_is_post_autosave($revision) && $can_edit_post ) {
605
- $actions[] = '<a href="' . wp_nonce_url( add_query_arg( array( 'revision' => $revision->ID, 'diff' => false, 'action' => 'restore' ), 'revision.php' ), "restore-post_$post->ID|$revision->ID" ) . '">' . __( 'Restore', 'revision-control' ) . '</a>';
606
- //$actions[] = '<a href="#" class="hide-if-no-js delete">' . __( 'Delete', 'revision-control' ) . '</a>';
607
- }
608
-
609
- $deletedisabled = ( $revision_is_current || wp_is_post_autosave($revision) || ! $can_edit_post ) ? 'disabled="disabled"' : ''; //$revision_is_locked || ($revision_is_current && false === $locked_revision)
610
- $lefthidden = $revision == end($revisions) ? ' style="visibility: hidden" ' : '';
611
- $righthidden = $revision == $revisions[0] ? ' style="visibility: hidden" ' : '';
612
-
613
- echo "<tr class='$class' id='revision-row-$revision->ID'>\n";
614
- echo "\t<th style='white-space: nowrap' scope='row' class='check-column hide-if-no-js'>
615
- <span class='delete'>
616
- <input type='checkbox' name='checked[]' class='checklist toggle-type' value='$revision->ID' $deletedisabled />
617
- </span>
618
- </th>
619
- <th style='white-space: nowrap' scope='row' class='check-column'>
620
- <span class='compare'>
621
- <input type='radio' name='left' class='left toggle-type' value='$revision->ID' $lefthidden />
622
- <input type='radio' name='right' class='right toggle-type' value='$revision->ID' $righthidden />
623
- </span>
624
- </th>\n";
625
- echo "\t<td>$date</td>\n";
626
- echo "\t<td>$name</td>\n";
627
- echo "\t<td class='action-links'>" . implode(' | ', $actions) . "</td>\n";
628
- echo "</tr>\n";
629
- }
630
- ?>
631
-
632
- </tbody>
633
- <tfoot>
634
- <tr>
635
- <td colspan="5">
636
- <input type="button" class="button-secondary" value="<?php esc_attr_e('Delete', 'revision-control') ?>" id="revisions-delete" />
637
- <span class="hide-if-no-js">
638
- <input type="button" class="button-secondary" value="<?php esc_attr_e('Compare', 'revision-control') ?>" id="revisions-compare" />
639
- </span>
640
- <span class="alignright">
641
- <?php if ( $revision_control->define_failure ) {
642
- _e('<strong>Error:</strong> <code>WP_POST_REVISIONS</code> is defined in your <code>wp-config.php</code>. <em>Revision Control</em> cannot operate.', 'revision-control');
643
- } else {
644
- $_current = $post_specific = get_metadata('post', $post->ID, '_revision-control', true);
645
- if ( '' == $post_specific )
646
- $post_specific = array('defaults');
647
- else if ( ! is_array($post_specific) )
648
- $post_specific = Plugin_Revision_Control_Compat::postmeta($post_specific, $post);
649
- $post_specific = $post_specific[0];
650
- $_current_display = $post_specific;
651
- if ( 'defaults' == $_current_display )
652
- $_current_display = $revision_control->option($post->post_type, 'per-type');
653
- ?>
654
- <label for="limit-revisions"><strong><em><?php _e('Revision Control', 'revision-control') ?>:</em></strong>
655
- <?php
656
- if ( is_numeric($_current_display) )
657
- printf( _n( 'Currently storing a maximum of %s Revision', 'Currently storing a maximum of %s Revisions', $_current_display, 'revision-control' ), number_format_i18n($_current_display) );
658
- elseif ( 'unlimited' == $_current_display )
659
- _e('Currently storing an Unlimited number of Revisions', 'revision-control');
660
- elseif ( 'never' == $_current_display )
661
- _e('Not storing any Revisions', 'revision-control');
662
- ?>
663
- <select name="limit_revisions" id="limit-revisions">
664
- <?php
665
- foreach ( $revision_control->get_revision_limit_select_items($post_specific) as $val => $text ) {
666
- $selected = $post_specific == $val ? 'selected="selected"' : '';
667
- echo "\t\t\t\t\t\t<option value='$val' $selected>$text</option>\n";
668
- }
669
- ?></select>
670
- <input type="hidden" name="limit_revisions_before<?php if ( is_array($_current) ) echo '[]' ?>" value="<?php echo esc_attr( is_array($_current) ? $_current[0] : $_current ) ?>" />
671
- </label>
672
- <?php } ?>
673
- </span>
674
- <br class="cear" />
675
- </td>
676
- </tr>
677
- </tfoot>
678
- </table>
679
- <br class="clear" />
680
- <?php
681
- }
682
-
683
- function admin_page() {
684
- global $revision_control;
685
-
686
- echo "<div class='wrap'>";
687
- screen_icon('options-general');
688
- echo '<h2>' . __('Revision Control Options', 'revision-control') . '</h2>';
689
- echo '<h3>' . __('Default revision status for <em>Post Types</em>', 'revision-control') . '</h3>';
690
-
691
- if ( function_exists('post_type_supports') ) {
692
- $types = array();
693
- $_types = get_post_types();
694
- foreach ( $_types as $type ) {
695
- if ( post_type_supports($type, 'revisions') )
696
- $types[] = $type;
697
- }
698
- } else {
699
- $types = array('post', 'page');
700
- }
701
-
702
- echo '<form method="post" action="admin-post.php?action=revision-control-options">';
703
- wp_nonce_field('revision-control-options');
704
-
705
- echo '<table class="form-table">';
706
- echo '<tr valign="top">
707
- <th scope="row">' . __('Default Revision Status', 'revision-control') . '</th>
708
- <td><table>';
709
- foreach ( $types as $post_type ) {
710
- $post_type_name = $post_type;
711
- if ( !in_array($post_type, array('post', 'page')) && function_exists('get_post_type_object') ) {
712
- $pt = get_post_type_object($post_type);
713
- $post_type_name = $pt->label;
714
- unset($pt);
715
- } else {
716
- if ( 'post' == $post_type )
717
- $post_type_name = _n('Post', 'Posts', 5, 'revision-control');
718
- elseif ( 'page' == $post_type )
719
- $post_type_name = _n('Page', 'Pages', 5, 'revision-control');
720
-
721
- }
722
-
723
- echo '<tr><th style="width: auto;"><label for="options_per-type_' . $post_type . '"> <em>' . $post_type_name . '</em></label></th>';
724
- echo '<td align="left"><select name="options[per-type][' . $post_type . ']" id="options_per-type_' . $post_type . '">';
725
- $current = $revision_control->option($post_type, 'per-type');
726
- foreach ( $revision_control->get_revision_limit_select_items($current) as $option_val => $option_text ) {
727
- if ( 'defaults' == $option_val )
728
- continue;
729
- $selected = ($current == $option_val ? ' selected="selected"' : '');
730
- echo '<option value="' . esc_attr($option_val) . '"' . $selected . '>' . esc_html($option_text) . '</option>';
731
- }
732
- echo '</select></td></tr>';
733
- }
734
- echo '</table>';
735
- echo '
736
- </td>
737
- </tr>';
738
- echo '<tr>
739
- <th scope="row"><label for="options_revision-range">' . __('Revision Range', 'revision-control') . '</label></th>
740
- <td><textarea rows="2" cols="80" name="options[revision-range]" id="options_revision-range">' . esc_html($revision_control->option('revision-range')) . '</textarea><br />
741
- ' . __('<em><strong>Note:</strong> This field is special. It controls what appears in the Revision Options <code>&lt;select&gt;</code> fields.<br />The basic syntax of this is simple, fields are seperated by comma\'s.<br /> A field may either be a number, OR a range.<br /> For example: <strong>1,5</strong> displays 1 Revision, and 5 Revisions. <strong>1..5</strong> on the other hand, will display 1.. 2.. 3.. 4.. 5.. Revisions.<br /> <strong>If in doubt, Leave this field alone.</strong></em>', 'revision-control') . '
742
- </td>
743
- </tr>';
744
- echo '</table>';
745
- submit_button( __('Save Changes', 'revision-control') );
746
- echo '
747
- </form>';
748
- echo '</div>';
749
- }
750
- }
 
1
+ <?php
2
+ /**
3
+ * Plugin Name: Revision Control
4
+ * Plugin URI: http://dd32.id.au/wordpress-plugins/revision-control/
5
+ * Description: Allows finer control over the number of Revisions stored on a global & per-type/page basis.
6
+ * Author: Dion Hulse
7
+ * Version: 2.3.1
8
+ */
9
+
10
+ $GLOBALS['revision_control'] = new Plugin_Revision_Control( plugin_basename( __FILE__ ) );
11
+ class Plugin_Revision_Control {
12
+ var $basename = '';
13
+ var $folder = '';
14
+ var $version = '2.3.1';
15
+
16
+ var $define_failure = false;
17
+ var $options = array( 'per-type' => array('post' => 'unlimited', 'page' => 'unlimited', 'all' => 'unlimited'), 'revision-range' => '2..5,10,20,50,100' );
18
+
19
+ function __construct($plugin) {
20
+ //Set the directory of the plugin:
21
+ $this->basename = $plugin;
22
+ $this->folder = dirname($plugin);
23
+
24
+ // Load options - Must be done on inclusion as they're needed by plugins_loaded
25
+ $this->load_options();
26
+
27
+ add_action('plugins_loaded', array($this, 'define_WP_POST_REVISIONS'));
28
+
29
+ if ( ! is_admin() )
30
+ return;
31
+
32
+ //Register general hooks.
33
+ add_action('init', array($this, 'load_translations')); // Needs to be done before admin_menu.
34
+ add_action('admin_menu', array($this, 'admin_menu'));
35
+ add_action('admin_init', array($this, 'admin_init'));
36
+ }
37
+
38
+ function load_translations() {
39
+ //Load any translations.
40
+ load_plugin_textdomain( 'revision-control', false, $this->folder . '/langs/');
41
+ }
42
+
43
+ function admin_init() {
44
+ // Register post/page hook:
45
+ foreach ( array('load-post-new.php', 'load-post.php', 'load-page-new.php', 'load-page.php') as $page )
46
+ add_action($page, array($this, 'meta_box'));
47
+
48
+ wp_register_script('revision-control', plugins_url( $this->folder . '/revision-control.js' ), array('jquery', 'wp-ajax-response'), $this->version . time());
49
+ wp_register_style('revision-control', plugins_url( $this->folder . '/revision-control.css' ), array(), $this->version);
50
+ wp_localize_script('revision-control', 'RevisionControl',
51
+ array(
52
+ 'deleterevisions' => __('Are you sure you wish to delete the selected Revisions?', 'revision-control'),
53
+ 'unlockrevision' => __('Warning: Unlocking this post will cause the latest revision to be published!\nContinue?', 'revision-control'),
54
+ 'selectbothradio' => __('Please select a Left and Right revision to compare', 'revision-control'),
55
+ 'revisioncompare' => __('Revision Compare', 'revision-control')
56
+ ) );
57
+
58
+ // Add post handlers.
59
+ add_action('admin_post_revision-control-delete', array('Plugin_Revision_Control_Ajax', 'delete_revisions'));
60
+ add_action('admin_post_revision-control-options', array('Plugin_Revision_Control_Ajax', 'save_options'));
61
+ add_action('admin_post_revision-control-revision-compare', array('Plugin_Revision_Control_UI', 'compare_revisions_iframe'));
62
+
63
+ add_action('save_post', array($this, 'save_post'), 10, 2);
64
+
65
+ // Version the terms.
66
+ add_action('_wp_put_post_revision', array($this, 'version_terms') );
67
+ //Delete the terms
68
+ add_action('wp_delete_post_revision', array($this, 'delete_terms'), 10, 2 );
69
+
70
+ // Version the postmeta
71
+ add_action('_wp_put_post_revision', array($this, 'version_postmeta') );
72
+ // Postmeta deletion is handled by core.
73
+ }
74
+
75
+ function admin_menu() {
76
+ add_options_page( __('Revision Control', 'revision-control'), __('Revisions', 'revision-control'), 'manage_options', 'revision-control', array('Plugin_Revision_Control_UI', 'admin_page'));
77
+ }
78
+
79
+ function meta_box() {
80
+ foreach ( get_post_types() as $type ) {
81
+ if ( post_type_supports($type, 'revisions') ) {
82
+ remove_meta_box('revisionsdiv', $type, 'normal');
83
+ add_meta_box('revisionsdiv', __('Post Revisions'), array('Plugin_Revision_Control_UI', 'revisions_meta_box'), $type, 'normal');
84
+ }
85
+ }
86
+
87
+ //enqueue that Stylin' script!
88
+ wp_enqueue_script('revision-control');
89
+ wp_enqueue_style('revision-control');
90
+
91
+ add_thickbox();
92
+ }
93
+
94
+ function save_post($id, $post) {
95
+ $new = isset($_POST['limit_revisions']) ? stripslashes($_POST['limit_revisions']) : false;
96
+ $old = isset($_POST['limit_revisions_before']) ? stripslashes_deep($_POST['limit_revisions_before']) : false;
97
+
98
+ $id = 'revision' == $post->post_type ? $post->post_parent : $post->ID;
99
+ if ( false !== $new )
100
+ $this->delete_old_revisions($id, $new);
101
+
102
+ if ( false === $new || false === $old || $new == $old)
103
+ return;
104
+
105
+ update_metadata('post', $id, '_revision-control', $new, $old);
106
+ }
107
+
108
+ function define_WP_POST_REVISIONS() {
109
+ if ( defined('WP_POST_REVISIONS') ) {
110
+ $this->define_failure = true; // This.. Is defineing failure.. as true!
111
+ return;
112
+ }
113
+
114
+ $current_post = $this->get_current_post();
115
+ if ( !empty($_REQUEST['limit_revisions']) ) { //Handle it when updating a post.
116
+ if ( ! $default = $this->option($current_post->post_type, 'per-type') )
117
+ $default = $this->option('all', 'per-type');
118
+ $post_specific = array(stripslashes($_REQUEST['limit_revisions']));
119
+ } else if ( $current_post ) {
120
+ // Good, we've got a post so can base it off the post_type
121
+ if ( ! $default = $this->option($current_post->post_type, 'per-type') )
122
+ $default = $this->option('all', 'per-type');
123
+ // Check to see if those post has a custom Revisions value:
124
+ $post_specific = get_metadata('post', $current_post->ID, '_revision-control', true);
125
+ if ( '' == $post_specific )
126
+ $post_specific = false;
127
+ else if ( ! is_array($post_specific) )
128
+ $post_specific = Plugin_Revision_Control_Compat::postmeta($post_specific, $current_post);
129
+
130
+ } else {
131
+ // Guess based on the current page.
132
+ global $pagenow;
133
+ if ( !empty($_REQUEST['post_type']) )
134
+ $post_type = stripslashes($_REQUEST['post_type']);
135
+ else if ( 'page.php' == $pagenow || 'page-new.php' == $pagenow)
136
+ $post_type = 'page';
137
+ else if ( 'post.php' == $pagenow || 'post-new.php' == $pagenow)
138
+ $post_type = 'post';
139
+ else
140
+ $post_type = '';
141
+
142
+ if ( empty($post_type) )
143
+ return; //Not needed.
144
+
145
+ if ( ! $default = $this->option($post_type, 'per-type') )
146
+ $default = $this->option('all', 'per-type');
147
+
148
+ }
149
+ // Ok, Lets define it.
150
+ $define_to = isset($post_specific[0]) && '' != $post_specific[0] ? $post_specific[0] : $default;
151
+ switch ( $define_to ) {
152
+ case 'unlimited':
153
+ define('WP_POST_REVISIONS', true);
154
+ break;
155
+ case 'never':
156
+ define('WP_POST_REVISIONS', 0);
157
+ break;
158
+ case 'defaults':
159
+ define('WP_POST_REVISIONS', $default);
160
+ break;
161
+ default:
162
+ if ( is_numeric($define_to) )
163
+ define('WP_POST_REVISIONS', (int)$define_to);
164
+ else
165
+ define('WP_POST_REVISIONS', true); // All else fails, Its this.
166
+ break;
167
+ }
168
+ }
169
+
170
+ function delete_old_revisions($id, $new) {
171
+ $items = get_posts( array('post_type' => 'revision', 'numberposts' => 1000, 'post_parent' => $id, 'post_status' => 'inherit', 'order' => 'ASC', 'orderby' => 'ID') );
172
+ if ( 'defaults' == $new ) {
173
+ $post = get_post($id);
174
+ if ( false === $default = $this->option($post->post_type, 'per-type') )
175
+ $default = $this->option('all', 'per-type');
176
+ $new = $default;
177
+ }
178
+ if ( ! is_numeric($new) ) {
179
+ switch ( $new ) {
180
+ case 'unlimited':
181
+ $keep = count($items);
182
+ break;
183
+ case 'never':
184
+ $keep = 0;
185
+ break;
186
+ }
187
+ } else {
188
+ $keep = $new;
189
+ }
190
+
191
+ while ( count($items) > $keep ) {
192
+ $item = array_shift($items);
193
+ wp_delete_post_revision($item->ID);
194
+ }
195
+ }
196
+
197
+ function get_current_post() {
198
+ foreach ( array( 'post_id', 'post_ID', 'post' ) as $field )
199
+ if ( isset( $_REQUEST[ $field ] ) )
200
+ return get_post(absint($_REQUEST[ $field ]));
201
+
202
+ if ( isset($_REQUEST['revision']) )
203
+ if ( $post = get_post( $id = absint($_REQUEST['revision']) ) )
204
+ return get_post($post->post_parent);
205
+
206
+ return false;
207
+ }
208
+
209
+ function version_terms($revision_id) {
210
+ // Attach all the terms from the parent to the revision.
211
+ if ( ! $rev = get_post($revision_id) )
212
+ return;
213
+ if ( ! $post = get_post($rev->post_parent) )
214
+ return;
215
+
216
+ // Only worry about taxonomies which are specifically linked.
217
+ foreach ( get_object_taxonomies($post->post_type) as $taxonomy ) {
218
+ $_terms = wp_get_object_terms($post->ID, $taxonomy);
219
+ $terms = array();
220
+ foreach ( $_terms as $t )
221
+ $terms[] = (int)$t->term_id;
222
+ if ( ! empty($terms) )
223
+ wp_set_object_terms($revision_id, $terms, $taxonomy);
224
+ }
225
+ }
226
+
227
+ function delete_terms($revision_id, $rev) {
228
+ if ( ! $post = get_post($rev->post_parent) )
229
+ return;
230
+
231
+ // Delete the parent posts taxonomies from the revision.
232
+ wp_delete_object_term_relationships($revision_id, get_object_taxonomies($post->post_type) );
233
+ }
234
+
235
+ function version_postmeta($revision_id) {
236
+ // Attach all the terms from the parent to the revision.
237
+ if ( ! $rev = get_post($revision_id) )
238
+ return;
239
+ if ( ! $post = get_post($rev->post_parent) )
240
+ return;
241
+
242
+ // Only worry about taxonomies which are specifically linked.
243
+
244
+ }
245
+
246
+ static function sort_revisions_by_time($a, $b) {
247
+ return strtotime($a->post_modified_gmt) < strtotime($b->post_modified_gmt);
248
+ }
249
+
250
+ function load_options() {
251
+ $original = $options = get_option('revision-control', array());
252
+ $options = Plugin_Revision_Control_Compat::options($options); // Lets upgrade the options..
253
+ if ( $options != $original ) // Update it if an upgrade has taken place.
254
+ update_option('revision-control', $options);
255
+
256
+ $this->options = array_merge($this->options, $options); // Some default options may be set here, unless the user modifies them
257
+ }
258
+
259
+ function option($key, $bucket = false, $default = false ) {
260
+ if ( $bucket )
261
+ return isset($this->options[$bucket][$key]) ? $this->options[$bucket][$key] : $default;
262
+ else
263
+ return isset($this->options[$key]) ? $this->options[$key] : $default;
264
+ }
265
+
266
+ function set_option($key, $value, $bucket = false) {
267
+ if ( $bucket )
268
+ $this->options[$bucket][$key] = $value;
269
+ else
270
+ $this->options[$key] = $value;
271
+ update_option('revision-control', $this->options);
272
+ }
273
+
274
+ function get_revision_limit_select_items($current = false) {
275
+ $items = array(
276
+ 'defaults' => __('Default Revision Settings', 'revision-control'),
277
+ 'unlimited' => __('Unlimited number of Revisions', 'revision-control'),
278
+ 'never' => __('Do not store Revisions', 'revision-control')
279
+ );
280
+ $values = $this->option('revision-range', '');
281
+ $values = explode(',', $values);
282
+ foreach ( $values as $val ) {
283
+ $val = trim($val);
284
+ if ( preg_match('|^(\d+)\.\.(\d+)$|', $val, $matches) ) {
285
+ foreach ( range( (int)$matches[1], (int)$matches[2]) as $num )
286
+ $items[ $num ] = sprintf( _n( 'Maximum %s Revision stored', 'Maximum %s Revisions stored', $num, 'revision-control' ), number_format_i18n($num) );
287
+ } else if ( is_numeric($val) ) {
288
+ $num = (int)$val;
289
+ $items[ $num ] = sprintf( _n( 'Maximum %s Revision stored', 'Maximum %s Revisions stored', $num, 'revision-control' ), number_format_i18n($num) );
290
+ }
291
+ }
292
+
293
+ if ( false != $current && is_numeric($current) && !isset($items[ $current ]) ) // Support for when the range changes and the global/per-post has changed since.
294
+ $items[ $current ] = sprintf( _n( 'Maximum %s Revision stored', 'Maximum %s Revisions stored', $current, 'revision-control' ), number_format_i18n($current) );
295
+
296
+ return $items;
297
+ }
298
+
299
+ }
300
+
301
+ class Plugin_Revision_Control_Compat {
302
+ static function postmeta($meta, $post) {
303
+ if ( is_array($meta) )
304
+ return $meta;
305
+
306
+ if ( ! is_numeric($meta) ) {
307
+ $_meta = array($meta);
308
+ } else {
309
+ $_meta = array( (int) $meta );
310
+ if ( 1 === $_meta[0] )
311
+ $_meta[0] = 'unlimited';
312
+ else if ( 0 === $meta[0] )
313
+ $_meta[0] = 'never';
314
+ }
315
+ if ( $_meta != $meta )
316
+ update_metadata('post', $post->ID, '_revision-control', $_meta, $meta);
317
+
318
+ return $_meta;
319
+ }
320
+
321
+ static function options($options) {
322
+ $_options = $options;
323
+ if ( ! is_array($options) ) { // Upgrade from 1.0 to 1.1
324
+ $options = array( 'post' => $options, 'page' => $options );
325
+ }
326
+ if ( isset($options['post']) ) { // Upgrade from 1.1 to 2.0
327
+ $options['per-type'] = array( 'post' => $options['post'], 'page' => $options['page'] );
328
+ unset($options['post'], $options['page']);
329
+
330
+ // The fun part, Move from (bool) & (int) to (string) and (int). Easier to seperate with is_numeric that way.
331
+ foreach ( $options['per-type'] as $type => $value ) {
332
+ if ( true === $value )
333
+ $options['per-type'][$type] = 'unlimited';
334
+ elseif ( 0 === $value )
335
+ $options['per-type'][$type] = 'never';
336
+ elseif ( is_numeric($value) && (int)$value > 0 )
337
+ $options['per-type'][$type] = (int)$options['per-type'][$type];
338
+ else
339
+ $options['per-type'][$type] = 'unlimited';
340
+ }
341
+ }
342
+ return $options;
343
+ }
344
+ }
345
+
346
+ class Plugin_Revision_Control_Ajax {
347
+ static function delete_revisions() {
348
+ //Add nonce check
349
+ check_admin_referer('revision-control-delete');
350
+
351
+ if ( empty($_POST['revisions']) ) {
352
+ $x = new WP_AJAX_Response();
353
+ $x->add( array('data' => -1) );
354
+ $x->send();
355
+ return;
356
+ }
357
+
358
+ $revisions = stripslashes($_POST['revisions']);
359
+ $revisions = explode(',', $revisions);
360
+ $revisions = array_map('intval', $revisions);
361
+
362
+ $deleted = array();
363
+
364
+ foreach ( $revisions as $revision_id ) {
365
+ $revision = get_post($revision_id);
366
+ if ( wp_is_post_revision($revision) && !wp_is_post_autosave($revision) && current_user_can('delete_post', $revision->post_parent) )
367
+ if ( wp_delete_post_revision($revision_id) )
368
+ $deleted[] = $revision_id;
369
+ }
370
+
371
+ $x = new WP_AJAX_Response();
372
+ $x->add( array('data' => 1, 'supplemental' => array('revisions' => implode(',', $deleted)) ) );
373
+ $x->send();
374
+ }
375
+
376
+ static function save_options() {
377
+ global $revision_control;
378
+ check_Admin_referer('revision-control-options');
379
+
380
+ $data = stripslashes_deep($_POST['options']);
381
+ foreach ( $data as $option => $val ) {
382
+ if ( is_string($val) ) // Option is the keyname
383
+ $revision_control->set_option($option, $val);
384
+ elseif ( is_array($val) ) // Option is the bucket, key => val are the options in the group.
385
+ foreach ( $val as $subkey => $subval )
386
+ $revision_control->set_option($subkey, $subval, $option);
387
+ }
388
+ wp_safe_redirect( add_query_arg('updated', 'true', wp_get_referer() ) );
389
+ }
390
+ }
391
+
392
+ class Plugin_Revision_Control_UI {
393
+ static function compare_revisions_iframe() {
394
+ //add_action('admin_init', 'register_admin_colors', 1);
395
+
396
+ set_current_screen('revision-edit');
397
+
398
+ $left = isset($_GET['left']) ? absint($_GET['left']) : false;
399
+ $right = isset($_GET['right']) ? absint($_GET['right']) : false;
400
+
401
+ if ( !$left_revision = get_post( $left ) )
402
+ break;
403
+ if ( !$right_revision = get_post( $right ) )
404
+ break;
405
+
406
+ if ( !current_user_can( 'read_post', $left_revision->ID ) || !current_user_can( 'read_post', $right_revision->ID ) )
407
+ break;
408
+
409
+ // Don't allow reverse diffs?
410
+ if ( strtotime($right_revision->post_modified_gmt) < strtotime($left_revision->post_modified_gmt) ) {
411
+ //$redirect = add_query_arg( array( 'left' => $right, 'right' => $left ) );
412
+ // Switch-a-roo
413
+ $temp_revision = $left_revision;
414
+ $left_revision = $right_revision;
415
+ $right_revision = $temp_revision;
416
+ unset($temp_revision);
417
+ }
418
+
419
+ global $post;
420
+
421
+ if ( $left_revision->ID == $right_revision->post_parent ) // right is a revision of left
422
+ $post = $left_revision;
423
+ elseif ( $left_revision->post_parent == $right_revision->ID ) // left is a revision of right
424
+ $post = $right_revision;
425
+ elseif ( $left_revision->post_parent == $right_revision->post_parent ) // both are revisions of common parent
426
+ $post = get_post( $left_revision->post_parent );
427
+ else
428
+ wp_die( __('Sorry, But you cant compare unrelated Revisions.', 'revision-control') ); // Don't diff two unrelated revisions
429
+
430
+
431
+ if (
432
+ // They're the same
433
+ $left_revision->ID == $right_revision->ID
434
+ ||
435
+ // Neither is a revision
436
+ ( !wp_get_post_revision( $left_revision->ID ) && !wp_get_post_revision( $right_revision->ID ) )
437
+ )
438
+ wp_die( __('Sorry, But you cant compare a Revision to itself.', 'revision-control') );
439
+
440
+ $title = sprintf( __( 'Compare Revisions of &#8220;%1$s&#8221;', 'revision-control' ), get_the_title() );
441
+
442
+ $left = $left_revision->ID;
443
+ $right = $right_revision->ID;
444
+
445
+ $GLOBALS['hook_suffix'] = 'revision-control';
446
+ wp_enqueue_style('revision-control');
447
+
448
+ iframe_header();
449
+
450
+ ?>
451
+ <div class="wrap">
452
+
453
+ <h2 class="long-header center"><?php echo $title ?></h2>
454
+
455
+ <table class="form-table ie-fixed">
456
+ <col class="th" />
457
+ <tr id="revision">
458
+ <th scope="col" class="th-full">
459
+ <?php printf( __('Older: %s', 'revision-control'), wp_post_revision_title($left_revision, false) ); ?>
460
+ <span class="alignright"><?php printf( __('Newer: %s', 'revision-control'), wp_post_revision_title($right_revision, false) ); ?></span>
461
+ </th>
462
+ </tr>
463
+ <?php
464
+
465
+ $fields = _wp_post_revision_fields();
466
+
467
+ foreach ( get_object_taxonomies($post->post_type) as $taxonomy ) {
468
+ $t = get_taxonomy($taxonomy);
469
+ $fields[$taxonomy] = $t->label;
470
+
471
+ $left_terms = $right_terms = array();
472
+ foreach ( wp_get_object_terms($left_revision->ID, $taxonomy ) as $term )
473
+ $left_terms[] = $term->name;
474
+ foreach ( wp_get_object_terms($right_revision->ID, $taxonomy ) as $term )
475
+ $right_terms[] = $term->name;
476
+
477
+ $left_revision->$taxonomy = ( empty($left_terms) ? '' : "* " ) . join("\n* ", $left_terms);
478
+ $right_revision->$taxonomy = ( empty($right_terms) ? '' : "* " ) . join("\n* ", $right_terms);
479
+ }
480
+
481
+ $fields['postmeta'] = __('Post Meta', 'revision-control');
482
+ $left_revision->postmeta = $right_revision->postmeta = array();
483
+ foreach ( (array)has_meta($right_revision->ID) as $meta ) {
484
+ if ( '_' == $meta['meta_key'][0] )
485
+ continue;
486
+
487
+ $right_revision->postmeta[] = $meta['meta_key'] . ': ' . $meta['meta_value'];
488
+ $left_val = get_post_meta('post', $left_revision->ID, $meta['meta_key'], true);
489
+ if ( !empty( $left_val ) )
490
+ $left_revision->postmeta[] = $meta['meta_key'] . ': ' . $left_val;
491
+ }
492
+
493
+ $right_revision->postmeta = implode("\n", $right_revision->postmeta);
494
+ $left_revision->postmeta = implode("\n", $left_revision->postmeta);
495
+
496
+ $identical = true;
497
+ foreach ( $fields as $field => $field_title ) :
498
+ if ( !$content = wp_text_diff( $left_revision->$field, $right_revision->$field ) )
499
+ continue; // There is no difference between left and right
500
+ $identical = false;
501
+ ?>
502
+ <tr>
503
+ <th scope="row"><strong><?php echo esc_html( $field_title ); ?></strong></th>
504
+ </tr>
505
+ <tr id="revision-field-<?php echo $field; ?>">
506
+ <td><div class="pre"><?php echo $content; ?></div></td>
507
+ </tr>
508
+ <?php
509
+ endforeach;
510
+
511
+ if ( $identical ) :
512
+ ?><tr><td><div class="updated"><p><?php _e( 'These Revisions are identical.', 'revision-control' ); ?></p></div></td></tr><?php
513
+ endif;
514
+ ?>
515
+ </table>
516
+ <p><?php _e('<em>Please Note:</em> at present, Although Taxonomies <em>(Tags / Categories / Custom Taxonomies)</em> are stored with the revisions, Restoring a Revision will <strong>not</strong> restore the taxonomies at present.', 'revision-control'); ?></p>
517
+ <br class="clear" />
518
+ <?php
519
+ iframe_footer();
520
+ }
521
+
522
+ static function revisions_meta_box( $post_id = 0 ) {
523
+ global $revision_control;
524
+
525
+ if ( empty($post_id) )
526
+ $post_id = $GLOBALS['post_ID'];
527
+
528
+ if ( !$post = get_post( $post_id ) )
529
+ return;
530
+
531
+ if ( !$revisions = wp_get_post_revisions( $post->ID ) )
532
+ $revisions = array();
533
+ if ( !empty($post) && !empty($post->ID) )
534
+ $revisions = $revisions + array($post);
535
+
536
+ foreach ( $revisions as $key => $revision ) {
537
+ if ( !current_user_can( 'read_post', $revision->ID ) )
538
+ unset($revisions[$key]);
539
+ }
540
+
541
+ usort($revisions, array('Plugin_Revision_Control', 'sort_revisions_by_time'));
542
+ ?>
543
+ <noscript><div class="updated"><p><?php _e('<strong>Please Note</strong>: This module requires the use of Javascript.', 'revision-control') ?></p></div></noscript>
544
+ <input type="hidden" id="revision-control-delete-nonce" value="<?php echo wp_create_nonce( 'revision-control-delete' ) ?>" />
545
+ <table class="widefat post-revisions" id="post-revisions" cellspacing="0">
546
+ <col class="check-column" />
547
+ <col class="check-column hide-if-no-js" />
548
+ <col />
549
+ <col style="width: 15%" />
550
+ <col style="width: 15" />
551
+ <thead>
552
+ <tr>
553
+ <th scope="col" class="check-column delete-column" style="text-align:center; white-space:nowrap;"><input type='checkbox' name='checked[]' class='checklist' /><?php _e( 'Delete', 'revision-control' ); ?></th>
554
+ <th scope="col" class="check-column hide-if-no-js" style="text-align:center; white-space:nowrap;"><?php _e( 'Compare', 'revision-control' ); ?></th>
555
+ <th scope="col"><?php _e( 'Date Created', 'revision-control' ); ?></th>
556
+ <th scope="col"><?php _e( 'Author', 'revision-control' ); ?></th>
557
+ <th scope="col" class="action-links"><?php _e( 'Actions', 'revision-control' ); ?></th>
558
+ </tr>
559
+ </thead>
560
+ <tbody>
561
+
562
+ <?php
563
+ $titlef = _x( '%1$s by %2$s', 'post revision 1:datetime, 2:name', 'revision-control' );
564
+
565
+ $rows = '';
566
+ $class = false;
567
+ if ( 0 == $post->ID )
568
+ $can_edit_post = true;
569
+ else
570
+ $can_edit_post = current_user_can( 'edit_post', $post->ID );
571
+ //$locked_revision = false;
572
+
573
+ if ( empty($revisions) ) {
574
+ echo "<tr class='no-revisions'>\n";
575
+ echo "\t<td style='text-align: center' colspan='5'>\n";
576
+ $p_obj = get_post_type_object($post->post_type);
577
+ $obj_name = $p_obj->label;
578
+ printf(_x('Revisions are currently enabled for %s, However there are no current Autosaves or Revisions created.<br />They\'ll be listed here once you Save. Happy Writing!', '1: the Post_Type - Posts, Pages, etc. (plural always)', 'revision-control'), $obj_name);
579
+ echo "</td>\n";
580
+ echo "</tr>\n";
581
+ }
582
+
583
+ foreach ( $revisions as $revision ) {
584
+ $date = wp_post_revision_title( $revision, false );
585
+ $name = get_the_author_meta( 'display_name', $revision->post_author );
586
+
587
+ $revision_is_current = $post->ID == $revision->ID;
588
+ /*$revision_is_locked = $revision->ID == $locked_revision;*/
589
+
590
+ $class = strpos($class, 'alternate') !== false ? '' : "alternate";
591
+
592
+ $class .= ' revision-' . $revision->ID;
593
+
594
+ if ( $revision_is_current )
595
+ $class .= ' current-revision';
596
+
597
+ /*if ( $revision_is_locked )
598
+ $class .= ' locked-revision';*/
599
+
600
+ $actions = array();
601
+ /*if ( !$revision_is_locked )
602
+ $actions[] = '<a href="#" class="lock" title="' . esc_attr__('Locks the selected revision to be the published copy. This allows you to work on modifications without making them public.', 'revision-control') . '">' . __('Lock', 'revision-control') . '</a>';
603
+ else
604
+ $actions[] = '<a href="#" class="unlock">' . __('Unlock', 'revision-control') . '</a>';*/
605
+ if ( ! $revision_is_current && !wp_is_post_autosave($revision) && $can_edit_post ) {
606
+ $actions[] = '<a href="' . wp_nonce_url( add_query_arg( array( 'revision' => $revision->ID, 'diff' => false, 'action' => 'restore' ), 'revision.php' ), "restore-post_{$revision->ID}" ) . '">' . __( 'Restore', 'revision-control' ) . '</a>';
607
+ //$actions[] = '<a href="#" class="hide-if-no-js delete">' . __( 'Delete', 'revision-control' ) . '</a>';
608
+ }
609
+
610
+ $deletedisabled = ( $revision_is_current || wp_is_post_autosave($revision) || ! $can_edit_post ) ? 'disabled="disabled"' : ''; //$revision_is_locked || ($revision_is_current && false === $locked_revision)
611
+ $lefthidden = $revision == end($revisions) ? ' style="visibility: hidden" ' : '';
612
+ $righthidden = $revision == $revisions[0] ? ' style="visibility: hidden" ' : '';
613
+
614
+ echo "<tr class='$class' id='revision-row-$revision->ID'>\n";
615
+ echo "\t<th style='white-space: nowrap' scope='row' class='check-column hide-if-no-js'>
616
+ <span class='delete'>
617
+ <input type='checkbox' name='checked[]' class='checklist toggle-type' value='$revision->ID' $deletedisabled />
618
+ </span>
619
+ </th>
620
+ <th style='white-space: nowrap' scope='row' class='check-column'>
621
+ <span class='compare'>
622
+ <input type='radio' name='left' class='left toggle-type' value='$revision->ID' $lefthidden />
623
+ <input type='radio' name='right' class='right toggle-type' value='$revision->ID' $righthidden />
624
+ </span>
625
+ </th>\n";
626
+ echo "\t<td>$date</td>\n";
627
+ echo "\t<td>$name</td>\n";
628
+ echo "\t<td class='action-links'>" . implode(' | ', $actions) . "</td>\n";
629
+ echo "</tr>\n";
630
+ }
631
+ ?>
632
+
633
+ </tbody>
634
+ <tfoot>
635
+ <tr>
636
+ <td colspan="5">
637
+ <input type="button" class="button-secondary" value="<?php esc_attr_e('Delete', 'revision-control') ?>" id="revisions-delete" />
638
+ <span class="hide-if-no-js">
639
+ <input type="button" class="button-secondary" value="<?php esc_attr_e('Compare', 'revision-control') ?>" id="revisions-compare" />
640
+ </span>
641
+ <span class="alignright">
642
+ <?php if ( $revision_control->define_failure ) {
643
+ _e('<strong>Error:</strong> <code>WP_POST_REVISIONS</code> is defined in your <code>wp-config.php</code>. <em>Revision Control</em> cannot operate.', 'revision-control');
644
+ } else {
645
+ $_current = $post_specific = get_metadata('post', $post->ID, '_revision-control', true);
646
+ if ( '' == $post_specific )
647
+ $post_specific = array('defaults');
648
+ else if ( ! is_array($post_specific) )
649
+ $post_specific = Plugin_Revision_Control_Compat::postmeta($post_specific, $post);
650
+ $post_specific = $post_specific[0];
651
+ $_current_display = $post_specific;
652
+ if ( 'defaults' == $_current_display )
653
+ $_current_display = $revision_control->option($post->post_type, 'per-type');
654
+ ?>
655
+ <label for="limit-revisions"><strong><em><?php _e('Revision Control', 'revision-control') ?>:</em></strong>
656
+ <?php
657
+ if ( is_numeric($_current_display) )
658
+ printf( _n( 'Currently storing a maximum of %s Revision', 'Currently storing a maximum of %s Revisions', $_current_display, 'revision-control' ), number_format_i18n($_current_display) );
659
+ elseif ( 'unlimited' == $_current_display )
660
+ _e('Currently storing an Unlimited number of Revisions', 'revision-control');
661
+ elseif ( 'never' == $_current_display )
662
+ _e('Not storing any Revisions', 'revision-control');
663
+ ?>
664
+ <select name="limit_revisions" id="limit-revisions">
665
+ <?php
666
+ foreach ( $revision_control->get_revision_limit_select_items($post_specific) as $val => $text ) {
667
+ $selected = $post_specific == $val ? 'selected="selected"' : '';
668
+ echo "\t\t\t\t\t\t<option value='$val' $selected>$text</option>\n";
669
+ }
670
+ ?></select>
671
+ <input type="hidden" name="limit_revisions_before<?php if ( is_array($_current) ) echo '[]' ?>" value="<?php echo esc_attr( is_array($_current) ? $_current[0] : $_current ) ?>" />
672
+ </label>
673
+ <?php } ?>
674
+ </span>
675
+ <br class="cear" />
676
+ </td>
677
+ </tr>
678
+ </tfoot>
679
+ </table>
680
+ <br class="clear" />
681
+ <?php
682
+ }
683
+
684
+ static function admin_page() {
685
+ global $revision_control;
686
+
687
+ echo "<div class='wrap'>";
688
+ screen_icon('options-general');
689
+ echo '<h2>' . __('Revision Control Options', 'revision-control') . '</h2>';
690
+ echo '<h3>' . __('Default revision status for <em>Post Types</em>', 'revision-control') . '</h3>';
691
+
692
+ if ( function_exists('post_type_supports') ) {
693
+ $types = array();
694
+ $_types = get_post_types();
695
+ foreach ( $_types as $type ) {
696
+ if ( post_type_supports($type, 'revisions') )
697
+ $types[] = $type;
698
+ }
699
+ } else {
700
+ $types = array('post', 'page');
701
+ }
702
+
703
+ echo '<form method="post" action="admin-post.php?action=revision-control-options">';
704
+ wp_nonce_field('revision-control-options');
705
+
706
+ echo '<table class="form-table">';
707
+ echo '<tr valign="top">
708
+ <th scope="row">' . __('Default Revision Status', 'revision-control') . '</th>
709
+ <td><table>';
710
+ foreach ( $types as $post_type ) {
711
+ $post_type_name = $post_type;
712
+ if ( !in_array($post_type, array('post', 'page')) && function_exists('get_post_type_object') ) {
713
+ $pt = get_post_type_object($post_type);
714
+ $post_type_name = $pt->label;
715
+ unset($pt);
716
+ } else {
717
+ if ( 'post' == $post_type )
718
+ $post_type_name = _n('Post', 'Posts', 5, 'revision-control');
719
+ elseif ( 'page' == $post_type )
720
+ $post_type_name = _n('Page', 'Pages', 5, 'revision-control');
721
+
722
+ }
723
+
724
+ echo '<tr><th style="width: auto;"><label for="options_per-type_' . $post_type . '"> <em>' . $post_type_name . '</em></label></th>';
725
+ echo '<td align="left"><select name="options[per-type][' . $post_type . ']" id="options_per-type_' . $post_type . '">';
726
+ $current = $revision_control->option($post_type, 'per-type');
727
+ foreach ( $revision_control->get_revision_limit_select_items($current) as $option_val => $option_text ) {
728
+ if ( 'defaults' == $option_val )
729
+ continue;
730
+ $selected = ($current == $option_val ? ' selected="selected"' : '');
731
+ echo '<option value="' . esc_attr($option_val) . '"' . $selected . '>' . esc_html($option_text) . '</option>';
732
+ }
733
+ echo '</select></td></tr>';
734
+ }
735
+ echo '</table>';
736
+ echo '
737
+ </td>
738
+ </tr>';
739
+ echo '<tr>
740
+ <th scope="row"><label for="options_revision-range">' . __('Revision Range', 'revision-control') . '</label></th>
741
+ <td><textarea rows="2" cols="80" name="options[revision-range]" id="options_revision-range">' . esc_html($revision_control->option('revision-range')) . '</textarea><br />
742
+ ' . __('<em><strong>Note:</strong> This field is special. It controls what appears in the Revision Options <code>&lt;select&gt;</code> fields.<br />The basic syntax of this is simple, fields are seperated by comma\'s.<br /> A field may either be a number, OR a range.<br /> For example: <strong>1,5</strong> displays 1 Revision, and 5 Revisions. <strong>1..5</strong> on the other hand, will display 1.. 2.. 3.. 4.. 5.. Revisions.<br /> <strong>If in doubt, Leave this field alone.</strong></em>', 'revision-control') . '
743
+ </td>
744
+ </tr>';
745
+ echo '</table>';
746
+ submit_button( __('Save Changes', 'revision-control') );
747
+ echo '
748
+ </form>';
749
+ echo '</div>';
750
+ }
751
+ }