MOODLE使い方

何か編集するのであれば管理者でログインして「編集モードの開始」を押す。

1.階層イメージ

カテゴリ→ サブカテゴリ →コース →

2.何はともあれコースを作る

1) 管理者権限
(あるいはコース作成を許可されているユーザ権限) でログインしてください。
2)「サイト管理」の「コース」をクリックしてください。


>3.コースに教師として登録する

Home→コース選択→設定(ユーザ)→登録ユーザ→[ユーザを登録する]を押す

4.プロファイルの編集

Moodle には、ユーザ間でメッセージのやり取りをしたり、ブログを記述したりする SNS機能があります。

5.コースに学生を登録する



a,201301,jioro,tanaka,j-ytanaka@exaple.jp

▼サイト管理 → ユーザ → アカウント →ユーザをアップロードする

6.課題のインポート

新しいコースを作成したら、過去のコースから課題をインポートできる。
カテゴリ▶コース▶コース名選択▶管理▶インポート▶ ここでチェックは全部に付けたままにして次へ▶


7.小テスト ドラッグ&ドロップテキスト の作り方

[[1]] [[2]](配送日, 部署ID, 部署名, 配送先 ,部品ID, 数量)
[[3]]( 2016-8-30 500 研究開発部 川崎事業所 2346 50 )
2重の大かっこがドロップエリアの空欄になる

解答の選択肢は下に書く

穴埋め問題

    データベースへ接続して
    {1:SHORTANSWER:誤答#誤答へのフィードバック~=SQL#正答へのフィードバック~%50%クエリ#対応するフィードバック}
    文を実行することでデータベースを操作する。

    {1:SHORTANSWER:誤答#誤答へのフィードバック~=プリペアドステートメント#正答へのフィードバック~%50%プリペアド#対応するフィードバック}ではSQL文とパラメータ(ユーザーの入力値)を別々にDBへ渡すのでSQLインジェクションが防げる

    SQL文のパラメータ部分のところには値を入れずに:名前や?の文字を入れて開けておきます。この部分のことを{1:SHORTANSWER:誤答#誤答へのフィードバック~=プレースホルダ#正答へのフィードバック~%50%ぷれーすほるだ#対応するフィードバック}といい、後追いで値だけ変数にして{1:SHORTANSWER:誤答#誤答へのフィードバック~=バインド#正答へのフィードバック~%50%#対応するフィードバック}(結びつけ)してやります。

Ec-cube サブドメイン さくら html除去 htaccess

 

  1. サーバー管理画面から、サブドメインを作る。例)store.ultimai.org > ultimai.org/ec/html を参照させる
  2. クイックインストールで、ultimai.org/ec/ にインストール
  3. Ec-cubeの設定(セットアップ)になったら、store.ultimai.org(サブドメイン)で開き直す。
  4. 完了後 store.ultimai.org だと Access forbidden! になるので
    html/.htaccess を編集 RewriteRule ^(.*)$ /index.php [QSA,L]  スラッシュをつけるだけ
  5. これにて store.ultimai.org だけでTOPページにたどりつける。
    他のリンクも大丈夫だ。

 
管理画面にもこの設定後ならサブドメインで入れた。

プラグインからデータベース接続

//こういう接続クラスがある
 global $wpdb;  
$kkyk = $wpdb->posts;
 $strsql =  "select k.kkyk_id,kkyk_mei,kkyk_huri 
             FROM $kkyk as k 
             WHERE k.kkyk_mail= %s";
 
 $col = $wpdb->get_row( $wpdb->prepare($strsql,$email));

object(stdClass)#2915 (3) { ["kkyk_id"]=> string(1) "1" ["kkyk_mei"]=> string(12) "佐藤治郎" ["kkyk_huri"]=> string(18) "さとうじろう" }

wordpressのログインアタック (ブルートフォース攻撃)

GoogleAnalyticsの最近のアクセス状況。
GoogleAnalytics

不自然なアクセス数の増減からログを調べたところこんなかんじだった。


logatt1

こいつのWhois情報
logatt2

とりあえずhtaccessであちこちブロック deny from 排除したいIPアドレス
logatt3

投稿の作者名がIDと同じなのはマズイ。名には日本語を入れるといい.
そして、ブログ上の表示名を日本語の表記にする。

プラグインも入れておけ Limit Login Attempts

それでも効果ないならこれをwp-login.php先頭のほうに追加。"てきとうなひらがな"をセッション変数に格納するphpファイルを作って、wp-login.phpにリンクを貼っておく。これで効果覿面

session_start();
if(!isset($_SESSION['任意文字'])){
    echo '<h1>404 Not Found<hr></h1>';
    exit;
}
if($_SESSION['任意文字']!="てきとうなひらがな"){
    echo '<h1>404 Not Found<hr></h1>';
    exit;
}


もっと設置が楽な方法として、wp-adminディレクトリにBsic認証を設置する方法がある

 

 

WordPressアップデート失敗

ailed to open stream: Permission denied in 〜〜〜 class-wp-filesystem-direct.php on line 202
ファイルをコピーできませんでした。
インストール失敗
----------------------------

■原因
FTP接続の設定になっていたりApacheの実行ユーザーが
nobodyになっていることなどが原因。

1.wp-config.php に最下部に下記を記載する。
これがFTP接続情報を回避する方法となる。
------------------------------
define('FS_METHOD','direct');
------------------------------

2./etc/httpd/conf/httpd.conf の
user と group を自分のユーザー名に変える。
コピーできないとかパーミッションがなんとか言われた場合の回避方法。

------------------------------
138 #User nobody
139 #Group nogroup
140 User 自分のユーザー名
141 Group 自分のグループ名
------------------------------

3.変えたユーザーは戻したほうが無難

とあるプラグインを読み込んで別ウィンドウでテーマフォルダのテンプレートを開く方法

http:// wrapper is disabled in the server configuration by allow_url_include=0

というエラーがありまして。その解決方法

$fullpath=dirname(__FILE__);

    $path=strrpos($fullpath,'/');

    $path9=strrpos($fullpath,'/');

    $plugin-name=substr($fullpath,0,$path).'/plugin-name;

     define('PDIR',$plugin-name);

ここまでプラグインのTOPで行う

以下を別窓で開いたテーマフォルダのテンプレートに書く

require_once (PDIR.'/plugin-file.php');

プラグインでCSSファイルを読み込む方法

CSSを読み込むには、以下の関数を使用します。
wp_enqueue_style

$pdir; にはこのプラグインフォルダまでのフルパスが格納されておる

function your_styles() {
global $pdir;
wp_enqueue_style( 'message',  $pdir . '/message.css', array(), null, 'all');
}
add_action( 'wp_enqueue_scripts', ' your_styles');

 

  • $handle:(必須) (required) ハンドル名を指定 [デフォルト: なし]
  • $src:(任意)ファイルパスを指定 [デフォルト:false]
    get_option('siteurl') // ルートディレクトリ
    get_bloginfo('stylesheet_directory') // 子テーマのディレクトリ
    get_bloginfo('template_url') // 親テーマのディレクトリ
    get_bloginfo('plugins_url') // プラグインのディレクトリ
  • $deps:(任意)依存関係を明示。特定のCSSファイルの後に読み込みを行わせたい場合に指定する。ハンドル名で明示 [デフォルト:array()]
  • $ver:(任意)ファイルのバージョン番号を指定 [デフォルト:false]
  • $media:(任意) CSSのメディアタイプを指定 [デフォルト:'all']

WPの長いタイトルを文字数制限


get_posts で最近の投稿のタイトルを取得、多次元配列なので更に$post->post_titleでタイトルのみ取り出す
あとは mb_substr で文字数指定。

RecentPost

    post_title;
    if(mb_strlen($post_title)>15) {
    $post_title = mb_substr($post_title,0,18).'...';
    }
    ?>

スタイルシートを相対パスで書きだす

 <?php $dir = get_template_directory_uri() ; //テーマディレクトリ?>

<?php //wp関数とは同じ括りに入れられないらしい。syntaxErrになる
 $pos = strpos((string)$dir , '/' ,8 );
 $sdir= substr($dir, $pos, strlen($dir)-$pos);
?>

<link rel="stylesheet" href="<?=$sdir ?>/style.css" type="text/css" />
<!--ついでにこれも-->
 <link href="<?=$sdir ?>/favicon.gif" rel="shortcut icon">

WordPress リビジョン 無効

WordPressのDBにリビジョンを残さない

プラグインは不要

wp-config.php にこれを追加するだけ。場所はどこでもOK

define('WP_POST_REVISIONS', false);

すでにあるリビジョンは消えない。

タグに付けられたIDにClassを追加する

body内にないとダメらしい。うまく行かなかったらあちこち移動してみる。
prototype.jsがほしいのでどっかから参照する。

<script src="/js/prototype.js" type="text/javascript"></script>


<script>// <![CDATA[

 var element4=document.getElementById("menu-item-71") 
 element4.addClassName("shake");  //クラス shakeを追加

element4.removeClassName("menu-item-object-page"); //menu-item-object-pageクラスを除去
// ]]></script>

WordPress 投稿 独自テーブル 保存

タイトルのようなプラグインを作ってみました。
概ねこちら
で紹介されていた内容で作ってますが、取り扱いにいろいろ戸惑ったので
そのまとめ。

プラグインを有効にしたあとに、新規投稿を開くとこんな感じに
「カスタムフィールド」がが追加されている。

custom1

投稿後DBには'wp_ex_meta'テーブルが追加されている。

ソースをアップしておく
プラグイン本体+表示用single.php