2

for single article view I've moved the print/email function up to be inline with the title, instead of being located below the title in top-right corner of the content.

Did this my moving the code under the "<?php if (!$this->print) : ?>" up to before the title in the file .../com_content/article/default.php.

But not quite sure how or where to do this for the blog view?

The print/email function for the blog view is located in: .../layouts/joomla/content/icons.php

But this file doesn't define it's location?

So which file do I need to modify to move the print/email div?

2 Answers 2

5

The way you did change the view for your article layout is half the way the appropriate. That's because you did a good job finding and editing the correct php file (the template file for the article view), but you didn't follow the recommended practice for modifying core files.

A. The proper way: Template Overrides

For cases like these, Joomla provides a very flexible way to override the core layouts/view/templates. The practice is called "Template Overrides". It involves duplicating the template file you want to modify, and place it at the corresponding "view" folder, of the "component" folder at the "html" folder inside your template.

To translate this to a directory path:

/templates/"YourTemplate"/html/com_component/viewname/templatefile.php

Specifically for your article view override, this should be:

/templates/"YourTemplate"/html/com_content/article/default.php

Note that the html, com_component, viewname folders might not exist and you will have to create them.

That's regarding the proper way to override a layout.

B. Blog Category Layout

Now regarding the Blog Category layout modifications you want to do, you should think it similarly like the article view you changed. I mean why you went that far away from your first implementation, as the category view is located just a single directory next to the article one in com_content.

So for the Category Blog Layout, you need to edit the /com_content/views/category/tmpl/blog_item.php. In there you will find the call that renders the print-email icons.

Remember
...to follow the Templates Overrides technique I described above, which should lead you to create another one folder named category inside the templates/youtemplate/html/com_content/
and place there your modified template files of the category view.

Notes:

  1. Depending on your template, it's possible that such overrides might already exist inside there.
  2. It's possible that you might only have to adjust your css, in order to bring the print/email icons next to the title, and not have to modify the html.

References: More info about template/layout overrides at Joomla Documentation:

  1. How to override the output from the Joomla! core
  2. Understanding Output Overrides
  3. Layout Overrides in Joomla

Hope this helps.

1
  • I have of course made my changes in a template override. I should probably have mentioned that in the question. Have found the call the renders the print-email icons and moved them to my desired location, thank you.
    – Hammur
    Commented Oct 20, 2014 at 12:38
2

If you want to override .../layouts/joomla/content/icons.php, you can copy the file to templates/YOURTEMPLATE/html/layouts/, and make adjustments to this copy as needed. You'll probably have to play around with some css too, in order to get it right.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.