Using ##search Page as Homepage - plone

We want to customize the Plone site homepage, making it Google style looking, for its major usage is to search contents. The nearest base is the result of /##search browser view. Is there any quick and recommended way to realize such customization?

Add search to available view methods in the ZMI -> portal_types -> Plone Site:
Select the search view from the display menu:
Enjoy search view
Bonus points for exporting the customization to a file system add-on via ZMI -> portal_setup

That's how you can set the ##search view as default view on your plone site root:
Go to http://your.domain/site/manage_propertiesForm
If there is a layout property, set as value ##search
If there is no layout property, create a new one with this name, the type string and use the value ##search
You can then style the search form with CSS to your needs.
You can make the customizations more specific by using the CSS-selector .template-search.portaltype-plone-site #searchform.

Related

Embedding the view of a url inside the header of another view

Currently, I have a dynamically created custom pie chart located at mywebsite.com/customchart that is created through a module I made using Highcharts.
I have view, that is listed in the views module shown in mywebsite.com/admin/structure/views/view/ which I would like to embed the custom chart into but I cannot find it through Add Header>Global: View area.
How exactly would one be able to achieve this? Programatically? How?
You can do it programmatically.
First you have to find out what template file is used for rendering the header. Easiest way: go editing your view, select proper display and then unfold "Advanced" options block on the right column and click "Theme: information". Here you can see what templates files are used (assuming you are using Drupal 7). The used ones are in bold. You can collect actual template code there so you don't have to find template file at all if you want to override it. And you can see file naming suggestions, so there you have everything you need to override template file.
If your theme is not overriding standard templates then you should do that - it's not good idea to change directly templates provided by Views module.
So, the first part would be finding out where would you like to embed the view, at what template and at what position. Second part is using function views_embed_view() for doing that:
https://api.drupal.org/api/views/views.module/function/views_embed_view/7.x-3.x
As you can see there, first parameter is machine name of the view, second of display and then you can pass parameters if your view accepts them. So call that function from proper place and you'll have your view embedded.
Also, there is display type "embed" which you can use for embedding views like this. It will provide those "edit view" links when you hover your view content while logged in as admin...

plone: "to the top of the page"-link at the end of a collection list

how can I add a "to the top" link at the end of a collection in plone?
This collection is in a collage. I thought of adding the article type "page" in a new row where I could use the HTML-Editor and use there an internal link to the top of the page.. But it seems inconvenient to me.
Isn't there a better way?
A very simple way could be using the Plone inner feature of the document_actions (a tool still available but not used anymore from Plone 4.0 and up).
Go to ZMI, access the portal_actions tool, the document_actions. Now add a new "CMF Action" from the form on the right.
The important information for you is the "URL (Expression)", that must be something like string:#youranchortarget. To fill every other field copy from existing actions.
If you need this link only for a content type or something like this, just play with the "Condition (Expression)".
Links inside this tool are displayed in the plone.abovecontenttitle.documentactions viewlet.
If you want the link on every "page" item, then you could customize the default view's template.

How to embed a node on homepage in Drupal 6?

How can I embed a node on the front page in Drupal 6. The node basically has the image upload field along with title and description. I want it to some how appear on the homepage alongwith a "views" which shows the uploaded images at the bottom.
What I want is to give the users an ability to create content which is right now available at .../node/photo/add. I want to somehow show this box which lets one create content i.e. upload photo with title and description on the homepage.
It's basically just an attempt at creating something like imageshack as an experiment.
I am pretty n00b when it comes to drupal so please be more descriptive.
Jukebox's solution works as a point-and-click method. If you want to do it with code, it's more like this:
create a glue module Handbook | Example Blog Post
turn it on in admin/build/modules
create a menu item using hook_menu() that will become the page
embed the node with node_view()
embed the view (blog post)
in admin/settings/site-information set your page to the
You can use the Node Blocks module to, well, turn your node into a block. This means that you can go to the /admin/build/block page and place your node in a particular region.
After installing the module, edit the Content Type of the node you want to turn into a block. Under Workflow Settings, Available As Block, choose Enable.
Now you can go to /admin/build/block and you can see some new blocks. Just choose the one you want and place it in the region of your choice. You can also configure that block's visibility settings from there as well.
If your planning on having a more complicated home page at any point in the future I'd highly recommend using Panels to do this. It will allow you to arrange your front page with views and nodes in a grid method.

how to Theme Catalog page in ubercart?

I would like to change the drupal ubercart catalog page from default grid to list. Is there any shortest way?
Thanks & Regards,
Satya
The most efficient way is to edit the Ubercart catalog view (go to yoursite/admin/build/views). Look for the Style option under Basic Settings, click it, and change the setting from Grid or Table to List (or theme the view; see this page for more information).
I'd suggest you to use Views+Advanced Catalog modules. It's really better alternative for "out-of-box" Ubercart catalog.
Depending on your version of Drupal/Ubercart, you can toggle between Grid and List view under admin>store>catalog
But, I recommend creating custom view which allows you to assign custom CSS classes and then target theme elements in your stylesheet. Plus, you are able to create responsive catalog pages which ubercarts 'out of box' catalog doesn't allow due to tabled display.

How do I add items in Primary Links automatically as soon as some user publish new content

I am building a website www.etutornetwork.com, in top menu I have included a link to a new content type [services]. I want to add a link in dropdown menu as soon as I publish new content in services.
Please Help, Thanks in advance.
and one more question, I dont want to give any name to one of the menu in the site. I tried using or leaving it blank, but it does'nt like this.
You can attach it in node creation time (see Menu fieldset), or use module like Auto Menu. Some more details about this module (from its project page):
The Auto Menu module automatically generates menu entries on node creation/edition. Parent menu item can be specified on a per content type basis.
This module acts when the menu section of a node is left empty only. So, users can still organize menus manually. Moreover, default setting for content types is to not create menu items automatically.
I use Taxonomy Menu, to create my secondary menu. It is very flexible to use. Some more details about this module (from its project page):
Features
Custom Menu per vocabulary
Uses the default taxonomy term path or custom paths
Integrate with Views
Integrate with Pathauto: use URL/path aliases
Does not interfere with other menu modules
You can take away the permission from users dealing with menus. Then when you are publishing submitted content from them, you can assign them a menu entry and control the title.
Other than that, you could use Views (since Services is a content type) to create a block that lists all Services with links directly to the node.
Either way, someone will have to title the nodes/menu items. It's easier administrative wise to remove menu permissions from users submitting content.

Resources