JS file template

(function ($) {
  $(document).ready(function() {
    /* TODO: implementation */
  });
})(jQuery);

File URI to URL

file_create_url('public://some_file.pdf');

Will return http://example.com/sites/default/files/some_file.pdf

Conditional css/js

function mytheme_preprocess_page(&$variables, $hook) {
  if (arg(0)=='taxonomy' && arg(1)=='term') {
    drupal_add_library('system', 'ui.tabs');
    drupal_add_js( path_to_theme() .'/path/to/script.js', array('weight' => 9));
  }
}

Theming notes

paste into template file

<div class="messages warning">TODO: theme <?php print __FILE__ ?></div>

Bluehost + Drush + out of memory

As Drush is called from CLI, making changes to php.ini will not do any good, as it will increase Apache PHP memory limit only. Instead, you should set it in settings.php by adding this line at the end of the file.

ini_set('memory_limit', '128M');

Check out this issue for more information: http://drupal.org/node/457416

Cloning Drupal project from staging server to localhost

Here is a handy script that I use to clone existing Drupal project from a remote machine (staging) to a local developement machine. This script is intended to work with Bluehost shared hosting.

Requirements: git+drush installed both on remote and local machines

You will also need to put TEMPLATE.aliases.drushrc.php to your ~/.drush directory.

#!/bin/bash
 
if [ $# -eq 0 ] 
then
  echo "This command will clone existing drupal project from remote server" 
  echo "Usage: $0 project_name"
  exit 1
fi
PROJECT=$1
#
# EDIT VARIABLES BELOW
#

Logowanie SSH bez hasła

Generujemy parę kluczy na maszynie lokalnej, naciskając cały czas 'Enter'

cd
ssh-keygen -t rsa

W katalogu ~/.ssh powinna pojawić się para kluczy (id_rsa i id_rsa.pub).

Doklejamy klucz publiczy z maszny lokalnej na maszynę zdalną, do pliku ~/.ssh/authorized_keys. Najszybciej można to zrobić tak:

ssh-copy-id -i ~/.ssh/id_rsa.pub login@maszyna.zdalna.com

Virtual host na localhoście (Apache + Ubuntu)

W /etc/hosts dopisujemy

127.0.0.1 mojastrona.local 

W /etc/apache2/sites-available dodajemy plik mojastrona.local

sudo vim /etc/apache2/sites-available/mojastrona.local

i wpisujemy tam następujący tekst.

<VirtualHost *:80>
    ServerName mojastrona.local
    DocumentRoot /.../www/...
 
    <Directory /.../www/...>
        Options Indexes FollowSymLinks Includes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Git + Drupal + Drush

Tworzę puste zdalne repozytorium

ssh pgorecki@pgorecki.pl
git init --bare ~/repos/projekt

Tworzę repozytorium

git init projekt && cd projekt

Tworzę kopię pliku .htaccess, ponieważ bluehost wprowadza do niego swoje zmiany, a nie chcę, żeby te zminy były w repozytorium

cp .htaccess .htaccess.copy

Dodaję plik .gitignore:

.htaccess
/error_log
/favicon.ico
/sites/default/*

Konfiguruję zdalne repozytorium

git remote add origin pgorecki@pgorecki.pl:repos/projekt

Instalacja Drush

Pobieramy i rozpakowujemy

wget http://ftp.drupal.org/files/projects/drush-All-versions-4.1.tar.gz
tar xzf drush-All-versions-4.1.tar.gz
# instalacja dla wszystkich, jako root
rm drush-All-versions-4.1.tar.gz
sudo mv -R drush /usr/local/lib/drush
sudo ln -s /usr/local/lib/drush/drush /usr/bin/drush
# pierwsze wywolanie jako root, bo drush coś sobie doinstalowuje przy pierwszym uruchomieniu
sudo drush
Syndicate content