• R/O
  • HTTP
  • SSH
  • HTTPS

nucleus-plugins: Commit

Nucleus CMS日本語版用プラグインのうち、日本語版開発者がサポートしているもの


Commit MetaInfo

Revision5f53486ef84856b9a3692a904fbfa7ca8a687058 (tree)
Time2006-11-06 18:02:29
Authorshizuki <shizuki@1ca2...>
Commitershizuki

Log Message

fix Redirect (check query string)

git-svn-id: https://svn.sourceforge.jp/svnroot/nucleus-jp/plugin@481 1ca29b6e-896d-4ea0-84a5-967f57386b96

Change Summary

Incremental Difference

--- a/trunk/NP_CustomURL/NP_CustomURL.php
+++ b/trunk/NP_CustomURL/NP_CustomURL.php
@@ -45,7 +45,7 @@ class NP_CustomURL extends NucleusPlugin
4545
4646 function getVersion()
4747 {
48- return '0.3.12';
48+ return '0.3.13';
4949 }
5050
5151 function getDescription()
@@ -506,6 +506,9 @@ class NP_CustomURL extends NucleusPlugin
506506 break;
507507 }
508508 }
509+ if (!empty($temp)) {
510+ $queryString = implode('&', $temp);
511+ }
509512 if (reset($p_arr)) {
510513 $b_url = createBlogidLink($blogid);
511514 $red_path = '/' . implode('/', $p_arr);
@@ -513,6 +516,10 @@ class NP_CustomURL extends NucleusPlugin
513516 $b_url = rtrim($b_url, '/');
514517 }
515518 $redurl = sprintf("%s%s", $b_url, $red_path);
519+ if ($queryString) {
520+ $sep = (substr($redurl, -1) == '/') ? '?' : '/?';
521+ $redurl .= $sep . $queryString;
522+ }
516523 // HTTP status 301 "Moved Permanentry"
517524 header( "HTTP/1.1 301 Moved Permanently" );
518525 header('Location: ' . $redurl);
@@ -521,7 +528,7 @@ class NP_CustomURL extends NucleusPlugin
521528 }
522529 } elseif ($redirectNormal && $feeds) {
523530 $b_url = rtrim(createBlogidLink($blogid), '/');
524- switch ($request_path) {
531+ switch ($reqPath) {
525532 case 'xml-rss1.php':
526533 $feed_code = '/index.rdf';
527534 break;
@@ -590,23 +597,33 @@ class NP_CustomURL extends NucleusPlugin
590597 // decode FancyURLs and redirection to Customized URL
591598 // for blogsgetAllBlogOptions($name)
592599 case $CONF['BlogKey']:
600+ case 'blog':
601+ case 'blogid':
593602 if (isset($v_path[$i]) && is_numeric($v_path[$i])) {
594603 if ($useCustomURL[intval($v_path[$i])] != 'yes') {
595604 $blogid = intval($v_path[$i]);
596605 $bLink = TRUE;
597606 } else {
598- $red_uri = createBlogidLink(intval($v_path[$i]));
607+// $red_uri = createBlogidLink(intval($v_path[$i]));
608+ $red_uri = TRUE;
609+ $redirectBlogID = intval($v_path[$i]);
599610 }
600611 }
601612 break;
602613 // for items
603614 case $CONF['ItemKey']:
615+ case 'item':
616+ case 'itemid':
604617 if (isset($v_path[$i]) && is_numeric($v_path[$i])) {
605618 if ($useCustomURL[$blogid] != 'yes') {
606619 $itemid = intval($v_path[$i]);
607620 $iLink = TRUE;
608621 } else {
609- $red_uri = createItemLink(intval($v_path[$i]));
622+// $red_uri = createItemLink(intval($v_path[$i]));
623+ $red_uri = TRUE;
624+ $redirectParams['itemid'] = intval($v_path[$i]);
625+ $bid = getBlogIDFromItemID(intval($v_path[$i]));
626+ $redirectBlogID = intval($bid);
610627 }
611628 }
612629 break;
@@ -618,7 +635,11 @@ class NP_CustomURL extends NucleusPlugin
618635 $catid = intval($v_path[$i]);
619636 $cLink = TRUE;
620637 } else {
621- $red_uri = createCategoryLink(intval($v_path[$i]));
638+// $red_uri = createCategoryLink(intval($v_path[$i]));
639+ $red_uri = TRUE;
640+ $redirectParams['catid'] = intval($v_path[$i]);
641+ $bid = getBlogIDFromCatID(intval($v_path[$i]));
642+ $redirectBlogID = intval($bid);
622643 }
623644 }
624645 break;
@@ -632,16 +653,23 @@ class NP_CustomURL extends NucleusPlugin
632653 $catid = intval($v_path[$c]);
633654 $cLink = TRUE;
634655 } else {
635- $subcat_id = intval($v_path[$i]);
636- $catid = intval($v_path[$c]);
637- $linkParam = array($subrequest => $subcat_id);
638- $red_uri = createCategoryLink($catid, $linkParam);
656+// $subcat_id = intval($v_path[$i]);
657+// $catid = intval($v_path[$c]);
658+// $linkParam = array($subrequest => $subcat_id);
659+// $red_uri = createCategoryLink($catid, $linkParam);
660+ $red_uri = TRUE;
661+ $redirectParams['catid'] = intval($v_path[$c]);
662+ $redirectParams[$subrequest] = intval($v_path[$i]);
663+ $bid = getBlogIDFromCatID(intval($v_path[$c]));
664+ $redirectBlogID = intval($bid);
639665 }
640666 }
641667 break;
642668 // for archives
643669 case $CONF['ArchivesKey']:
644670 case $this->getOption('customurl_archives'):
671+ case 'archives':
672+ case 'archivelist':
645673 // FancyURL
646674 if (isset($v_path[$i]) && is_numeric($v_path[$i])) {
647675 if ($useCustomURL[intval($v_path[$i])] != 'yes') {
@@ -649,12 +677,18 @@ class NP_CustomURL extends NucleusPlugin
649677 $blogid = $archivelist;
650678 $exLink = TRUE;
651679 } else {
652- $red_uri = createArchiveListLink(intval($v_path[$i]));
680+// $red_uri = createArchiveListLink(intval($v_path[$i]));
681+ $red_uri = TRUE;
682+ $redirectParams['archivelist'] = intval($v_path[$i]);
683+ $redirectBlogID = $blogid;
653684 }
654685 // Customized URL
655686 } elseif (isset($v_path[$i])) {
656687 $archivelist = $blogid;
657- $red_uri = createArchiveListLink($archivelist);
688+// $red_uri = createArchiveListLink($archivelist);
689+ $red_uri = TRUE;
690+ $redirectParams['archivelist'] = intval($archivelist);
691+ $redirectBlogID = $blogid;
658692 } else {
659693 $archivelist = $blogid;
660694 $exLink = TRUE;
@@ -663,6 +697,7 @@ class NP_CustomURL extends NucleusPlugin
663697 // for archive
664698 case $CONF['ArchiveKey']:
665699 case $this->getOption('customurl_archive'):
700+ case 'archive':
666701 $y = $m = $d = '';
667702 $ar = $i + 1;
668703 if (isset($v_path[$i])) {
@@ -683,7 +718,10 @@ class NP_CustomURL extends NucleusPlugin
683718 $exLink = TRUE;
684719 } else {
685720 $blogid = intval($v_path[$i]);
686- $red_uri = createArchiveLink($blogid, $archive);
721+// $red_uri = createArchiveLink($blogid, $archive);
722+ $red_uri = TRUE;
723+ $redirectBlogID = $blogid;
724+ $redirectParams['archive'] = $archive;
687725 }
688726 // Customized URL
689727 } elseif ($darc || $marc) {
@@ -695,15 +733,22 @@ class NP_CustomURL extends NucleusPlugin
695733 }
696734 $exLink = TRUE;
697735 } else {
698- $red_uri = createArchiveListLink($blogid);
736+// $red_uri = createArchiveListLink($blogid);
737+ $red_uri = TRUE;
738+ $redirectParams['archivelist'] = $blogid;
739+ $redirectBlogID = $blogid;
699740 }
700741 } else {
701- $red_uri = createArchiveListLink($blogid);
742+// $red_uri = createArchiveListLink($blogid);
743+ $red_uri = TRUE;
744+ $redirectParams['archivelist'] = $blogid;
745+ $redirectBlogID = $blogid;
702746 }
703747 break;
704748 // for member
705749 case $CONF['MemberKey']:
706750 case $this->getOption('customurl_member'):
751+ case 'member':
707752 // Customized URL
708753 $customMemberURL = (substr($v_path[$i], -5, 5) == '.html');
709754 if (isset($v_path[$i]) && $customMemberURL) {
@@ -719,10 +764,15 @@ class NP_CustomURL extends NucleusPlugin
719764 $memberid = intval($v_path[$i]);
720765 $exLink = TRUE;
721766 } else {
722- $red_uri = createMemberLink(intval($v_path[$i]));
767+// $red_uri = createMemberLink(intval($v_path[$i]));
768+ $red_uri =TRUE;
769+ $redirectParams['member'] = intval($v_path[$i]);
770+ $redirectBlogID = $blogid;
723771 }
724772 } else {
725- $red_url = createBlogidLink($blogid);
773+// $red_url = createBlogidLink($blogid);
774+ $red_url = TRUE;
775+ $redirectBlogID = $blogid;
726776 }
727777 break;
728778 // for tag
@@ -836,8 +886,30 @@ class NP_CustomURL extends NucleusPlugin
836886 // FancyURL redirect to Customized URL if use it
837887 // HTTP status 301 "Moved Permanentry"
838888 if ($red_uri) {
889+ if (!empty($redirectParams['archivelist'])) {
890+ $archives = $redirectParams['archivelist'];
891+ unset($redirectParams['archivelist']);
892+ $redirectURL = createArchiveListLink($archives, $redirectParams);
893+ } else {
894+ $redirectURL = createBlogidLink($redirectBlogID, $redirectParams);
895+ }
896+ if (serverVar('QUERY_STRING')) {
897+ $queryArr = explode('&', serverVar('QUERY_STRING'));
898+ foreach ($queryArr as $k => $val) {
899+ if (preg_match('/^virtualpath/', $val)) {
900+ unset($queryArr[$k]);
901+ }
902+ }
903+// $trush = array_shift($queryArr);
904+ if (!empty($queryArr)) {
905+ $queryStr = implode('&', $queryArr);
906+ $redirectURL .= '?' . $queryStr;
907+ }
908+ }
909+//echo $redirectURL;
839910 header('HTTP/1.1 301 Moved Permanently');
840- header('Location: ' . $red_uri);
911+// header('Location: ' . $red_uri);
912+ header('Location: ' . $redirectURL);
841913 exit;
842914 }
843915
@@ -1026,7 +1098,7 @@ class NP_CustomURL extends NucleusPlugin
10261098 $itime = quickQuery(sprintf($tque ,$table, $item_id));
10271099 sscanf($itime,'"%d-%d-%d %s"', $y, $m, $d, $temp);
10281100 $defItem = $this->getOption('customurl_dfitem');
1029- $tempParam = array('year' => $Y,
1101+ $tempParam = array('year' => $y,
10301102 'month' => $m,
10311103 'day' => $d);
10321104 $ikey = TEMPLATE::fill($defItem, $tempParam);
@@ -1610,7 +1682,7 @@ class NP_CustomURL extends NucleusPlugin
16101682 $param = array('member',
16111683 'mnumber',
16121684 $member_id);
1613- if (!$this->_isValid()) {
1685+ if (!$this->_isValid($param)) {
16141686 $url = _NOT_VALID_MEMBER;
16151687 } else {
16161688 $url = createMemberLink($member_id);
Show on old repository browser