This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | namespace testContent; |
||
3 | |||
4 | /** |
||
5 | * Test Content |
||
6 | * |
||
7 | * Class to create test content on the fly for multiple situations. |
||
8 | * |
||
9 | * Run any of the methods in this class to get random data of a particular type. |
||
10 | * All methods are static and can be called indepenently of the type of data |
||
11 | * you're trying to create (i.e. posts, cpts, or even cutom table data). |
||
12 | * |
||
13 | * @package WordPress |
||
14 | * @subpackage Evans |
||
15 | * @author Old Town Media |
||
16 | */ |
||
17 | class TestContent{ |
||
18 | |||
19 | /** |
||
20 | * Title function. |
||
21 | * |
||
22 | * Builds a short random title. |
||
23 | * |
||
24 | * @see substr |
||
25 | * |
||
26 | * @param int $num_words Number of words to return. |
||
27 | * @return string Random title string. |
||
28 | */ |
||
29 | public static function title( $num_words = '' ){ |
||
30 | |||
31 | $title = ''; |
||
32 | |||
33 | $random_words = array( |
||
34 | 'lorem', |
||
35 | 'ipsum', |
||
36 | 'dolor', |
||
37 | 'sit', |
||
38 | 'amet', |
||
39 | 'consectetur', |
||
40 | 'adipiscing', |
||
41 | 'elit', |
||
42 | 'sed', |
||
43 | 'porttitor', |
||
44 | 'augue', |
||
45 | 'vitae', |
||
46 | 'ante', |
||
47 | 'posuere', |
||
48 | 'aecenas', |
||
49 | 'ultricies', |
||
50 | 'neque', |
||
51 | 'ut', |
||
52 | 'enim', |
||
53 | 'pharetra', |
||
54 | 'sodales', |
||
55 | 'pellentesque', |
||
56 | 'gravida', |
||
57 | 'mauris', |
||
58 | 'pellentesque', |
||
59 | 'cum', |
||
60 | 'sociis', |
||
61 | 'natoque', |
||
62 | 'penatibus', |
||
63 | 'et', |
||
64 | 'magnis', |
||
65 | 'dis' |
||
66 | |||
67 | ); |
||
68 | |||
69 | // If we didn't choose a count, make one |
||
70 | if ( empty( $num_words ) ){ |
||
71 | $num_words = rand( 2, 10 ); |
||
72 | } |
||
73 | |||
74 | // Pull random words |
||
75 | for( $i = 1; $i <= $num_words; $i++ ){ |
||
76 | $title .= $random_words[ rand( 0, 31 ) ] . " "; |
||
77 | } |
||
78 | |||
79 | return apply_filters( "tc_title_data", substr( $title, 0, -1 ) ); |
||
80 | |||
81 | } |
||
82 | |||
83 | |||
84 | /** |
||
85 | * Paragraphs full of random tags. |
||
86 | * |
||
87 | * Returns full TinyMCE-compatible paragraphs with random content such |
||
88 | * as tables, images, quotes, etc. |
||
89 | * |
||
90 | * @return string Paragraph(s) of text. |
||
91 | */ |
||
92 | public static function paragraphs(){ |
||
93 | |||
94 | $content = ''; |
||
95 | |||
96 | $random_content_types = array( |
||
97 | "<p>OK, so images can get quite complicated as we have a few variables to work with! For example the image below has had a caption entered in the WordPress image upload dialog box, this creates a [caption] shortcode which then in turn wraps the whole thing in a <code>div</code> with inline styling! Maybe one day they'll be able to use the <code>figure</code> and <code>figcaption</code> elements for all this. Additionally, images can be wrapped in links which, if you're using anything other than <code>color</code> or <code>text-decoration</code> to style your links can be problematic.</p>", |
||
98 | '<div id="attachment_28" class="wp-caption alignnone" style="width: 510px"><a href="#"><img src="http://www.wpfill.me.s3-website-us-east-1.amazonaws.com/img/img_large.png" alt="Your Alt Tag" title="bmxisbest" width="500" height="300" class="size-large wp-image-28"></a><p class="wp-caption-text">This is the optional caption.</p></div>', |
||
99 | "<p>The next issue we face is image alignment, users get the option of <em>None</em>, <em>Left</em>, <em>Right</em> & <em>Center</em>. On top of this, they also get the options of <em>Thumbnail</em>, <em>Medium</em>, <em>Large</em> & <em>Fullsize</em>. You'll probably want to add floats to style the image position so important to remember to clear these to stop images popping below the bottom of your articles.</p>", |
||
100 | "<table> |
||
101 | <thead> |
||
102 | <tr> |
||
103 | <th>Table Head Column One</th> |
||
104 | <th>Table Head Column Two</th> |
||
105 | <th>Table Head Column Three</th> |
||
106 | </tr> |
||
107 | </thead> |
||
108 | <tfoot> |
||
109 | <tr> |
||
110 | <td>Table Footer Column One</td> |
||
111 | <td>Table Footer Column Two</td> |
||
112 | <td>Table Footer Column Three</td> |
||
113 | </tr> |
||
114 | </tfoot> |
||
115 | <tbody> |
||
116 | <tr> |
||
117 | <td>Table Row Column One</td> |
||
118 | <td>Short Text</td> |
||
119 | <td>Testing a table cell with a longer amount of text to see what happens, you're not using tables for site layouts are you?</td> |
||
120 | </tr> |
||
121 | <tr> |
||
122 | <td>Table Row Column One</td> |
||
123 | <td>Table Row Column Two</td> |
||
124 | <td>Table Row Column Three</td> |
||
125 | </tr> |
||
126 | <tr> |
||
127 | <td>Table Row Column One</td> |
||
128 | <td>Table Row Column Two</td> |
||
129 | <td>Table Row Column Three</td> |
||
130 | </tr> |
||
131 | <tr> |
||
132 | <td>Table Row Column One</td> |
||
133 | <td>Table Row Column Two</td> |
||
134 | <td>Table Row Column Three</td> |
||
135 | </tr> |
||
136 | <tr> |
||
137 | <td>Table Row Column One</td> |
||
138 | <td>Table Row Column Two</td> |
||
139 | <td>Table Row Column Three</td> |
||
140 | </tr> |
||
141 | </tbody> |
||
142 | </table>", |
||
143 | '<ol> |
||
144 | <li>Ordered list item one.</li> |
||
145 | <li>Ordered list item two.</li> |
||
146 | <li>Ordered list item three.</li> |
||
147 | <li>Ordered list item four. |
||
148 | <ol> |
||
149 | <li>Ordered list item one.</li> |
||
150 | <li>Ordered list item two. |
||
151 | <ol> |
||
152 | <li>Ordered list item one.</li> |
||
153 | <li>Ordered list item two.</li> |
||
154 | <li>Ordered list item three.</li> |
||
155 | <li>Ordered list item four.</li> |
||
156 | </ol> |
||
157 | </li> |
||
158 | <li>Ordered list item three.</li> |
||
159 | <li>Ordered list item four.</li> |
||
160 | </ol> |
||
161 | </li> |
||
162 | <li>By the way, Wordpress does not let you create nested lists through the visual editor.</li> |
||
163 | </ol> |
||
164 | ', |
||
165 | '<ul> |
||
166 | <li>Unordered list item one.</li> |
||
167 | <li>Unordered list item two.</li> |
||
168 | <ul> |
||
169 | <li>Ordered list item one.</li> |
||
170 | <li>Ordered list item two. |
||
171 | <ul> |
||
172 | <li>Ordered list item one.</li> |
||
173 | <li>Ordered list item two.</li> |
||
174 | <li>Ordered list item three.</li> |
||
175 | <li>Ordered list item four.</li> |
||
176 | </ul> |
||
177 | </li> |
||
178 | <li>Ordered list item three.</li> |
||
179 | <li>Ordered list item four.</li> |
||
180 | </ul> |
||
181 | <li>Unordered list item three.</li> |
||
182 | <li>Unordered list item four.</li> |
||
183 | <li>By the way, Wordpress does not let you create nested lists through the visual editor.</li> |
||
184 | </ul>', |
||
185 | "<blockquote> |
||
186 | Currently WordPress blockquotes are just wrapped in blockquote tags and have no clear way for the user to define a source. Maybe one day they'll be more semantic (and easier to style) like the version below. |
||
187 | </blockquote> |
||
188 | <blockquote cite='http://html5doctor.com/blockquote-q-cite/'> |
||
189 | <p>HTML5 comes to our rescue with the footer element, allowing us to add semantically separate information about the quote.</p> |
||
190 | <footer> |
||
191 | <cite> |
||
192 | <a href='http://html5doctor.com/blockquote-q-cite/'>Oli Studholme, HTML5doctor.com</a> |
||
193 | </cite> |
||
194 | </footer> |
||
195 | </blockquote>", |
||
196 | '<h1>Level One Heading</h1> |
||
197 | <h2>Level Two Heading</h2> |
||
198 | <h3>Level Three Heading</h3> |
||
199 | <h4>Level Four Heading</h4> |
||
200 | <h5>Level Five Heading</h5> |
||
201 | <h6>Level Six Heading</h6>', |
||
202 | "<p>This is a standard paragraph created using the WordPress TinyMCE text editor. It has a <strong>strong tag</strong>, an <em>em tag</em> and a <del>strikethrough</del> which is actually just the del element. There are a few more inline elements which are not in the WordPress admin but we should check for incase your users get busy with the copy and paste. These include <cite>citations</cite>, <abbr title='abbreviation'>abbr</abbr>, bits of <code>code</code> and <var>variables</var>, <q>inline quotations</q>, <ins datetime='2011-12-08T20:19:53+00:00'>inserted text</ins>, text that is <s>no longer accurate</s> or something <mark>so important</mark> you might want to mark it. We can also style subscript and superscript characters like C0<sub>2</sub>, here is our 2<sup>nd</sup> example. If they are feeling non-semantic they might even use <b>bold</b>, <i>italic</i>, <big>big</big> or <small>small</small> elements too. Incidentally, these HTML4.01 tags have been given new life and semantic meaning in HTML5, you may be interested in reading this <a title='HTML5 Semantics' href='http://csswizardry.com/2011/01/html5-and-text-level-semantics'>article by Harry Roberts</a> which gives a nice excuse to test a link. It is also worth noting in the 'kitchen sink' view you can also add <span style='text-decoration: underline;'>underline</span> styling and set <span style='color: #ff0000;'>text color</span> with pesky inline CSS.</p> |
||
203 | <p style='text-align: left;'>Additionally, WordPress also sets text alignment with inline styles, like this left aligned paragraph. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras mattis consectetur purus sit amet fermentum.</p> |
||
204 | <p style='text-align: right;'>This is a right aligned paragraph. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras mattis consectetur purus sit amet fermentum.</p> |
||
205 | <p style='text-align: justify;'>This is a justified paragraph. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras mattis consectetur purus sit amet fermentum.</p> |
||
206 | <p style='padding-left: 30px;'>Finally, you also have the option of an indented paragraph. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras mattis consectetur purus sit amet fermentum.</p> <p>And last, and by no means least, users can also apply the <code>Address</code> tag to text like this:</p> <address>123 Example Street, |
||
207 | Testville, |
||
208 | West Madeupsburg, |
||
209 | CSSland, |
||
210 | 1234</address> <p>...so there you have it, all our text elements</p>", |
||
211 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean tincidunt luctus eros, a tincidunt massa aliquet sit amet. Sed faucibus, eros non lacinia porttitor, risus odio efficitur sapien, id porta urna massa ac est. Cras efficitur lacinia magna eget tempus. Fusce ex felis, finibus consectetur mi at, finibus rhoncus augue. In ut tortor lacinia, rutrum mauris vel, maximus tortor. Praesent ac arcu nec eros pharetra tristique. Morbi congue leo sed ipsum fermentum vulputate. Ut nulla eros, porta varius pulvinar eget, bibendum quis dolor. Morbi sed diam eu dui semper ornare nec quis nisl.', |
||
212 | 'Sed porttitor augue vitae ante posuere sodales iaculis nec neque. Etiam dapibus nulla id vulputate tempus. Quisque tempus nisi dui, a commodo nulla sodales ut. Nulla nec odio tempus, sodales diam quis, feugiat odio. Nulla tincidunt tincidunt turpis, eget cursus felis tempor lacinia. Aenean molestie libero ut erat luctus aliquam. Sed vel enim quis nisl lacinia posuere. Ut fringilla ligula ligula, nec rhoncus mi suscipit id. Praesent volutpat blandit felis, et suscipit elit vulputate sit amet. Morbi sit amet justo quis sem rutrum euismod. Pellentesque at dictum sem, sed condimentum ex. Vivamus massa nisi, convallis in semper sit amet, venenatis convallis lectus. Nunc tristique, ex ac rutrum vehicula, arcu ex efficitur justo, sed euismod ligula nulla ut purus.', |
||
213 | '<table> |
||
214 | <tbody> |
||
215 | <tr> |
||
216 | <td>!</td> |
||
217 | <td>"</td> |
||
218 | <td>#</td> |
||
219 | <td>$</td> |
||
220 | <td>%</td> |
||
221 | <td>&</td> |
||
222 | <td>\'</td> |
||
223 | <td>(</td> |
||
224 | <td>)</td> |
||
225 | <td>*</td> |
||
226 | </tr> |
||
227 | <tr> |
||
228 | <td>+</td> |
||
229 | <td>,</td> |
||
230 | <td>-</td> |
||
231 | <td>.</td> |
||
232 | <td>/</td> |
||
233 | <td>0</td> |
||
234 | <td>1</td> |
||
235 | <td>2</td> |
||
236 | <td>3</td> |
||
237 | <td>4</td> |
||
238 | </tr> |
||
239 | <tr> |
||
240 | <td>5</td> |
||
241 | <td>6</td> |
||
242 | <td>7</td> |
||
243 | <td>8</td> |
||
244 | <td>9</td> |
||
245 | <td>:</td> |
||
246 | <td>;</td> |
||
247 | <td>></td> |
||
248 | <td>=</td> |
||
249 | <td><</td> |
||
250 | </tr> |
||
251 | <tr> |
||
252 | <td>?</td> |
||
253 | <td>@</td> |
||
254 | <td>A</td> |
||
255 | <td>B</td> |
||
256 | <td>C</td> |
||
257 | <td>D</td> |
||
258 | <td>E</td> |
||
259 | <td>F</td> |
||
260 | <td>G</td> |
||
261 | <td>H</td> |
||
262 | </tr> |
||
263 | <tr> |
||
264 | <td>I</td> |
||
265 | <td>J</td> |
||
266 | <td>K</td> |
||
267 | <td>L</td> |
||
268 | <td>M</td> |
||
269 | <td>N</td> |
||
270 | <td>O</td> |
||
271 | <td>P</td> |
||
272 | <td>Q</td> |
||
273 | <td>R</td> |
||
274 | </tr> |
||
275 | <tr> |
||
276 | <td>S</td> |
||
277 | <td>T</td> |
||
278 | <td>U</td> |
||
279 | <td>V</td> |
||
280 | <td>W</td> |
||
281 | <td>X</td> |
||
282 | <td>Y</td> |
||
283 | <td>Z</td> |
||
284 | <td>[</td> |
||
285 | <td></td> |
||
286 | </tr> |
||
287 | <tr> |
||
288 | <td>]</td> |
||
289 | <td>^</td> |
||
290 | <td>_</td> |
||
291 | <td>`</td> |
||
292 | <td>a</td> |
||
293 | <td>b</td> |
||
294 | <td>c</td> |
||
295 | <td>d</td> |
||
296 | <td>e</td> |
||
297 | <td>f</td> |
||
298 | </tr> |
||
299 | <tr> |
||
300 | <td>g</td> |
||
301 | <td>h</td> |
||
302 | <td>i</td> |
||
303 | <td>j</td> |
||
304 | <td>k</td> |
||
305 | <td>l</td> |
||
306 | <td>m</td> |
||
307 | <td>n</td> |
||
308 | <td>o</td> |
||
309 | <td>p</td> |
||
310 | </tr> |
||
311 | <tr> |
||
312 | <td>q</td> |
||
313 | <td>r</td> |
||
314 | <td>s</td> |
||
315 | <td>t</td> |
||
316 | <td>u</td> |
||
317 | <td>v</td> |
||
318 | <td>w</td> |
||
319 | <td>x</td> |
||
320 | <td>y</td> |
||
321 | <td>z</td> |
||
322 | </tr> |
||
323 | <tr> |
||
324 | <td>{</td> |
||
325 | <td>|</td> |
||
326 | <td>}</td> |
||
327 | <td>~</td> |
||
328 | <td></td> |
||
329 | <td></td> |
||
330 | <td></td> |
||
331 | <td></td> |
||
332 | <td></td> |
||
333 | <td></td> |
||
334 | </tr> |
||
335 | </tbody> |
||
336 | </table>', |
||
337 | '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean tincidunt luctus eros, a tincidunt massa aliquet sit amet. Sed faucibus, eros non lacinia porttitor, risus odio efficitur sapien, id porta urna massa ac est. Cras efficitur lacinia magna eget tempus. Fusce ex felis, finibus consectetur mi at, finibus rhoncus augue. In ut tortor lacinia, rutrum mauris vel, maximus tortor. Praesent ac arcu nec eros pharetra tristique. Morbi congue leo sed ipsum fermentum vulputate. Ut nulla eros, porta varius pulvinar eget, bibendum quis dolor. Morbi sed diam eu dui semper ornare nec quis nisl.</p> |
||
338 | |||
339 | <p>Pellentesque gravida, mauris pellentesque facilisis viverra, odio quam auctor nunc, in lacinia odio ex vitae erat. Quisque posuere aliquet mi, id aliquet nulla malesuada ut. Nulla facilisi. Integer bibendum augue eget dapibus aliquam. In tempor, mauris in pharetra euismod, nunc metus fringilla metus, nec tincidunt lectus orci id justo. Nam semper risus a odio hendrerit suscipit. Curabitur dignissim, odio sed fringilla auctor, risus libero ullamcorper felis, et vestibulum neque ex a dolor. Suspendisse eu ullamcorper orci, id bibendum lacus. In at est sed ligula ullamcorper venenatis at vel ipsum. Integer libero justo, fermentum nec nisl non, bibendum bibendum tortor. Proin venenatis odio nec nisi facilisis, nec condimentum massa mollis. Donec efficitur libero quis congue aliquam. Duis sollicitudin vitae quam vitae pharetra.</p> |
||
340 | |||
341 | <p>Maecenas ultricies neque ut enim pharetra sodales. Etiam dolor sapien, commodo sed sollicitudin eget, porttitor quis lorem. Praesent euismod eros sed tortor sagittis, ut pretium ex vehicula. Nam ut magna et nunc vestibulum pulvinar. Vivamus tempor, ex eu cursus aliquam, tellus eros semper orci, id ultrices dui tellus commodo mauris. In mauris odio, lobortis id lectus in, tincidunt malesuada sem. Proin eu posuere metus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla auctor, odio ut euismod luctus, metus dolor molestie urna, iaculis rutrum nulla massa ac erat. Fusce suscipit eget odio ut tincidunt. Morbi vulputate aliquet placerat. Vivamus imperdiet posuere vehicula.</p> |
||
342 | |||
343 | <p>Nulla eu vestibulum metus. In leo lacus, vehicula at commodo eget, imperdiet vitae diam. Aliquam rutrum, massa eget pellentesque euismod, orci risus lobortis quam, et sollicitudin lectus augue quis nisi. Sed non justo at tellus mattis facilisis. Etiam feugiat sodales neque, at gravida lorem laoreet et. Donec convallis rhoncus sodales. Morbi erat mi, pulvinar quis ultrices a, luctus vel mauris. Aliquam vitae iaculis metus. Fusce tincidunt placerat nibh. Suspendisse lobortis libero massa, sit amet dapibus quam sodales eu.</p> |
||
344 | |||
345 | <p>In rhoncus mollis purus vitae ornare. Pellentesque nisi mauris, sodales vitae tortor sed, malesuada placerat massa. Integer eleifend imperdiet dolor at luctus. Donec ullamcorper dolor id auctor suscipit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sed ligula ipsum. Ut pulvinar iaculis volutpat. Phasellus dictum lorem non nulla pharetra, eget tincidunt justo ornare. Nulla dolor ligula, finibus id lectus vel, ornare porttitor diam. Nunc vehicula finibus commodo. Aliquam in commodo metus, a sodales libero. Donec vel dolor sed dolor ullamcorper fringilla in eu sapien. Phasellus lacinia lacus quis quam vestibulum, quis fringilla justo auctor. Integer quis ipsum porta, accumsan eros eget, pretium purus. Vestibulum eget leo tincidunt, porttitor urna a, vestibulum risus. Duis finibus neque sit amet nisi viverra, et vestibulum urna tincidunt.</p> |
||
346 | |||
347 | <p>Curabitur ligula magna, tempus eget ex sed, fringilla viverra justo. Nullam elit lacus, faucibus eget mi eget, posuere sagittis nisl. Sed tincidunt placerat tellus in porta. Morbi eu nibh ac lorem vehicula finibus vel a nunc. Donec iaculis leo quam, ac mattis massa ullamcorper quis. Suspendisse elementum sollicitudin augue ornare sollicitudin. Aenean laoreet orci non lectus hendrerit, ut pellentesque justo tempor. In hac habitasse platea dictumst. Ut et nibh et leo condimentum tempor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Pellentesque sodales sed nulla at rutrum. Suspendisse quis pulvinar neque. Donec vestibulum, nunc id hendrerit placerat, nisl libero tristique nunc, sed semper mi nisl quis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis hendrerit fringilla tortor, interdum sodales sapien pharetra quis.</p> |
||
348 | |||
349 | <p>Vivamus sed neque molestie, lobortis elit in, laoreet augue. Etiam tincidunt sodales bibendum. Quisque ultrices, ante sed maximus dignissim, ex elit pharetra ex, a sagittis massa nisi eget massa. Aliquam dolor risus, tincidunt eu urna tincidunt, consectetur porttitor lacus. Fusce feugiat dolor ut efficitur elementum. Morbi auctor maximus rutrum. Pellentesque cursus est sed lacus consequat, vestibulum mattis urna imperdiet. Duis quis porta lectus. Quisque pulvinar ex at lacus mattis sollicitudin. Morbi gravida, leo et blandit fringilla, neque risus gravida elit, vel maximus sem magna id sapien.</p>', |
||
350 | |||
351 | ); |
||
352 | |||
353 | $used_keys = array(); |
||
354 | for( $i = 1; $i < 7; $i++ ){ |
||
355 | |||
356 | // Pull a new random key and make sure we're not repeating any elements |
||
357 | $key = rand( 0, 12 ); |
||
358 | while( in_array( $key, $used_keys ) ){ |
||
359 | $key = rand( 0, 12 ); |
||
360 | } |
||
361 | |||
362 | $content .= $random_content_types[$key]; |
||
363 | |||
364 | $used_keys[] = $key; |
||
365 | } |
||
366 | |||
367 | return apply_filters( "tc_paragraphs_data", $content ); |
||
368 | |||
369 | } |
||
370 | |||
371 | |||
372 | /** |
||
373 | * Plain text. |
||
374 | * |
||
375 | * Returns paragraphs of plain text. |
||
376 | * |
||
377 | * @return string Plain text paragraphs. |
||
378 | */ |
||
379 | public static function plain_text(){ |
||
380 | |||
381 | $paragraphs = array( |
||
382 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean tincidunt luctus eros, a tincidunt massa aliquet sit amet. Sed faucibus, eros non lacinia porttitor, risus odio efficitur sapien, id porta urna massa ac est. Cras efficitur lacinia magna eget tempus. Fusce ex felis, finibus consectetur mi at, finibus rhoncus augue. In ut tortor lacinia, rutrum mauris vel, maximus tortor. Praesent ac arcu nec eros pharetra tristique. Morbi congue leo sed ipsum fermentum vulputate. Ut nulla eros, porta varius pulvinar eget, bibendum quis dolor. Morbi sed diam eu dui semper ornare nec quis nisl.', |
||
383 | 'Sed porttitor augue vitae ante posuere sodales iaculis nec neque. Etiam dapibus nulla id vulputate tempus. Quisque tempus nisi dui, a commodo nulla sodales ut. Nulla nec odio tempus, sodales diam quis, feugiat odio. Nulla tincidunt tincidunt turpis, eget cursus felis tempor lacinia. Aenean molestie libero ut erat luctus aliquam. Sed vel enim quis nisl lacinia posuere. Ut fringilla ligula ligula, nec rhoncus mi suscipit id. Praesent volutpat blandit felis, et suscipit elit vulputate sit amet. Morbi sit amet justo quis sem rutrum euismod. Pellentesque at dictum sem, sed condimentum ex. Vivamus massa nisi, convallis in semper sit amet, venenatis convallis lectus. Nunc tristique, ex ac rutrum vehicula, arcu ex efficitur justo, sed euismod ligula nulla ut purus.', |
||
384 | 'Maecenas ultricies neque ut enim pharetra sodales. Etiam dolor sapien, commodo sed sollicitudin eget, porttitor quis lorem. Praesent euismod eros sed tortor sagittis, ut pretium ex vehicula. Nam ut magna et nunc vestibulum pulvinar. Vivamus tempor, ex eu cursus aliquam, tellus eros semper orci, id ultrices dui tellus commodo mauris. In mauris odio, lobortis id lectus in, tincidunt malesuada sem. Proin eu posuere metus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla auctor, odio ut euismod luctus, metus dolor molestie urna, iaculis rutrum nulla massa ac erat. Fusce suscipit eget odio ut tincidunt. Morbi vulputate aliquet placerat. Vivamus imperdiet posuere vehicula.', |
||
385 | 'Pellentesque gravida, mauris pellentesque facilisis viverra, odio quam auctor nunc, in lacinia odio ex vitae erat. Quisque posuere aliquet mi, id aliquet nulla malesuada ut. Nulla facilisi. Integer bibendum augue eget dapibus aliquam. In tempor, mauris in pharetra euismod, nunc metus fringilla metus, nec tincidunt lectus orci id justo. Nam semper risus a odio hendrerit suscipit. Curabitur dignissim, odio sed fringilla auctor, risus libero ullamcorper felis, et vestibulum neque ex a dolor. Suspendisse eu ullamcorper orci, id bibendum lacus. In at est sed ligula ullamcorper venenatis at vel ipsum. Integer libero justo, fermentum nec nisl non, bibendum bibendum tortor. Proin venenatis odio nec nisi facilisis, nec condimentum massa mollis. Donec efficitur libero quis congue aliquam. Duis sollicitudin vitae quam vitae pharetra.', |
||
386 | 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fringilla, est ac pulvinar pharetra, justo erat semper ante, sit amet blandit orci nibh nec nunc. Nam purus nibh, auctor lacinia imperdiet eget, bibendum et tellus. Fusce venenatis odio id nunc ultrices porta sed ut lorem. Aenean mollis neque quis nunc venenatis, sit amet tristique libero vulputate. Proin molestie dignissim ultricies. Aenean in iaculis ligula. Nunc sollicitudin, nisl non cursus suscipit, tortor nibh congue odio, quis facilisis leo ipsum auctor velit. In tincidunt imperdiet orci in vehicula. Nam tempus scelerisque sem quis aliquet. Pellentesque ipsum libero, dictum at leo eu, vulputate condimentum metus. Phasellus tincidunt nunc vel sem posuere placerat. Curabitur nec dolor et dui egestas pulvinar non vitae mauris. Sed convallis pellentesque sapien, sit amet tempus ex. Maecenas fringilla lobortis cursus.', |
||
387 | 'Nulla eu vestibulum metus. In leo lacus, vehicula at commodo eget, imperdiet vitae diam. Aliquam rutrum, massa eget pellentesque euismod, orci risus lobortis quam, et sollicitudin lectus augue quis nisi. Sed non justo at tellus mattis facilisis. Etiam feugiat sodales neque, at gravida lorem laoreet et. Donec convallis rhoncus sodales. Morbi erat mi, pulvinar quis ultrices a, luctus vel mauris. Aliquam vitae iaculis metus. Fusce tincidunt placerat nibh. Suspendisse lobortis libero massa, sit amet dapibus quam sodales eu.', |
||
388 | 'In rhoncus mollis purus vitae ornare. Pellentesque nisi mauris, sodales vitae tortor sed, malesuada placerat massa. Integer eleifend imperdiet dolor at luctus. Donec ullamcorper dolor id auctor suscipit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sed ligula ipsum. Ut pulvinar iaculis volutpat. Phasellus dictum lorem non nulla pharetra, eget tincidunt justo ornare. Nulla dolor ligula, finibus id lectus vel, ornare porttitor diam. Nunc vehicula finibus commodo. Aliquam in commodo metus, a sodales libero. Donec vel dolor sed dolor ullamcorper fringilla in eu sapien. Phasellus lacinia lacus quis quam vestibulum, quis fringilla justo auctor. Integer quis ipsum porta, accumsan eros eget, pretium purus. Vestibulum eget leo tincidunt, porttitor urna a, vestibulum risus. Duis finibus neque sit amet nisi viverra, et vestibulum urna tincidunt.', |
||
389 | 'Curabitur ligula magna, tempus eget ex sed, fringilla viverra justo. Nullam elit lacus, faucibus eget mi eget, posuere sagittis nisl. Sed tincidunt placerat tellus in porta. Morbi eu nibh ac lorem vehicula finibus vel a nunc. Donec iaculis leo quam, ac mattis massa ullamcorper quis. Suspendisse elementum sollicitudin augue ornare sollicitudin. Aenean laoreet orci non lectus hendrerit, ut pellentesque justo tempor. In hac habitasse platea dictumst. Ut et nibh et leo condimentum tempor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Pellentesque sodales sed nulla at rutrum. Suspendisse quis pulvinar neque. Donec vestibulum, nunc id hendrerit placerat, nisl libero tristique nunc, sed semper mi nisl quis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis hendrerit fringilla tortor, interdum sodales sapien pharetra quis.', |
||
390 | 'Vivamus sed neque molestie, lobortis elit in, laoreet augue. Etiam tincidunt sodales bibendum. Quisque ultrices, ante sed maximus dignissim, ex elit pharetra ex, a sagittis massa nisi eget massa. Aliquam dolor risus, tincidunt eu urna tincidunt, consectetur porttitor lacus. Fusce feugiat dolor ut efficitur elementum. Morbi auctor maximus rutrum. Pellentesque cursus est sed lacus consequat, vestibulum mattis urna imperdiet. Duis quis porta lectus. Quisque pulvinar ex at lacus mattis sollicitudin. Morbi gravida, leo et blandit fringilla, neque risus gravida elit, vel maximus sem magna id sapien.', |
||
391 | 'Fusce semper erat tortor, at pulvinar risus luctus suscipit. Phasellus quis enim nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas semper dapibus odio, nec pellentesque sem laoreet sit amet. Maecenas ut enim tellus. Fusce malesuada mattis sem, porta interdum ex fermentum quis. Ut eget quam mi. In molestie volutpat feugiat. Nulla vel viverra nunc. Integer lobortis nisl vitae placerat egestas. Curabitur tristique nulla at libero blandit, a eleifend augue tempus.', |
||
392 | ); |
||
393 | |||
394 | return apply_filters( "tc_plain_text_data", $paragraphs[ rand( 0, 9 ) ] ); |
||
395 | |||
396 | } |
||
397 | |||
398 | |||
399 | /** |
||
400 | * Image. |
||
401 | * |
||
402 | * Fetch a random image, make sure it is formatted right, download it, and |
||
403 | * put it in the media library. |
||
404 | * |
||
405 | * @see $this::get_image_link(), download_url, media_handle_sideload |
||
406 | * |
||
407 | * @param int $post_id Post ID. |
||
408 | * @return mixed Attachment ID or WP Error. |
||
409 | */ |
||
410 | public static function image( $post_id ){ |
||
411 | $file_array = array(); |
||
412 | |||
413 | // Get the image from the API |
||
414 | $url = self::get_image_link(); |
||
415 | |||
416 | // If the returned string is empty or it's not a string, try again. |
||
417 | if ( empty( $url ) || !is_string( $url ) ){ |
||
418 | |||
419 | // Try again |
||
420 | $url = self::get_image_link(); |
||
421 | |||
422 | // If it fails again, just give up |
||
423 | if ( empty( $url ) || !is_string( $url ) ){ |
||
424 | return; |
||
425 | } |
||
426 | |||
427 | } |
||
428 | |||
429 | // Download the file |
||
430 | $tmp = \download_url( $url ); |
||
431 | |||
432 | preg_match( '/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $url, $matches ); |
||
433 | |||
434 | $file_array['name'] = basename( $matches[0] ); |
||
435 | $file_array['tmp_name'] = $tmp; |
||
436 | |||
437 | // Check for download errors |
||
438 | if ( is_wp_error( $tmp ) ) { |
||
439 | unlink( $file_array[ 'tmp_name' ] ); |
||
440 | error_log( $tmp->get_error_message() ); |
||
441 | } |
||
442 | |||
443 | // Pull the image into the media library |
||
444 | $image_id = media_handle_sideload( $file_array, $post_id ); |
||
445 | |||
446 | // Check for handle sideload errors. |
||
447 | if ( is_wp_error( $image_id ) ) { |
||
448 | unlink( $file_array['tmp_name'] ); |
||
449 | error_log( $image_id->get_error_message() ); |
||
450 | } |
||
451 | |||
452 | return apply_filters( "tc_image_data", $image_id ); |
||
453 | |||
454 | } |
||
455 | |||
456 | |||
457 | /** |
||
458 | * Fetch an image url from the splashbase API. |
||
459 | * |
||
460 | * @see cURL functions, preg_match |
||
461 | * |
||
462 | * @return string Image URL. |
||
463 | */ |
||
464 | private static function get_image_link(){ |
||
465 | |||
466 | // cURL an image API for a completely random photo |
||
467 | $curl = curl_init( "http://www.splashbase.co/api/v1/images/random?images_only=true" ); |
||
468 | |||
469 | curl_setopt( $curl, CURLOPT_RETURNTRANSFER, TRUE ); |
||
470 | |||
471 | $curl_response = curl_exec( $curl ); |
||
472 | |||
473 | // If our cURL failed |
||
474 | if ( $curl_response === false ) { |
||
475 | $info = curl_getinfo( $curl ); |
||
476 | curl_close( $curl ); |
||
477 | die( 'error occured during curl exec. Additional info: ' . var_export( $info ) ); |
||
478 | } |
||
479 | |||
480 | curl_close( $curl ); |
||
481 | |||
482 | // Decode the data |
||
483 | $response = json_decode( $curl_response, true ); |
||
484 | |||
485 | // Check to make sure that the return contains a valid image extensions |
||
486 | preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $response['url'], $matches); |
||
487 | |||
488 | if ( !empty( $matches ) ){ |
||
489 | return $response['url']; |
||
490 | } |
||
491 | |||
492 | } |
||
493 | |||
494 | |||
495 | /** |
||
496 | * Date. |
||
497 | * |
||
498 | * Returns a date in the future (up to 60 days out) in the format prescribed. |
||
499 | * |
||
500 | * @param string $format PHP Date format. |
||
501 | * @return mixed Date in the format requested. |
||
502 | */ |
||
503 | public static function date( $format ){ |
||
504 | |||
505 | $num_days = rand( 1, 60 ); |
||
506 | $date = date( $format, strtotime( " +$num_days days" ) ); |
||
507 | |||
508 | return apply_filters( "tc_date_data", $date ); |
||
509 | |||
510 | } |
||
511 | |||
512 | |||
513 | /** |
||
514 | * Time. |
||
515 | * |
||
516 | * Returns a random time in various formats |
||
517 | * |
||
518 | * @return string Time string |
||
519 | */ |
||
520 | public static function time(){ |
||
521 | |||
522 | $times = array( |
||
523 | '8:00 am', |
||
524 | '5:00PM', |
||
525 | '13:00', |
||
526 | '2015', |
||
527 | date( 'G:i', strtotime( " +".rand( 4, 24 )." hours" ) ), |
||
528 | date( 'g:i', strtotime( " +".rand( 4, 24 )." hours" ) ), |
||
529 | date( 'G:i A', strtotime( " +".rand( 4, 24 )." hours" ) ) |
||
530 | ); |
||
531 | |||
532 | return apply_filters( "tc_time_data", $times[ rand( 0, 6 ) ] ); |
||
533 | |||
534 | } |
||
535 | |||
536 | |||
537 | /** |
||
538 | * Timezone. |
||
539 | * |
||
540 | * Returns a random timezone from a subset of available options. |
||
541 | * |
||
542 | * @return string Timezone |
||
543 | */ |
||
544 | public static function timezone(){ |
||
545 | |||
546 | $timezones = array( |
||
547 | 'America/Denver', |
||
548 | 'America/New_York', |
||
549 | 'America/Los_Angeles', |
||
550 | 'Europe/London', |
||
551 | 'Europe/Paris', |
||
552 | 'Europe/Zurich', |
||
553 | 'Europe/Dublin', |
||
554 | 'Atlantic/Reykjavik', |
||
555 | 'Australia/Brisbane', |
||
556 | 'UTC+0', |
||
557 | 'UTC+7', |
||
558 | 'UTC-1', |
||
559 | 'UTC' |
||
560 | ); |
||
561 | |||
562 | return apply_filters( "tc_timezone_data", $timezones[ rand( 0, 12 ) ] ); |
||
563 | |||
564 | } |
||
565 | |||
566 | |||
567 | |||
568 | /** |
||
569 | * Phone. |
||
570 | * |
||
571 | * Returns a random phone # in multiple international formats. |
||
572 | * |
||
573 | * @return string Phone #. |
||
574 | */ |
||
575 | public static function phone(){ |
||
576 | |||
577 | $phone_numbers = array( |
||
578 | '7203893101', |
||
579 | '303-555-1251', |
||
580 | '(720) 895 0969', |
||
581 | '(303)-278-2078', |
||
582 | '1-907-486-1102', |
||
583 | '011-44-871-789-3642', |
||
584 | '1-800-437-7950', |
||
585 | '1-503-254-1000', |
||
586 | '1-845-354-9912', |
||
587 | '+1 253-243-3381', |
||
588 | '+43 780 0047112' |
||
589 | ); |
||
590 | |||
591 | return apply_filters( "tc_phone_data", $phone_numbers[ rand( 0, 10 ) ] ); |
||
592 | |||
593 | } |
||
594 | |||
595 | |||
596 | /** |
||
597 | * Email. |
||
598 | * |
||
599 | * Returns a random email address in random lengths/formats. |
||
600 | * |
||
601 | * @return string Email address. |
||
602 | */ |
||
603 | public static function email( $superrandom = false ){ |
||
604 | |||
605 | // In certain situations we need to ensure that the email is never |
||
606 | // duplicated, like in creating new users. |
||
607 | if ( $superrandom !== false ){ |
||
608 | $user = $domain = ''; |
||
609 | |||
610 | $tlds = array( |
||
611 | "com", |
||
612 | "net", |
||
613 | "gov", |
||
614 | "org", |
||
615 | "edu", |
||
616 | "biz", |
||
617 | "info" |
||
618 | ); |
||
619 | |||
620 | $char = "0123456789abcdefghijklmnopqrstuvwxyz"; |
||
621 | |||
622 | $user_length = mt_rand( 5, 20 ); |
||
623 | $domain_length = mt_rand( 7, 12 ); |
||
624 | |||
625 | View Code Duplication | for ( $i = 1; $i <= $user_length; $i++ ){ |
|
0 ignored issues
–
show
|
|||
626 | $user .= substr( $char, mt_rand( 0, strlen( $char ) ), 1 ); |
||
627 | } |
||
628 | |||
629 | View Code Duplication | for ( $i = 1; $i <= $domain_length; $i++ ){ |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
630 | $domain .= substr( $char, mt_rand( 0, strlen( $char ) ), 1 ); |
||
631 | } |
||
632 | |||
633 | $tld = $tlds[ mt_rand( 0, ( sizeof( $tlds ) - 1 ) ) ]; |
||
634 | |||
635 | $email = $user . "@" . $domain . '.' . $tld; |
||
636 | |||
637 | } else { |
||
638 | |||
639 | $email_addresses = array( |
||
640 | '[email protected]', |
||
641 | '[email protected]', |
||
642 | '[email protected]+15', |
||
643 | '[email protected]', |
||
644 | '[email protected]', |
||
645 | '[email protected]', |
||
646 | '[email protected]', |
||
647 | '[email protected]' |
||
648 | ); |
||
649 | |||
650 | $email = $email_addresses[ rand( 0, 7 ) ]; |
||
651 | |||
652 | } |
||
653 | |||
654 | |||
655 | return apply_filters( "tc_email_data", $email ); |
||
656 | |||
657 | } |
||
658 | |||
659 | |||
660 | /** |
||
661 | * Link. |
||
662 | * |
||
663 | * Returns link in a completely random format. |
||
664 | * |
||
665 | * @see site_url |
||
666 | * |
||
667 | * @return string URL. |
||
668 | */ |
||
669 | public static function link(){ |
||
670 | |||
671 | $links = array( |
||
672 | 'http://google.com', |
||
673 | 'https://www.twitter.com', |
||
674 | site_url( '/?iam=anextravariable' ), |
||
675 | 'github.com', |
||
676 | 'http://filebase.com', |
||
677 | 'www.oldtownmediainc.com', |
||
678 | 'http://facebook.com', |
||
679 | 'https://www.eff.org' |
||
680 | ); |
||
681 | |||
682 | return apply_filters( "tc_link_data", $links[ rand( 0, 7 ) ] ); |
||
683 | |||
684 | } |
||
685 | |||
686 | /** |
||
687 | * Oembed. |
||
688 | * |
||
689 | * Returns a random oembed-compatible link. |
||
690 | * |
||
691 | * @return string URL. |
||
692 | */ |
||
693 | public static function oembed(){ |
||
694 | |||
695 | $links = array( |
||
696 | 'https://www.youtube.com/watch?v=A85-YQsm6pY', |
||
697 | 'https://vimeo.com/140327103', |
||
698 | 'https://twitter.com/WordPress/status/664594697093009408', |
||
699 | 'https://embed-ssl.ted.com/talks/regina_hartley_why_the_best_hire_might_not_have_the_perfect_resume.html', |
||
700 | 'http://www.slideshare.net/laurengalanter/choose-your-own-career-adventure', |
||
701 | 'https://www.instagram.com/p/-eyLo0RMfX', |
||
702 | ); |
||
703 | |||
704 | return apply_filters( "tc_oembed_data", $links[ rand( 0, 5 ) ] ); |
||
705 | |||
706 | } |
||
707 | |||
708 | |||
709 | /** |
||
710 | * Video Link. |
||
711 | * |
||
712 | * Returns a video link from the service of your choice (if that service is |
||
713 | * YouTube or Vimeo :) ). |
||
714 | * |
||
715 | * @param string $type Video service to get link from |
||
716 | * @return string URL. |
||
717 | */ |
||
718 | public static function video( $type ){ |
||
719 | |||
720 | // Switch through our video types. Expecting to add more in the future |
||
721 | switch( $type ){ |
||
722 | |||
723 | // YouTube videos |
||
724 | case 'youtube' : |
||
725 | $links = array( |
||
726 | 'https://www.youtube.com/watch?v=tntOCGkgt98', |
||
727 | 'https://www.youtube.com/watch?v=O1KW3ZkLtuo', |
||
728 | 'https://www.youtube.com/watch?v=G8KpPw303PY', |
||
729 | 'https://www.youtube.com/watch?v=HxM46vRJMZs', |
||
730 | 'https://www.youtube.com/watch?v=nRzsgCp60YU', |
||
731 | 'https://www.youtube.com/watch?v=25OUFtdno8U', |
||
732 | 'https://www.youtube.com/watch?v=PHAc3_MEjgQ', |
||
733 | 'https://www.youtube.com/watch?v=9bZkp7q19f0', |
||
734 | 'https://www.youtube.com/watch?v=_OBlgSz8sSM', |
||
735 | ); |
||
736 | |||
737 | break; |
||
738 | |||
739 | // Vimeo videos |
||
740 | case 'vimeo' : |
||
741 | $links = array( |
||
742 | 'https://vimeo.com/156161909', |
||
743 | 'https://vimeo.com/156045670', |
||
744 | 'https://vimeo.com/144698619', |
||
745 | 'https://vimeo.com/151799633', |
||
746 | 'https://vimeo.com/149224063', |
||
747 | 'https://vimeo.com/154915431', |
||
748 | 'https://vimeo.com/155404383', |
||
749 | 'https://vimeo.com/149478317', |
||
750 | 'https://vimeo.com/154698227', |
||
751 | ); |
||
752 | |||
753 | break; |
||
754 | |||
755 | // Fallback |
||
756 | default: |
||
757 | |||
758 | $links = array(); |
||
759 | |||
760 | } |
||
761 | |||
762 | return apply_filters( "tc_video_data", $links[ rand( 0, 8 ) ] ); |
||
763 | |||
764 | } |
||
765 | |||
766 | /** |
||
767 | * Name function. |
||
768 | * |
||
769 | * Makes a random name. |
||
770 | * |
||
771 | * @return array Randomly strung together name. |
||
772 | */ |
||
773 | public static function name(){ |
||
774 | |||
775 | $first_names = array( |
||
776 | 'Jacqui', |
||
777 | 'Buffy', |
||
778 | 'Teddy', |
||
779 | 'Cindie', |
||
780 | 'Carroll', |
||
781 | 'Karly', |
||
782 | 'Maricela', |
||
783 | 'Kittie', |
||
784 | 'Jetta', |
||
785 | 'Denise', |
||
786 | 'Guillermo', |
||
787 | 'Domingo', |
||
788 | 'Benjamin', |
||
789 | 'Olga', |
||
790 | 'Shane', |
||
791 | 'Bessie', |
||
792 | 'Jose', |
||
793 | 'Damon', |
||
794 | 'Rodolfo', |
||
795 | 'George', |
||
796 | ); |
||
797 | |||
798 | $last_names = array( |
||
799 | 'Henley', |
||
800 | 'Trask', |
||
801 | 'Dick', |
||
802 | 'Irby', |
||
803 | 'Raley', |
||
804 | 'Bland', |
||
805 | 'Rossi', |
||
806 | 'Gunther', |
||
807 | 'Mchenry', |
||
808 | 'Isaacs', |
||
809 | 'Romero', |
||
810 | 'Mcbride', |
||
811 | 'Armstrong', |
||
812 | 'Mccoy', |
||
813 | 'Evans', |
||
814 | 'Dennis', |
||
815 | 'Swanson', |
||
816 | 'Estrada', |
||
817 | 'Johnston', |
||
818 | 'Graves', |
||
819 | ); |
||
820 | |||
821 | $name = array( |
||
822 | 'first' => $first_names[ rand( 0, 19 ) ], |
||
823 | 'last' => $last_names[ rand( 0, 19 ) ] |
||
824 | ); |
||
825 | |||
826 | return apply_filters( "tc_name_data", $name ); |
||
827 | |||
828 | } |
||
829 | |||
830 | } |
||
831 |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.