メンバーシップ【会員制サイト】プラグイン:画像アップロードの追加方法

CMSファクトリー4 アドオン・プラグインについて
公式アドオン・プラグイン販売開始致しました!

メンバーシップ【会員制サイト】プラグイン:画像アップロードの追加方法

投稿記事by cmsfactory4 » 2010年9月13日(月) 19:28

以下、メンバーシップ【会員制サイト】プラグインでの、画像アップロードの追加方法です。
ご参考下さい。

プラグインに付随の sample_profile.php を以下の様に編集する事で、例えばメンバー・アバター等のアップロードが可能になります。

1)CMSF4にログインして「アカウント管理」のセクションエディタに profile_image のフィールド名で、
フィールドタイプ:アップロードを追加(かんたん追加)して下さい。

1- A)CMSF4にログイン
1- B)Admin > セクションエディタリスト > アカウント管理:編集をクリック
1- C)かんたん追加:フィールドラベル「プロフィール画像」、フィールドタイプ「アップロード」、
フィールド名「profile_image」

次にメンバーシップ・プラグインに付随の表示コード・テンプレート sample_profile.php を基本に、
以下の変更をお願い致します。

2)入力エリアに以下のコードを追加して下さい。
コード: 全て選択
<tr>
<td valign="top">プロフィール画像</td>
<td>
<?php list(list($current_user_with_uploads),) = getRecords(array('tableName' => 'accounts', 'where' => mysql_escapef('num = ?', $CURRENT_USER['num']), 'allowSearch' => false)); ?>
<?php if (sizeof(@$current_user_with_uploads['profile_image'])):
$upload = $current_user_with_uploads['profile_image'][0] ?>
<a href="<?php echo $upload['urlPath'] ?>">
<img src="<?php echo $upload['thumbUrlPath'] ?>" width="<?php echo $upload['thumbWidth'] ?>" height="<?php echo $upload['thumbHeight'] ?>" alt="" /><br/>
</a>
<?php else: ?>
プロフィール画像がありません<br />
<?php endif ?>
アップロード:<input type="file" name="profile_image">
</td>
</tr>

3)"// update user" の上部に以下のコードを追加して下さい。
コード: 全て選択
// upload 'profile_image' if supplied
$uploadFieldName = 'profile_image';
$uploadInfo = @$_FILES[$uploadFieldName];
if ($uploadInfo && !$errorsAndAlerts) {

/// attempt to save the upload
$errors = saveUpload('accounts', $uploadFieldName, $CURRENT_USER['num'], null, $uploadInfo, $newUploadNums);

/// check for errors
if ($errors) {
$errorsAndAlerts .= "アップロードに問題が発生しました。: $errors<br/>\n";
}
else {

/// if the upload was successful, delete any other uploads associated with that record and field (so users only ever have 1 profile image)
global $TABLE_PREFIX;

// create query
$where = mysql_escapef(" WHERE tableName = 'accounts' AND recordNum = ? AND num != ?", $CURRENT_USER['num'], $newUploadNums[0]);

// remove upload files
$query = "SELECT * FROM `{$TABLE_PREFIX}uploads` $where";
$result = mysql_query($query) or die("MySQL Error: ". htmlspecialchars(mysql_error()) . "\n");
while ($row = mysql_fetch_assoc($result)) {
$files = array($row['filePath'], $row['thumbFilePath'], @$row['thumbFilePath2'], @$row['thumbFilePath3'], @$row['thumbFilePath4']);
foreach ($files as $filepath) {
if (!$filepath || !file_exists($filepath) || @unlink($filepath)) { continue; }

//$error = "ファイルの削除に失敗しました。'" .htmlspecialchars($filepath). "'\n\n";
//$error .= "アップロード先のファイルとディレクトリのパーミッション設定を確認して下さい。\n\n";
//$error .= "PHPエラーメッセージ : $php_errormsg\n";
//die($error);
}
}
if (is_resource($result)) { mysql_free_result($result); }

// remove upload records
mysql_query("DELETE FROM `{$TABLE_PREFIX}uploads` $where") or die("MySQLエラー : ". htmlspecialchars(mysql_error()) . "\n");
}

}

4)<FORM>に ENCTYPE="multipart/form-data" を追加して下さい。
以下の様になります。
コード: 全て選択
<form method="post" action="" ENCTYPE="multipart/form-data">

以上です。
お疲れさまでした。
アバター
cmsfactory4
Site Admin
 
記事: 78
登録日時: 2010年4月13日(火) 20:53

Return to アドオン・プラグイン

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]