I have successfully created content types for certain pages which I have in Drupal. I have also successfully created menus for those content types, so when a user is on a certain type, for instance, Blog Article, they are presented with a certain menu. The problem is when I few all the blog articles the menu is there, but when when I few the /blog page which shows all the blog entries, the content block is gone.
I've set it up so the block will only be shown with certain content types, but there doesn't seem to be a content type of blog module in general. Is there a way around this? It is the same for the forum page. It will show for forum topics, but not for the actual forum.
I hope I've made my self clear, as it is quite hard to explain.
I do not know what version of Drupal you are using but I will try to help.
As per docs on drupal.org:
Configuring a block
Go to the Blocks overview page (Administration > Site Building > Blocks) to configure the blocks on your site. This page allows you to
drag-and-drop blocks into different regions as well as reorder the
blocks within a region.
Next to each block you can click "Configure" to change the specific block settings: Block title: Allows you to override the default title
for the block User, Role, and Page specific visibility: Adjust
visibility for block based on user, role or page. Additional settings
may also be available, depending on the particular block.
Note that blocks are configured per theme. If you change the theme or
enable multiple themes, you will need to configure blocks per theme.
Yeah. I may of messed the formatting a bit but basically, in step 2, you want to configure your block visibility by page specific visibility. It looks something like below:
Basically, I think in your case you could use that to show the blocks containing your menus on specific pages and add whatever paths you want your menu to show on.
Hope that helps! Happy coding
I figured it out. Instead of trying to display a block based on the content type you have to change it so it is displayed based on the URL. The reason for this is because the blog module which comes with Drupal 7 doesn't have a content type, so when a user arrives at http://www.example.com/blog there is no content type and throws all the blocks restricted by content type out the window.
To get around it I had to install a plugin called Pathauto. This plugin allows you to specify a default URL for a content type. Be sure to install this plugin first before creating any content as any previous URLs will not work, so you will have to manually go back and change the URL alias.
Once you have installed the Pathauto plugin go and setup your paths for content types. I set it up so anything which is a derivative of the content type "Blog Entry" is given the URL /blog/post-name
Now all you have to do to set the block is go to the block and click configure. In the section Pages make sure you select "Only the listed pages". You'll have to type two lines. blog and blog/*
Now that you have set this any new content which is created as Blog Entry will fall under this URL expression and the block will be shown.
Works like a dream now. What a headache to get working.
Related
I've been trying to figure out how to add a php variable into my WP navigation links.
Let me explain:
I'm gonna set a cookie on the very first page of my website, when the user clicks on one of 4 types of profile:
-family
-pro
-seniors
-cadres
Currently, I have a theme switcher extension wich modifies the WP theme depending on those prefixes:
http://mywebsite.com/family
http://mywebsite.com/pro
http://mywebsite.com/seniors
http://mywebsite.com/cadres
... etc
The colors & content of the 4 "home" pages are different, but I'm using the WP navigation menu (wich remains the same on every page, so the prefixes disappear when clicking on its links).
Initially, I wanted to modify my menu links like that:
https://mywebsite.com<?php if (isset($_COOKIE['profil'])){echo '/'.$_COOKIE['profil'];} else{} ?>/navigation-link1
Here:
menu
But I can't add php here, and the solution is not ideal because it would only apply to the menu, and not the posts permalinks (I want some posts to be available regardless the profile and I don't want to duplicate all my posts).
Ideally, I would like to have a solution to set the WP theme directly based on the stored cookie. This way, it would also apply when the users click on a post permalink.
I've read things about a "walker" but I don't know what it is, wp_nav_menu_objects, but I didn't understand what files to modify nor wich code to use.
I always search the web to find my answers, but I'm french and I think my understanding has reach it's limits, so if somebody could take the time to explain to me like I'm 4 years old :), I would be grateful.
Thanks
I inherited a implementation of Gallery2 embedded in a Drupal site. I need to change the url of the page this is on from /gallery to /somethingelse.
Drupal is not something I am very familiar with, but I've done some stuff here and there with it years ago.
The /gallery page is not listed anywhere in the admin interface and the content is living in page-gallery.tpl.php.
A 301 redirect is going to be necessary (which I do know how to do), but that isn't the solution I'm looking for obviously (just to avoid getting that answer). Is there any simple way to change this url?
First you will have to understand how drupal handle URLs & generate a page based on it. There are several way to have a URL in drupal, where you can navigate from somewhere.
Usually we make page(add content) of some content type, which you create before with all the required fields. Drupal give serial node number to all newly created page, so to have your own custom URL, you will need to use PATHAUTO module, which will create URL based on title of the page, though you can modify at time of creating page.
We create listings of some things e.g. images for gallery by help of VIEWS & we can create page for the listing. We get to give URL for the page, which you can edit any time.
We declare URLs in our custom module under hook_menu(). Other contributed module also do the same & that's why you get some pages when you enable the module.
Apart from page content, drupal have block system. A block can contains content, image, links etc & display of it can be set to all pages as well as any specific page. So there is no limitation for you to make your page with the URL which you want if you are using PATHAUTO module. If you have listing from views or code which is generating page, then you can always go there & change.
I have an issue in Drupal with getting node content to display itself. I suspect it could have to with the CSS styling, although I'm not 100% sure what's causing the issue.
Background:
So basically I'm trying to setup a blog but I'm running into serious issues trying to simply get the blog posts to display themselves.
I created a custom Drupal 7 theme using the export function of Artisteer (http://www.artisteer.com/?p=overview). A stylesheet called style.css was generated. I put some of my own CSS into this stylesheet along with the parts that were auto-generated. I should mention I did some amount of custom CSS to force the homepage to look the way I wanted.
I followed the instructions from the PDF at (http://learnbythedrop.com/buildingyourblog) to create a blog (great easy-to-follow guide). The most relevant pages for Views are pages 34 - 36, where he takes you through how to create a "Blog Post" view, in order to display your blog content correctly. However, when I got to the point where he created sample blog content and it displayed it's title and main content, this simply didn't work for me. See this link for example (Sample content that I created for testing purposes):
(http://www.productworld.com/blog-posts/2012/06/08/hello)
I can see a list of titles for sample content that I created (under the Recent Posts block), but I can't view any content from the individual blog posts themselves. The page is just blank.
Also, I can't see a list of the titles and teaser links - it should show up under (http://www.productworld.com/blog-posts) but that URL gives me a "page not found" error. This was something that worked in a previous iteration but now does not work.
Here are 2 screenshots of my View settings, in case it's relevant:
http://i.imgur.com/uadew.png
http://i.imgur.com/9yOUk.png
Questions:
What is the likely cause of the blog content not displaying? (If I do a preview of the blog post within the Views section I can see the blog content just fine, it just won't display on the actual page.) Is it styling? Some setting in Views? Some Block setting? I've searched my style.css file and tried commenting out everything to do with "content:hidden" and "display:none" to no avail. I've tried every combination of settings in the blog posts View to no avail. I've tried placing "Main Page Content" and "View: Blog Posts" blocks in various regions, and changing around the settings that restrict where the block can be displayed. The blog post title/body content doesn't show up in the page source at all, which could be a clue. How would I go about debugging such a problem?
Why is www.productworld.com/blog-posts saying "page not found", even though I've specifically set up a view to create a page at this URL? And why does www.productworld.com/blog-posts/2012/06/14/hello-world-3 show up as a valid page, when it contains "blog-posts" in it's URL?
Any help would be greatly appreciated. If I should display stuff to do with my stylesheet please let me know.
To me it looks as if you have panels overriding the Node template. Which is why your node is not being displayed properly.
Go to Structure > Panels and see if the Node Template option under Manage pages is enabled. If it is, that's probably your issue. You can tell if it's enabled by looking to the right of the text to see whether it says enable or edit.
You can then edit that setting and then edit the content and choose Node > Body to get the body of the blog post to show correctly.
Take a look at this intro video to panels if you aren't familiar with it. http://yadadrop.com/drupal-video/panels-3-overview
Take the leading '/' character out of your page path for the view - internal Drupal paths should generally never have that, but the system will prepend the configured base path to paths on your behalf (and it is probably already a '/').
I am building a site on Drupal 7 and recently when I went into add content, not all of my content types were listed. Thinking it might be related to the recently installed webform module, I disabled the module and removed the webform content type (which was one that was showing up under add content). These changes made no difference. While the webform content isn't there any more, the other content types are still not showing up. I can manually get to the page to add the missing content types by entering the URL /node/add/missing-content-type-name. There must be some corruption in the database that is not aggregating all the content types on the add content page. How do I fix this?
I got the answer here: http://drupal.org/node/1291336. The menu items were disabled and needed to be reenabled under the navigation menu.
Is there a way to make all the posts promoted to font page to be included in RSS?
I believe you need to make use of the Promote to Front Page / Sticky options under the Publishing options on the node.
In the edit form for each content type defined in Drupal (in example, the one at http://example.com/admin/content/node-type/page), it is possible to promote to front page all the nodes of that content type.