1
efrael
Re: Help needed to change modules path
  • 2008/5/26 11:52

  • efrael

  • Just popping in

  • Posts: 9

  • Since: 2008/5/12


It's me again!

I found the key.

Don't know why but everithing works fine if I put the code in the mainfile.php NOT at the very beginning bt after the declarations of the XOOPS_URL.

I tried this way because it seems obvious to me that if the function "modules_changer" uses the XOOPS_URL variable, it has to know it and if you put the code at the very beginnning of the mainfile.php you haven't already declared that path.

Is it true?
Now everything seems to work.

This is my .htaccess now

RewriteEngine on
RewriteRule ^linksutili/(.*)$ modules/weblinks/$1 [L]
RewriteRule ^chisiamo/(.*)$ modules/content/$1 [L]
RewriteRule ^forum/(.*)$ modules/newbb/$1 [L]
RewriteRule ^rivista_online/(.*)$ modules/wfdownloads/$1 [L]
RewriteRule ^notizie_e_novita/(.*)$ modules/news/$1 [L]
RewriteRule ^eventi/(.*)$ modules/eguide/$1 [L]
RewriteRule ^main.css$ xoops.css [L]
RewriteRule ^include/main.js$ include/xoops.js [L]


and this is the entire mainfile.php

<?php

// $Id: mainfile.dist.php 506 2006-05-26 23:10:37Z skalpa $
// ------------------------------------------------------------------------ //
// XOOPS - PHP Content Management System //
// Copyright (c) 2000 XOOPS.org //
// <https://xoops.org/> //
// ------------------------------------------------------------------------ //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// You may not change or alter any portion of this comment or credits //
// of supporting developers from this source code or any supporting //
// source code which is considered copyrighted (c) material of the //
// original comment or credit authors. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program; if not, write to the Free Software //
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
// ------------------------------------------------------------------------ //




if ( !defined("XOOPS_MAINFILE_INCLUDED") ) {
define("XOOPS_MAINFILE_INCLUDED",1);

// XOOPS Physical Path
// Physical path to your main XOOPS directory WITHOUT trailing slash
// Example: define('XOOPS_ROOT_PATH', '/web/htdocs/www.cipog.com/home/centrogestalt');
define('XOOPS_ROOT_PATH', '/web/htdocs/www.cipog.com/home/centrogestalt');

// XOOPS Virtual Path (URL)
// Virtual path to your main XOOPS directory WITHOUT trailing slash
// Example: define('XOOPS_URL', 'http://www.cipog.com/centrogestalt');
define('XOOPS_URL', 'http://www.cipog.com/centrogestalt');

define('XOOPS_CHECK_PATH', 1);
// Protect against external scripts execution if safe mode is not enabled
if ( XOOPS_CHECK_PATH && !@ini_get('safe_mode') ) {
if ( function_exists('debug_backtrace') ) {
$xoopsScriptPath = debug_backtrace();
if ( !count($xoopsScriptPath) ) {
die("XOOPS path check: this file cannot be requested directly");
}
$xoopsScriptPath = $xoopsScriptPath[0]['file'];
} else {
$xoopsScriptPath = isset($_SERVER['PATH_TRANSLATED']) ? $_SERVER['PATH_TRANSLATED'] : $_SERVER['SCRIPT_FILENAME'];
}
if ( DIRECTORY_SEPARATOR != '/' ) {
// IIS6 may double the \ chars
$xoopsScriptPath = str_replace( strpos( $xoopsScriptPath, '\\\\', 2 ) ? '\\\\' : DIRECTORY_SEPARATOR, '/', $xoopsScriptPath);
}
if ( strcasecmp( substr($xoopsScriptPath, 0, strlen(XOOPS_ROOT_PATH)), str_replace( DIRECTORY_SEPARATOR, '/', XOOPS_ROOT_PATH)) ) {
exit("XOOPS path check: Script is not inside XOOPS_ROOT_PATH and cannot run.");
}
}



$GLOBALS['_rewriteRulesFrom'] = array(
'/linksutili/',
'/chisiamo/',
'/forum/',
'/rivista_online/',
'/notizie_e_novita/',
'/eventi/',
'/main.css',
'/include/main.js'
);

$GLOBALS['_rewriteRulesTo'] = array(
'/modules/weblinks/',
'/modules/content/',
'/modules/newbb/',
'/modules/wfdownloads/',
'/modules/news/',
'/modules/eguide/',
'/xoops.css',
'/include/xoops.js'
);

$GLOBALS['_abs_offset'] = preg_replace('/https?:\/\/'.$_SERVER["HTTP_HOST"].'/','',XOOPS_URL);
$GLOBALS['_rewriteRulesTo1'] = preg_replace('/^(.*)$/e','"!('.XOOPS_URL.'|\"".$GLOBALS["_abs_offset"]."|\'".$GLOBALS["_abs_offset"].")".preg_quote("\1","!")."!"', $GLOBALS['_rewriteRulesTo']);
$GLOBALS['_rewriteRulesFrom1'] = preg_replace('/^(.*)$/','\\\1\1',$GLOBALS['_rewriteRulesFrom']);

function modules_changer( $s ) {
$s = preg_replace($GLOBALS['_rewriteRulesTo1'],$GLOBALS['_rewriteRulesFrom1'], $s);
for($i=0; $i<count($GLOBALS['_rewriteRulesFrom']); $i++) {
$s = preg_replace( '/('.preg_quote(XOOPS_URL,'/').'|"|\')'.preg_quote($GLOBALS['_rewriteRulesTo'][$i],'/').'/' , "\\1".$GLOBALS['_rewriteRulesFrom'][$i] , $s ) ;
}
return $s;
}
if (empty($_SERVER['REDIRECT_URL']) || ($_SERVER['REDIRECT_URL'] == $_SERVER['REQUEST_URI'])) {
if (empty($_SERVER['REDIRECT_REDIRECT_STATUS'])) {
if (($_changer_url=modules_changer('"'.$_SERVER['REQUEST_URI'].'"')) != '"'.$_SERVER['REQUEST_URI'].'"') {
header('Location: ' . str_replace('"','',$_changer_url));
}
}
}
$_SERVER['REQUEST_URI'] = str_replace( $GLOBALS['_rewriteRulesFrom'],$GLOBALS['_rewriteRulesTo'], @$_SERVER['REQUEST_URI'] ) ;
$_SERVER['HTTP_REFERER'] = str_replace($GLOBALS['_rewriteRulesFrom'], $GLOBALS['_rewriteRulesTo'], @$_SERVER['HTTP_REFERER'] ) ;

ob_start( 'modules_changer' ) ;



// Database
// Choose the database to be used
define('XOOPS_DB_TYPE', 'mysql');

// Table Prefix
// This prefix will be added to all new tables created to avoid name conflict in the database. If you are unsure, just use the default 'xoops'.
define('XOOPS_DB_PREFIX', 'xoops');

// Database Hostname
// Hostname of the database server. If you are unsure, 'localhost' works in most cases.
define('XOOPS_DB_HOST', 'don't show');

// Database Username
// Your database user account on the host
define('XOOPS_DB_USER', 'don't show');

// Database Password
// Password for your database user account
define('XOOPS_DB_PASS', 'I'M NOT CRAZY');

// Database Name
// The name of database on the host. The installer will attempt to create the database if not exist
define('XOOPS_DB_NAME', 'don't show');

// Use persistent connection? (Yes=1 No=0)
// Default is 'Yes'. Choose 'Yes' if you are unsure.
define('XOOPS_DB_PCONNECT', 0);

define('XOOPS_GROUP_ADMIN', '1');
define('XOOPS_GROUP_USERS', '2');
define('XOOPS_GROUP_ANONYMOUS', '3');

foreach ( array('GLOBALS', '_SESSION', 'HTTP_SESSION_VARS', '_GET', 'HTTP_GET_VARS', '_POST', 'HTTP_POST_VARS', '_COOKIE', 'HTTP_COOKIE_VARS', '_REQUEST', '_SERVER', 'HTTP_SERVER_VARS', '_ENV', 'HTTP_ENV_VARS', '_FILES', 'HTTP_POST_FILES', 'xoopsDB', 'xoopsUser', 'xoopsUserId', 'xoopsUserGroups', 'xoopsUserIsAdmin', 'xoopsConfig', 'xoopsOption', 'xoopsModule', 'xoopsModuleConfig', 'xoopsRequestUri') as $bad_global ) {
if ( isset( $_REQUEST[$bad_global] ) ) {
header( 'Location: '.XOOPS_URL.'/' );
exit();
}
}

if (!isset($xoopsOption['nocommon']) && XOOPS_ROOT_PATH != '') {
include XOOPS_ROOT_PATH."/include/common.php";
}
}
?>



Do you think it is now all right??



2
efrael
Re: Help needed to change modules path
  • 2008/5/26 11:18

  • efrael

  • Just popping in

  • Posts: 9

  • Since: 2008/5/12


Hi avtx30,

I found the problem in the .htaccess

I had to avoid a / at the beginning of the path.
So now I have a .htaccess working fine. This is the code

RewriteEngine on
RewriteRule ^linksutili/(.*)$ modules/weblinks/$1 [L]
RewriteRule ^terapia/(.*)$ modules/content/$1 [L]
RewriteRule ^main.css$ xoops.css [L]
RewriteRule ^include/main.js$ include/xoops.js [L]


If I try to access the site by
http://www.cipog.com/centrogestalt/linksutili/ I have the redirect tohttp://www.cipog.com/centrogestalt/modules/weblinks/

That's fine but is still doesn't work the mainfile.php
If I go to the homepage of my site www.cipog.com/centrogestalt/ it opens my page but the link to thehttp://www.cipog.com/centrogestalt/modules/weblinks/ is NOT changed inhttp://www.cipog.com/centrogestalt/linksutili/

I assume that now the problem is on the mainfile.php



3
efrael
Re: Help needed to change modules path
  • 2008/5/26 9:23

  • efrael

  • Just popping in

  • Posts: 9

  • Since: 2008/5/12


Good avtx30, this is my .htaccess


RewriteEngine on
RewriteRule ^linksutili/(.*)$ /modules/weblinks/$1 [L]
RewriteRule ^terapia/(.*)$ /modules/content/$1 [L]
RewriteRule ^main.css$ /xoops.css [L]
RewriteRule ^include/main.js$ /include/xoops.js [L]
RewriteRule ^link([^/]*)\.html$ rewrite.php?link=$1 [L]


The first lines are for xoops, the last one is for test.
Only the last line it works.

Consider that XOOPS is installed in a subfolder
http://www.cipog.com/centrogestalt/

so I'm tryinghttp://www.cipog.com/centrogestalt/linksutili/ to point athttp://www.cipog.com/centrogestalt/modules/weblinks/

If i tryhttp://www.cipog.com/centrogestalt/links1.html orhttp://www.cipog.com/centrogestalt/links2.html orhttp://www.cipog.com/centrogestalt/links*.html
it correctly redirect on a php file that is named rewrite.php

What's wrong in the XOOPS lines?



4
efrael
Re: Help needed to change modules path
  • 2008/5/25 17:58

  • efrael

  • Just popping in

  • Posts: 9

  • Since: 2008/5/12


Hi trabis,

thanks again for your help.

I tested the mod_rewrite with this tool in the same directory where XOOPS is installed

http://www.wallpaperama.com/forums/how-to-test-check-if-mod-rewrite-is-enabled-t40.html

You can directly test it on my website here

http://www.cipog.com/centrogestalt/rewrite.php

It works, so the problem must be elsewhere...



5
efrael
Re: Help needed to change modules path
  • 2008/5/25 10:01

  • efrael

  • Just popping in

  • Posts: 9

  • Since: 2008/5/12


Thanks a lot trabis.

I modified the mainfile.php the way you suggested, removing the extra commas from the arrays and yes, I had the

ob_start( 'modules_changer' ) ;

line


Now the mainfile is exactly in this way but it still doesn't work.

<?php
$GLOBALS['_rewriteRulesFrom'] = array(
'/linksutili/',
'/terapia/',
'/main.css',
'/include/main.js'
);

$GLOBALS['_rewriteRulesTo'] = array(
'/modules/weblinks/',
'/modules/content/',
'/xoops.css',
'/include/xoops.js'
);

$GLOBALS['_abs_offset'] = preg_replace('/https?:\/\/'.$_SERVER["HTTP_HOST"].'/','',XOOPS_URL);
$GLOBALS['_rewriteRulesTo1'] = preg_replace('/^(.*)$/e','"!('.XOOPS_URL.'|\"".$GLOBALS["_abs_offset"]."|\'".$GLOBALS["_abs_offset"].")".preg_quote("\1","!")."!"', $GLOBALS['_rewriteRulesTo']);
$GLOBALS['_rewriteRulesFrom1'] = preg_replace('/^(.*)$/','\\\1\1',$GLOBALS['_rewriteRulesFrom']);

function modules_changer( $s ) {
$s = preg_replace($GLOBALS['_rewriteRulesTo1'],$GLOBALS['_rewriteRulesFrom1'], $s);
for($i=0; $i<count($GLOBALS['_rewriteRulesFrom']); $i++) {
$s = preg_replace( '/('.preg_quote(XOOPS_URL,'/').'|"|\')'.preg_quote($GLOBALS['_rewriteRulesTo'][$i],'/').'/' , "\\1".$GLOBALS['_rewriteRulesFrom'][$i] , $s ) ;
}
return $s;
}
if (empty($_SERVER['REDIRECT_URL']) || ($_SERVER['REDIRECT_URL'] == $_SERVER['REQUEST_URI'])) {
if (empty($_SERVER['REDIRECT_REDIRECT_STATUS'])) {
if (($_changer_url=modules_changer('"'.$_SERVER['REQUEST_URI'].'"')) != '"'.$_SERVER['REQUEST_URI'].'"') {
header('Location: ' . str_replace('"','',$_changer_url));
}
}
}
$_SERVER['REQUEST_URI'] = str_replace( $GLOBALS['_rewriteRulesFrom'],$GLOBALS['_rewriteRulesTo'], @$_SERVER['REQUEST_URI'] ) ;
$_SERVER['HTTP_REFERER'] = str_replace($GLOBALS['_rewriteRulesFrom'], $GLOBALS['_rewriteRulesTo'], @$_SERVER['HTTP_REFERER'] ) ;

ob_start( 'modules_changer' ) ;
// $Id: mainfile.dist.php 506 2006-05-26 23:10:37Z skalpa $
// ------------------------------------------------------------------------ //
// XOOPS - PHP Content Management System //
// Copyright (c) 2000 XOOPS.org //
// <https://xoops.org/> //
// ------------------------------------------------------------------------ //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// You may not change or alter any portion of this comment or credits //
// of supporting developers from this source code or any supporting //
// source code which is considered copyrighted (c) material of the //
// original comment or credit authors. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program; if not, write to the Free Software //
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
// ------------------------------------------------------------------------ //




if ( !defined("XOOPS_MAINFILE_INCLUDED") ) {
define("XOOPS_MAINFILE_INCLUDED",1);

// XOOPS Physical Path
// Physical path to your main XOOPS directory WITHOUT trailing slash

etc, etc, these are the first 70 lines.

Other ideas?



6
efrael
Re: Help needed to change modules path
  • 2008/5/24 18:06

  • efrael

  • Just popping in

  • Posts: 9

  • Since: 2008/5/12


Ok I tried the hack, it's ok for me to change

http://www.mysite.com/modules/articles/ in
http://www.mysite.com/onlinemagazine/

and I don't need to have /pages/ directory in my URLs, but the hack simply don't work.

Don't know why.

I change the .htaccess this way

RewriteEngine on
RewriteRule ^linksutili/(.*)$ /modules/weblinks/$1 [L]
RewriteRule ^terapia/(.*)$ /modules/content/$1 [L]
RewriteRule ^main.css$ /xoops.css [L]
RewriteRule ^include/main.js$ /include/xoops.js [L]


I change mainfile.php this way

<?php
$GLOBALS['_rewriteRulesFrom'] = array(
'/linksutili/',
'/terapia/',
'/main.css',
'/include/main.js',
);

$GLOBALS['_rewriteRulesTo'] = array(
'/modules/weblinks/',
'/modules/content/',
'/xoops.css',
'/include/xoops.js',
);

$GLOBALS['_abs_offset'] = preg_replace('/https?:\/\/'.$_SERVER["HTTP_HOST"].'/','',XOOPS_URL);
$GLOBALS['_rewriteRulesTo1'] = preg_replace('/^(.*)$/e','"!('.XOOPS_URL.'|\"".$GLOBALS["_abs_offset"]."|\'".$GLOBALS["_abs_offset"].")".preg_quote("\1","!")."!"', $GLOBALS['_rewriteRulesTo']);
$GLOBALS['_rewriteRulesFrom1'] = preg_replace('/^(.*)$/','\\\1\1',$GLOBALS['_rewriteRulesFrom']);

function modules_changer( $s ) {
$s = preg_replace($GLOBALS['_rewriteRulesTo1'],$GLOBALS['_rewriteRulesFrom1'], $s);
for($i=0; $i<count($GLOBALS['_rewriteRulesFrom']); $i++) {
$s = preg_replace( '/('.preg_quote(XOOPS_URL,'/').'|"|\')'.preg_quote($GLOBALS['_rewriteRulesTo'][$i],'/').'/' , "\\1".$GLOBALS['_rewriteRulesFrom'][$i] , $s ) ;
}
return $s;
}
if (empty($_SERVER['REDIRECT_URL']) || ($_SERVER['REDIRECT_URL'] == $_SERVER['REQUEST_URI'])) {
if (empty($_SERVER['REDIRECT_REDIRECT_STATUS'])) {
if (($_changer_url=modules_changer('"'.$_SERVER['REQUEST_URI'].'"')) != '"'.$_SERVER['REQUEST_URI'].'"') {
header('Location: ' . str_replace('"','',$_changer_url));
}
}
}
$_SERVER['REQUEST_URI'] = str_replace( $GLOBALS['_rewriteRulesFrom'],$GLOBALS['_rewriteRulesTo'], @$_SERVER['REQUEST_URI'] ) ;
$_SERVER['HTTP_REFERER'] = str_replace($GLOBALS['_rewriteRulesFrom'], $GLOBALS['_rewriteRulesTo'], @$_SERVER['HTTP_REFERER'] ) ;
etc. etc. etc.


Could be a problem with the modules I'm using?
Although I made this change, nothing happens.

Any idea?



7
efrael
Re: Help needed to change modules path
  • 2008/5/24 13:09

  • efrael

  • Just popping in

  • Posts: 9

  • Since: 2008/5/12


Thanks jimmyx,

I tried the first step

Quote:

jimmyx wrote:
create a folder named pages in your server and then you can move your site to the folder and update the path in your mainfile.php


I create the folder www.mysite.com/pages/
I moved all the /modules of my site there, but in the mainfile.php I can't find any url or path containing the /modules reference...

Something wrong?



8
efrael
Help needed to change modules path
  • 2008/5/24 11:32

  • efrael

  • Just popping in

  • Posts: 9

  • Since: 2008/5/12


Hi,
I'm wondering if i can change the path and/or the name of the modules folder and of single modules.
What I need is to change the url

http://www.mysite.com/modules/ in
http://www.mysite.com/pages/

in oder to have all my modules under the /pages/ folder.
After that I would like to rename the single modules, so that i can have
http://www.mysite.com/pages/articles/ changed in
http://www.mysite.com/pages/onlinemagazine/
or
http://www.mysite.com/pages/news/ changed in
http://www.mysite.com/pages/lastvoices/

I would like to do that without re-install the modules, in order to not loose the current contnts of single modules.

Thanks



9
efrael
Xpress URL change
  • 2008/5/12 17:36

  • efrael

  • Just popping in

  • Posts: 9

  • Since: 2008/5/12


I'm really new here, and first of all "Hi" to everybody

I have a couple of questions, hope you can help.

I decided to install the xpress module in order to give user's their own pages, where they can present themselves, write cv, publish pictures, or whatever. I would like to offer the chance to have more than one page, in a tree structure.
I also think that such a user would like to link to his page from somewhere else, and so I'd like to give him the chance to have a friendly URL. I mean something like www.mysite.com/pages/username, instead of www.mysite.com/modules/wordpress/page_id=1

So my questions are:

Is the xpress module the best choice to achieve this goal or does anyone know a better solution?

Could a user log in into XOOPS and have enough permissions in order to create new pages with xpress?

I tried to force xpress to use a different directory as home page, different from the default, i change all the variables, but if I call the new index.php (i.e. www.mysite/pages/index.php i have this error

Fatal error: Call to a member function on a non-object in /web/htdocs/www.mysite.com/xoops/modules/wordpress/templates/wordpress/header.php on line 3

It seems that the new configuration works fine but some variable in a function is not recognised or something like.

Any suggestion?

Thanks a lot




TopTop



Login

Who's Online

95 user(s) are online (64 user(s) are browsing Support Forums)


Members: 0


Guests: 95


more...

Donat-O-Meter

Stats
Goal: $100.00
Due Date: May 31
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $100.00
Make donations with PayPal!

Latest GitHub Commits