Suche senden
Hochladen
CS-Cart デベロッパーミーティング 2015-06-28
•
5 gefällt mir
•
1,368 views
Toshihiro Yoshiura
Folgen
CS-Cart デベロッパーミーティング 2015-06-28 PHPでCS-Cartの機能をカスタマイズする場合のアプローチ方法
Weniger lesen
Mehr lesen
Software
Melden
Teilen
Melden
Teilen
1 von 43
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
CS-CART addon
CS-CART addon
寿西 朴
CS-Cart CMS FUN NAGOYA 2015-11-07
CS-Cart CMS FUN NAGOYA 2015-11-07
Toshihiro Yoshiura
第3回WordPress Cafe プラグイン紹介
第3回WordPress Cafe プラグイン紹介
foom_in
Abc words20130615
Abc words20130615
Toshihiro Yoshiura
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
rie05
委託開発業務について
委託開発業務について
baeksunil
Wp html5
Wp html5
regret raym
ブログの枠を超える?ためのWordPressカスタマイズ入門
ブログの枠を超える?ためのWordPressカスタマイズ入門
muracchi
Empfohlen
CS-CART addon
CS-CART addon
寿西 朴
CS-Cart CMS FUN NAGOYA 2015-11-07
CS-Cart CMS FUN NAGOYA 2015-11-07
Toshihiro Yoshiura
第3回WordPress Cafe プラグイン紹介
第3回WordPress Cafe プラグイン紹介
foom_in
Abc words20130615
Abc words20130615
Toshihiro Yoshiura
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
rie05
委託開発業務について
委託開発業務について
baeksunil
Wp html5
Wp html5
regret raym
ブログの枠を超える?ためのWordPressカスタマイズ入門
ブログの枠を超える?ためのWordPressカスタマイズ入門
muracchi
御池サミット20130726
御池サミット20130726
Takeshiro Kani
Facebook対応と大規模サイト移転のトライ&エラー
Facebook対応と大規模サイト移転のトライ&エラー
Garyuten
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
Etsushi Ishii
tansuの紹介
tansuの紹介
Yuya Matsushima
Advanced Custom Fields が重すぎると感じるあなたへ
Advanced Custom Fields が重すぎると感じるあなたへ
タカシ キタジマ
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編
Yasuhito Yabe
WordPressで作るポートフォリオサイト
WordPressで作るポートフォリオサイト
Takuma Nishiyama
a-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなす
Seiko Kuchida
モダンすぎる静的サイトの作り方
モダンすぎる静的サイトの作り方
Yuya Matsushima
20130225 pronet study
20130225 pronet study
Six Apart
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
Seiko Kuchida
パララックス効果を使ったWordPressサイト
パララックス効果を使ったWordPressサイト
Takuma Nishiyama
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
Takashi Uemura
コードをさわらずにビジネスサイトを作ろう!
コードをさわらずにビジネスサイトを作ろう!
FLOW web planning & design
WordPress, concrete5, Drupal
WordPress, concrete5, Drupal
Fumito Mizuno
HTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレ
知己 久保
04 sending multipart_emails_using_template_handlers
04 sending multipart_emails_using_template_handlers
Kazuyuki Ikeda
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
Yasuhito Yabe
Mtcafe tokyo 2013_spring_okuwaki
Mtcafe tokyo 2013_spring_okuwaki
Tomohiro Okuwaki
Galage labsサーバー部6U自己紹介
Galage labsサーバー部6U自己紹介
Seiko Kuchida
20120821 pronet study
20120821 pronet study
Six Apart
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
Yusuke Kawabata
Weitere ähnliche Inhalte
Was ist angesagt?
御池サミット20130726
御池サミット20130726
Takeshiro Kani
Facebook対応と大規模サイト移転のトライ&エラー
Facebook対応と大規模サイト移転のトライ&エラー
Garyuten
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
Etsushi Ishii
tansuの紹介
tansuの紹介
Yuya Matsushima
Advanced Custom Fields が重すぎると感じるあなたへ
Advanced Custom Fields が重すぎると感じるあなたへ
タカシ キタジマ
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編
Yasuhito Yabe
WordPressで作るポートフォリオサイト
WordPressで作るポートフォリオサイト
Takuma Nishiyama
a-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなす
Seiko Kuchida
モダンすぎる静的サイトの作り方
モダンすぎる静的サイトの作り方
Yuya Matsushima
20130225 pronet study
20130225 pronet study
Six Apart
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
Seiko Kuchida
パララックス効果を使ったWordPressサイト
パララックス効果を使ったWordPressサイト
Takuma Nishiyama
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
Takashi Uemura
コードをさわらずにビジネスサイトを作ろう!
コードをさわらずにビジネスサイトを作ろう!
FLOW web planning & design
WordPress, concrete5, Drupal
WordPress, concrete5, Drupal
Fumito Mizuno
HTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレ
知己 久保
04 sending multipart_emails_using_template_handlers
04 sending multipart_emails_using_template_handlers
Kazuyuki Ikeda
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
Yasuhito Yabe
Mtcafe tokyo 2013_spring_okuwaki
Mtcafe tokyo 2013_spring_okuwaki
Tomohiro Okuwaki
Galage labsサーバー部6U自己紹介
Galage labsサーバー部6U自己紹介
Seiko Kuchida
Was ist angesagt?
(20)
御池サミット20130726
御池サミット20130726
Facebook対応と大規模サイト移転のトライ&エラー
Facebook対応と大規模サイト移転のトライ&エラー
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
tansuの紹介
tansuの紹介
Advanced Custom Fields が重すぎると感じるあなたへ
Advanced Custom Fields が重すぎると感じるあなたへ
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編
WordPressで作るポートフォリオサイト
WordPressで作るポートフォリオサイト
a-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなす
モダンすぎる静的サイトの作り方
モダンすぎる静的サイトの作り方
20130225 pronet study
20130225 pronet study
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
パララックス効果を使ったWordPressサイト
パララックス効果を使ったWordPressサイト
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
コードをさわらずにビジネスサイトを作ろう!
コードをさわらずにビジネスサイトを作ろう!
WordPress, concrete5, Drupal
WordPress, concrete5, Drupal
HTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレ
04 sending multipart_emails_using_template_handlers
04 sending multipart_emails_using_template_handlers
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
Mtcafe tokyo 2013_spring_okuwaki
Mtcafe tokyo 2013_spring_okuwaki
Galage labsサーバー部6U自己紹介
Galage labsサーバー部6U自己紹介
Ähnlich wie CS-Cart デベロッパーミーティング 2015-06-28
20120821 pronet study
20120821 pronet study
Six Apart
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
Yusuke Kawabata
20141206 handson
20141206 handson
Six Apart
20140926 mt cloud_handson_seminar
20140926 mt cloud_handson_seminar
Six Apart
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
タカシ キタジマ
PHP 開発環境構築- Windows 編 -
PHP 開発環境構築- Windows 編 -
Masaki Takeda
ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)
Atsushi Yokohama (BEACHSIDE)
BPStudy20121221
BPStudy20121221
Shinichiro Takezaki
WordPressでの制作説明
WordPressでの制作説明
Toshiaki Endo
検索エンジンを有効利用するWEBサイト構築
検索エンジンを有効利用するWEBサイト構築
sato165 @delab
20090606
20090606
小野 修司
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
OCHI Shuji
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5
Sho Ito
SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発
Tusyoshi Matsuzaki
Long Life Web Performance Optimization
Long Life Web Performance Optimization
Koji Ishimoto
20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar
Six Apart
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ
Kohei MATSUSHITA
php-timecopを実戦投入してみた
php-timecopを実戦投入してみた
Yoshio Hanawa
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
fukuoka.ex
Ähnlich wie CS-Cart デベロッパーミーティング 2015-06-28
(20)
20120821 pronet study
20120821 pronet study
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
20141206 handson
20141206 handson
20140926 mt cloud_handson_seminar
20140926 mt cloud_handson_seminar
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
PHP 開発環境構築- Windows 編 -
PHP 開発環境構築- Windows 編 -
ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)
BPStudy20121221
BPStudy20121221
WordPressでの制作説明
WordPressでの制作説明
検索エンジンを有効利用するWEBサイト構築
検索エンジンを有効利用するWEBサイト構築
20090606
20090606
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5
SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発
Long Life Web Performance Optimization
Long Life Web Performance Optimization
20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ
php-timecopを実戦投入してみた
php-timecopを実戦投入してみた
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
CS-Cart デベロッパーミーティング 2015-06-28
1.
PHP CS-Cart PHPでCS-Cartの機能をカスタマイズ 2015-06-28
2.
Profile • 吉浦寿洋(有限会社フロッグマンオフィス) • WordpressカスタマイズレベルのPHPスキル •
Codeigniterを少々 • 昨日のPHPカンファレンスの内容は難しすぎました汗 • CS-Cartカスタマイズ(アドオン)歴は約1年程
3.
基本構造:MVC • MODEL・・・MySQL接続の基礎的な機能 • VIEW・・・Smarty •
CONTROLLER・・・PHP CS-Cartはカスタマイズを前提とした フレームワーク的な側面を持っています。
4.
データ処理の流れ index.php ?dispatch=products.view &product_id=180 URL例:商品詳細ページ コントローラー名.モード名
5.
カスタマイズのアプローチ方法 1.既存のコントローラーを拡張する 2.独自のコントローラーを作成する 3.コアの関数を拡張する(PHP-HOOK) テンプレートのカスタマイズ除く
6.
1.既存コントローラーの拡張 Pre- / Post-
コントローラーを作成することで拡張が可能。 例)カテゴリー(categories)コントローラーを拡張する場合 dispatch=categories.view&category_id=168 categories.pre.php(コントローラー実行前) categories.post.php(コントローラー実行後) コントローラー・ファイル名命名規則 コア
7.
2.独自コントローラーの作成 例)index.php?dispatch=frogman.company frogman.php !コア・コントローラー名と被らないように
8.
PHP-HOOKは後述します
9.
どこに書く?
10.
アドオンに書きます
11.
アドオンとは? CS-Cartのカスタマイズの基盤となる仕組み =WordpressやEC-Cubeのプラグイン
12.
標準のアドオン ポイント ほしいものリスト Google Analytics セット販売 返品管理 SNSログイン年齢認証 CS-Cartの様々な機能はアドオンでも提供されています。
13.
サードパーティー製のアドオン タブ拡張 フロントエンドエディター ブログ Facebook Store スライダー FAQ 約400以上のアドオンが販売中 CS-Cart
Marketplace
14.
チュートリアル http://docs.cs-cart.jp/
15.
さっそくアドオンを書いてみましょう!
16.
1. アドオンの構造を理解しましょう。 2. ルールに沿ったディレクトリ構造を作成しましょう。 3.
アドオンのXMLを作成しましょう。 4. 言語ファイルを用意しましょう。 …………(学習することが最初は沢山ある??) アドオン開発のTips
17.
簡単に作れないの? アドオンの ベースを
18.
作れます
19.
CS-Cart Add-on Builder cs-cart.ie
Ireland
20.
Demo アドオンの作成∼インストール
21.
コントローラー テンプレートファイル スキーマー 外部ライブラリー アドオンを作成することで コアから切り離された独自のスペースを 作る事が出来ます
22.
知っておくべき アドオンの基本構造
23.
/apps/addons/your_addon addon.xml func.php init.php controllers frontend backend your_addon.php your_addon.php products.post.php アドオンの基本情報&設定項目 アドオンで使用する関数&フック フックポイントの宣言 [ショップフロント用] [管理パネル用]
24.
addon.xmlで出来ること • アドオンの設定値の定義、保存 • デフォルト言語の設定 •
アドオンのプライオリティの設定 • 他のアドオンと依存、排他関係の定義 • PHPの対応可能最小/最大バージョン • PHPエクステンションの依存関係 • インストール/アンインストール時のDB作成や削除 • インストール/アンインストール時に実行する関数の指定 …………
25.
1.既存コントローラーの拡張 Hands-on#1
26.
ショップフロントの categoriesコントローラーに dumpモードを追加する index.php?dispatch=categories.dump URL
27.
controllers frontend backend categories.post.php [ショップフロント用] [管理パネル用] ファイルを作成 /app/controllers/frontend/categories.php コアのcategories.phpが実行された後に 実行前の場合はcategories.pre.phpとする。 categories.phpとすると… /apps/addons/your_addon
28.
use TyghRegistry; //インポート文 if (!defined('BOOTSTRAP'))
{ die('Access denied'); } if ($mode == 'dump') //独自のモード { $root_categories = fn_get_subcategories(0); fn_print_r($root_categories); //print_r exit(); //処理を終了 //終了しない場合はVIEWを読み出す処理 } categories.post.php /design/themes/responsive/templates/addons /your_addon/views/categories/dump.tpl
29.
2.独自コントローラーの作成 Hands-on#2
30.
ショップフロントに your_addonコントローラー を新設する index.php?dispatch=your_addon.view URL
31.
controllers frontend backend your_addon.php [ショップフロント用] [管理パネル用] ファイルを作成 /apps/addons/your_addon
32.
use TyghRegistry; //インポート文 if (!defined('BOOTSTRAP'))
{ die('Access denied'); } if ($mode == 'view') //モード { $root_categories = fn_get_subcategories(0); fn_print_r($root_categories); //print_r exit(); //処理を終了 //終了しない場合はVIEWを読み出す処理 } your_addon.php /design/themes/responsive/templates/addons /your_addon/views/your_addon/view.tpl
33.
3.コアの関数を拡張する PHP-HOOK Hands-on#3
34.
コアのコントローラー /app/functions fn.cart.php fn.catalog.php fn.promotions.phpfn.users.php fn.search.php fn.cms.php fn.database.php コア・コントローラーの実行時、常に特定の処理を行いたい
35.
function fn_get_cart_product_data($hash, ……){ ……… fn_set_hook('get_cart_product_data_pre',
$hash, $product, $skip_promotion, $cart, $auth, $promotion_amount); ……… } /app/functions/fn.cart.php get_cart_product_data_preというフックポイント 引数は… $hash, $product, $skip_promotion, $cart, $auth, $promotion_amount [コアを読む]
36.
Step#1 フックポイントの利用を宣言する
37.
fn_register_hooks( get_cart_product_data_pre , //1 get_cart_product_data_post_options
//2 ); /app/addons/your_addon/init.php HOOKポイント名を登録する
38.
Step#2 init.phpで定義した フックポイントで動作する関数を作成する
39.
function fn_your_addon_get_cart_product_data_pre( $hash, $product, $skip_promotion, $cart, $auth, $promotion_amount ) /app/addons/your_addon/func.php 引数はHOOKポイントを参照する fn_[アドオンID]_[フックポイント名](引数){ …… } PHPフックポイントの命名規則
40.
PHP-HOOKの利用例 独自で作成したテーブルのフィールドも 検索対象としたい。 アドオンで作成した(商品と紐付いた)値も 合わせて取得したい/更新したい
41.
まとめ
42.
• カスタマイズのスタートは「アドオン」から • 全体の構造をおおまかに理解する (コアの構造と同じ構造をアドオンで組み立てる) •
CS-Cartをフレームワークとして向き合う。 かなりの部分は命名規則とディレクトリ構造の理解で充分
43.
ご静聴ありがとうございました
Jetzt herunterladen