XPressME Integration Kit

フォーラム

WordPress の更新画面への直リンクについて

永らくありがとうございました フォーラム バグ報告と提案 WordPress の更新画面への直リンクについて

  • このトピックには8件の返信、2人の参加者があり、最後に匿名により10年、 1ヶ月前に更新されました。
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • 投稿者
    投稿
  • #2698
    匿名
    ゲスト

    WordPress の更新画面への直リンクについて

    Toemonさん、こんにちは。

    お世話になります。

    XUGJのほうで、xupdate(導入・アップデート管理)のモジュール画面の表示についての提案をさせていただき、xupdateの画面に、「WordPress の更新」画面への直リンク

    (http://www.***.com/modules/xpress/wp-admin/update-core.php)を張っていただいたのですが、それをクリックすると、「WordPress の更新」画面が表示されず、「WordPress のログイン」画面が表示されます。

    一度、http://www.***.com/modules/xpress/にアクセスしてから再度戻ると、「WordPress の更新」画面が表示されます。

    ブラウザへのアドレス直打ちでも同様なので、xupdateの挙動ではなくて、XPRESS側の挙動だと思いこちらに投稿させていただきました。

    再度ログインすればよいので障害と言うほどのことはないのですが、予期した動作なのか、改善できるものかできないものかも分かりませんので、お知らせしました。

    ブラウザはIE9で試しています。

    よろしくお願い致します。

    #3423
    toemon
    キーマスター

    heijiさん、返事が遅れていまして、申し訳ありません。

    途中経過で、解決ではありません。

    状況

    /xpress/wp-admin/**の直リンク時はXOOPSのmainfile.phpをコールしておらず。

    /wp-admin/**アクセス時には、/xpress/index.php読み込み時のログインキャッシュ(Wordpress)を利用しています。

    (これは、/wp-admin/**をの呼び出し時にmainfile.phpをコールすると、メディアアップロードのポップアップウィンドウ正しく動作しないという理由から、読み込みを禁止しているものです。)

    このため、/modules/xpress/wp-admin/update-core.phpの直接リンク時にはXOOPSログイン情報が引き渡されない状況となっています。

    現在、/modules/xpress/wp-admin/update-core.phpの直リンク時に、XOOPS mainfile.phpをコールするようにしてテストしていますが、状況は変わりません。

    自分の能力では、ここから先は、デバッカで動作を追いかける必要がありますので、詳細の結論は、もう少し時間をいただきたいと思います。

    以上、簡単ですが、現状報告させていただきます。

    #3424
    匿名
    ゲスト

    Toemonさん、お返事ありがとうございます。

    せっかくのお正月休みのところ、煽ってしまったようでごめんなさい。

    ご都合のよろしいときで構いませんので、ご検討いただければ助かります。

    「これは、/wp-admin/**をの呼び出し時にmainfile.phpをコールすると」は「これは、/xpress/wp-admin/**をの呼び出し時にmainfile.phpをコールすると」でしょうか?

    こちらのお返事も、次回のお返事のときに合わせていただければ結構です。

    よろしくお願い致しますm(_o_)m

    #3425
    toemon
    キーマスター

    WordPressでは/wp-admin/**にアクセスされた場合

    auth_redirect()にて、ユーザーかログインしているどうかをチェックして、ログインしていない場合にはログインページにリダイレクトします。

    auth_redirect()はユーザーがログインしているどうかをwp_validate_auth_cookie()で判定しますが、

    wp_validate_auth_cookie()はWordPressのログインクッキーが存在しない場合は、ログインしていないと判断します。

    ここで、/wp-admin/update-core.phpを直接ロードした場合、

    先に実行される、get_currentuserinfo()でのユーザ判定の過程でWordPressログインクッキーを作成しのsetcookie()を実行しますが、

    setcookie()でセットされたクッキーは、次にページをロードするまで有効にアクセスすることができませんので

    その後のauth_redirect()の判定では、ログインしていないと判断しクッキーを消去したのち、ログインページにリダイレクトしてしまいます。

    簡単に言うと、先にロードしたページでWordPressのログインクッキーが作成されていない限りログインページにリダイレクトしてしまうと仕様になっています。

    従って、事前のWordPressログインなし(WordPressのログインクッキーなし)で/wp-admin/update-core.phpを直接ロードした場合は

    ログインページにリダイレクトしてしまうということになります。

    auth_redirect()自体、pluggableなので改変することは可能だと思いますが、WordPressバージョン間での互換を考えるとあまり手を加えたくないという思いがあります。

    そこで、今後の考え方ですが、XPressME Integration Kit 単体でモジュールとしてインストールできる形態(XPressME Integration Module?)にして、

    単体インストール後のアクセスでにWordPressが統合されていなければ、統合を促し、XPressME Integration Moduleの管理画面からWordPressをインストールする形にしたいと考えています。

    この形式であれば、XPressME Integration Module 単体でのリポジトリが可能になるのではないかと考えています。

    以上、簡単な解決には至りませんでしたが、ご報告させていただきます。

    #3426
    匿名
    ゲスト

    Toemonさん、お返事ありがとうございます。

    気軽にお願いしてしまいましたが、非常に混み入った話のようでお手数おかけしています。難しければ再ログインすればよいだけの話ですので無理に対応いただかなくても結構です。

    > 今後の考え方ですが、XPressME Integration Kit 単体でモジュールとしてインストールできる形態(XPressME Integration Module?)にして、

    単体インストール後のアクセスでにWordPressが統合されていなければ、統合を促し、XPressME Integration Moduleの管理画面からWordPressをインストールする形にしたいと考えています。

    現在のXPressME Integration Kit の構成も非常に画期的で素晴らしいと思っていますが、これが実現すればインストールの敷居も楽になりますね。現在は、X-updateもあるので既にかなり楽になっていますが。

    今後の発展形に非常に期待しています。

    願わくば、新規インストールだけでなく、現在のブログ記事もそのまま移行できるように、アップグレードパスをもうけていただけると非常にありがたいです。

    プログラム構成の美しさにいつも感心しています。

    よろしくお願い致します。

    #3427
    toemon
    キーマスター

    直接アクセスはやはり無理っぽいので、一応の解決策として

    モジュールのadminディレクトリ配下に

    以下の内容を含む、wp_update.phpというファイルを追加し

    <code><?php<br />
    $mydirname = basename(dirname( dirname( __FILE__ ) )) ;<br />
    $mydirpath = dirname( dirname( __FILE__ ) ) ;<br />
    require_once '../../../include/cp_header.php' ;<br />
    require_once $mydirpath . '/wp-config.php' ;<br />
    <br />
    $url = XOOPS_URL . '/modules/' . $mydirname . '/wp-admin/update-core.php';<br />
    header('Location: ' . $url);<br />
    ?></code>

    その上で、モジュールディレクトリ/admin/wp_update.phpを呼び出すという形でならなんとかなると、思いますが、いかがでしょうか?

    このような形でよろしければ、次バージョンへ反映させていただきます。

    #3428
    匿名
    ゲスト

    Toemonさん、ありがとうございます。

    ばっちりです!!

    いつも真摯に対応いただき感謝しております。

    気軽にご連絡したことで、大変お手数をおかけしてしまったようで申し訳ございません。

    > このような形でよろしければ、次バージョンへ反映させていただきます。

    ありがとうございます。よろしくお願い致します。

    XUGJのほうにもご報告させていただきますね (^_^)。

    #3429
    toemon
    キーマスター

    チェンジセット 834にて機能追加いたしました。

    この機能はVer2.4.9から含まれます。

    #3430
    匿名
    ゲスト

    toemonさん、ありがとうございました。

    http://www.xugj.org/modules/QandA/index.php?topic_id=2268

    の件があり、確認遅れてしましましたが、ばっちりです。

    今後もよろしくお願い致します。

9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • このトピックに返信するにはログインが必要です。