Friday 30 April 2021

How can we update Drupal version?

Easy way to update Drupal website, we just have to follow some steps.

Step 1: Please take website full backup(files + database). We can use Backup and Migrate module ( https://www.drupal.org/project/backup_migrate )

Step 2: Site should be in maintanance mode because it can be broken updation time.

Step 3: Please take care of your patch code that already applied in core.

Step 4: Take a backup of Important files like 'robots.txt', '.htaccess', 'settings.php', 'web.config'. We will not update these files otherwise you will not get your old website.

Step 5: Now upload or override New version of drupal files except of given Step 4 files and 'modules','profiles','themes' folder because in new version these 3 folders will be empty.

Step 6: After full upload of files override Step 4 files.

Step 7: Clear the cache of website.

Step 8: Run update.php file via https://yourserver.com/update.php But by default this file is blocked, you have to enable this feature by setting.php file, go to setting.php file and change the option $settings['update_free_access'] = FALSE; to $settings['update_free_access'] = TRUE;

Step 9: After that save setting.php file and clear cache and hit https://yourserver.com/update.php after completion of process you can check you finally updation of site via https://yourserver.com/admin/reports/updates.


Note: If have any suggestions or issue regarding 'How can we update Drupal version?' then you can ask by comments. 

What is the difference between upgrade and update in Drupal?

It's easy to understand, what is upgrade and update, please have a look.

Update: If Drupal gives minor change version like Drupal 8.0.1 to 8.2.0, so that is update.

Upgrade: If Drupal gives major changes version like Drupal 6 to Drupal 8 or from Drupal 7 to Drupal 8,  that is upgrade.


Note: If have any suggestions or issue regarding 'What is the difference between upgrade and update in Drupal?' then you can ask by comments. 


Thursday 29 April 2021

How to load CSS or JS in footer?

If, we have to load CSS and JS in header or footer in Drupal 8, so we will call our CSS or JS in '*.libraries.yml' file, there we will use scope attribute for this purpose.

we just have to pass the option value either header or footer.

like: scope:footer  or  scope:header 

Example:

If our yml file is mytheme.libraries.yml and we are attached assets there..

slick_slider:

  css:

    theme:

      slick.min.css: { type: external, scope:footer }

  js:

    slick.min.js: { type: external, minified: true, scope: header }

  dependencies:

    - core/jquery


Note: If have any suggestions or issue regarding 'How to load CSS or JS in footer?' then you can ask by comments. 


Monday 19 April 2021

How to remove or cleanup old aggregated css and js files?

It's very problematic question that how we remove old aggregated css and js files otherwise folder will be too large.

In drupal we have 2 functions drupal_clear_css_cache() and drupal_clear_js_cache() that are creating our aggregation files and store in css and js folder in files/css or files/js folder.

In drupal we have on special variable `drupal_stale_file_threshold` and the default value of this 30 days, it means after 30 days old aggregated file will automatically removed and we can change this 30 days value or less then 30 days like..

Code:

variable_get('drupal_stale_file_threshold', 2592000) //for 30 day. 

variable_set('drupal_stale_file_threshold', 172800) //for 2 days.  


Note: In drupal, we have advance aggregation module, there we have delete old aggregated files option.



Note: If have any suggestions or issue regarding 'How to remove or cleanup old aggregated css and js files?' then you can ask by comments. 

How to permanent delete unused files in Drupal 8?

Drupal 8, we can programmatically delete our unused files(assets) easily. we just have to write the code in custom module file in `hook_cron` function. After put the code and clear the cache whenever you hit the cron manually or automatically will run this code will execute.

Code:

/**

 * override hook_cron()

 */

function mymodule_cron()  // mymodule will replace with module name

{

  // get all files ids

  $fids = Drupal::entityQuery('file')->execute();

  $file_usage = Drupal::service('file.usage');

  // loop all fids and load files by fid

  foreach ($fids as $fid) {

    $file = Drupal\file\Entity\File::load($fid);

    $usage = $file_usage->listUsage($file);

    // check if file not used

    if (count($usage) == 0) {

      $file->delete();

    }

  }

}


Note: If have any suggestions or issue regarding 'How to permanent delete unused files in Drupal 8?' then you can ask by comments. 

How to resolve max execution time error in drupal ?

When you found error regarding 'max_execution_time' exceed, then you can follow steps for resolve this error: Steps:   You can put t...