Drupal php file in theme - php

Under the path "\sites\all\themes\fusion\mytheme\", I found that some php file called "taxonomy_term_page.tpl.php", "views-view-fields--product-brand-category--block-2.tpl.php"... will generate some specific content on specific page, how can I configure this php file to specific link/block or whatever?

Yeah it would be a bit long to explain what to do with regards to what each file does. You would need to play around a bit and see how it all works.
I would recommend that you check out:
http://drupal.org/theme-guide/6
and read up on how the theme system works for the Drupal version that you are using.
but for example the "taxonomy_term_page.tpl.php" would be used to change the output of content that you would visit for a taxonomy term that you created.
eg. mysite.com/taxonomy/term/ which might be mysite.com/cooking-books/italian-pizzas
and the "views-view-fields--product-brand-category--block-2.tpl.php" would be for theming the output to one of your views which is configured to output as a block...
I'm happy to answer any more of your questions

You aren't going to be able to configure a specific file to fill the role for a specific theme (the files are picked by their file name for their purpose).
You should check out the devel module (specifically the theme devel module), which can tell you what parts of the output are expected in specific files. I'm not sure if the themer module is still in devel for 6.x, but if it isn't, try the devel_themer module.

Related

How can I find the file some element is loaded from?

I manage a website which is based on Drupal CMS. I have FTP access and I want to modify the structure of the header.
I know that the header is loaded from separated php file but I don't know what is the path to the file and how to find it in FTP.
Is there any way in Chrome dev tools to find the path to the file and is there a general way to find the files from which some part is loaded?
Check under "Appearance" from admin menu what theme is used and download whole theme over FTP. Themes should be in sites/all/themes dir. Then search the theme files and change what you need.
I don't think that browser can be aware of theme structure since it receives the whole pages and it can not know how page html is built on server side. There is an drupal module called Theme developer which can help you with that:
https://www.drupal.org/project/devel_themer
Unfortunately it exists only for Drupal 6 & Drupal 7 - not sure what version of drupal uses your site.

How to customize moodle core files?

I would like to customize view.php file which is the core file of moodle, since modifying it in core is not good practice I would like to modify it from my theme,
By default there is a cool theme, I just copy pasted the course directory into it and Try to customize it but moodle is not recognizing my directory.
What is the procedure to do this kind of customization, I check this link but unable to follow it since I don't understand. Can any one help me here about it?
Despite the fact that there are several view.php files, which one do you want to adapt?
Please note that you cannot simply overwrite for example course/view.php in your theme. You have to override the specific renderers, see https://docs.moodle.org/dev/Overriding_a_renderer
To override an url in Moodle you may use custom scripts. However if it's a matter of a renderer you should try overriding that first.

php plugin question

I have a PHP-mysql application which is running by portable server (i.e.XAMPP). The client buy additional functions (like Chart, report) after using the gerneral app.
However, for example, there are some links need to be linked from general app to additional function after installing. Those links will be disabled when the addtional function hasn't been installed.
My question is how to solve the above scenario? Really appreciate for any help and Thanks in advance.
A simple solution would be to define a constant, for example PLUGIN_CHART, in the plugin and in the main app just check if the constant exists and is true.
If the plugins are actual functions, another way is to use function_exists() to check if it's available.
There are several ways of going about it, here is a simple way:
Have a directory called plugins. Within that directory create a folder for each plugin you have. For each of your client, put only the plugins they will be using.
Now, instead of linking each possible plugin, check to see if the plugin is loaded (or at least if the directory exists), if it does, create a link!

Magento - Custom Products Ordered Report - How to Extend using "local" code pool?

I am trying to customize the Products Ordered report so that it only shows a summary of the products that have an SKU starting with XX. I have been following the tutorial at http://magentocoder.jigneshpatel.co.in/reports/create-custom-reports-in-magento-admin/ to extend the module, but this tutorial shows how to extend the report by adding code to the "core" code pool, which will cause problems further down the road. I have been unable to get the modifications to work using the "local" code pool, because of the confusing nature of the Magento configuration files...
Has anyone successfully extended this (or a similar) report by making the modifications in the "local" code pool? There doesn't seem to be much in terms of documentation or tutorials surrounding this topic, which I find surprising.
Any help is greatly appreciated.
The simplest way is to copy the folder/file structure from /core downwards and recreate the bit you want inside /local - so app/code/local/Mage/Adminhtml/Block ... etc.
This works for PHP files, the local folder comes first in the include path so files there will be preferred over core, but I'm not sure about the config.xml...I think it would be fine though (you'd need the whole file, with your additions, as it won't read the core version at all).
This will leave core files intact, but if the files you've copied change in an update you'll need to take those changes and put them in your version.
Doing it as a standalone module would be possible, but is a bit hard to explain in an answer...the AW_Blog module is a good one to look at for working out what the config files do though.

Switching themes in Drupal without the web interface

I'm in the process of learning php and creating themes.
Unfortunately, while I was editing a theme that i was currently using in drupal, I made a mistake in the theme such that nothing shows up anymore, even if i were to hit drupal/index.php. I want to change my broken drupal theme to a working one but i'm unable to do so because I can't even view the administration section.
The How To reset your theme via the database page on Drupal.org has instructions for changing your theme directly from the SQL prompt.
It's not immediately clear whether this will work in the most recent version of Drupal, so back up your database before attempting this.
The easiest way to change your frontend theme is to set it in your sites/default/settings.php:
$conf['theme_default'] = 'minelli';
In terms of sorting your current problem, here's a simple way to do it that should work... Let's say your current theme is called "custom_theme".
Go to your theme directory ("sites/default/themes" probably)
Backup your development theme (i.e. move it elsewhere, if you're using Linux command line do something like "mv custom_theme custom_theme.bak")
Copy the garland theme to here and name it the same as your broken theme (if using LInux command line, something like this should work "cp -a ../../../themes/garland ./custom_theme"
Try viewing your site now. It should now use garland instead of your broken theme.
As others have said before, it's also highly recommended that you use a different theme for admins as you do for normal users (in case you break stuff). Select a safe admin theme (like garland) and then you can nearly always get to the admin interface if you're playing with theming.
Or if you are using Drupal 6, removing/moving the broken theme folder will make Drupal change the theme to the default theme (Garland).
Maybe using two themes in parallel will help.
Set one for the "user frontend" - the one you are developing at /admin/build/themes, another one standard, like garland, which you are NOT going to change, as a "administration backend": /admin/settings/admin.
If you happen to break the theme you're developing, you just go to the admin area (/admin), it will switch back to garland.
you can also insert a new login form in your theme by including this code:
`<?php
if(!user_is_logged_in() ){
print drupal_render(drupal_get_form('user_login'));
}else{
print "You are already logged in!";
}?>`
anywhere in the page.tpl.php file of your broken theme, then register with your admin credentials ;)
Please also see the following stack over flow issue.
it is related to them
Changing Drupal's theme and keeping Garland as the admin theme?
Changing the Admin Theme in Drupal 6 Directly in Database
Now here is solution :
Remove the files of the bad theme and clear the cache. After clearing the cache you will be able to login again.
The main difficulty is that you have to clear the cache without being logged in.
Try one of the methods for clearing the cache described in
Clearing Drupal's cache
IF Not then Try this one :
If you have drush, the command to type would be
drush vset theme_default garland
Either on the commandline, or via an administration interface (eg PHPMyAdmin) enter the following query
UPDATE system SET status=1 WHERE name = 'garland';
Then either:
UPDATE variable SET value='s:7:"garland"' WHERE name = 'theme_default';
TRUNCATE cache;
TRUNCATE cache_bootstrap;
TRUNCATE cache_block;
Note that 's:7' refers to the length of the following string. Modify as needed. This is database surgery, tricky stuff.
OR
If you are using per-user themes, and you've just messed it up for yourself as admin, try
UPDATE users SET theme='garland' WHERE uid = '1';
Be careful, as getting either of those lines wrong can mess things up just as badly.
Cheers!
Mudassar Ali
As far as I know, theme settings are stored in the database, as well for each individual user. The quickest way to get rid of a theme is probably removing it from the theme path.
Just move it onto your desktop and Drupal should be able to detect that your requested theme is missing and point you to the default instead.
Update: Tried this on my Drupal 5 installation, it turned out 'clean'. I suggest copying a working Drupal theme into your theme directory (make a copy first).
It's worth mentioning that if you're using the "Sections" module to apply different themes to different parts of the site, the instructions given on the Drupal site won't necessarily work — you may find that moving the problem theme directory out of the way is the only method of seeing the admin interface properly.

Categories