Joomla! のincludes/joomla.php で定義される関数のリファレンス(マニュアル)

 version 1.0.15 調べ。

NOTICE

  • こいつを信用して何か起きても知りませんよ。

mixed mosGetParam(array &arr, string name, mixed def, int mask)

 連想配列arr にname というキーで定義されている値を取得する。

array arr (reference)

 取得元の配列。

string name

 取得したい値の名前。

mixed def

 name の値が未定義、または値が空の場合に def が指定されていれば、その値を返す。つまり既定値として利用される。

 既定値は null 。

int mask

 mask は値を取得する際にどのような変換を行うか。

 返される値はセキュリティのためか、各種変換処理が施されている。

trim
前後の空白文字を削除する。全角空白には適用されない。
noHTMLFilter
HTML のタグに該当する文字列を全て削除する。

 下記に列挙する定数を和集合で指定することで、変換処理を抑制できる。

_MOS_NOTRIM
trim を行わない。つまり前後の余白を削除しない。
_MOS_ALLOWHTML
noHTMLFilter を行わない。
_MOS_ALLOWRAW
noHTMLFilter を行わない。_MOS_ALLOWHTML の指定と実質的には同等。

mixed mosStripslashes(string &value)

 Joomla! 版 stripslahes 。

 value が配列の場合は再帰的に stripslases が適用される。

string value (reference)

 stripslases をかけたい値。

 引数value は参照となっているが、value が変換されるわけではなく、変換された値を返り値として返す。

 参照なので変数しか受け取れない。

boolean mosBindArrayToObject(array array, object &obj, string ignore, string prefix, boolean checkSlashes)

 obj に定義されているプロパティにarray の値を格納する。

 たとえば obj->id が定義されていれば、array[id] の値をそのプロパティに格納する。

 対象となるプロパティは、get_object_vars で取得できるプロパティに限られる。

 また半角アンダーバー( _ ) で始まるプロパティ名や、ignore と完全マッチするプロパティ名は対象外となる。

 主にmosDBTable やmosParameters で利用されている。

array array

 オブジェクトにbind したい配列。

object obj (reference)

 配列をbind したいオブジェクト。

string ignore

 対象外のプロパティの名前。

 性質上、指定できるプロパティは一つ。

 参照値を渡さないよう注意。

 既定値は空文字列。

string prefix

 prefix を指定した場合は、配列のキーが prefix + プロパティ名 の値が利用される。たとえばプロパティが jos でプロパティ名が name ならば、配列のキー名が josname の値を取得して格納する。

boolean checkSlashes

 checkSlashes が真で、かつget_magic_quotes_gpc がON の場合は、mosStripslashes() を実行した値が格納される。

 既定値は真。

 なおWindows 環境なら実行時に / を \ に読み替えてくれる。(本当にそのように動くだけであって、DIRECTORY_SEPARATOR やPATH_SEPARATOR を見てくれるわけではない)

array mosReadDirectory(string path, string filter, boolean recurse, boolean fullpath)

 ディレクトリ path の下にあるファイル・ディレクトリのリストを取得する。

 カレントディレクトリ ( . ) と親ディレクトリ( .. ) は 自動的に対象外となる。

string path

 リストを取得したいディレクトリのパス。

 opendir を使っているため、相対パスでも検索できるパスなら利用可能。

string filter

 取得したいファイル・ディレクトリ名をフィルタする正規表現。前後のデリミタは不要。

 既定値は . 。

boolean recurse

 ディレクトリを再帰的に検索するかを真偽値で指定。

※fullpath に真が指定されていないとあまり役に立たないだろう。

boolean fullpath

 ファイル名・ディレクトリ名を、path で補完するかどうか。

 path が path/to/dir でファイル名がhoge なら、取得できる値は path/to/dir/hoge となる。

 fullpath とは言っているが必ずしも絶対パスではない点に注意。

void mosRedirect(string url, string msg)

 url にリダイレクトするHTTP レスポンスヘッダを出力して処理を中断する。

 ステータスは問答無用で 301 Moved Permanently 。

 なおヘッダ出力済みの場合は指定ページをロードする JavaScript を出力する。

 mosConfing_live_site やプロトコル、ホスト名を補完するような優しさは持ち合わせていない。

string path

 リダイレクト先URL 。

 改行文字含みの文字列を渡すと、最初の行を対象にする。

 またhref やstyle を含んでたりと言った、怪しげな文字列だと問答無用で mosConfing_live_site に置換される。

string msg

 リダイレクト先ページで勝手に表示されるメッセージを指定する。

 URL エンコードしてくれるような優しさは持ち合わせていないので、マルチバイト文字列を渡す場合は注意。

 既定値は空文字列。

void mosErrorAlert(string text, string action, int mode)

 JavaScript でtext をalert するHTML を出力して処理を中断する。

 文句言うだけ言って処理を中断したい場合にどうぞ。

string text

 alert 表示したい文句。

 改行文字は <br /> になって、addslashes されてstrip_tags される。

string action

 alert でOK ボタンを押した後に実行して欲しいJavaScript 文字列。

 既定値は

window.history.go(-1);
int mode

 2 を指定すると action のみが出力される。ある程度、HTML を出力した後に利用(?)。

 2 以外はmeta 要素でcontent-type 指定後、text をalert して action を実行するHTML を出力する。

 既定値は1。

array mosTreeRecurse(string id, string indent, array list, array &children, int maxlevel, int level, boolean type)

 children からid をキーとする要素を取得して、それを「オブジェクト」を要素に持つ通常の配列として再帰的に木構造を解析、結果とそれを表現するHTML 文字列を作成する。

 オブジェクトが一意判別の値にid を利用しており、かつ親の指定にプロパティparent を利用していることが前提。あとHTML 文字列の作成にプロパティ name の値を利用する。

 返り値は各オブジェクトのid をキーに、オブジェクトを値とする連想配列。あくまで「解析」なわけであって、木構造を表現した連想配列ではない。

 ぶっちゃけ書いてて自分でもわけが分からなくなってくるが、要はメニューで出るアレだ。

 DB からとった値をレコード別にオブジェクト化して要素にした木構造表現済みの配列を渡せばたぶん動く。

 とりあえず木になる人はためして合点。というかソースを読んでくれ。

※難解なのはオレのせいじゃありません。

string id

 再帰的に処理するために、配列からどのキーの要素を取得すればいいのかを指定する。

 使う場合は連想配列で 0 とかをキーに値を放り込んで処理させればいいんじゃないかな。

string indent

 この関数は表示するHTML を作ってくれるわけだが、入れ子を表現するには先ずインデントが必要ってことかと思われ。

array list

 できあがった木構造を放り込む連想配列

 と言っても参照じゃないから渡した変数に直で埋め込んでくれるわけじゃないよ。ついでに言うと、参照渡しにしても望む結果にはなりません。

 とりあえず array() とかで。

 すでに要素を持っている配列を渡すと、それに追加したり上書きしたりした結果を返してくれる。

array children (reference)

 木構造を解析して欲しい値を放り込んだ木構造を表現した連想配列

 各要素はオブジェクト。必須となるプロパティは下記。

id
識別。
parent
誰が親か。
name
HTML 表現に利用される要素の名前。
int maxlevel

 どんくらいの階層を潜るか。無限ループ対策。

 既定値は 9999 。

 0 を指定すると、何も処理しない。

int level

 現在の階層。再帰処理に必要。

 とりあえず 0 で。既定値も 0 。

 当然ながら maxlevel 以上の値を指定すると何も処理してくれない。

 てか、こいつが何で最後じゃねぇんだ。

boolean type

 HTML 生成種別。

 真指定で、

<sup>L</sup>&nbsp;

 偽指定で、

- 

 既定値はなぜか 1 。将来的に拡張するつもりかな。

array return

 返り値はオブジェクトの連想配列

 最上位のキーが各要素の id となっており、各要素はちょっとした味付けを施したオブジェクト。そのオブジェクトはchildren の要素の参照(PHP4 ではコピー)になってるので、競合に注意しよう。

 味付けは下記。

treename
木構造を表現するHTML 文字列。
children
その要素が持つ子の数、じゃなくて、その要素と同階層にある要素の数。

string mosPathName(string p_path, boolean p_addtrailingslash)

 p_path の \ と / を相互変換して、セパレータの重複を除いてくれる。

 環境がWindows なら / を \ に、それ以外なら \ を / に変換する。

 本当にそのように動くだけであって、DIRECTORY_SEPARATOR やPATH_SEPARATOR を見てくれるわけではない。

 UNC パスにも対応してくれるらしい。えらいね。

string p_path

 美しくしたいパス。

boolean p_addtrailingslash

 真の場合は、末尾にセパレータを補完してくれる。

array mosObjectToArray(object p_obj)

 p_obj のプロパティ値を再帰的に連想配列に変換。

 なお変換されるプロパティは get_object_vars で取得できるもののみ。

object p_obj

 連想配列にしたいオブジェクト。

string mosGetBrowser(string agent)

 agent をUSER AGENT としてブラウザの種類を判別、その識別子を返す。

 と言っても全部が全部なんだか分かるわけじゃない。

返り値

※$version はバージョンに変換される。

MS Internet Explorer $version
IE とその周辺、Opera
Netscape $version
Netscapemozilla 。曖昧さを排除しているような気がする。
Unknown
判別不能
(その他)
MS ともNetscape とも判段つかないものは、includes/agent_browser.php を利用して再判断している模様。

string mosGetOS(string agent)

 agent をUSER AGENT としてOS を判別、その識別子を返す。

 判断つかないときは Unknown を返す。

※詳しくは includes/agent_os.php を読んでください。

array mosGetOrderingList(string sql, int chop)

 sqlSQL として実行して、結果からHTML のoption 要素のリストを生成する。

 順番を指定するselect 要素に利用されている模様。

string sql

 リストを生成するためのSQL

 option のvalue 値には value カラムを、表示文字列にはtext カラムが利用されるので、そのようなSQL を渡す。

int chop

 長すぎる表示文字列をちょん切る長さ。ちなみにちょん切った後に ... が付与されるので、最長文字列はchop+3 。

 既定値は30 。

 マルチバイトには対応していないので、いろんなところに弊害が出ている。

void mosMakeHtmlSafe(mixed &mixed, int quote_style, mixed exclude_keys)

 mixed がオブジェクトの場合に、そのget_object_vars で取得できるプロパティの値にhtmlspecialchars() をかける。

 なおプロパティの値が配列かオブジェクト、null の場合と、プロパティ名がアンダーバー( _ ) から始まる場合は対象外。

mixed &mixed

 HTML セーフにしたいオブジェクト。

 mixed だけどオブジェクトだけ。

int quote_style

 htmlspecialchars の第二引数 quote_style に利用される値。

 既定値は定数 ENT_QUOTES 。

mixed exclude_keys

 htmlspecialchars の除外対象にしたいプロパティ名を指定する。

 文字列、または文字列の配列を指定。

 文字列を指定した場合、プロパティ名の検証が == な点に注意。

boolean mosMenuCheck(int Itemid, string menu_option, string task, int gid)

 gid が指定メニューのアクセスレベルに達しているかを調べ、調査対象のメニューをmainframe の menu にセットする。

※単純にアクセス権限調べたいだけなら使うべきじゃない。

gid とかアクセスレベルとかの説明は面倒なのでしません。

int Itemid

 チェックするメニューのID 。

 値が未指定か、99999999 のときは、以下のmenu_option とtask を元に対象メニューが決定される。

string menu_option

 Itemid 未指定時に利用される。

 対象メニューのoption 。正確に言うとリンクURL が index.php?option=$menu_option で始まるメニューが対象になる。

 該当するメニューが複数あるときは、その中の最高権限が適用される。

 ちなみに未指定は空文字列扱い。

string task

 Itemid 未指定時に利用される。

 値が空文字列っぽくない場合、task のメニューが対象になる。正確に言うとリンクURL が index.php?option=$menu_option&task=$task で始まるメニューが対象になる。

 該当するメニューが複数あるときは、その中の最高権限が適用される。

int gid

 指定のメニューに達しているか調べて欲しい gid というかアクセスレベルというか。

 なんでこいつが最後なのかはナゾ。

string mosFormatDate(string date, string format, int offset)

 date にoffset 時間を足してformat でstrftime() した日時を返す。

string date

 "yyyy-mm-dd hh:ii:ss" な日時。

 ereg で上記書式に完全マッチしないと変換してくれない。月日時分秒は2桁です、0埋めです。

string format

 strftime したい文字列。

 既定値は空文字列。

 処理するときに空文字列だと定数 _DATE_FORMAT_LC に変換される。

int offset

 足したい時間。

 既定値はnull 。

 処理するときに未定義( null ) の場合は、mosConfing_offset に置換される。

 要はタイムゾーン対策。

string mosCurrentDate(string format)

 現在日時をformat でstrftime した文字列を返す。

 コンテンツの公開日時をチェックするときとかに使うやつ。

 タイムゾーン対策(?) でmosConfing_offset がきっちり加算される。

string format

 strftime したい文字列。

 既定値は空文字列。

 処理するときに空文字列だと定数 _DATE_FORMAT_LC に変換される。

string mosToolTip(string tooltip, string title, string width, string image, string text, string href, boolean link)

 メニューの登録フォームとかで、項目名をマウスオーバーするとぽちっとポップアップ表示するHTML を生成する。

 管理画面で利用する場合は、事前にoverlib を読み込んでおく必要がある。

string tooltip

 ポップアップの詳細部分に表示される文字列。

string title

 ポップアップのタイトル。

 既定値は空文字列。

string width

 ポップアップの横幅。table 要素のwidth 属性値として利用される。

 既定値は空文字列。

string image

 text 未指定時に、ポップアップの詳細部分に利用される画像。

 includes/js/ThemeOffice/ 配下の画像から指定。

 既定値は tooltip.png

string text

 項目名。リンク表示する場合の a 要素の子要素。

 既定値は空文字列。

string href

 リンク表示する場合のリンク先。

 既定値は # 。

 リンク表示如何に関わらず、この値が空でなければ文字色が #333 になる。

boolean link

 リンク表示するかどうか。

 既定値は 1 。将来拡張予定?

string mosWarning(string warning, string title)

 マウスオーバーで警告をポップアップ表示する画像のHTML を生成する。

 画像は includes/js/ThemeOffice/warning.png

string warning

 ポップアップの詳細文。

string title

 ポップアップのタイトル。

 既定値は Joomla! Warning 。

string mosCreateGUID()

 Global UID を擬似的に生成する。

 値はmicrotime とプロセスID を元とするuniqid() のmd5 値。

string mosCompressID(string id)

 id を16進数としてpack してBase64 エンコードした文字列を返す。

string mosExpandID(string id)

 mosCompressID() の逆。

mosPHPMailer mosCreateMail(string from, string fromname, string subject, string body)

 Joomla! の環境設定に合わせたメール送信オブジェクトを生成する。

 自前のコンポーネントやモジュールで実際にメールを送るときは、これではなくmosMail() を使うが吉。

 相変わらず引数の順序がナゾ。

※ソースを読み解く限りでは、envelope sender に対応してない模様。

string from

 送信元メールアドレス。

 既定値は空文字列。

 値が空の場合は処理の際にmosConfig_mailfrom に置換される。

string fromname

 送信者名。

 既定値は空文字列。

 値が空の場合は処理の際にmosConfig_fromname に置換される。

 MIME ヘッダとしての変換処理は自動で行われる。

 日本語版ではUTF8 からiso-2022-jp への文字コード変換が行われる。

string subject

 メールの件名。

 MIME ヘッダとしての変換処理は自動で行われる。

 日本語版ではUTF8 からiso-2022-jp への文字コード変換が行われる。

string body

 メールの本文。

 日本語版ではUTF8 からiso-2022-jp への文字コード変換が行われる。

boolean mosMail(string from, string fromname, mixed recipient, string subject, string body, boolean mode, mixed cc, mixed bcc, mixed attachment, mixed replyto, mixed replyname)

 メール送信を行う。

 自前のコンポーネントやモジュールで実際にメールを送るときは、mosCreateMail() ではなくこれを使うが吉。

※ソースを読み解く限りでは、envelope sender に対応してない模様。

string from

 送信元メールアドレス。

 値が空の場合は処理の際にmosConfig_mailfrom に置換される。

 Joomla! 好みのメールアドレスでないと駄目。

string fromname

 送信者名。

 値が空の場合は処理の際にmosConfig_fromname に置換される。

 MIME ヘッダとしての変換処理は自動で行われる。

 日本語版ではUTF8 からiso-2022-jp への文字コード変換が行われる。

 Joomla! 好みの名前でないと駄目。

mixed recipient

 送信先メールアドレス。

 あて先が一つの場合は文字列で、複数の場合は配列で指定。

 Joomla! 好みのメールアドレスでないと駄目。

string subject

 メールの件名。

 MIME ヘッダとしての変換処理は自動で行われる。

 日本語版ではUTF8 からiso-2022-jp への文字コード変換が行われる。

 Joomla! 好みの件名でないと駄目。

string body

 メールの本文。

 日本語版ではUTF8 からiso-2022-jp への文字コード変換が行われる。

boolean mode

 真の場合はHTML メールとして送られる。

 既定値は 0 。つまり偽。

mixed cc

 CC メールアドレスを指定する。

 あて先が一つの場合は文字列で、複数の場合は配列で指定。

 Joomla! 好みのメールアドレスでないと駄目。

mixed bcc

 BCC メールアドレスを指定する。

 あて先が一つの場合は文字列で、複数の場合は配列で指定。

 Joomla! 好みのメールアドレスでないと駄目。

mixed attachment

 添付ファイルのパスを指定する。

 一つなら文字列で、複数なら配列で指定する。

 とても嬉しい機能。

mixed replyto

 返信先メールアドレスを指定する。

 あて先が一つの場合は文字列で、複数の場合は配列で指定。

 Joomla! 好みのメールアドレスでないと駄目。

mixed replyname

 返信先の名前を指定する。

 Joomla! 好みの名前でないと駄目。

 replyto と数を合わせておこう。

boolean JosIsValidEmail(string email)

 email がJoomla! 好みのメールアドレスかチェックする。

 チェックする正規表現は下記。

/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/

boolean JosIsValidName(string string)

 string がJoomla! 好みの名前(文字列)かチェックする。

 正確にはASCII の文字コードマップでシステム文字に該当する文字列が含まれていないかを評価する。

 チェックする正規表現は下記。

/[\x00-\x1F\x7F]/

void initGzip()

 出力をGZIP 圧縮する準備を行う。

 Joomla! の出力で標準利用。

 基本的に用はないだろう。

void doGzip()

 出力をGZIP 圧縮する。

 Joomla! の出力で標準利用。

 基本的に用はないだろう。

string mosMakePassword(int length)

 ランダムパスワードを生成する。

int length

 生成するパスワードの文字列長。

string html_entity_decode(string string, int opt)

 PHP が関数 html_entity_decode を実装していない場合のみ定義される関数。

 内容はPHP の関数 html_entity_decode と一緒じゃなかろうか。

void SortArrayObjects(array &a, string k, int sort_direction)

 オブジェクトを要素に持つ配列を、プロパティ k の値に基づいてバブルソートする。

array a (reference)

 ソートしたい配列。

string k

 ソートの基準となるプロパティ名。

int sort_direction

 1 で昇順、 -1 で降順。

 既定値は 1 。

void SortArrayObjects_cmp(object &a, object &b)

 関数 SortArrayObjects() のための比較関数。

void mosSendAdminMail(string adminName, string adminEmail, string email, string type, string title, string author)

 管理者にメールを送信する。

 送信元はJoomla! 設定に従う。

 件名は _MAIL_SUB とtype の組み合わせ。

 本文は _MAIL_MSG を変数展開したもの。

string adminName

 送信先管理者名。

 本文の変数展開でも利用される。

string adminEmail

 送信先管理者メールアドレス。

 本文の変数展開でも利用される。

string email

 本文の変数展開で利用される。

string type

 件名にひっつく文字列。

 _MAIL_SUB が「User Submitted」でtype が「登録完了!」ならば、

User Submitted '登録完了!'

と、なる。

string title

 本文の変数展開で利用される。

string author

 本文の変数展開で利用される。

void mosPathWay()

 表示しているItemid に従ってパンくずを表示する。

 ご利用は一回限り。

void mosNotAuth()

 「ログインしねぇと見せねぇぜ!」ってな画面を表示する。

 どんな画面が出るかはJoomla! の設定による。

string ampReplace(string text)

 text の & を &amp; に変換する。

string mosPrepareSearchContent(string text, int length, string searchword)

 Joomla! コンテンツとかの検索結果で、該当箇所の前後を拾うために、HTML タグに考慮しながら指定の文字列長で切り出す、らしい。

Prepares results from search for display

 script 要素と{mosimage} のような変換文字列は削除した上で切り出し。

 また改行が行われるいくつかのHTML タグは半角スペースに変換される。(実際にはもちょっとややこしい)

 コンテンツ検索コンポーネントの com_search で利用されている。

 ちなみにハイライトはcom_search の仕業。

string text

 検索でひっかかったテキスト。

 このテキストから該当箇所の前後が切り出される。

int length

 切り出す文字列長。前後ではなく全体の文字列長。

 既定値は 200 。

string searchword

 検索文字列。

 text からこの文字列の前後が切り出される。

string mosSmartSubstr(string text, int length, string searchword)

 Joomla! 式スマート substr 。

 text からsearchword を中心とする前後の文字列をlength 分切り出す。見つからないと先頭からlength 分切り出す。

 マルチバイト対応。

 切り出しの頭が文の途中だと、前後に ... がくっつく。つまり切り出される最大文字列長はlength + 6 になる。

 mosPrepareSearchContent() はこれを利用している。

string text

 切り出したい文字列。

int length

 切り出す文字列長。前後ではなく全体の文字列長。

 既定値は 200 。

string searchword

 切り出す中心となる文字列。

boolean mosChmodRecursive(string path, int filemode, int dirmode)

 path 配下の全てのファイル・ディレクトリのアクセス権限を変更する。

 path がファイルならば、そのファイルのみ変更される。

 返り値は、全ての権限変更に成功した場合のみ真、それ以外では偽となる。

 エラーは拾えない。

string path

 変更対象のファイル・ディレクトリのパス。

int filemode

 変更するディレクトリの権限。

 未定義の場合は変更されない。

 8進数で指定しよう。

int dirmode

 変更するディレクトリの権限。

 未定義の場合は変更されない。

 8進数で指定しよう。

string mosChmod(string path)

 Joomla! の設定値に従って、path およびpath 配下のファイル・ディレクトリのアクセス権限を再帰的に変更する。

 返り値は、全ての権限変更に成功した場合のみ真、それ以外では偽となる。

 エラーは拾えない。

string path

 変更対象のファイル・ディレクトリのパス。

array mosArrayToInts(array &array, int default)

 配列 array の要素を全て int 型に強制変換する。

 返り値は変換後の配列。

 array が配列以外の場合は、array を配列に置換する。

array array (reference)

 要素を全てint に強制変換したい配列。

int default

 array が配列以外の場合は、array を配列に置換する。このときdefault が定義されていれば、第一要素にdefault の値を int に強制変換して格納する。

 ところで返り値の配列の要素がint に強制変換されていないのは仕様ですか?。

array josGetArrayInts(string name, array type)

 mosGetParam() のmosArrayToInts() バージョン。

 type を連想配列としてname をキーとする要素を取得、mosArrayToInts() をかけた配列を返す。

 mosGetParam() と引数の順序が逆なのは愛嬌。

string name

 type から取得したい値のキー名。

array type

 name の値を取得したい連想配列

 既定値はnull で、処理時に値がnull っぽいと$_POST が利用される。

string mosHash(string seed)

 Joomla!md5() 。

 seed をmd5() 化して、mosConfig_secret を頭につけた文字列を返す。

string seed

 Hash 化したい文字列。

void mosBackTrace()

 Joomla! 式debug_backtrace()

 というかdebug_backtrace() の内容をなんとはなしに美しく出力するイマドコ関数。

void josSpoofCheck(boolean header, string alt, string method)

 Joomla! 式なりすましチェッカ。

 フォームのhidden とかに埋め込んでおいた検証値を評価して、なりすましから身を守る。

 結果がJoomla! のお気に召さないと403 Forbidden 吐いてJavaScript のAlert が出る。

boolean header

 値が真評価値の場合は、$_POST の値にJoomla! が気に入らない文字列が混じってないかチェックする。

  • Content-Type:
  • MIME-Version:
  • Content-Transfer-Encoding:
  • bcc:
  • cc:
string alt

 フォームのhidden とかに埋め込んでおいた検証値を作るときに指定した種文字列。

string method

 HTTP リクエストメソッド。と見せかけて、どのスーパーグローバル変数から値をとるか。

 使える値は下記。対象外はpost 扱い。

  • get
  • request
  • post

void _josSpoofCheck(array array, array badStrings)

 $_POST の中にJoomla! が気に入らない文字列が入っていないか再帰的にチェックして、入っていたら403 Forbidden 吐いてJavaScript のAlert が出る。

 名前からも分かるとおり、josSpoofCheck() で利用される。

array array

 評価対象の配列。

array badStrings

 気に入らない文字列の配列。

string josSpoofValue(string alt)

 Joomla! 式なりすましチェッカ用の文字列を作成する。

string alt

 検証値を作るための種文字列。

string josHashPassword(string password)

 Joomla! パスワード用暗号化関数。(>= 1.0.13)

 文字列の後ろにコロン( : ) 区切りで暗号化塩がつくので、パスワード検証では塩を拾う必要がある。

 詳しくはソースを見ること。

string password

 暗号化するパスワード文字列。