PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.3.1
GiveWP – Donation Plugin and Fundraising Platform v3.3.1
4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / vendor-prefixed / fakerphp / faker / src / Faker / Provider / Image.php
give / vendor / vendor-prefixed / fakerphp / faker / src / Faker / Provider Last commit date
ar_EG 2 years ago ar_JO 2 years ago ar_SA 2 years ago at_AT 2 years ago bg_BG 2 years ago bn_BD 2 years ago cs_CZ 2 years ago da_DK 2 years ago de_AT 2 years ago de_CH 2 years ago de_DE 2 years ago el_CY 2 years ago el_GR 2 years ago en_AU 2 years ago en_CA 2 years ago en_GB 2 years ago en_HK 2 years ago en_IN 2 years ago en_NG 2 years ago en_NZ 2 years ago en_PH 2 years ago en_SG 2 years ago en_UG 2 years ago en_US 2 years ago en_ZA 2 years ago es_AR 2 years ago es_ES 2 years ago es_PE 2 years ago es_VE 2 years ago et_EE 2 years ago fa_IR 2 years ago fi_FI 2 years ago fr_BE 2 years ago fr_CA 2 years ago fr_CH 2 years ago fr_FR 2 years ago he_IL 2 years ago hr_HR 2 years ago hu_HU 2 years ago hy_AM 2 years ago id_ID 2 years ago is_IS 2 years ago it_CH 2 years ago it_IT 2 years ago ja_JP 2 years ago ka_GE 2 years ago kk_KZ 2 years ago ko_KR 2 years ago lt_LT 2 years ago lv_LV 2 years ago me_ME 2 years ago mn_MN 2 years ago ms_MY 2 years ago nb_NO 2 years ago ne_NP 2 years ago nl_BE 2 years ago nl_NL 2 years ago pl_PL 2 years ago pt_BR 2 years ago pt_PT 2 years ago ro_MD 2 years ago ro_RO 2 years ago ru_RU 2 years ago sk_SK 2 years ago sl_SI 2 years ago sr_Cyrl_RS 2 years ago sr_Latn_RS 2 years ago sr_RS 2 years ago sv_SE 2 years ago th_TH 2 years ago tr_TR 2 years ago uk_UA 2 years ago vi_VN 2 years ago zh_CN 2 years ago zh_TW 2 years ago Address.php 2 years ago Barcode.php 2 years ago Base.php 2 years ago Biased.php 2 years ago Color.php 2 years ago Company.php 2 years ago DateTime.php 2 years ago File.php 2 years ago HtmlLorem.php 2 years ago Image.php 2 years ago Internet.php 2 years ago Lorem.php 2 years ago Medical.php 2 years ago Miscellaneous.php 2 years ago Payment.php 2 years ago Person.php 2 years ago PhoneNumber.php 2 years ago Text.php 2 years ago UserAgent.php 2 years ago Uuid.php 2 years ago
Image.php
202 lines
1 <?php
2 /**
3 * @license MIT
4 *
5 * Modified by impress-org on 23-January-2024 using Strauss.
6 * @see https://github.com/BrianHenryIE/strauss
7 */
8
9 namespace Give\Vendors\Faker\Provider;
10
11 /**
12 * Depends on image generation from http://lorempixel.com/
13 */
14 class Image extends Base
15 {
16 /**
17 * @var string
18 */
19 public const BASE_URL = 'https://via.placeholder.com';
20
21 public const FORMAT_JPG = 'jpg';
22 public const FORMAT_JPEG = 'jpeg';
23 public const FORMAT_PNG = 'png';
24
25 /**
26 * @var array
27 *
28 * @deprecated Categories are no longer used as a list in the placeholder API but referenced as string instead
29 */
30 protected static $categories = [
31 'abstract', 'animals', 'business', 'cats', 'city', 'food', 'nightlife',
32 'fashion', 'people', 'nature', 'sports', 'technics', 'transport',
33 ];
34
35 /**
36 * Generate the URL that will return a random image
37 *
38 * Set randomize to false to remove the random GET parameter at the end of the url.
39 *
40 * @example 'http://via.placeholder.com/640x480.png/CCCCCC?text=well+hi+there'
41 *
42 * @param int $width
43 * @param int $height
44 * @param string|null $category
45 * @param bool $randomize
46 * @param string|null $word
47 * @param bool $gray
48 * @param string $format
49 *
50 * @return string
51 */
52 public static function imageUrl(
53 $width = 640,
54 $height = 480,
55 $category = null,
56 $randomize = true,
57 $word = null,
58 $gray = false,
59 $format = 'png'
60 ) {
61 trigger_deprecation(
62 'fakerphp/faker',
63 '1.20',
64 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead'
65 );
66
67 // Validate image format
68 $imageFormats = static::getFormats();
69
70 if (!in_array(strtolower($format), $imageFormats, true)) {
71 throw new \InvalidArgumentException(sprintf(
72 'Invalid image format "%s". Allowable formats are: %s',
73 $format,
74 implode(', ', $imageFormats)
75 ));
76 }
77
78 $size = sprintf('%dx%d.%s', $width, $height, $format);
79
80 $imageParts = [];
81
82 if ($category !== null) {
83 $imageParts[] = $category;
84 }
85
86 if ($word !== null) {
87 $imageParts[] = $word;
88 }
89
90 if ($randomize === true) {
91 $imageParts[] = Lorem::word();
92 }
93
94 $backgroundColor = $gray === true ? 'CCCCCC' : str_replace('#', '', Color::safeHexColor());
95
96 return sprintf(
97 '%s/%s/%s%s',
98 self::BASE_URL,
99 $size,
100 $backgroundColor,
101 count($imageParts) > 0 ? '?text=' . urlencode(implode(' ', $imageParts)) : ''
102 );
103 }
104
105 /**
106 * Download a remote random image to disk and return its location
107 *
108 * Requires curl, or allow_url_fopen to be on in php.ini.
109 *
110 * @example '/path/to/dir/13b73edae8443990be1aa8f1a483bc27.png'
111 *
112 * @return bool|string
113 */
114 public static function image(
115 $dir = null,
116 $width = 640,
117 $height = 480,
118 $category = null,
119 $fullPath = true,
120 $randomize = true,
121 $word = null,
122 $gray = false,
123 $format = 'png'
124 ) {
125 trigger_deprecation(
126 'fakerphp/faker',
127 '1.20',
128 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead'
129 );
130
131 $dir = null === $dir ? sys_get_temp_dir() : $dir; // GNU/Linux / OS X / Windows compatible
132 // Validate directory path
133 if (!is_dir($dir) || !is_writable($dir)) {
134 throw new \InvalidArgumentException(sprintf('Cannot write to directory "%s"', $dir));
135 }
136
137 // Generate a random filename. Use the server address so that a file
138 // generated at the same time on a different server won't have a collision.
139 $name = md5(uniqid(empty($_SERVER['SERVER_ADDR']) ? '' : $_SERVER['SERVER_ADDR'], true));
140 $filename = sprintf('%s.%s', $name, $format);
141 $filepath = $dir . DIRECTORY_SEPARATOR . $filename;
142
143 $url = static::imageUrl($width, $height, $category, $randomize, $word, $gray, $format);
144
145 // save file
146 if (function_exists('curl_exec')) {
147 // use cURL
148 $fp = fopen($filepath, 'w');
149 $ch = curl_init($url);
150 curl_setopt($ch, CURLOPT_FILE, $fp);
151 $success = curl_exec($ch) && curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200;
152 fclose($fp);
153 curl_close($ch);
154
155 if (!$success) {
156 unlink($filepath);
157
158 // could not contact the distant URL or HTTP error - fail silently.
159 return false;
160 }
161 } elseif (ini_get('allow_url_fopen')) {
162 // use remote fopen() via copy()
163 $success = copy($url, $filepath);
164
165 if (!$success) {
166 // could not contact the distant URL or HTTP error - fail silently.
167 return false;
168 }
169 } else {
170 return new \RuntimeException('The image formatter downloads an image from a remote HTTP server. Therefore, it requires that PHP can request remote hosts, either via cURL or fopen()');
171 }
172
173 return $fullPath ? $filepath : $filename;
174 }
175
176 public static function getFormats(): array
177 {
178 trigger_deprecation(
179 'fakerphp/faker',
180 '1.20',
181 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead'
182 );
183
184 return array_keys(static::getFormatConstants());
185 }
186
187 public static function getFormatConstants(): array
188 {
189 trigger_deprecation(
190 'fakerphp/faker',
191 '1.20',
192 'Provider is deprecated and will no longer be available in Faker 2. Please use a custom provider instead'
193 );
194
195 return [
196 static::FORMAT_JPG => constant('IMAGETYPE_JPEG'),
197 static::FORMAT_JPEG => constant('IMAGETYPE_JPEG'),
198 static::FORMAT_PNG => constant('IMAGETYPE_PNG'),
199 ];
200 }
201 }
202