自分で作ったり提供したりするものは、まず自分自身で使ってみろろということです。自分じゃ使わないものなら人はいくらでも無責任にも無思考にもなれる。そういう投げやりな「サービス」やら「プロダクツ」なんて、だれだってイヤだ。自分が作り手と同時に利用者の立場になれば、ちゃんと使えるレベルのものを提供しようとします。

ラベル Drupal開発 の投稿を表示しています。 すべての投稿を表示
ラベル Drupal開発 の投稿を表示しています。 すべての投稿を表示

2012年10月8日月曜日

Drupal管理ツール内容ハック



1、koma8モジュール作成
2、koma8.module内容
<?php
function koma8_fieldset($variables)
{
    $element = $variables['element'];
    element_set_attributes($element, array('id'));
    _form_set_class($element, array('form-wrapper'));

    $output = '<fieldset' . drupal_attributes($element['#attributes']) . '>';
    if (!empty($element['#title']))
    {
        // Always wrap fieldset legends in a SPAN for CSS positioning.
        $output .= '<legend><span class="fieldset-legend">' . $element['#title'] . '</span></legend>';
    }
    $output .= '<div class="fieldset-wrapper">';
    if (!empty($element['#description']))
    {
        $output .= '<div class="fieldset-description">' . $element['#description'] . '</div>';
    }
    $output .= $element['#children'];
    if (isset($element['#value']))
    {
        $output .= $element['#value'];
    }

    if (isset($element['#postscript']) && $element['#postscript'])
    {
        $output .= '<div class="postscript">' . $element['#postscript'] . '</div>';
    }

    $output .= '</div>';
    $output .= "</fieldset>\n";
    return $output;
}
function koma8_theme_registry_alter(&$theme_registry)
{
    $theme_registry['fieldset']['function'] = 'koma8_fieldset';
}
function koma8_form_node_form_alter(&$form, &$form_state, $form_id)
{
    $form['revision_information']['#postscript'] = t('何か文言をここに入れる');
}

Done!

Drupalコンタクトフィールドグループ



1、koma7モジュール作成
2、koma7.module内容
<?php
function koma7_form_contact_site_form_alter(&$form, &$form_state, $form_id)
{
    dpm('koma7_form_contact_site_form_alter');
    dpm($form);

    $form['contact_fields'] = array(
        '#type' => 'fieldset',
        '#title' => t('Contact information'),
    );

    $form['contact_fields']['name'] = $form['name'];
    $form['contact_fields']['mail'] = $form['mail'];

    $form['message_fields'] = array(
        '#type' => 'fieldset',
        '#title' => t('Message'),
    );

    $form['message_fields']['subject'] = $form['subject'];
    $form['message_fields']['message'] = $form['message'];
    $form['message_fields']['copy'] = $form['copy'];

    unset($form['name'], $form['mail'], $form['subject'], $form['message'], $form['copy']);
}

Done!

Drupalフォームフィールド整理



1、koma6モジュール作成
2、koma6.module内容
<?php
function koma6_form_alter(&$form, &$form_state, $form_id)
{
    if (isset($form['#node_edit_form']))
    {
        unset($form['author']['#group']);
        $form['author']['#collapsed'] = FALSE;

        $form['revision_information']['#weight'] = -10;
    }
}

Done!

Drupal7文章編集テキストエリアサイズ調整



1、koma5モジュール作成
2、koma5.module内容
<?php
function koma5_form_alter(&$form, &$form_state, $form_id)
{
    if ($form_id != 'search_form' && $form_id != 'search_block_form')
    {
        dpm($form_id);
        dpm($form_state);
        dpm($form);
    }
    if (isset($form['#node_edit_form']))
    {
        $form['body'][$form['language']['#value']][0]['#rows'] = 5;
    }
}

Done!

2012年10月7日日曜日

Drupal7検索フォーム

Drupal7検索フォームを修正するサンプルです。





1、koma4モジュール作成
2、js/koma4search.js作成
3、koma4search.js内容
(function ($)
{
    Drupal.behaviors.koma4search =
    {
        attach : function ()
        {
            $('#block-search-form .form-submit').hide();
                
            $('#block-search-form .form-type-textfield .form-text')
            .attr('size', 30)
            .attr('value', Drupal.t("Enter search query..."))
            .click(function(){
                $(this).attr('value', '');
            })
            .blur(function () {
                $(this).attr('value', Drupal.t("Enter search query..."))
                .click(function(){
                    $(this).attr('value', '');
                    $(this).unbind('click');
                });
            });
        }
    }
}(jQuery));
4、koma4.module内容
function koma4_init()
{
    $path = drupal_get_path('module', 'koma4');
    drupal_add_js($path . '/js/koma4search.js');
}

Done!

2012年10月6日土曜日

Drupal7変数受け渡しphp-javascript

PHP変数をJavascriptに渡す



1、koma3モジュール作成
2、js/koma3.js作成
3、koma3.js内容
(function ($) {
    Drupal.behaviors.koma3helo =
    {
        attach : function()
        {
            console.log(Drupal.settings.helo);
            console.log(Drupal.settings.props.prop1);
            console.log(Drupal.settings.props.prop2);
            console.log(Drupal.settings.props.prop3);
        }
    };
}(jQuery));
4、koma3.module内容
function koma3_init()
{
    drupal_add_js(array('helo' => 'Helo World.'), 'setting');

    drupal_add_js(array('props' => array(
            'prop1' => 'prop1val',
            'prop2' => 'prop2val',
            'prop3' => 'prop3val',
        )), 'setting');

    $path = drupal_get_path('module', 'koma3');
    drupal_add_js($path . '/js/koma3.js');
}

Done!

Drupal7ログインフォームフォーカス



手順:
1、koma2モジュール作成
2、js/my1.js作成
3、my1.js内容
(function ($) 
{
    Drupal.behaviors.koma2UserFocus =
        {
            attach : function()
            {
                $('input#edit-name').focus();
            }
        };
}(jQuery));
4、koma2.module
function koma2_init()
{
    global $user;
    
    $path = drupal_get_path("module", "koma2");
    
    if ($user->uid == 0)
        drupal_add_js($path . "/js/my1.js");
}

Done!

Drupal7あるパターンだけでjsをインクルードする



手順:
1、koma1モジュールを作成する
2、js/my1.jsを作る
3、my1.js内容
alert('helo drupal7 world.');
4、koma1.moduleを編集する
function koma1_init()
{
    $path = drupal_get_path('module', 'koma1');
    if (arg(0) == 'node' && is_numeric(arg(1)) && is_null(arg(2)))
    {
        drupal_add_js($path . "/js/my1.js");
    }
}

2012年9月29日土曜日

Drupal7 モジュールでCSS扱い

Drupal7のモジュールを利用してCSS追加、設定処理をする

モジュール:mysite.module
内容:
<?php
function mysite_init()
{
    drupal_set_message("Welcome to MySite!");

    // モジュールパス取得
    $path = drupal_get_path('module', 'mysite');

    // CSSファイル追加
    drupal_add_css($path . '/css/mysite.css');

    // プリプロセスしない
    drupal_add_css($path . '/css/mysite-spec.css', array('preprocess'=>FALSE, 'weight'=>-20));

    // INLINE CSS追加
    drupal_add_css('body{font-family:Arial}', 'inline');
}

2012年9月23日日曜日

Drupalモジュール開発1

この例でDrupal7のモジュール開発例を紹介します。

要求:
コンテンツフィールドはテキストの場合、赤文字で表示する。

実装:
Hookを利用して、コアのフィールドモジュールをオーバーロードする

2012年9月22日土曜日

Drupal テーマ開発ツール-Theme developer

Drupalテーマ開発には必要不可欠ツールTheme developerを紹介します。

Theme developer
http://drupal.org/project/devel_themer

Devel
http://drupal.org/project/devel

simplehtmldom API
http://drupal.org/project/simplehtmldom

ホームページ