Collaborative Choose-Your-Own-Adventure system... how do i build it? - joomla

I've had this idea bouncing around in my head, and I decided I'm going to do it and learn a little in the process.
Okay, if you don't mind, I'm going to pitch my website project to you.
It is based on collaboration, so I thought MediaWiki would be the best place to start, but I don't know where to go from here. I also checked out SemanticMediaWiki and SemanticForms, but it doesn't seem to do what I want.
My project is a site revolving around Multiple Choice Adventures. There are already sites that do this, like http://editthis.info/choose_your_own_adventure/Main_Page but I aim to have it entirely user friendly.
On that site, users must employ wiki markup effectively and set up the links manually. That's functional and effective, but I want it to be totally user friendly.
I want the links and content submission to be a fluid process with no worrying about wiki markup.
Here's what I want:
A user creates a top level page. A new story. (Possibly a category?) He titles it "Knights and Princesses".
He is asked to fill in the story text. He writes, "You are a handsome knight with a brand new sword. A dragon is swooping towards you."
He saves the page.
The page now contains the title, the story text, and a link/button saying "Add a new story branch".
A second user comes along. He reads this page, and clicks "Add a new story branch".
He is prompted to fill in a form. Absolutely no technical markup or manual editing.
He fills in his chosen title "Run Away".
He fills in his story text "The dragon chases you as you flee, but you concentrate on running as fast as you can. You notice a rabbit hopping along side you."
He saves the page.
Two things happen.
1: The previous page is automatically updated. Above the link "Add a new story branch" a new link appears, titled "Run Away". This new button links to the new page.
2: The new page is published with the title, the story text, and also a link/button saying "Add a new story branch".
Anyone can come along, click that button, write a new page, and the links will be added seamlessly. No need for messing with editing the page and adding wiki markup or URLs.
In addition, I hope to have the ability to categorize stories by adult content,and have a method to police and filter that.
I hope to have the ability for the original authors of a new story to define what the permissions will be, i.e. "Authorized users only", "anyone can edit", "only registered users".
I hope to have the ability for only original authors to lock certain pages from being edited.
I hope to have the ability for authors to make stories private for a select group of users.
I hope to enable users to edit story text without seeing nasty code and markup.
Am I dreaming here, or is this possible with MediaWiki? I am only experienced in Joomla and MediaWiki.
Do I need to learn a web framework? (Rails, Django, Pylons, etc) Where do I start? Are there solutions that are already geared toward my project?
Thanks for the advice!

This definitely sounds doable. Did you know that one of the original iterations of Mahalo.com was built on mediawiki? Mediawiki is very flexible software, and with a little bit of technical know-how and time you will have no problem accomplishing this.
In fact, I bet if you made it an open source project others would help you.

If you want heavy access control (access control lists, extra privileges for the creator of the pages etc.) then MediaWiki is not a good match.
If you want easy-to-use WYSIWYG editing which does not hinder collaboration, then it is again not a good match (though it is coming along, and I am not sure there is a good match currently).
For the automatic creation of links, I think Semantic MediaWiki is the right tool. You need to define a precedes-follows relationship, use semantic forms or something similar to create new pages which reference the current page as predecessor, and list the names of following pages on the bottom of each page.

Related

Liferay 7: Is it possible to get an image for from a linked site to a sitemap automatically?

Liferay 7.3.2.
I'm using a sitemap to create link boxes that link to other pages in the website. Links and names and all else is basic stuff, but I have no idea, if and how I could get images for the boxes.
Asset publisher would've been my first choice, as I've done similar stuff before with them, but I can't find a way to add pages to the publisher, so I'm not sure if it's viable here. Of course, I could create an asset publisher that would ask for a name, image and a link, but this should be automatic to avoid extra hassle.
Sitemap allows for automation, if you just map the page correctly, but getting the image would still be a problem.
Navigation menu I haven't really put much thought into, as there will be many pages with link boxes and would be really hard to control. The image would be a problem as well.
The optimal solution would be to get the image from the page the link takes the user to, but if that's impossible, I wonder if there's a way to give webpage an image, that could be shown here.
Got it working with a bit of looking around! This can help with same kind of problems others might be facing, so I'll gladly answer this myself!
From Admin panel, go to Settings and Additional Fields
Select Page and add a field to it. After filling the details, you should be able to see this field in the page settings for every page.
Go to page settings and fill out your info. In my case, I created a text field, that will be used for image URLs.
Finally, in your Application Display Template, you can find the field by writing:
${entry.getExpandoBridge().getAttribute("Extra field")}, Extra Field being the name of your field. Remember to put conditional statements, if necessary!

Easy, simple, attractive way/path/option to signup/register a new user in Joomla 3.9

I'm a volunteer for a not-for-profit project committed to conceiving a "way" to easy (considering the user audience not used to browse websites) and make attractive the registration of a new user on the home page Joomla website 3.9.
After a web search and a look in the Joomla section of the extensions on the related, I've just found that one of the possible options that meet my requirements is a free extension that enables the user to signup with a social account (Twitter, Facebook, etc.): SLogin.
I've found that the category under which I may look for a suitable extension is: Tutorial or website tour. But all of the ones I find on the web are not free.
If I was in the shoes of a user not familiar with registering a new account on a website, maybe I'd expect to find a guided procedure with popup windows or more than one webpage with plenty of information on any single step involved in the user creation.
I wonder if there is a template or extension (free) or any other option (not custom developed) that may do that job; I'm open to any suggestions based on the requirements above.
Try BreezingForms - https://extensions.joomla.org/extension/breezing-forms/
I think it allows you (even in the free version) to create custom forms, as complex as you need (multi-page, etc.) and then port them into Joomla! user creation.
You're gonna need to hunt around on their forums/support to find out how to do this exactly because it's been a long time since I've used BreezingForms.
This post on their forum has a user asking the same question and I think they answer it conclusively: https://crosstec.org/en/forums/3-breezingforms-for-joomla/123224-how-to-make-login-and-registration-forms-with-breezingforms-pro.html
Good luck and have fun!
In addition to the options already mentioned, I've evaluated and finally selected a Joomla template with a slideshow extension on top that repeatedly displays the required number of slides to show how to register and/or login.
One of those slides will feature two buttons that will open a modal window to register or log in.

Joomla - Modifying default category list view (through overrides?)

I'm building a site for a friend and I should state that this is not what I'm doing for living. I just started working with Joomla a few days ago.
Everything is good so far, except I'm stuck at one point.
This is a site for a construction company and I need to create articles for on-going and completed projects. I will create an article for each project and each article will belong to a category, 'Completed' and 'On-Going', respectfully.
I plan to create menu links for 'Completed' and 'On-Going' categories in main menu. I also want to present a thumbnail of the article on the category list. Problem is, standard look of the category list is kinda ugly, and I have no idea how to change it. I'm using a template named PixelDot, but it does not seem to do any good for my problem.
During my research, I stumbled upon concepts 'Layout Overrides' and 'Alternative Layouts'. I have basic html and css knowledge, also some PHP, but I am totally lost on which file(s) to modify. I also need a little help on get the entry text picture as a thumbnail on the category list (this is the list where you see 'articles' aka projects which belongs to the category (completed or on-going), when you clicked on relevant menu button)
Any help will be highly appreciated. My Joomla version is 3.4.1. (which I believe most up-to-date version as today)
I'm sometimes making it more complex while I try to make things detailed and clear, I hope this is not one of those cases.
First, I would suggest using tags rather than categories to manage this. Tags are much better suited for temporary labelling or dividing into groups.
Second, go to the template manager, template view for your template.
Go to the create over ride tab and select the view that you want to override (i.e. tagged items).
This will automatically copy all the files to the correct location in your template.
At that point you can play around with the layouts to your heart's content.
Also ... some pieces of the layout you may want to override may not be in the traditional layout but may be in a jlayout. You can do the same thing with them. THis is all documented in the docs.joomla.org site as well as around the web.
I also would do this with Tags. One reason is, assuming you are using SEF URLS, that the projects article pages will have a unique URL. If you move a project's article from "on-going" to "completed" then you may be changing that SEF url. This will cause your search engine ranking for that page to be lost.
I would tag each article "on-going", "completed", etc and then create a menu item to display only that specific tag. The project's article would stay in its original category, that could be my project type, project location, etc; which also will increase the SEO for that given project's article.

How to access unrelated browser window?

So I know this might sound crazy, as it is technically a security concern which I understand. So I'm just trying to find out if there's any ideas on how to handle something like this.
Anyways, long story short, I was told to look into figuring out a possible way to scrape information from another browser window/tab. I have been asked to do this because, and I know this sounds crazy too, but the users of our website are incompetent enough to not be able to copy/paste and or type correctly something from a different website. I know it's tough for some to have to have several things in their workflow, but this is basically what they do: Go to their first website (after logging in) and bring up a record with information on it...including an identification number. Then, the user should take that number and go to the second website, our website (after logging in), and type it that number in a textbox (and eventually do some other stuff). But we have found that getting that identification number from the first website to ours is difficult for them. Some copy/paste correctly, some copy/paste too much text from the page, some write it down on paper then type it in our website, and some just seem to have trouble visually "copying" the number from site to site.
What I was thinking was that this could happen: the user would have already brought up the record on the first site, then they would come to ours. They could click a button, and that would run whatever I/we here come up with, that goes and finds the other browser window, finds the specific text needed, and puts it in our textbox. Sounds simple, right? HA.
The first website is not owned or managed by us in any way, otherwise this might be a little easier.
A little bit of background information: unfortunately, I'm technically targeting IE >= 10 through 9, so if there's a solution just for this (why I tagged vbscript), then that's great. If there's a broader solution (like with an applet or browser extensions... http://crossrider.com/ ), then that's even better, but not important. If it helps, we already have a hidden applet on the page that accesses the OS (yes, it has the mayscript attribute on the element so it is able to), so I thought that could be something to incorporate with. Also, the way I expect to know which window/tab to access is by URL and/or document title - either will be very specific.
We cannot install stuff on the users' computers, at least something outside of the browser (like extensions). I'm not sure how browser extensions work, so I'm wondering if they'd need to be "installed".
I know of HTML5's postMessage, but it only has partial support in IE (and none in IE <= 7)...and the partial support refers to not including exactly what I might need. It also requires that the other website be listening (which we don't have control over, but technically might be possible to include). So it doesn't count :)
The things I found with Java are to possibly find the list of processes currently running, but I don't know how to access/control one. Especially how to access the browser's Document.
And vbscript...I just don't know. I don't know if it's just me, but I can't seem to find good documentation on it, so I'm not sure what can be done with it.
Even if I could get control of the other browser window, I don't know how I would get information from it (like the DOM).
I'm not looking for code, just ideas...I'll do the research. And although it may sound impossible, don't just brush it off because Javascript can't do it - I haven't.
UPDATE:
I ended up developing a browser extension with http://www.crossrider.com/ which wasn't ideal, but works.
You could use a bookmarklet for this ... the user would have to drag the bookmarklet into their bookmarks bar on their browser, but if doing that wasn't beyond your user's abilities/the technical restrictions you've mentioned, then you'd definitely be able to send the information you need back to your site that way.
You'd just need to give your users instructions to:
i) drag the bookmarklet into their bookmarks bar on their browser
ii) go to the website in question and click the bookmarklet
you could code the bookmarklet so that it would grab the info you need, and redirect the browser to your website. All done in one click.
I think you may be thinking about it in the wrong way when you talk about posting from one 'window' to another. You could write the bookmarklet so that it would do a http post of whatever information you wanted into your site from the other site, and it could also redirect the window that they were looking at when they clicked it (the other site) to your site. Or if, for some reason, you didn't want to redirect the the window that they had the 'other' site in to your site, then you could add a listener to your site so that once the bookmarklet had posted the info you require then the window with your displaying could automatically update. The first option would make more sense and be easier though.
Maybe to open the other site from button/link resided in your site using window.open() method?

GWT and MVC type calls

I have a GWT app that when launched it takes you to a page with just a menu. So as a shortcut type thing I would like the users to be able to go straight to the page they want. So if the default start page is x, the should be able to say x/add and it will take them to the add page. How would I get that in gwt? Do I need a bunch of different entry points?
To accomplish this, you should use the URL's "fragment", which is the part after the #. For example, if your app is at /x, you could have a different UI displayed when someone navigates to /x#add
If you don't want to write this logic yourself, you should look into the gwt-presenter project, which was written to make MVP apps easier, but also includes an EventBus (to publish events to all corners of your app), and a PlaceManager to facilitate events being fired when the fragment changes (and to change the fragment at will).
Seems like a discussion we already had so I'll just link to the related question. Please see the answers and comments there. Basically, it might be advantageous to just interact with the History class directly, instead of introducing MVP to your project, but YMMV (I'm a huge fan of MVP myself, but it's not for everyone. Besides, I like to know the stuff "under the hood" ;))

Resources