flickr photo shared by Internet Archive Book Images with no copyright restriction (Flickr Commons) It’s far from pretty and I don’t know how well it’ll play with other courses but . . . here’s the plugin I used to import a few Blackboard course exports into WordPress. It’s nothing magical but I think it should get you most of the WordPress kind of content on courses sort of like these. It won’t pull in quizzes or anything like that and I make no attempt to map user/user roles. I just want the page content, discussion prompts, that sort of stuff. I opted to pull this content in as posts and tag them (as opposed to the Moodle import where I used Pages and parent/child relationships). It just seemed like the right path based on the content. In any case, here’s the code. It’s super ugly as I adapted some stuff I was playing around with during my Moodle attempts. It loads the xml file twice and probably does other things that will make programmers sad but honestly I was bored with it and didn’t feel it was worth re-writing. I just wanted it to work. It may also be a terrible example to set as I’m not sure I want people importing their Blackboard courses into WordPress. I do know […]
flickr photo shared by Internet Archive Book Images with no copyright restriction (Flickr Commons) A week or two ago some faculty members asked me about getting the Leadership Education in Neurodevelopmental Disabilities (LEND) content out of the Moodle hosted at Vanderbilt and into WordPress. I figured I could do this. Someone might even have done it already. If not, I figured the export options would have to put out something fairly straightforward that could be parsed. In any case, the majority of my learning comes from committing to things I don’t quite know how to do. Turns out I couldn’t find anyone who’d done this before. I went a variety of different routes as I attempted not to do the work myself. First, I exported the course in the two different flavors that were available (SCORM1/Course Cartridge and Moodle backup). Just for fun I tried a few different flavors of import plugins . . . Edwiser Bridge might have worked but required a higher level of connection to Moodle than I felt like dealing with and seemed more focused on integration rather than migration, Simple CSV Importer and WP All Import both failed to do what I needed despite pushing XML around a bit to try to make it work. So with all the ready-made solutions exhausted2 I turned to […]
The FI Video Collective is a really fun project that Molly is leading centered around VCU’s common book. This spring semester, Focused Inquiry faculty are teaming up with ALT Lab to offer a unique creative opportunity to UNIV 112 students. This project is inspired by the artistic style of the winter reading selection, Lauren Redniss’ “Radioactive,” in combination with crowdsourced video projects like Hit Record’s “First Stars I See Tonight” and The Johnny Cash Project. The end product will be a single video featuring a story collectively written and created by as many UNIV 112 students as are interested in participating. The video will premiere at the FI Expo on May 4th. My summary, in case you are not a video person (really, just watch it), is imagine a bunch of faculty and students collaboratively creating a video with options for participation ranging from script writing and acting, to creating music, to drawing a lamp. Lots of access points for people who like to do different things all leading to a massive collaborative project. The Theme Part While nothing like driving the project1, I had a couple challenges on the web side of things. We needed a way to say what media was needed from students and to associate it with the script/narrative so that’d it make sense to anyone dropping in. Additionally […]
A quick little plugin that sets the password for posts created via Gravity Forms. This came about as the result of a faculty request today. In this case it’ll grab the first form field and use that for the password. You could hardcode it into the plugin itself but I thought this gave a bit more flexibility. With this option you can make that field something that the user could set or you can make it hidden and set it consistently for all submissions. Simple but maybe handy for someone else.
Are you custom-made, custom-paid, or you just custom-fitted? –Ludacris I finally got a look at all the plugins in use across our install. I ended up having to incrementally push the data to a CSV file. It’s not a beautiful and I guess I could just as easily create a table and update that . . . but it works. The top 25 most installed plugins are in the chart below. Even prior to seeing the data I realized that the vast majority don’t turn on any plugins. I just didn’t quite realize how vast that majority was. That certainly makes dropping plugins easier to simplify management but it also points out some areas where we can really improve. As Tim Owens pointed out, it may be that students/faculty simply aren’t used to plugins existing. It makes sense. You don’t have anything like plugins in most of today’s social media tools. You get what you get with almost all of the major players. Even wp.com lacks a plugin structure on the free accounts. Instagram won’t even let you use a browser at all. People may have become accustomed to acceptance with their online tools. This kind of passivity<footnote>That’s not meant as a judgement. Fatalism doesn’t work either but it’s something like that.</footnote> is certainly something to consider when thinking through the student role in […]
WordPress gets complex as a multisite get bigger. Things that worked at smaller scale start dying. I’ve long wanted to be able to run a report on all the active plugins on our multisite but it always timed out before it would complete. This script will spit out 1001 sites at a time into a table and list any active plugins. It’ll also add pagination to go forward below the table. That same pagination can be manipulated directly in the URL by changing /?id=1 to whatever number you’d want. I was attempting to do this with MYSQL and OFFSET but ran into timeout issues when I hit LIMIT 4000 and OFFSET 3200 (displays 800 records but starting at the 3200th record). It was an awkward and inefficient and ultimately broke. I learned some things though. This was the WordPress.com post that got me moving in the right direction. I’d searched for ways to batch call MYSQL statements but wasn’t quite getting what I wanted. Looking at it now, it makes sense and I feel like I should have seen that path sooner but it’s now a pattern I understand and will be using in some other ways as well. I should be able to roll all the results into one big variable and spit it out, or write it incrementally […]
flickr photo shared by The Library of Congress with no copyright restriction (Flickr Commons) The title just rolls off the tongue, yes? But what it does is kind of interesting. It’s not a drag/drop solution but it starts to show how we can better knit different services together. In this case, I run a Google Script to generate a spreadsheet of files (I can probably make that a straight up API connection in the near future). I publish that spreadsheet as CSV because Google sheets to JSON feels a good bit slower.1 Then the following shortcode (but w/in square brackets) generates the little unordered lists below. It’s taking that list of 464 files and just chopping out the ones where the filename’s first letters match A-1 and the parent folder is Tasks. Not brain surgery, right? But it is a pretty flexible solution to allow flexible access to any chunk of CSV (should work on any CSV on the web- assuming you adjust the elements to reflect the data) text you want to display portions of on the fly. People can do all their work in Google Drive and it seamlessly updates in WordPress. People without WordPress skills can update and change where these lists appear through a simple shortcode. To be clear, this is an integration rather than an […]
flickr photo shared by The U.S. National Archives with no copyright restriction (Flickr Commons) I believe this is safe but I’m no security expert. Every thing I could find on XSS issues was focused on stealing passwords. WordPress feeds are all public and require no login so I think it’s all good. StackOverflow seems to agree. With that hearty and confidence-inspiring endorsement, I give you this amazingly complicated plugin to allow access to all your WordPress feeds from other stuff (like Kin’s github rss reader)1 All simple stuff really, the key piece was getting the right trigger pre_get_posts. Otherwise it was called too late. is_feed is the other little handy piece which Tim Owens mentioned . . . and I subsequently used. 1 See how my site says success and Jim’s says failed? It’s only partially because he abandoned our country for Italy. It’s also because he doesn’t have this plugin turned on.
flickr photo shared by Thomas Hawk under a Creative Commons ( BY-NC ) license This is in response to something Adam Croom wrote two(?) days ago. I thought it’d be an interesting proof of concept and would let me figure out some things with a purpose. I also like to have a few projects going on at once so I have things to switch between when I get frustrated. I also see this kind of information pushing/pulling as broadly applicable. Some of this stuff is no doubt uglier than it had to be but I’ll try to show some intersections that happened to occur with other projects and how certain steps might be ignored entirely if you want to be all efficient and stuff. The final plugin is here and should be a decent start to any customized import you want to run against a CSV file. Adam had information in Discogs. He wanted that information in WordPress where he could control it. I had never heard of the site, let alone seen its API. But it well documented and it took me a few minutes to realize I could get all the data I needed without even needing to authenticate. The user data was associated with collections and appending 0 would get me the root level stuff. With Adam’s […]