I have just started working on a wiki where I want registered users to be able to post stuff. I want to have a link on the site which says something along the lines of
"Create new Entry" which when clicked will take the user to an editing template. When the user is done filling in his information and clicks the save button I want that information to be saved in an own page.
My question: What is the approach to achieving something like this?
tag:MediaWiki 1.19.2
PHP 5.3.14 (apache2handler)
MySQL 5.1.63-0+squeeze1-log
There are many URL parameters for editing pages which can do what you want, especially affecting the edit form. There is also an explicit Manual on creating pages with preloaded text, which includes a list of helpful extensions to do such tasks.
I used MultiBoilerplate for this. This extension is very useful because users can select from a drop down list of templates for various pages which can contain default text which users themselves can define.
Tip: if you use the option:
$wgMultiBoilerplateOptions = false;
in LocalSettings.php then administrators can add new templates via the wiki (so without having to change any configurations in php).
Related
A client is using Sitecore 9 - we are not Sitecore developers.
We've been asked a simple thing: add social media links to the Footer of their Sitecore site.
Its proving more difficult than expected.
I've added the links on other pages by editing the HTML directly via the WYSWIG editor.
But the Footer appears more restricted, only accepting the addition of templates like 'Link'.
The 'Link' template has an option to add an external URL but doesn't have an option to add an image.
The CMS looks like this:
Is there any way to add a link, with an image, via the CMS (without the need to write Sitecore code), so the page chnages from this:
to this:
If you dont want to write Sitecore code, maybe you should think about using frontend.
Find the views that holds the footer (probably Foundation/Footer.cshtml) or something like that.
-To easily find where it is, follow these steps
Go to a content page Presentation Details that has footer (probably any)
Go to Controls
Find the footer rendering in there
Click on it
Grab the Datasource's value
Go to the Datasource's path
There should be a field holding the value of the view.
Add some css class on the div that holds those items, and do your frontend stuff in there...
It is not a scalable solution, so I would highly recommend updating the Footer rendering by adding new fields and adapting the model/view. So that way a content editor could easily add a new value for each socials.
I'm a greenhorn with typo3 templating. Actually I'm using "bootstrap_package" (standard layout). I would like to create a sub-page without logo, menu and footnote. I just want to have the content elements on a blank page. How do I do this? Can anyone help me?
Best regards
cgroughy
You should give some more information why you need such a special rendering to get some more detailed help.
The usual reasons for such a page are design flaws as there are more suitable solutions inside TYPO3.
In general: You need to create a new page rendering, where you switch off the generation of the HTML header.
add on:
make a page where you collect all the pages which should be available in this special rendering. This page should be a subpage from your root-page. regarding relaurl: [x] exclude from path
in this page create a typoscript template record.
as these pages need only one rendering I propose to modify the default page object instead of creating a new page object (with a new typeNum).
in the setup field of this template record remove all headers with:
config.disableAllHeaderCode = 1
You might need to disable further CSS and JS, especially if they are loaded at the end of the page.
if you need another html-markup than the default you can modify the configuration here: wraps, (fluid-)templates, ...
Then add your special pages with content.
So I am rather new to sitecore, and it's a topic that wasn't covered during my training. My questions is just to help point me to the correct term, or documentation on a method to do the following.
I have a definition item, with a ton of field groups, what I want to do is something like:
if Value of Field X is "yes" then collapse/hide Field X or Field Group X.
Does that make sense? Is it a validation rule? or some other kind of rules, is it a workflow I need to attach? Do you place it on just the field I want to hide, or the field that triggers the action?
I appreciate any guidance.
There is nothing out-of-the-box in Sitecore to achieve what you want but there is no reason you cannot create a composite custom field type to do this. The following articles will help you achieve this:
Creating a custom Sitecore Field
Getting to Know Sitecore: Custom Fields, Part 1
Create a new control, inheriting either from Droplist (if the comparison of the value is to be text based) or Droplink (for comparison of ID). You could add a parameter in the Source field of the control to specify what the values that trigger the hide should be.
The underlying control in the Content Editor is just a standard HTML select element. Add onchange events to the control and add your Javascript handler to hide the other controls. Since I could not find a way of adding additional custom css classes to the Sitecore controls, it would be best/easiest to hide all other controls in the same collapsible group after you control. This would mean you would need to group your controls better (or logically at least).
The Javascript will be something like this (the Content Editor uses the Prototype JS framework):
if ($(this).getValue() == 'no') {
// find the parent container of this control and then hide all the next siblings in the same group
$(this).up('.scEditorFieldMarker').nextSiblings('.scEditorFieldMarker').invoke('hide');
}
You can test this by running the above in the console, change out the keyword this with the id of your field, e.g. $('FIELD2292054').
What I am not sure about is how to trigger the hide on initial load, i.e. when someone returns to an existing item, it may be possible by adding to one of the pipelines, but would be better using a JS solution if possible. I'll have a think about this and get a proper code sample up over the next few days.
EDIT: You can add an event handler to sc:contenteditorupdated to handle the content editor being rel-oaded.
document.observe("sc:contenteditorupdated", myFunction);
I wrote up a blog post and put the code on GitHub if you are interested.
Not sure if you have come across Andy Uzick's this blog post.
He wisely talks about hiding fields in the Content Editor and has also created a Sitecore Module called Hide Field Template Extension which is hosted on the Sitecore Marketplace with the full source code to extend.
After reading through and trying the extension, I do feel that it will not completely resolve your issue (how you have described it in the question).
But it will give you:
A mid-term solution to hide a few unnecessary field that some content editors would not like to view.
Fields that are only required by administrators for admin purpose - to de-clutter these fields could be hidden.
Just one thing to bear in mind that it mentions in the requirements Sitecore 6.5 & 6.6. I have not tested it in Sitecore 7. If you are using Sitecore 7, which I think you are, one could modify the source code and make it work for Sitecore 7.
Have a look and share your findings.
Happy Sitecoring!
The unnecessary new user mistakes I'm having to revert on the wiki are getting annoying.. Is there any way for me to preload their User:Username with instructions on finding any help they may need and links to places to ask questions, further-more, is there any way to require new users to make three User:Username / User_talk:Username / User_talk:SomeAdmin page edits before editing other pages?
I don't know how to force it, but here is a trick I use:
Download and install the MyVariables extension.
Create a template to use it called {{User name}} - code below.
Include this template in a welcome message on your main page. The user will then see either Welcome <their name> if they have filled it in or Welcome enter your user name if they have not.
Two points on this template:
if they have not entered their name, the text links to a page explaining how to do that (you will need to create this),
if they have entered their name, the text links to MY PREFERENCES where they can update their user data.
Of course, you can change this if that is overkill.
The code:
{{#if:{{CURRENTUSERREALNAME}}|[[MY PREFERENCES|{{CURRENTUSERREALNAME}}]]|[[How to create your user profile on this wiki|enter your user name]]}}<noinclude>
<Add text here explaining the template, or just link to this stackoverflow page!>
[[Category:Template]]
</noinclude>
Another "trick" I've used is using the NewUserMessage extension to ask users to add this information.
Since I have no power to install/remove extensions on this wiki, I had to go with what I have. The wiki has Extension:InputBox installed.. So, I set up Template:Welcome, created a preload, and set up MediaWiki:Welcomecreation with a simple button that does most of the heavy lifting so to speak... It does not actually force anything, but gives all of the needed information and has a similar final output to what I was looking for.
Does anyone know how to make mediawiki automatically populate a new page with some text when the edit button is clicked for the 1st time? I have tried the MediaWiki:Newarticletext page but this only affects the text that is displayed when a user visits a page that doesn't exist. I would like to provide my users the option of a pre-built template type page that doesn't require them to type in a lot of text that will be very similar on many new pages.
I don't think mediawiki templates are the way to go as they just imclude the text when the page is rendered and they don't provide the text for the user to customise.
thanks
Have you tried MultiBoilerplate? You can se this to load default pages - and you can create multiple default. The only problem is that it won't load when you create the page but just after (you need to press Load).