#silverstripe IRC Log

IRC log for 3 January 2014

All timestamps are in UTC.

1: [00:39:38] * violetina quit (Remote host closed the connection)
2: [01:16:09] * DigNZ1 has joined #silverstripe
3: [01:16:57] * DigNZ quit (Ping timeout: 272 seconds)
4: [01:22:10] * DigNZ1 quit (Ping timeout: 240 seconds)
5: [01:48:16] * Kapdap quit (Ping timeout: 272 seconds)
6: [01:48:31] * ajmitch_ quit (Ping timeout: 260 seconds)
7: [01:48:52] * Kapdap has joined #silverstripe
8: [01:49:11] * ajmitch has joined #silverstripe
9: [02:29:19] * mojo5000 quit (Remote host closed the connection)
10: [02:39:45] * robert___ has joined #silverstripe
11: [02:40:53] * robert___ is now known as robert_
12: [03:19:32] * simon_w has joined #silverstripe
13: [03:22:02] * ss-log has joined #silverstripe
14: [03:22:02] * ss-log has joined #silverstripe
15: [03:23:36] <simon_w> Oh, there's two ss-log's. Oops.
16: [03:23:36] <simon_w> Oh, there's two ss-log's. Oops.
17: [03:24:37] * ss-log quit (Remote host closed the connection)
18: [03:25:08] * ss-log has joined #silverstripe
19: [04:21:09] * cloph_away quit (Ping timeout: 252 seconds)
20: [04:21:31] * cloph has joined #silverstripe
21: [04:33:56] * cloph quit (Remote host closed the connection)
22: [04:34:02] * cloph_away has joined #silverstripe
23: [04:58:27] * UncleCheese quit (Quit: UncleCheese)
24: [05:19:49] * lenix quit (Read error: Connection reset by peer)
25: [05:20:06] * lenix has joined #silverstripe
26: [05:21:57] * DesignerX has joined #silverstripe
27: [05:22:06] <DesignerX> Hi everyone & Happy new year ..
28: [05:26:38] * cloph_away quit (Ping timeout: 240 seconds)
29: [05:28:05] * cloph_away has joined #silverstripe
30: [05:56:21] * Shrike_Finland has joined #silverstripe
31: [06:06:29] * Shrike_Finland quit (Quit: Leaving.)
32: [06:41:00] * Shrike_Finland has joined #silverstripe
33: [06:56:59] * Shrike_Finland quit (Quit: Leaving.)
34: [07:19:57] * UncleCheese has joined #silverstripe
35: [07:32:40] * UncleCheese quit (Quit: UncleCheese)
36: [07:44:37] * nz_dre has joined #silverstripe
37: [07:46:47] * nz_dre is now known as register
38: [07:47:17] * register is now known as Guest23066
39: [07:51:03] * Guest23066 quit (Ping timeout: 240 seconds)
40: [08:07:45] * nz_dre has joined #silverstripe
41: [08:17:28] * Error404NotFound has joined #silverstripe
42: [08:17:45] * nz_dre quit (Quit: Leaving)
43: [08:22:16] * henkpoley has joined #silverstripe
44: [08:46:58] * henkpoley quit (Quit: henkpoley)
45: [08:55:30] * Shrike_Finland1 has joined #silverstripe
46: [09:04:25] * kinglozzer has joined #silverstripe
47: [09:30:07] * micmania1 has joined #silverstripe
48: [09:46:03] * UncleCheese has joined #silverstripe
49: [09:58:52] * Error404NotFound quit (Read error: Connection reset by peer)
50: [10:08:26] * Shrike_Finland1 quit (Ping timeout: 240 seconds)
51: [10:09:19] * Pyromanik has joined #silverstripe
52: [10:13:45] <Pyromanik> Happy new year everyone :)
53: [10:15:10] <simon_w> Or something like that anyway :)
54: [10:16:22] <ss23> :P
55: [10:16:24] <ss23> Bit late, Pyromanik!
56: [10:16:24] <ss23> :D
57: [10:17:00] <Pyromanik> I've been busy!
58: [10:17:40] <ss23> What with? Where are you now? :D
59: [10:17:48] <Pyromanik> I may have already said it, i don't remember ...
60: [10:18:04] <ss23> You've been here for like 2 mins, you aint said anything! :P
61: [10:19:28] <Pyromanik> Lag. Big time.
62: [10:19:49] <ss23> Jetlag, or internet lag? :O
63: [10:20:08] * violetina has joined #silverstripe
64: [10:20:28] <Pyromanik> Right now ss23 im lying in bed with an android tablet.
65: [10:20:36] <Pyromanik> Interwebs.
66: [10:21:27] <ss23> Aww, hate internets lag!
67: [10:21:51] * UncleCheese quit (Ping timeout: 240 seconds)
68: [10:22:52] <Pyromanik> Oh you, freenode motd
69: [10:23:24] <Pyromanik> Tell me to geeknic.org but it's .net!
70: [10:25:33] <Pyromanik> Im confused. It is a single event in no relation to much anything it seems
71: [10:26:16] <ss23> What is a single event in relation to much? o.o
72: [10:27:39] <Pyromanik> Geeknic
73: [10:29:53] <Pyromanik> Oh no effing wonder, that motd is about 5 years old :<
74: [10:30:16] <Pyromanik> Sort your shit out freenode :p
75: [10:34:33] <Pyromanik> Oh well. Gg everyone
76: [10:44:37] * CodeTrap has joined #silverstripe
77: [10:49:23] * Shrike_Finland has joined #silverstripe
78: [10:51:07] <micmania1> anybody used UncleCheese's mockdata module?
79: [10:52:52] <micmania1> doesn't matter just answered my own question :) First time i'm using it. Its brilliant.
80: [11:07:04] * mento has joined #silverstripe
81: [11:33:06] * qlex has joined #silverstripe
82: [11:33:13] * qlex says hi
83: [11:33:56] <qlex> Zauberfisch23: hi, this is a friendly reminder on userforms add-on/fix. do you need any assistance/want us to do something or would you handle this ?
84: [11:33:59] <qlex> :)
85: [11:38:14] * stripemonkey has joined #silverstripe
86: [11:38:30] <stripemonkey> Hi o/
87: [11:39:56] <stripemonkey> I'm having problems working out how to traverse a (many-to-many)-to-(many-to-many) using the DataObject class, can someone offer guidance or links please?
88: [11:40:26] <stripemonkey> Here's the set up: I have a set of news pages, each of which can have zero or more categories
89: [11:40:48] <stripemonkey> I also have a set of index pages, each of which show news from zero or more categories
90: [11:41:23] <simon_w> In the templates or code?
91: [11:41:30] <stripemonkey> My data is all set up, I now just want to have the index pages show the appropriate news articles
92: [11:41:47] <stripemonkey> simon_w: In code, the templates are all OK (i think)
93: [11:41:57] <simon_w> And do you want them grouped at all?
94: [11:42:22] <stripemonkey> Grouping not needed at the moment I think
95: [11:42:29] <simon_w> foreach($this->Categories()->relation('Articles') as $article) (or whatever you named your relations)
96: [11:42:41] <stripemonkey> I just want to say for index page X here's is news article A, B, C
97: [11:42:51] <stripemonkey> Ah right, brb, will try that..
98: [11:43:03] <stripemonkey> I got as far as foreach($this->Categories())
99: [11:45:19] <stripemonkey> Bleh, I get a fatal... "PHP Fatal error: DataList::create Can't find data classes (classes linked to tables) for NewsPages"
100: [11:45:40] <stripemonkey> I *think* I have my relation code set up right :-/
101: [11:45:52] <simon_w> Let me guess, you've got 'NewsPage' => 'NewsPages' when the second one should be NewsPage?
102: [11:46:39] <simon_w> (first one is relation name and is usually plural, second one is class name it points to and is usually singular)
103: [11:47:05] <stripemonkey> D'oh! That seems to have done the trick!
104: [11:47:13] <stripemonkey> Thank you, thank you, thank you!
105: [11:47:18] <qlex> i installed memberprofiles module, created a new page and cant open it:
106: [11:47:24] <qlex> http://zlks.pl/klub/czlonkowie/
107: [11:47:30] <qlex> with xml error on captcha i think
108: [11:48:01] <stripemonkey> simon_w: One little Q remaining, before I pass the list of DataLists to the view, how best do I recombine them into one DataList object?
109: [11:48:18] <stripemonkey> So the ordering etc can be done in the view, etc?
110: [11:48:57] <stripemonkey> nm, I'll have a go at figuring it out myself
111: [11:48:58] <simon_w> stripemonkey, if you just pass the datalist along, then the view can do <% loop $News.sort('Column', 'ASC') %>
112: [11:48:59] <stripemonkey> :-)
113: [11:49:18] <stripemonkey> simon_w: Yes, but I now have multiple DataLists coming out of the foreach() :-)
114: [11:49:47] <simon_w> qlex, why are you building an XML template?
115: [11:50:31] <qlex> i am not ?
116: [11:50:36] <qlex> all other pages work
117: [11:51:09] <simon_w> Yes you are, there's an <?xml ?> tag at the start
118: [11:51:33] <simon_w> Anyway, the problem's from you having <img src=/path/", when it needs an opening quote too
119: [11:51:46] <qlex> true, i wasnt constructing this template
120: [11:51:50] <qlex> but now looking at the code
121: [11:51:59] <qlex> will i remove the <?xml> tag from Page.ss ?
122: [11:52:25] <simon_w> And probably switch to a <!doctype html> while you're at it
123: [11:52:32] <simon_w> Though you should also fix the invalid HTML ;)
124: [11:52:46] <qlex> its there
125: [11:52:46] <qlex> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
126: [11:53:04] <simon_w> yeah, XHTML 1.1 type, not just <!doctype html> (html 5)
127: [11:53:25] <simon_w> (easier to type, not required to be XML)
128: [11:54:09] <qlex> that's my start of Page.ss:
129: [11:54:10] <qlex> <?xml version="1.0" encoding="UTF-8"?>
130: [11:54:10] <qlex> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
131: [11:54:10] <qlex> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
132: [11:54:20] <qlex> will i remove 1st and 3rd and just leave doctype ?
133: [11:54:27] <qlex> im now looking at where is this missing "
134: [11:54:32] <simon_w> Yes, I can see. Common practice now is to do:
135: [11:54:33] <qlex> i mean in which template file
136: [11:54:33] <simon_w> <!doctype html>
137: [11:54:33] <simon_w> <html>
138: [11:54:49] <simon_w> Wherever the captcha <img> tag is generated
139: [11:55:06] <qlex> hmm, strage, silverstripecaptcha module is there, but its not supposed to be used
140: [11:55:17] <qlex> unless the memberprofiles is using it only
141: [13:00:03] * stripemonkey quit (Ping timeout: 272 seconds)
142: [13:09:12] * Sj0hn has joined #silverstripe
143: [13:18:18] * UndefinedOffset has joined #silverstripe
144: [13:34:15] * Sj0hn quit (Ping timeout: 240 seconds)
145: [13:35:00] * Sj0hn has joined #silverstripe
146: [14:39:12] * Shrike_Finland quit (Quit: Leaving.)
147: [14:46:49] * qlex has left #silverstripe
148: [14:49:13] * catcher has joined #silverstripe
149: [15:39:50] * Pyromanik has joined #silverstripe
150: [15:40:35] <Pyromanik> hullo Enland, who's back at work already?
151: [15:40:55] <catcher> this guy
152: [15:43:06] * Marvanni2 quit ()
153: [15:43:49] <Pyromanik> oh catcher, you kidder. You're American!
154: [15:44:00] * CodeTrap quit (Ping timeout: 246 seconds)
155: [15:44:12] <catcher> Well, there is that.
156: [15:44:29] <Pyromanik> 4:44am 4th
157: [15:44:46] <Pyromanik> 1st 201FOUR
158: [15:44:54] <Pyromanik> ALLLLL the fours.
159: [15:45:01] <Pyromanik> except it's not April.
160: [15:46:01] * Marvanni has joined #silverstripe
161: [15:46:11] <Pyromanik> because I like logical dates, not contracted from pronounciation dates.
162: [15:46:11] * CodeTrap has joined #silverstripe
163: [15:46:13] <Pyromanik> but yeh
164: [15:46:16] <Pyromanik> so
165: [15:46:22] <Pyromanik> I need a job.
166: [15:46:45] <catcher> Pyromanik, thought you had a fulltime gig?
167: [15:47:56] <Pyromanik> catcher, I quit
168: [15:48:02] <Pyromanik> November 31
169: [15:48:17] <catcher> oh wow, congrats?
170: [15:48:22] <Pyromanik> yeh ta
171: [15:49:26] <Pyromanik> Haven't yet got the 'I need to do something' itch, but some excess money would be nice :P
172: [15:49:51] <Pyromanik> and god dammit I've forgotten how much I hate CV's
173: [15:51:04] <catcher> I hate most things at 4:50am.
174: [15:51:21] <Pyromanik> 4:51
175: [15:51:36] <Pyromanik> however, 3:51pm in my current timezone.
176: [15:53:17] <catcher> Pyromanik, still up or up already?
177: [15:53:27] <Pyromanik> eh?
178: [15:53:37] <Pyromanik> at 4 in the afternoon, it's a pretty normal time to be awake :P
179: [15:53:39] <catcher> oh, just saw the pm
180: [15:54:07] <Pyromanik> although it amuses me and frustrates me at the same time that the steam community market is completely bork'd
181: [15:56:12] * Sj0hn quit (Quit: Ik ga weg)
182: [16:18:37] * Marvanni quit (Quit: Marvanni)
183: [16:19:42] <micmania1> Pyromanik, u looking for work in he UK?
184: [16:35:37] * UndefinedOffset quit (Read error: Connection reset by peer)
185: [16:43:26] * mento quit (Quit: Page closed)
186: [16:48:45] * DesignerX quit (Ping timeout: 246 seconds)
187: [16:56:19] * CodeTrap quit (Remote host closed the connection)
188: [17:00:54] <Pyromanik> micmania1, yeh
189: [17:03:14] * violetina quit (Ping timeout: 264 seconds)
190: [17:03:43] <kinglozzer> Pyromanik: Freelance? We don't have anything atm but have used freelancers before for SS projects so I'm just curious :)
191: [17:06:13] <Pyromanik> kinglozzer, yep sure :D
192: [17:06:51] * Marvanni has joined #silverstripe
193: [17:07:04] <Pyromanik> If I could get consistent freelance type gigs I'd probably be more happy than with a full time desk chain, because I intend to float around while here.
194: [17:07:33] <kinglozzer> Cool, wanna PM me some contact info and I'll save it somewhere?
195: [17:07:41] <Pyromanik> kinglozzer, sure :)
196: [17:09:18] <Pyromanik> You're... not still at work are you kinglozzer?
197: [17:09:33] <kinglozzer> Pyromanik: Yep
198: [17:09:39] <Pyromanik> oh wait shit right, clock still set to NZ time :P
199: [17:09:52] <Pyromanik> It's only just gone 5, not 6 :P
200: [17:09:53] <kinglozzer> About to leave off :)
201: [17:10:11] <Pyromanik> PM's done :>
202: [17:10:44] <Pyromanik> oi FrozenFire, u stl lrk?
203: [17:10:52] <micmania1> Pyromanik, PM me too. I'll keep your details just in case.
204: [17:13:17] <FrozenFire> Pyromanik, Usually
205: [17:16:49] * stripemonkey has joined #silverstripe
206: [17:16:52] <stripemonkey> Hi o/
207: [17:17:32] * kinglozzer quit ()
208: [17:18:11] <stripemonkey> In my views when I'm iterating over stuff passed to them, how do I override the value of $Link for each item, preferably in the controller?
209: [17:20:13] <Pyromanik> FrozenFire, HNY 'n all dat.
210: [17:20:23] <FrozenFire> You too
211: [17:20:35] <Pyromanik> stripemonkey, customise the object before returning it
212: [17:21:03] <stripemonkey> Pyromanik: I guessed that much but I don't know how :-(
213: [17:21:12] <Pyromanik> if you're calling renderWith then you will need to $this->customise(<array>)->renderWith(<templateName>)
214: [17:21:36] <stripemonkey> I'm not using renderWith, should I force that?
215: [17:21:38] <Pyromanik> but if you're just visiting an action on teh controller via a request (url) then just return an array.
216: [17:21:54] <Pyromanik> where in both cases the array is of the format 'TemplateVariableName' => $data
217: [17:21:55] <stripemonkey> Ah OK, I'll try that, thanks
218: [17:22:28] <Pyromanik> eg 'LoggedInMembers' => Member::get()->filter('LoggedIn', true)
219: [17:22:42] <Pyromanik> then you can <% loop LoggedInMembers %>
220: [17:22:45] <Pyromanik> etc
221: [17:22:47] <Pyromanik> :)
222: [17:27:35] <stripemonkey> Not working for me :-( I have a ManyManyList Object when I do this: $news = $this->Categories()->relation('NewsPages');
223: [17:28:00] <catcher> Anyone using getCMSValidator successfully? RequiredFields class's $required protected property is unset in the php() method for me.
224: [17:28:04] <catcher> (ss3.1.2)
225: [17:28:10] <stripemonkey> If I iterate through it putting it into an array, and then returning that array, it renders no items
226: [17:28:38] <catcher> renderwith's 2nd arg is an array for Customise, btw
227: [17:28:53] <stripemonkey> $stuff = array(); foreach($news as $n) { $stuff[] = $n; } return $stuff;
228: [17:29:35] <stripemonkey> If I just return $news (my ManyManyList object) it lists everything fine.
229: [17:29:36] <catcher> stripemonkey, arrays aren't viewable by SS, they need to be ArrayLists/DataLists
230: [17:30:35] <stripemonkey> OK, so I need to build a new ArrayList or DataList as I iterate over $news... While I do that how do I tweak $Link as I go? It doens't seem to be a member of the object?
231: [17:31:50] <catcher> stripemonkey, if they're pages (or page subclasses), Link is a method rather than a property. If you're forming your own ArrayList based on them, you'll have to set the Link properties yourself.
232: [17:32:58] <catcher> But if you're passing back the objects, you can call the Link() method from the template with $Link.
233: [17:33:55] * violetina has joined #silverstripe
234: [17:33:56] <catcher> You can also declare a separate SpecialLink() method on NewsPages, if that works in whatever your case is.
235: [17:34:29] <stripemonkey> Ah I think that may be the answer, a new method specific to my news stuff...
236: [17:34:35] <stripemonkey> bbiab :-)
237: [17:38:55] * violet- has joined #silverstripe
238: [17:39:30] * violetina quit (Ping timeout: 245 seconds)
239: [17:40:11] <stripemonkey> OK, how do I get the full current URL from the controller?
240: [17:40:16] <stripemonkey> :-/
241: [17:40:36] <stripemonkey> So far it's working btw, I just need to make $Link relative to the current URL
242: [17:41:13] <catcher> stripemonkey, are you currently in the controller for the page whose link base you want?
243: [17:42:09] <stripemonkey> Yep
244: [17:42:30] <catcher> $this->Link() will give you the current controller's link, which you can append to.
245: [17:42:43] <stripemonkey> Awesomesauce, cheers, bbiab...
246: [17:52:49] <stripemonkey> Wahoo! Now, how do I map an arbitrary action to a controller? I want a URL like "http://blah.com/news/article/this-is-an-article-title" to map to an articleAction() or similar in newsController.php
247: [17:53:18] <stripemonkey> And pick up the argument string "this-is-an-article-title"
248: [17:54:03] * mojo5000 has joined #silverstripe
249: [17:56:23] <Azure> Trying to set the folder name for the upload form on a gridfieldonfig_recordeditor, but can't seem to figure out how to access it.
250: [17:56:34] <Azure> $gridFieldConfig->getComponentByType('UploadField')->setConfig('folderName', 'hpgallery');
251: [17:59:02] * Marvanni quit (Quit: Marvanni)
252: [18:00:50] <catcher> stripemonkey, you need an action called "article" (allowed in $allowed_actions static), grab the requested ID from the url params, and then do a lookup.
253: [18:01:46] <catcher> stripemonkey, are your articles Page or DataObject subclasses?
254: [18:03:25] * stripemonkey quit (Ping timeout: 272 seconds)
255: [18:27:51] * violet- quit (Remote host closed the connection)
256: [18:27:59] * violetina has joined #silverstripe
257: [19:08:45] * micmania1 has joined #silverstripe
258: [19:18:23] * gelignite has joined #silverstripe
259: [19:29:31] * Marvanni has joined #silverstripe
260: [19:31:59] <catcher> Anyone using varnish with SS?
261: [19:33:44] * Marvanni quit (Client Quit)
262: [19:37:13] * mojo5000 quit (Remote host closed the connection)
263: [19:44:56] * Shrike_Finland has joined #silverstripe
264: [19:46:27] * mojo5000 has joined #silverstripe
265: [19:49:35] <simon_w> I've heard of some people doing it
266: [19:53:53] <catcher> simon_w, anyone I can bug about getting started?
267: [19:54:05] <simon_w> Can't remember who it was
268: [19:55:09] <catcher> hmm, how do I tell htmleditorfields to put the label left & field right in the CMS in 3.1?
269: [19:55:20] <simon_w> http://logs.simon.geek.nz/index.php?date=2012-09-22#log_788925
270: [19:55:55] <catcher> ahh of course, thanks
271: [19:56:03] <simon_w> Custom CSS
272: [19:57:36] <catcher> kk
273: [20:00:55] <catcher> last one for now, I'm using getCMSValidator with RequiredFields with no effect. RequiredField's $required property is set in the constructor, but null in the php() method. Any ideas?
274: [20:02:36] <simon_w> getCMSValidator isn't really used
275: [20:03:13] <catcher> it gets called at least, but should I use something else for required fields in the CMS?
276: [20:03:25] <simon_w> Where in the CMS?
277: [20:06:44] <catcher> some modeladmin, some Pages
278: [20:34:07] <guzzlefry> Is it a good practice to use SS_ENVIRONMENT_TYPE as a sort of debugging output switch?
279: [20:34:47] <simon_w> guzzlefry, no, just use the Debug:: methods
280: [20:34:58] <guzzlefry> yay thanks
281: [20:35:01] <guzzlefry> glad I asked :)
282: [20:35:34] <simon_w> catcher, IIRC, you can implement validate() on the DataObject and that'll get handled properly
283: [20:51:30] <guzzlefry> simon_w: Debug:: will only work when in dev mode?
284: [20:51:37] <simon_w> yes
285: [20:51:52] <guzzlefry> thanks
286: [20:57:00] <guzzlefry> well...
287: [20:57:10] <guzzlefry> Fatal error: Nesting level too deep - recursive dependency? in /var/www/clients/vhosts/site/framework/dev/Debug.php on line 142
288: [21:01:43] <simon_w> You're trying to use ?isDev=1?
289: [21:07:47] <ss23> simon_w: I'm hungry
290: [21:07:48] <ss23> :(
291: [21:09:24] <simon_w> And?
292: [21:09:58] <ss23> Just that
293: [21:14:05] <guzzlefry> simon_w: nope, set in SS_ENVIRONMENT_TYPE
294: [21:31:26] * Shrike_Finland quit (Quit: Leaving.)
295: [21:42:31] * DigNZ has joined #silverstripe
296: [21:42:32] * DigNZ quit (Client Quit)
297: [22:39:37] * DigNZ has joined #silverstripe
298: [22:54:46] * DigNZ quit (Quit: DigNZ)
299: [22:59:36] * catcher quit (Quit: Leaving)
300: [23:17:25] * DigNZ has joined #silverstripe
301: [23:17:26] * DigNZ quit (Client Quit)
302: [23:20:02] * mojo5000 quit (Remote host closed the connection)
303: [23:25:42] * mojo5000 has joined #silverstripe
304: [23:29:55] * Pyromanik quit (Ping timeout: 245 seconds)
305: [23:30:45] * Pyromanik has joined #silverstripe
306: [23:31:02] <simon_w> linking linking linking
307: [23:31:07] * simon_w twiddles his thumbs
308: [23:31:22] <Pyromanik> compiling again / still simon_w?
309: [23:31:34] <simon_w> Well, linking
310: [23:31:42] <simon_w> Takes about as long as the compile does
311: [23:31:44] <Pyromanik> yeh
312: [23:31:49] <Pyromanik> wow
313: [23:31:54] <simon_w> Yay, debug builds!
314: [23:32:30] <simon_w> (release build is so much faster)
315: [23:48:54] * mojo5000 quit (Remote host closed the connection)
316: [23:51:19] * mojo5000 has joined #silverstripe

These logs were automatically created by ss-log on irc.freenode.net.