Changeset 1911852
- Timestamp:
- 07/19/2018 08:05:18 PM (8 years ago)
- Location:
- phototools/trunk
- Files:
-
- 5 edited
-
languages/phototools-nl_NL.mo (modified) (previous)
-
languages/phototools-nl_NL.po (modified) (3 diffs)
-
languages/phototools.pot (modified) (3 diffs)
-
phototools.php (modified) (8 diffs)
-
readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
phototools/trunk/languages/phototools-nl_NL.po
r1895338 r1911852 5 5 "Project-Id-Version: phototools 1.0\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/phototools\n" 7 "POT-Creation-Date: 2018-0 6-19 21:37+0200\n"8 "PO-Revision-Date: 2018-0 6-19 21:39+0200\n"7 "POT-Creation-Date: 2018-07-19 22:02+0200\n" 8 "PO-Revision-Date: 2018-07-19 22:03+0200\n" 9 9 "Last-Translator: Gerhard Hoogterp <admin@funsite.eu>\n" 10 10 "Language-Team: \n" … … 16 16 "Plural-Forms: nplurals=2; plural=(n != 1);\n" 17 17 18 #: phototools.php: 8718 #: phototools.php:92 19 19 msgid "General info" 20 20 msgstr "Algemeen informatie" 21 21 22 #: phototools.php: 8822 #: phototools.php:93 23 23 msgid "Settings" 24 24 msgstr "Instellingen" 25 25 26 #: phototools.php:1 36 phototools.php:14926 #: phototools.php:145 phototools.php:158 27 27 msgid "Phototools" 28 28 msgstr "Fototools" 29 29 30 #: phototools.php:1 5230 #: phototools.php:161 31 31 msgid "" 32 32 "Phototools is a collection of plugins which add functionality for those who " … … 36 36 "Wordpress als fotoblog of gallerij gebruiken." 37 37 38 #: phototools.php:1 6738 #: phototools.php:176 39 39 msgid "The following plugins in this series are installed:" 40 40 msgstr "De onderstaande plugins van deze serie zijn geïnstalleerd:" 41 41 42 #: phototools.php:2 0542 #: phototools.php:219 43 43 msgid "Dashboard" 44 44 msgstr "Dashboard" 45 45 46 #: phototools.php:2 0746 #: phototools.php:221 47 47 msgid "Replace activity widget:" 48 48 msgstr "Vervang activiteiten widget:" 49 49 50 #: phototools.php:2 1250 #: phototools.php:226 51 51 msgid "No. publishing soon:" 52 52 msgstr "No. \"Binnenkort publiceren\":" 53 53 54 #: phototools.php:2 1654 #: phototools.php:230 55 55 msgid "No. published recently:" 56 56 msgstr "No.\" Recent gepubliceerd\":" 57 57 58 #: phototools.php:2 2058 #: phototools.php:234 59 59 msgid "No. recent comments:" 60 60 msgstr "No. \"Recente reacties\":" 61 61 62 #: phototools.php:2 2562 #: phototools.php:239 63 63 msgid "Extra's" 64 64 msgstr "Extras" 65 65 66 #: phototools.php:2 2666 #: phototools.php:240 67 67 msgid "Enable use of shortcodes in widgets" 68 68 msgstr "Maak het gebruik van shortcodes in widgets mogelijk" 69 69 70 #: phototools.php:2 3170 #: phototools.php:245 71 71 msgid "Enable use of the photogroup taxonomy" 72 72 msgstr "Maak gebruik van de fotogroep taxonomy" 73 73 74 #: phototools.php:2 3674 #: phototools.php:250 75 75 msgid "Enable fuzzy dates" 76 76 msgstr "Gebruik \"fuzzy\" datums" 77 77 78 #: phototools.php:2 4178 #: phototools.php:255 79 79 msgid "Add rich data to posts with a featured image" 80 80 msgstr "Voeg \"rich data\" toe aan posts met een uitgelichte foto" 81 81 82 #: phototools.php:320 82 #: phototools.php:260 83 #, fuzzy 84 msgid "use the \"redirect to the latest post\"" 85 msgstr "gebruik de \"redirect naar de laatste post\"" 86 87 #: phototools.php:265 88 msgid "Redirect string" 89 msgstr "Redirect string" 90 91 #: phototools.php:356 83 92 msgid "now" 84 93 msgstr "nu" 85 94 86 #: phototools.php:3 2495 #: phototools.php:360 87 96 msgid "just" 88 97 msgstr "net" 89 98 90 #: phototools.php:3 2599 #: phototools.php:361 91 100 msgid "1 minute ago" 92 101 msgstr "1 minuut geleden" 93 102 94 #: phototools.php:3 26103 #: phototools.php:362 95 104 msgid " minutes ago" 96 105 msgstr " minuten geleden" 97 106 98 #: phototools.php:3 27107 #: phototools.php:363 99 108 msgid " hours ago" 100 109 msgstr " uren geleden" 101 110 102 #: phototools.php:3 28111 #: phototools.php:364 103 112 msgid "1 hour ago" 104 113 msgstr "1 uur geleden" 105 114 106 #: phototools.php:3 31115 #: phototools.php:367 107 116 msgid "yesterday" 108 117 msgstr "gisteren" 109 118 110 #: phototools.php:3 32119 #: phototools.php:368 111 120 msgid "the day before yesterday" 112 121 msgstr "eergister" 113 122 114 #: phototools.php:3 33123 #: phototools.php:369 115 124 #, php-format 116 125 msgid "%s days ago" 117 126 msgstr "%s dagen geleden" 118 127 119 #: phototools.php:3 34128 #: phototools.php:370 120 129 #, php-format 121 130 msgid "%s weeks ago" 122 131 msgstr "%s weken geleden" 123 132 124 #: phototools.php:3 40133 #: phototools.php:376 125 134 msgid "in a moment" 126 135 msgstr "zometeen" 127 136 128 #: phototools.php:3 41137 #: phototools.php:377 129 138 msgid "in a minute" 130 139 msgstr "over een minuut" 131 140 132 #: phototools.php:3 42141 #: phototools.php:378 133 142 #, php-format 134 143 msgid "in %s minutes" 135 144 msgstr "over %s minuten" 136 145 137 #: phototools.php:3 43146 #: phototools.php:379 138 147 msgid "in an hour" 139 148 msgstr "over een uur" 140 149 141 #: phototools.php:3 44150 #: phototools.php:380 142 151 #, php-format 143 152 msgid "in %s hours" 144 153 msgstr "over %s uren" 145 154 146 #: phototools.php:3 46155 #: phototools.php:382 147 156 msgid "tomorrow" 148 157 msgstr "morgen" 149 158 150 #: phototools.php:3 47159 #: phototools.php:383 151 160 msgid "the day after tomorrow" 152 161 msgstr "Overmorgen" 153 162 154 #: phototools.php:3 48163 #: phototools.php:384 155 164 #, php-format 156 165 msgid "in %s days" 157 166 msgstr "over %s dagen" 158 167 159 #: phototools.php:3 49168 #: phototools.php:385 160 169 #, php-format 161 170 msgid "in %s weeks" 162 171 msgstr "over %s weken" 163 172 164 #: phototools.php:3 59173 #: phototools.php:395 165 174 msgid "Publishing Soon" 166 175 msgstr "Binnenkort publiceren" 167 176 168 #: phototools.php: 366177 #: phototools.php:402 169 178 msgid "Published Recent" 170 179 msgstr "Recent gepubliceerd" 171 180 172 #: phototools.php: 374181 #: phototools.php:410 173 182 msgid "Recent Comments" 174 183 msgstr "Recente reacties" 175 184 176 #: phototools.php: 394185 #: phototools.php:430 177 186 msgid "edit post" 178 187 msgstr "bewerkt" 179 188 180 #: phototools.php: 395189 #: phototools.php:431 181 190 msgid "view post" 182 191 msgstr "bekijk" 183 192 184 #: phototools.php:4 40193 #: phototools.php:476 185 194 msgid "Approve" 186 195 msgstr "Toelaten" 187 196 188 #: phototools.php:4 41197 #: phototools.php:477 189 198 msgid "Unapprove" 190 199 msgstr "Weigeren" 191 200 192 #: phototools.php:4 42201 #: phototools.php:478 193 202 msgid "Edit" 194 203 msgstr "Bewerken" 195 204 196 #: phototools.php:4 43205 #: phototools.php:479 197 206 msgid "Reply" 198 207 msgstr "Reageer" 199 208 200 #: phototools.php:4 48209 #: phototools.php:484 201 210 msgid "Delete Permanently" 202 211 msgstr "Verwijder" 203 212 204 #: phototools.php:4 54213 #: phototools.php:490 205 214 msgid "View" 206 215 msgstr "Bekijk" 207 216 208 #: phototools.php: 559217 #: phototools.php:627 209 218 msgid "Search groups" 210 219 msgstr "Doorzoekn groepen" 211 220 212 #: phototools.php: 560221 #: phototools.php:628 213 222 msgid "Popular groups" 214 223 msgstr "Populaire groepen" 215 224 216 #: phototools.php: 561225 #: phototools.php:629 217 226 msgid "All groups" 218 227 msgstr "Alle groepen" 219 228 220 #: phototools.php: 564229 #: phototools.php:632 221 230 msgid "Edit photogroup" 222 231 msgstr "Bewerk fotogroep" 223 232 224 #: phototools.php: 565233 #: phototools.php:633 225 234 msgid "Update photogroup" 226 235 msgstr "Wijzig fotogroep" 227 236 228 #: phototools.php: 566237 #: phototools.php:634 229 238 msgid "Add new photogroup" 230 239 msgstr "Voeg nieuwe fotogroep toe" 231 240 232 #: phototools.php: 567241 #: phototools.php:635 233 242 msgid "New photogroup" 234 243 msgstr "Nieuwe fotogroep" 235 244 236 #: phototools.php: 568245 #: phototools.php:636 237 246 msgid "Separate groups with commas" 238 247 msgstr "Scheid groepen met komma's" 239 248 240 #: phototools.php: 569249 #: phototools.php:637 241 250 msgid "Add or remove Photogroups" 242 251 msgstr "Verwijder of voeg fotogroepen toe" 243 252 244 #: phototools.php: 570253 #: phototools.php:638 245 254 msgid "Choose from the most used photogroups" 246 255 msgstr "Kies uit de meest gebruikte fotogroepen" 247 256 248 #: phototools.php: 571257 #: phototools.php:639 249 258 msgid "No groups found." 250 259 msgstr "Geen fotogroepen gevonden." 251 260 252 #: phototools.php: 572261 #: phototools.php:640 253 262 msgid "Photogroups" 254 263 msgstr "Fototools" 255 264 256 #: phototools.php: 584265 #: phototools.php:652 257 266 msgid "Group photos together" 258 267 msgstr "Groepeer fotos" -
phototools/trunk/languages/phototools.pot
r1895338 r1911852 6 6 "Project-Id-Version: phototools 1.0\n" 7 7 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/phototools\n" 8 "POT-Creation-Date: 2018-0 6-19 21:37+0200\n"8 "POT-Creation-Date: 2018-07-19 22:02+0200\n" 9 9 "MIME-Version: 1.0\n" 10 10 "Content-Type: text/plain; charset=UTF-8\n" … … 20 20 "X-Poedit-SearchPath-0: phototools.php\n" 21 21 22 #: phototools.php: 8722 #: phototools.php:92 23 23 msgid "General info" 24 24 msgstr "" 25 25 26 #: phototools.php: 8826 #: phototools.php:93 27 27 msgid "Settings" 28 28 msgstr "" 29 29 30 #: phototools.php:1 36 phototools.php:14930 #: phototools.php:145 phototools.php:158 31 31 msgid "Phototools" 32 32 msgstr "" 33 33 34 #: phototools.php:1 5234 #: phototools.php:161 35 35 msgid "" 36 36 "Phototools is a collection of plugins which add functionality for those who " … … 38 38 msgstr "" 39 39 40 #: phototools.php:1 6740 #: phototools.php:176 41 41 msgid "The following plugins in this series are installed:" 42 42 msgstr "" 43 43 44 #: phototools.php:2 0544 #: phototools.php:219 45 45 msgid "Dashboard" 46 46 msgstr "" 47 47 48 #: phototools.php:2 0748 #: phototools.php:221 49 49 msgid "Replace activity widget:" 50 50 msgstr "" 51 51 52 #: phototools.php:2 1252 #: phototools.php:226 53 53 msgid "No. publishing soon:" 54 54 msgstr "" 55 55 56 #: phototools.php:2 1656 #: phototools.php:230 57 57 msgid "No. published recently:" 58 58 msgstr "" 59 59 60 #: phototools.php:2 2060 #: phototools.php:234 61 61 msgid "No. recent comments:" 62 62 msgstr "" 63 63 64 #: phototools.php:2 2564 #: phototools.php:239 65 65 msgid "Extra's" 66 66 msgstr "" 67 67 68 #: phototools.php:2 2668 #: phototools.php:240 69 69 msgid "Enable use of shortcodes in widgets" 70 70 msgstr "" 71 71 72 #: phototools.php:2 3172 #: phototools.php:245 73 73 msgid "Enable use of the photogroup taxonomy" 74 74 msgstr "" 75 75 76 #: phototools.php:2 3676 #: phototools.php:250 77 77 msgid "Enable fuzzy dates" 78 78 msgstr "" 79 79 80 #: phototools.php:2 4180 #: phototools.php:255 81 81 msgid "Add rich data to posts with a featured image" 82 82 msgstr "" 83 83 84 #: phototools.php:320 84 #: phototools.php:260 85 msgid "use the \"redirect to the latest post\"" 86 msgstr "" 87 88 #: phototools.php:265 89 msgid "Redirect string" 90 msgstr "" 91 92 #: phototools.php:356 85 93 msgid "now" 86 94 msgstr "" 87 95 88 #: phototools.php:3 2496 #: phototools.php:360 89 97 msgid "just" 90 98 msgstr "" 91 99 92 #: phototools.php:3 25100 #: phototools.php:361 93 101 msgid "1 minute ago" 94 102 msgstr "" 95 103 96 #: phototools.php:3 26104 #: phototools.php:362 97 105 msgid " minutes ago" 98 106 msgstr "" 99 107 100 #: phototools.php:3 27108 #: phototools.php:363 101 109 msgid " hours ago" 102 110 msgstr "" 103 111 104 #: phototools.php:3 28112 #: phototools.php:364 105 113 msgid "1 hour ago" 106 114 msgstr "" 107 115 108 #: phototools.php:3 31116 #: phototools.php:367 109 117 msgid "yesterday" 110 118 msgstr "" 111 119 112 #: phototools.php:3 32120 #: phototools.php:368 113 121 msgid "the day before yesterday" 114 122 msgstr "" 115 123 116 #: phototools.php:3 33124 #: phototools.php:369 117 125 #, php-format 118 126 msgid "%s days ago" 119 127 msgstr "" 120 128 121 #: phototools.php:3 34129 #: phototools.php:370 122 130 #, php-format 123 131 msgid "%s weeks ago" 124 132 msgstr "" 125 133 126 #: phototools.php:3 40134 #: phototools.php:376 127 135 msgid "in a moment" 128 136 msgstr "" 129 137 130 #: phototools.php:3 41138 #: phototools.php:377 131 139 msgid "in a minute" 132 140 msgstr "" 133 141 134 #: phototools.php:3 42142 #: phototools.php:378 135 143 #, php-format 136 144 msgid "in %s minutes" 137 145 msgstr "" 138 146 139 #: phototools.php:3 43147 #: phototools.php:379 140 148 msgid "in an hour" 141 149 msgstr "" 142 150 143 #: phototools.php:3 44151 #: phototools.php:380 144 152 #, php-format 145 153 msgid "in %s hours" 146 154 msgstr "" 147 155 148 #: phototools.php:3 46156 #: phototools.php:382 149 157 msgid "tomorrow" 150 158 msgstr "" 151 159 152 #: phototools.php:3 47160 #: phototools.php:383 153 161 msgid "the day after tomorrow" 154 162 msgstr "" 155 163 156 #: phototools.php:3 48164 #: phototools.php:384 157 165 #, php-format 158 166 msgid "in %s days" 159 167 msgstr "" 160 168 161 #: phototools.php:3 49169 #: phototools.php:385 162 170 #, php-format 163 171 msgid "in %s weeks" 164 172 msgstr "" 165 173 166 #: phototools.php:3 59174 #: phototools.php:395 167 175 msgid "Publishing Soon" 168 176 msgstr "" 169 177 170 #: phototools.php: 366178 #: phototools.php:402 171 179 msgid "Published Recent" 172 180 msgstr "" 173 181 174 #: phototools.php: 374182 #: phototools.php:410 175 183 msgid "Recent Comments" 176 184 msgstr "" 177 185 178 #: phototools.php: 394186 #: phototools.php:430 179 187 msgid "edit post" 180 188 msgstr "" 181 189 182 #: phototools.php: 395190 #: phototools.php:431 183 191 msgid "view post" 184 192 msgstr "" 185 193 186 #: phototools.php:4 40194 #: phototools.php:476 187 195 msgid "Approve" 188 196 msgstr "" 189 197 190 #: phototools.php:4 41198 #: phototools.php:477 191 199 msgid "Unapprove" 192 200 msgstr "" 193 201 194 #: phototools.php:4 42202 #: phototools.php:478 195 203 msgid "Edit" 196 204 msgstr "" 197 205 198 #: phototools.php:4 43206 #: phototools.php:479 199 207 msgid "Reply" 200 208 msgstr "" 201 209 202 #: phototools.php:4 48210 #: phototools.php:484 203 211 msgid "Delete Permanently" 204 212 msgstr "" 205 213 206 #: phototools.php:4 54214 #: phototools.php:490 207 215 msgid "View" 208 216 msgstr "" 209 217 210 #: phototools.php: 559218 #: phototools.php:627 211 219 msgid "Search groups" 212 220 msgstr "" 213 221 214 #: phototools.php: 560222 #: phototools.php:628 215 223 msgid "Popular groups" 216 224 msgstr "" 217 225 218 #: phototools.php: 561226 #: phototools.php:629 219 227 msgid "All groups" 220 228 msgstr "" 221 229 222 #: phototools.php: 564230 #: phototools.php:632 223 231 msgid "Edit photogroup" 224 232 msgstr "" 225 233 226 #: phototools.php: 565234 #: phototools.php:633 227 235 msgid "Update photogroup" 228 236 msgstr "" 229 237 230 #: phototools.php: 566238 #: phototools.php:634 231 239 msgid "Add new photogroup" 232 240 msgstr "" 233 241 234 #: phototools.php: 567242 #: phototools.php:635 235 243 msgid "New photogroup" 236 244 msgstr "" 237 245 238 #: phototools.php: 568246 #: phototools.php:636 239 247 msgid "Separate groups with commas" 240 248 msgstr "" 241 249 242 #: phototools.php: 569250 #: phototools.php:637 243 251 msgid "Add or remove Photogroups" 244 252 msgstr "" 245 253 246 #: phototools.php: 570254 #: phototools.php:638 247 255 msgid "Choose from the most used photogroups" 248 256 msgstr "" 249 257 250 #: phototools.php: 571258 #: phototools.php:639 251 259 msgid "No groups found." 252 260 msgstr "" 253 261 254 #: phototools.php: 572262 #: phototools.php:640 255 263 msgid "Photogroups" 256 264 msgstr "" 257 265 258 #: phototools.php: 584266 #: phototools.php:652 259 267 msgid "Group photos together" 260 268 msgstr "" -
phototools/trunk/phototools.php
r1895338 r1911852 2 2 /** 3 3 * @package phototools 4 * @version 1. 24 * @version 1.3 5 5 */ 6 6 /* … … 9 9 Description: Dashboard widgets for photosites 10 10 Author: Gerhard Hoogterp 11 Version: 1. 211 Version: 1.3 12 12 Author URI: https://gerhardhoogterp.nl/ 13 13 */ … … 74 74 add_action('wp_head', array($this,'rich_photographyinfo')); 75 75 endif; 76 77 if ($phototools_options['redirectToLatestPost']): 78 add_action('template_redirect', array($this,'redirect_to_latest_post')); 79 endif; 80 76 81 77 82 } … … 116 121 $phototools_options['publishedRecently'] = 2; 117 122 $phototools_options['recentComments'] = 5; 123 $phototools_options['redirectToLatestPost'] = true; 124 $phototools_options['redirectString'] = 'latest'; 125 118 126 119 127 update_option('phototools_options', $phototools_options); 120 128 endif; 129 121 130 } 122 131 … … 194 203 if (!array_key_exists('enableFuzzyDates',$options)) $options['enableFuzzyDates']=true; 195 204 */ 205 206 if (isset($options['redirectToLatestPost']) && empty($options['redirectString'])) { 207 $options['redirectString']='latest'; 208 } 209 196 210 return $options; 197 211 } … … 243 257 'phototools_addRichData_CB' 244 258 ) , 'phototools', 'phototools_bonus_settings', ['label_for' => 'addRichData']); 245 259 260 add_settings_field('redirectToLatestPost', __('use the "redirect to the latest post"', self::FS_TEXTDOMAIN) , array( 261 $this, 262 'phototools_redirectToLatestPost_CB' 263 ) , 'phototools', 'phototools_bonus_settings', ['label_for' => 'redirectToLatestPost']); 264 265 add_settings_field('redirectString', __('Redirect string', self::FS_TEXTDOMAIN) , array( 266 $this, 267 'phototools_redirectString' 268 ) , 'phototools', 'phototools_bonus_settings', ['label_for' => 'redirectString']); 269 270 246 271 } 247 272 … … 284 309 print '<input type="checkbox" id="addRichData" name="phototools_options[addRichData]" ' . ($phototools_options['addRichData'] ? 'checked' : '') . ' >'; 285 310 } 311 312 public function phototools_redirectToLatestPost_CB() { 313 $phototools_options = get_option('phototools_options'); 314 print '<input type="checkbox" id="redirectToLatestPost" name="phototools_options[redirectToLatestPost]" ' . ($phototools_options['redirectToLatestPost'] ? 'checked' : '') . ' >'; 315 } 316 317 public function phototools_redirectString() { 318 $phototools_options = get_option('phototools_options'); 319 print '<input id="redirectString" name="phototools_options[redirectString]" value="' . $phototools_options['redirectString'] . '">'; 320 } 321 286 322 287 323 /* **************************************************************************** … … 539 575 } 540 576 577 function getLatestPost() { 578 $args = array( 579 'post_type' => 'post', 580 'posts_per_page' => 1 , 581 'orderby' => 'date', 582 'order' => 'desc', 583 'no_found_rows' => true, // Get 5 poss and bail. Make our query more effiecient 584 'suppress_filters' => true, // We don't want any filters to alter this query 585 'date_query' => array( 586 array( 587 'before' => $this->current_time( 'mysql' ) , 588 'inclusive' => false, // Don't include the current post in the query 589 ) 590 ) 591 ); 592 $post = current(query_posts($args)); 593 return get_permalink($post->ID); 594 } 595 596 function redirect_to_latest_post() { 597 $phototools_options = get_option('phototools_options'); 598 if (!empty($phototools_options['redirectString'])) { 599 600 if ( 0 === stripos( $_SERVER['REQUEST_URI'], '/'.$phototools_options['redirectString'] ) ) { 601 $latestPost = $this->getLatestPost(); 602 wp_redirect( $latestPost); 603 exit; 604 } 605 } 606 } 607 608 541 609 function recentComments() { 542 610 $phototools_options = get_option('phototools_options'); -
phototools/trunk/readme.txt
r1895338 r1911852 3 3 Tags: phototools, dashboard 4 4 Requires at least: 3.0.1 5 Tested up to: 4.9. 55 Tested up to: 4.9.7 6 6 Requires PHP: 5.6 7 Stable tag: 1. 27 Stable tag: 1.3 8 8 Donate link: https://gerhardhoogterp.nl/plugins/&utm_source=readme&utm_campaign=phototools 9 9 License: GPLv2 or later … … 25 25 * Fuzzy dates on/off. Makes the postdates in the activity widgets more "humanlike". 26 26 * Rich photo info (https://www.schemaapp.com/tools/jsonld-schema-generator/Photograph/) 27 27 * <domain>/latests option to redirect to the latest posts on your blog. For example: https://gerhardhoogterp.nl/latest will show your the latest photo I posted. 28 28 29 29 == Installation == … … 59 59 The mouseover always has the exact date and time. 60 60 * added rich photoinfo to the page. 61 61 62 = 1.3 = 63 64 * added "latest" option. you can turn it on/off in the settings and define your "latest" string which will be used in the url. 65 66 62 67 == Upgrade Notice == 63 68
Note: See TracChangeset
for help on using the changeset viewer.