I have recently installed the Panels module. It allows me to create custom layouts for my contents. Now, what i wish to do is, choose these template layouts while creating/editing a certain type of component so that when viewed that content appears in the selected layout.
Hope I made myself clear. Please excuse me if this topic has already been discussed. If so, providing me the link of the post will be helpful enough. Actually I am sort of a newbie in Drupal and more so in the Panles module. So not really sure if my requirement is feasible in the first place.
Thanks in advance...
You can do this by adding a field in your Content type for example of type List (text) > Select list. Each list item will represent a Panels display.
Then create a Panel display variant to override the node template (/node/%node) where you have to add the Selection rules: "YOUR List(text) field". So each variant will display if user selects the connected list option.
If you want to see the selected display online without clicking the Save button you will need probably an ajax effect.
Understanding your question here I'll try to break it down. In order to use a panel layout for node add/edit you can chose to create the layout under /admin/structure/panels
Then you create a new variant. In the variant's [context] tab you'll add the context rule "Node add form", don't worry about the edit form aspect. The Node add form will cover the edit form and the additional contextual rule is to target a specific node. Then you can customize your layout and add in all the form fields in the content tab. Don't forget to add in the node submit button. Now after you've created more than one variant you can enable, disable and order them as you like which covers the specific layout for node type.
The panels layout will order it as you like. If you want control the theming from a non-administrative theme perspective you can disable general admin theme forms in /admin/appearance by unchecking "Use the administration theme when editing or creating content" at the bottom or targeting specific node types by creating a module and having:
<?php
/**
* #file
*/
/**
* Implements hook_admin_paths_alter().
*/
function disable_admin_theme_paths_alter(&$paths) {
$paths['/node/add/node-type-name-here'] = FALSE;
}
Assuming your module's name is disable_admin_theme.
Related
I've been making a template for a particular content type, but just ran into a problem: I need to embed a view into the content type.
I am aware this can be done via several different methods, but I don't see one that fits exactly my needs:
I need the view added automatically for all pages of that content type.
Using blocks in a region is not an option, as I want to avoid defining a region in the middle of a page that should only be available for a specific content type.
Translatable label.
Possibility to freely apply a template to all fields in the content type (excluding the embedded view).
I tried doing it via page layout (Panels) and simply adding node content fields and the view to my layout regions, but then I get another problem: I can't style my content fields without doing something that seems a bit over the top:
Currently I have about 20 different content fields in the content type that are wrapped in HTML and styled in my template file. I have a translated label for each of these in the template file. From what I can tell I'd have to add a template for each of the panes containing content fields to add my translated labels and HTML needed to style each field.
I'm not really fond of making 20 templates, 20 theme hook suggestions to get the templates to work and 20 regions in the panel layout just to get a view inserted in the content type.
Am I doing something terribly wrong here? Any suggestions?
You may want to try the Viewfield module or similar modules (search for "view field" or "view reference").
If you are doing something more complex like changing/filtering the view based on some value in your content type, then you may have to use Viewfield module in combination with something else that will help fill in the filter values.
I've never done something like this before so I'm not sure exactly what module combination would work but Rules or Computed Field come to mind as possible helpers.
You have to use "views node field" http://drupal.org/project/viewsnodefield, after installing this module you have to select the "Node content" in the display (like blocks,page). then click the add display. if you want to display the content like this page http://www.richtown.ae/?q=content/arabian-ranches then you have to download the views_galleriffic module and install it and choose the style option "Galleriffic Gallery". You can choose the content type by using the filter in the views.
That's it cheers
i implemented this in my website richtown.ae
if you still unclear please send me the email social#richtown.ae i will reply you & ready to help you we can share information
i am using this module in drupal 6.
I resorted to using the EVA module ( http://drupal.org/project/eva ).
In addition to Woodgnome's answer
Let's say you have a content type named 'Product'
You want to attach a view to it.
Here are the steps using the eva module :
On your view edit page :
Section Displays
+Add : Eva field
Section ENTITY CONTENT SETTINGS
Entity type:Node
Bundles:Product
That's it, going to a node product type will now display the view
After long research, no answer or hints about this question seems to be available.
I want to have multiple image custom content types. But how to add them with jQuery? I want an option that add dynamically multiple image custom content types when you are in the user interface to add new content.
You have the custom content type in front of you: My
You want add a new one
You give it a description, and want to add an image
Here comes my question: You add an image and you click a button to add another image input field (in the backend)
I hope you can help me with this.
Edit: To be more specific, where, in which file do I implement the jQuery functionality to dynamically add more image upload fields. I have no clue where to implement it.
Are you referring to the back-end user (using wp-admin) or a front-end user (using your actual wordpress ite)?
You can use gravity forms ( http://www.gravityforms.com/ ) in combination with this plugin http://wordpress.org/extend/plugins/gravity-forms-custom-post-types/ to create a front-end form that will allow a user to create a new taxonomy term as well as submit an image.
On the backend there is a great plugin to create duplicate fields which would allow you to do what you're describing as "You add an image and you click a button to add another image input field (in the backend)"...It's called magic fields http://magicfields.org/
What about http://podsframework.org/ its nice framework for handaling custom content type.
I've implemented taxonomy menu in Drupal, and trying to set it up so that it is pretty easy for the user to add new items to the vocabulary from the create content form instead of having to administer the vocabulary itself.
So far, all I can manage is the default behaviour of displaying the existing items.
Edit:
Enabling the 'tags' option for the vocabulary does not allow the desired effect - I want the parent/child structure and drop-down menu in the create content form as well as the ability to add a new tag to that drop-down.
A bit more explanation as to why - I'm trying to create an image gallery using a hierarchy of tags (so, sports > soccer > match on 31st May) - the problem is that the general content creator for the site is non-technical, and I'd like to avoid having to make them work through the taxonomy/vocabulary items interface directly.
I think you're looking for the Hierarchical Select module.
Take a look at the last demo at the following page:
http://wimleers.com/demo/hierarchical-select/taxonomy
What you're talking about is called "tags" in Drupal. You want to check the "Tags" checkbox on the vocabulary edit page and that will change the interface on the content entry forms so users can add new terms/tags.
By default for creating content a new page is opened. I want to do this inside a block. A block where there will be some fields like title body taxonomy terms and a create content button. How can I do this?
The form block module will do what you want.
You could you do the same thing in code, using hook_block to create a block. And using
drupal_get_form to render the form.
Try the Panels module.
http://drupal.org/project/panels
It will let you override and re-arrange the node add/edit form.
But, as Jeremy stated, to use this form on other pages of the site you will need to do something custom like hook_block and invoke drupal_get_form.
I agree with the answers from Jeremy and Kevin, but want to give another one.
You can use views to create the block! All you have to do is create a new view display with a block display. Add the fields you want to show, add a link field for the node/add/foo link and give it a node id filter or default argument. Here you have to choose the node id of the node to display in the block. Done!
What's nice with this solution? You can use almost every feature of views theming, drag and drop field ordering, adding new fields is cheap and no extra modules. ;)
Regards
Mike
i tried to create a custom content type in drupal but unnecessary features like Title, Menu settings, and Revision Information, URL aliases come with it which i don't really want ..coz it doesn't mean anything to the user..
how can i hide all those things, just preserving the fields(say only 3 fields from CCK) that i want only for this custom content type??
thanks..
You can automatically generate titles using the auto_nodetitle module, which also enables you to remove the title field from the node submission form.
As others have mentioned above, most of the other form elements don't appear to non-admin users anyway.
With auto_nodetitle module, you can hide it, not remove it. Then, simply assign a title like "your-content-type-nid", so it will be different for each node (nid will be different).
That would be a better title than an empty one.
You will need to do a combination of things to do what you want. One of those is to add the module auto_nodetitle suggested by others. You can hide the "Body" by removing the "Body field label" from the edit screen for your custom content type. Lastly is that you will have to do the right settings for your CCK fields.
If you have CCK fields you want them to be able to edit and others you do not want them to edit, you will need to enable the Content Permissions module in the CCK section of the modules admin page. Once you've done that, you can go to the role permissions page and set what roles have access to which fields. While permissions can potentially hide CCK fields from the user, you can also control what fields are in the teaser, node, and RSS views via the "Display fields" section of your content type editing screens.
Menu settings, revision info and URL alias type info is admin stuff. If you create a new user that doesn't have admin permissions, I'm pretty sure they won't see it.
Can try some thing like below using hook_form_alter.
function my_module_form_alter(&$form, $form_state, $form_id) {
if($form_id='company_node_form'){
$form['menu']['#prefix'] ='<div style="display:none">';
$form['menu']['#suffix'] ='</div>';
$form['revision_information']['#prefix'] ='<div style="display:none">';
$form['revision_information']['#suffix'] ='</div>';
$form['author']['#prefix'] ='<div style="display:none">';
$form['author']['#suffix'] ='</div>';
$form['options']['#prefix'] ='<div style="display:none">';
$form['options']['#suffix'] ='</div>';
}
}
You might want to try the NodeFormCols module. It does several handy things, among them is to add a Manage Form button which allows you to hide most fields in an input form.