Drupal webform url to edit existing response to field - drupal-7

I have a webform in Drupal, with 3 questions (fields) (Q1, Q2 and Q3) on 3 different pages.
The users have permission to edit their responses to the webform, and view their own answers.
Hitting on EDIT link now takes the user to the beginning of the form (step 1).
I would like to create 3 links, that would take the user to the respective question, in EDIT mode.
Like:
Link 1 EDIT - Q1(step 1)
Link 2 EDIT - Q2(step 2)
Link 3 EDIT - Q3(step 3)

There is currently no way to get to a specific page on a multipage webform when editing. The user must start at page 1. See the following link for current discussion about this issue.
http://drupal.org/node/1413250
A way to work around this issue is to create the form on one page, and then use jquery to create a workflow within the page(show/hide fields based on current step) within the form template file of the current node.
You could then use the url querystring or hash to determine which step you are on.

Related

Drupal 7 Multistep forms - Remove save & preview button until last step

I have made a multistep/page form in Drupal (the field type is a multipage group, with multipages nested).
The form is 6 pages, and there is required info on every page. The problem is, Drupal puts a "Save" and "Preview" button on the bottom of every page of the form. Really, you CANNOT preview the form or save it until all required fields are filled out. So when users are going through the form and they hit "save" halfway through or "preview" halfway through, they get a ton of errors.
Is there any way to remove the "save" and "preview" buttons until they are on the last page (i.e. page 6 only)?
Thanks.
EDIT: I am using Field Groups to build my form by the way.
There isn't any module I found to do this, not in it's entirety anyway.
We ended up removing the preview button completely with CSS, and installing a module (Required For Publishing) that allows you to specify "Fields Required for Publish" vs fields required to save a draft. Now there's only 3 fields to save a draft for later, but 20+ fields required to publish the event/form.
We used javascript in the multipage.js form to validate on each step so they can't move on without filling out the actual required fields on each page.
You'd have to make your own module and use hook_form_alter .. https://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_form_alter/7 .. and check which step you are currently on .. and then remove the buttons if you are not on the last step .. and enjoy.
Something like .. unset($form['actions']['preview']);

Drupal 7 basic page with a dynamic block with arguments

Can anyone guide me to a route to take as far as making a basic page in drupal 7 and then having that page load a block with images inside based on URL path.
So I have a content type that is for 1 type of pages and another content type for another type of page. Each content type has 30 pages. I don't want to create 30 pages for 1 page that will have the same content over and over but with a different logo.
http://www.example.com/contenttype1name/%/staticname
I need to make the menu have an argument passed and then based on what is passed go get the correct image.
Sorry if this is confusing. Thanks for your help.
You should look into the views module - it allows you to easily create a view with dynamic parameters (contextual filters) that allow you to easily tackle things like this.
I used contextual filters on views and nodesymlinks along with panels that was already installed.
Modules Used:
Views
Nodesymlinks
Panels
Step 1: admin > Modules > Add Modules/Enable.
Enable Nodesymlinks
Enable Panels and panelizer
Step 2: admin > Structure > Views > Add View.
Make view, name it and check block not page (I used Fields).
Step 3: admin > Structure > Views > your view.
Add filtered Criteria - Content type = your type.
Content should be Published only.
Add contextual filter: title.
Configure contextual filter: Content: Title.
Provide default value. Select Raw Value from URL.
Path component select 2. You can add it where you want in the URL.
Use path alias and check it.
Under More you need to check this box: Transform spaces to dashes in URL.
Check it in Views and save.
Step 4: admin > Content > Add Page.
Add a basic page.
On the bottom of the page you will see: Provide a menu link. You want to check that box. Now you will be able to add all the menu links that you wish this page to show up on. Add links/Paths and titles. Make sure you use argument 2 in your link to be your content on the views block in step 3.
Step 5: admin > config > content > panelizer.
You want to go into this pages panelizer, could be basic or whatever your content type would be. Add your views block and save.
Step 6:
Test it. If it doesn't work then you need to check your titles in argument 2 in the URL. Worked for me. Saved me a ton of time.

In Drupal 7 views how to give external link (another website) to a title?

Iam new to drupal 7 views.
I have a content type contains title, description fields. I want the content title's to scroll at the top of the page, so that i created a view and it works fine.What is my question is, i want to link a content (eg: 1st content (title) in a scroll) to another website instead of content page, the remaining contents linked to the content page. Is it possible?.If it is possible how it can be done?..
Thanks in advance,
A.John Melchior.
Yes, it's possible.
One way to do it, would be to use the Link module to create a link field in your node.
Use the link field to input the external link value.
In views add the link field, before the title ( order is important ) and exclude it from display
Add the node title field in the views and in the rewrite field output option, use one the link field token as your path.
I'm not looking at the Views UI right now , but you should find at least a couple of ways to redirect content when the node title is clicked. You should have the Rewrite field output and the Output this field as a link.
You could make use of Display Suite coupled with the description above.
Create a link field for your nodes.
Create 2 view modes for your content type via Display Suite. View Mode 1 will show the link field as the first data element, View Mode 2 will show the title as the first element.
Configure your view to show output using Display Suite, configured to show the first record using View Mode 1, all others using View Mode 2.

Drupal 7 questionnaire webform

What is the best method to create a questionnaire in drupal 7?
We use multiple choice questions. (+/- 20)
Is it possible to have one question per page? How?
Is there a way to give the user the end-score of this questionnaire? How?
You will need to install a Field Group module and Views module.
Add a content type "Test1"
To the Test1, add a Text field, "Question1"
Also, add a List (text) field, enter
q1|Answer one
q2|Answer two
Repeat for more questions
Use Field Group module to divide questions by pages.
To take the test, add Test1 "/node/add/test1".
To create an answer sheet, take the test and use the Node ID of the test for the next step.
Create a view, using Views. Match any taken test against the Node Id of the answer sheet. You can do so, by including a link at the end of the test, which links to "/score/%NID%", %NID% being the Node ID of the current TEST1. Create a page in views, with "/score/%" as a path. Use the Contextual Filter to get the NID from the path and match it against the NID of the cheat sheet.
You can get it more advanced by using referencing fields, via Entity API and Entity Reference modules.
Enjoy!

Create content in drupal7

Is it possible to have a create content link (node/add) specific to the node/page being viewed.
As an example, on a blog page user gets add/blog link on an article page - add/article.
And a similar question for taxonomy terms, on a page of term A any content that has been added automatically gets tagged with that term. On a page of term B - tagged with term B.
I don't want users manually select terms and content types each time they post.
Thank you.
You can inject or alter node and comment links to link directly to the add page for the current content type via hook_node_view_alter and hook_comment_view_alter.
If you are viewing a term page (for term foo) which lists multiple content types including the article type and you want a link to the node-add page for the article type and automatically populate it with the term foo, then you will need a combination of hook_node_view_alter to inject a link to node/add/article?term=3 (where 3 is the term ID of the current node / page) and hook_form_alter which alters the node form to read the tid from term=3 and selects the related term.
Hope that made sense :)

Resources