トップ  > メモ一覧  > カテゴリ「カスタマイズ」の絞り込み結果 : 10件

10件中 1 〜 10 表示  1 

No.1575 OpenPNE投稿APIについて

OpenPNE投稿APIについて

OpenPNE2をついぴーね対応サイトにするためには、投稿APIを追加する必要があります。

手順

0.OpenPNEのバージョンを確認する
2.10 2.12 2.14に対応しています。

1.APIファイルをダウンロードする

ここからファイルをダウンロードします。

2.ファイルの設置

SA.php は /webapp/lib/に設置
xmlrpc以下のファイルは /webapp/modules/api/lib/xmlrpc に設置

3.設定ファイルの変更
config.php
// API通信使用設定
define(’OPENPNE_USE_API’, true);
に変更

4.c_apiテーブルの更新
insert into c_api (name) values (’sa_000_auth’);
insert into c_api (name) values (’sa_010_h_add_diary’);
insert into c_api (name) values (’sa_110_c_add_topic’);
insert into c_api (name) values (’sa_112_c_edit_topic’);
insert into c_api (name) values (’sa_120_c_add_event’);
insert into c_api (name) values (’sa_122_c_get_event_member_list’);
insert into c_api (name) values (’sa_123_c_edit_event’);
insert into c_api (name) values (’sa_130_c_add_topic_comment’);
insert into c_api (name) values (’sa_131_c_get_topic_detail’);
insert into c_api (name) values (’sa_132_c_get_topic_detail_2′);

5.管理画面からAPI許可IPアドレスを設定
pne.jpサーバからのAPIアクセスを許可する
2009/10/04時点でのIPは(75.101.230.67)
「SNS設定」=>「API設定」から追加したAPIを利用可能にします。

pict

関連記事:

引用元

更新:2009/10/06 09:34 カテゴリ: OpenPNE2  > カスタマイズ ▲トップ

No.1488 OpenPNE投稿APIについて

OpenPNE投稿APIについて

OpenPNE2をついぴーね対応サイトにするためには、投稿APIを追加する必要があります。

手順

0.OpenPNEのバージョンを確認する
2.10 2.12 2.14に対応しています。

1.APIファイルをダウンロードする

ここからファイルをダウンロードします。

2.APIファイルを展開する

/OpenPNE/webapp/modules/api/lib/xmlrpc/
ディレクトリにファイルを展開します。

3.管理画面からAPIを利用可能にする

「SNS設定」=>「API設定」から追加したAPIを利用可能にします。
pne.jpのIPアドレス(75.101.230.67)を指定してください。

pict

関連記事:

引用元

更新:2009/09/14 09:20 カテゴリ: OpenPNE2  > カスタマイズ ▲トップ

No.1477 CSSで、外部ブログの表示を隠す

外部ブログ機能はOFFにできないので、CSSで隠す
/*最新Blogを非表示*/
/*マイホーム*/
#pc_page_h_home tr.myRecentBlog { display:none;}
#pc_page_h_home tr.myFriendRecentBlog { display:none;}

/*フレンドホーム*/
#pc_page_f_home tr.friendRecentBlog { display:none;}

/*プロフィール*/
#pc_page_h_prof tr.friendRecentBlog { display:none;}

/*メンバー毎の日記一覧ページ*/
#pc_page_fh_diary_list div#blog { display:none;}

/*全体の日記一覧ページ*/
#pc_page_h_diary_list_all div.recentList { display:none;}

更新:2009/09/10 18:06 カテゴリ: OpenPNE2  > カスタマイズ ▲トップ

No.1265【引用】OpenPNEカスタマイズ



OpenPNEカスタマイズ ¶
OpenPNEカスタマイズする方法を紹介します。
 
目次

管理画面でカスタマイズ

デザインをカスタマイズする
MyNews機能を使用する
MyNews 携帯版を使用する
ポイント・ランクをフレンドホームにも表示させる
Skype ボタンの設置
あしあと帳作成ボタンの表示
お題日記機能の設置
PV集計を行う
広告管理をする

小窓で...

引用元

更新:2009/08/04 15:04 カテゴリ: OpenPNE2  > カスタマイズ ▲トップ

No.1231 OpenPNE2.12でできる見栄えの変更¶

OpenPNE2.12でできる見栄えの変更

ここでは、HTMLやCSSに詳しくない方も対象に、OpenPNE2.12で見栄えを変更する方法を説明します。 管理画面の デザイン > 配色・CSS変更 の下部にある「カスタムCSS追加」にスタイル指定を追加することで見栄えを変えることができます。

#Container {
        margin: 0 auto;
}

この上の記述を追加すると、全体をセンタリングすることができます。

#Body .partsHeading {
        color: #008000;
        background-color: #FFFF00;
}

この上の記述を追加すると、各パーツの見出し部分の文字色を緑に、背景色を黄にすることができます。

以下では、好きなように見栄えを変えるにはどうすればいいのかについて、より詳しい説明をします。

OpenPNE2.10以前との違い

OpenPNE2.12では、XHTML+CSS化と称してHTMLとCSSを見直しました。

見栄えは、『どこ』を『どうする』と記述することで指定することができます。 OpenPNE2.10以前では、

<p><img src="icon_title_1.gif"><span class="b_b c_00">マイフレンドリスト</span></p>

のようにHTMLが記述されており、CSSで「マイフレンドリスト」(=見出し)の部分をスタイル指定の対象としたくても『どこ』と言うことができませんでした。 OpenPNE2.12では、

<div class="partsHeading"><h3>マイフレンドリスト</h3></div>

のように記述しているので見出し部分をスタイル指定の対象としたいときには、「クラス名が "partsHeading" の部分」とCSSで言うことができます。

XHTML+CSS化では、HTMLに書かれているスタイル指定や不要なタグを取り除き、構造を示すために適切な要素タグでマークアップしたりクラス名を付ける作業を行いました。 CSSで『どこ』と言えるようにHTMLを記述しているので、見栄えに関する指定(スタイル指定)は全てCSSで行うことができます。

なお、見栄えに関する指定を全てCSSで行っていることと、HTMLを見直した(書き換えた)ことによって、今までできていた方法で見栄えが変更できなくなっているものがあります。 しかしながら、それに対応するスタイル記述を書くことで理想とする見栄えを実現できます。

以前の配色設定をOpenPNE2.12で適用する

HTMLを書き換えたため、管理画面の配色設定で変更できる見栄えがOpenPNE2.10以前と若干異なっています。

異なる点は配色設定の変更内容一覧に示されています。

具体的なスタイル指定の記述は2.12からのバージョンで2.10の配色を使用する方法をご覧ください。

スタイル指定の例

追加するスタイル指定の記述の例を紹介します。 どんなセレクタを指定すればいいのかについては後述します。

始めに、セレクタについて簡単に説明をします。

body { スタイル宣言 }
.partsHeading { スタイル宣言 }
#Container { スタイル宣言 }
#Body .homeMainTable th { スタイル宣言 }
#Body, #Container { スタイル宣言 }

開き中括弧 { の前に body や .partsHeading などと書いてあります。 この部分をセレクタといいます。 セレクタは、スタイル指定の対象が『どこ』なのかを指します。

  • 1行目はセレクタが body です。これは「body要素(bodyタグに囲まれた範囲)」を対象とします。
  • 2行目はセレクタが .partsHeading です。これは「クラス名が "partsHeading" の要素」を対象とします。
  • 3行目はセレクタが #Container です。これは「ID名が "Container" の要素」を対象とします。
  • 4行目はセレクタが #Body .homeMainTable th です。これは「#Body の中の .homeMainTable の中の th 要素」を対象とします。
  • 5行目はセレクタが #Body, #Container です。これは「#Body と #Container」を対象とします。

全体に背景画像を表示する

body {
        background-image: url(画像のURL);
}
#Body, #Container {
        background-color: transparent;
}

body要素に対して背景画像を指定します。

配色設定から指定できる背景色が #Body と #Container に適用されているので、背景色を透明に指定します。

全体をセンタリングする(右揃えにする)

#Container {
        margin: 0 auto;
}

左右のmarginをautoにすることで、ボックスは中央に配置されます。

#Container {
        margin-left: auto;
}

左のmarginだけをautoにすることで、ボックスは右寄せになります。

home系のメインテーブルの見出し部分を変える

home系とは、h_home, f_home, c_home のことです。プロフィール確認ページ h_prof にも反映します。

#Body .homeMainTable th {
        border-color: #FF0000;
        background-color: #000000;
        color: #FFFFFF;
        font-weight: bold;
}
#Body .homeMainTable tr:first-child th,
#Body .homeMainTable tr.first-child th {
        border-color: #00FF00;
}

homeMainTable クラスのパーツの中にある、th要素(テーブルの見出しセル)に対するスタイル指定です。

"first-child" と記述している部分は、テーブルの1行目のth要素だけを対象とするようなセレクタの記述です。

日記やトピック記事の画像をセンタリングする

#Body ul.photo {
        text-align: center;
}
#Body ul.photo li {
        margin: 0 10px;
}

photo クラスのul要素に対して、インラインをセンタリングする指定を記述します。 li要素は既存のスタイルで display: inline が指定されています。 li要素の左右のmarginを指定して画像の間隔を調整します。

日記は diaryDetailBox クラス、トピックは topicDetailBox クラスですが、共通の ul.photo をセレクタにすることでスタイル指定を共有できます。 日記記事、トピック記事以外に、同じクラスが使われているイベント記事にも適用されます。

特定のページだけのパーツを指定する

あるページのパーツにスタイルを指定したいとき、そのパーツが他のページで使われていた場合、他のページのパーツまでスタイルが適用されてしまいます。

例えば、home系にはメイン写真表示部がありますが、h_homeのメイン写真表示部のみを指定したい場合、次のようにします。

#pc_page_h_home .homePhotoBox .parts {
        background-color: #FFFFCC;
}

セレクタの頭にそのページのIDをつけることで、そのページ以外にはスタイルが適用されないようにします。 ページのIDは、body要素のid属性として与えられています。

LayoutAのカラムを左右逆にする

LayoutAとは、home系、マイページ確認のページ(のレイアウト)です。

#LayoutA #Left {
        float: right;
}
#LayoutA #Center {
        float: left;
}

カラムの位置が左右逆になります。 既存のスタイルでは、#Left に left、#Center に right が指定してあります。

#LayoutA #Left,
#LayoutB #Left {
        float: right;
}
#LayoutA #Center,
#LayoutB #Center {
        float: left;
}

LayoutBとは、日記、メッセージ、ランキングなどのページ(のレイアウト)です。 2カラムのレイアウトは、LayoutA と LayoutB の2つです。

好きな場所の見栄えを変えたいとき

スタイル指定するには、CSSで『どこ』と言えなければなりません。 これをセレクタと言いましたが、実際にどのようにセレクタを書けばいいのかを説明します。

ある部分を『どこ』と指定したいとき、その部分(パーツ)のクラス名をセレクタにすることで指定できます。

その部分のクラス名を知るには、

  1. そのページのソースを表示する
  2. 該当する部分の文字列を検索する
  3. 該当する部分のHTMLに書かれているclass属性値を見る

クラス名とはclass属性値のことです。 HTMLの構造については、ページの構造パーツの構造をご覧ください。

OpenPNE2.12では、いくつかのパーツとしてクラス名を付けています。 パーツの種類については、パーツリストをご覧ください。

カスタムCSSでのスタイル指定を優先させる

既に記述されているスタイル指定と、カスタムCSSで追加したスタイル指定が衝突することがあります。 例えば、

.homeInfoBox .caution {
        color: #ff0000;
}

と既に記述されているとき、カスタムCSSに、

.caution {
        color: #0000ff;
}

と記述した場合、.caution にどのスタイルが適用されるのかはセレクタの優先度で決められます。 複数のスタイル指定が衝突したとき、

  1. IDセレクタの総数(=a)が多いセレクタのスタイルを適用する
  2. aが等しいときは、クラスセレクタの総数(=b)が多いセレクタのスタイルを適用する
  3. aもbも等しい場合は、タイプセレクタの総数(=c)が多いセレクタのスタイルを適用する

このように決められています。(厳密には少し異なります。)

それぞれのセレクタは以下の通りです。

#Container { スタイル宣言 } /* IDセレクタ */
.partsHeading { スタイル宣言 } /* クラスセレクタ */
body { スタイル宣言 } /* タイプセレクタ */

このため、カスタムCSSにスタイル記述を行ってもスタイルが適用されないことがあります。

カスタムCSSのスタイル指定を適用させるためには、以下のようにIDセレクタを付加します。

#Body .caution {
        color: #0000ff;
}

IDセレクタを付加することでスタイルの優先度を高めることができます。

大抵の場合、#Bodyをセレクタの頭に付加すればスタイルの優先度は最高になりますが、同様の理由で既存のスタイルの中に#Bodyを記述したスタイルがあります。 そのスタイルよりも優先度を上げる場合は次のようにしてください。

#Body #Container .caution {
        color: #0000ff;
}

ページの構造

ログイン後のページは大きく3つのレイアウトがあり、各ページはいずれかのレイアウトで構成されています。

  • LayoutA - ホーム、マイページ確認
    • Left : 270px
    • Center : 440px
  • LayoutB - 日記、メッセージ、ランキング
    • Left : 180px
    • Center : 540px
  • LayoutC - あしあと、レビューなど
    • Center : 650px

HTMLは次のような構造になっています。

<body id="pc_page_h_home">
        <div id="Body">
                <div id="Container">
                        <div id="Header">
                                <div id="globalNav"></div>
                                <div id="topBanner"></div>
                        </div>
                        <div class="parts localNav" id="hLocalNav"></div>
                        <div id="LayoutA">
                                <div id="Top">
                                        ナビ下部
                                </div>
                                <div id="Left">
                                        左カラム
                                </div>
                                <div id="Center">
                                        右(中央)カラム
                                </div>
                        </div>
                        <div id="Footer"></div>
                        <div id="sideBanner">
                                サイドバナー
                        </div>
                </div><!-- Container -->
        </div><!-- Body -->
</body>

パーツの構造

ログイン後のページは、主に2重線で囲まれた四角いパーツで構成されています。

パーツは、ページの構造の中の<div id="Left">や<div id="Center">の中に記述されています。

<div class="dparts パーツクラス名"><div class="parts">
        <div class="partsHeading"><h3>パーツ見出し</h3></div>
        <div class="xxxxxxxx">パーツの内容</div>
        <div class="xxxxxxxx">パーツの内容</div>
        <div class="xxxxxxxx">パーツの内容</div>
</div></div>

<div class="dparts">と<div class="parts">によってパーツの外枠の2重線を表現しています。 1本線あるいは外枠がないパーツも次のような構造になっています。

<div class="parts パーツクラス名">
        <div class="partsHeading"><h3>パーツ見出し</h3></div>
        <div class="xxxxxxxx">パーツの内容</div>
        <div class="xxxxxxxx">パーツの内容</div>
        <div class="xxxxxxxx">パーツの内容</div>
</div>

 

引用元

更新:2009/07/28 21:51 カテゴリ: OpenPNE2  > カスタマイズ ▲トップ

No.1082【引用】DBコネクトエラーをsyslogに出力

facility はとりあえず local0 (ハードコーディング)
データベース名が間違っているために接続できない場合は、以下のようなログが記録。

Jun 24 10:52:38 f10 openpne[24371]: 1049: Unknown database 'detaramedb'

以下を追加

include_once 'Log.php';
$logger = Log::singleton('syslog', LOG_LOCAL0, 'openpne');
if ($errno = mysql_errno()) {
$log_msg = $errno . ': ' . mysql_error();
} else {
$log_msg = 'Unknown error';
}
$logger->err($log_msg);

↓ココに:w...

引用元

更新:2009/06/24 15:07 カテゴリ: OpenPNE2  > カスタマイズ ▲トップ

No.1025 OpenPNEのページ表示でdocomoの場合全てに「guid=on」をつける

◆apache設定で行う場合

・設定
    以下の内容を記述した .htaccess を public_htmlディレクトリの直下に置く
    (httpd.conf でも可)
※docomoで「guid=on」がないURLでリクエストした場合、「guid=on」付きURLに
リダイレクトします
-------------------------------------------
# public_html/.htaccess

RewriteEngine On
RewriteBase /sns_test/

RewriteCond %{HTTP_USER_AGENT} ^DoCoMo.*
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{QUERY_STRING} !.*guid=on.* [NC]
RewriteCond $1 ^($|index\.php)
RewriteRule ^(.*)$ index.php?%{QUERY_STRING}&guid=on [R]
-------------------------------------------
※ASP環境の場合で特定SNSのみに適用したい場合、リライト条件に対象とする
ドメインを記述する必要があります。


◆OpenPNEで行う場合
※ソースのカスタマイズを伴います

-------------------------------------------
【カスタマイズ内容】
・ページ内リンクに「&guid=on」を追記する
(ユーザエージェントがdocomoの場合のみ)
         ⇒セッションid付加用変数を利用

・OpenPNE内リダイレクト関数内でユーザエージェントがdocomoで「&guid=on」が
無い場合は補ってリダイレクトさせる様に変更
-------------------------------------------

更新:2009/06/09 13:44 カテゴリ: OpenPNE2  > カスタマイズ ▲トップ

No.608 独自のログを採るカスタム

独自のログを採るカスタムを行えば可能です。
以下にカスタム例を示します。


?独自ログ(custom_log)テーブルをDBに作成。

----------------------------------------------------------------------
【テーブル作成SQL】
CREATE TABLE `custom_log` (
  `custom_log_id` int(11) NOT NULL auto_increment,
  `c_member_id` int(11) NOT NULL default '0',
  `page_name` varchar(100) NOT NULL default '',
  `target_c_commu_topic_id` int(11) default '0',
  `ktai_flag` int(11) NOT NULL default '0',
  `r_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`c_access_log_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

----------------------------------------------------------------------


?config.phpの設定変更

----------------------------------------------------------------------
【config.php:250行目辺り】

// アクセスログを取得するかどうか(c_access_log)
define('LOG_C_ACCESS_LOG', true);

// カスタムログ用の関数名を指定します
define('OPENPNE_LOG_FUNCTION', 'p_custom_log');
----------------------------------------------------------------------


?custom_logデータ収集関数作成
----------------------------------------------------------------------
【custom_logデータ収集関数例】
※webapp/lib/db/etc.phpなど、適当な場所に記述してください

function p_custom_log($params)
{
    $is_ktai = 0;
    if ($params['module'] == 'ktai') {
        $is_ktai = 1;
    }

    $data = array(
        'c_member_id'             => intval($params['c_member_id']),
        'page_name'               => $params['action'],
        'target_c_commu_topic_id' => 0,
        'ktai_flag'               => $is_ktai,
        'r_datetime' => db_now(),
    );

    // 過去に閲覧しているか※要作成
    // custom_logに指定したc_member_idのデータがある場合はtrueを返す関数
    $is_accessed = db_custom_log_is_accessed($data['c_member_id']);

    // target_c_commu_topic_idがリクエストされ、かつログに情報が無ければ書込み
    if (isset($_REQUEST['target_c_commu_topic_id']) && !$is_accessed) {
        $data['target_c_commu_topic_id'] = intval($_REQUEST['target_c_commu_topic_id']);
        db_insert('c_custom_log', $data);
    }
}
----------------------------------------------------------------------


?webapp/lib/controller.phpにカスタムログ用関数を呼び出す記述を行う
----------------------------------------------------------------------
【記述例:webapp/lib/controller.php 230行目辺り】
※通常のc_access_logの処理の下に記述

    // カスタムログ用関数の呼び出し
    if (OPENPNE_LOG_FUNCTION && is_callable(OPENPNE_LOG_FUNCTION)) {
        // c_member_id を取得
        $c_member_id = 0;
        if ($GLOBALS['__Framework']['is_secure']) {
            if ($module == 'pc') {
                $c_member_id = $GLOBALS['AUTH']->uid();
            } else if ($module == 'ktai') {
                $c_member_id = $GLOBALS['KTAI_C_MEMBER_ID'];
            }
        }
        $params = array(
            'c_member_id' => $c_member_id,
            'action' => $action,
            'module' => $module,
        );
        call_user_func(OPENPNE_LOG_FUNCTION, $params);
    }
----------------------------------------------------------------------
更新:2008/12/20 08:08 カテゴリ: OpenPNE2  > カスタマイズ ▲トップ

No.563 OpenPNEの外部連携


-----------------------------------------
(定義)
ID管理の親(Master)になるOpenPNEを【M】、
子(Slave)である外部サービスを【S】とします
-----------------------------------------

外部サービス【S】がOpenPNE【M】のセッション情報を引き継ぐには以下の方法が考えられます。

◆【S】が【M】のセッション情報を直接参照する場合 ※注

    1.セッションIDの引き回しにクッキーを利用する方法
     ?【M】と【S】が同一ドメインの場合
      【S】を【M】の"public_html/"以下に設置してやれば可能です。
     
     ?【M】と【S】が異なるサブドメインの場合
      (例えば【M】が"sns.example.com"、【S】が"blog.example.com"の場合)
      以下のようにOpenPNEのソースを変更すれば可能です。
      
      webapp/lib/OpenPNE/Auth.php :145行目あたり
      --------------------------------------------------------------------------
      <変更前>
       setcookie(session_name(), session_id(), $expire, $this->cookie_path);
          ↓
       <変更後>
       setcookie(session_name(), session_id(), $expire, '/', '.example.com');
      -----------------------------------------------------------------------------
      
      
※ドメインが異なる場合はクッキーは利用できません


    2.クッキーを利用しない方法
     セッションIDをURLに埋め込む形で、【M】から【S】に引き渡すことが可能です
※セキュリティ上、セッションIDは暗号化することが必要です



◆【S】が【M】のセッション情報を直接参照しない場合

1.OpenIDを利用する方法
OpenPNEでは2.12以降デフォルトでOpenIDに対応しております。
【S】がOpenIDに対応しているサービスであれば可能です。
【S】が「Consumer」、【M】であるOpenPNEが「IdP」としてセッション情報を共有します。

    参考サイト: http://trac.openpne.jp/wiki/pne-book-7-note


    2.OpenIDを利用しない方法
     「SAMLを利用する」・「独自プロトコルを作成する」等が考えられますが、
     現状では開発事例がないためサンプルコードをお渡しすることはできません。



※注:OpenPNEではセッション情報を保存するストレージとして以下の3つに対応しています。
・ファイル
・データベース
・memcache(要PECL::memcache)

"config.php"でどのストレージを使用するかを選択できます
更新:2008/12/01 14:15 カテゴリ: OpenPNE2  > カスタマイズ ▲トップ

No.153 画面構成考察時注意点

UI・レイアウトの統一性の維持
遷移の頻度の高いほうを優先

SNSの特性を考えた画面構成
「マイページトップ」の上部の重要性
何がしたいか
何が削れるか

記事の頭の三文字の重要性

引用元

クニタダさん・小川さん
入社前ミーティング
更新:2008/09/07 21:10 カテゴリ: OpenPNE2  > カスタマイズ ▲トップ
10件中 1 〜 10 表示  1 

FuelPHP

Mac

web開発

プロマネ

マネタイズ

プレゼン

webサービス運用

webサービス

Linux

サーバ管理

MySQL

ソース・開発

svn・git

PHP

HTML・CSS

JavaScript

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0