Joomla.it Forum

Non solo Joomla... => Sviluppo => : ventus85 29 May 2009, 23:58:23

: [RISOLTO]Err"Direct Access to this location is not allowed"nel passare da1.0a1.5
: ventus85 29 May 2009, 23:58:23
:
<?php defined'_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
 
global 
$mosConfig_absolute_path;

clearstatcache();

$ffeed =  $mosConfig_absolute_path  .'/modules/mod_XXX.xml';

[...]
Nella versione 1.0 di Joomla un codice del genere mi funziona, nella 1.5 (modificando l'xml e altre cose) non mi funziona e credo che l'errore sia proprio in quel pezzo di codice.
Il modulo me lo installa tranquillamente ma se lo attivo mi restistuisce "Direct Access to this location is not allowed.".
Dove ho sbagliato?
Idem se uso
:
require_once ($mosConfig_absolute_path  .'/modules/mod_XXX.xml')
Grazie.
: Re:Errore "Direct Access to this location is not allowed" nel passare da 1.0 a 1.5
: teakor 30 May 2009, 08:47:00
Buon giorno. Ma come sia mattiniere.  ;D

Nella 1.5

:
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

Deve essere cambiato in:

:
defined('_JEXEC') or die('Restricted access');
Mentre per la questione del file xml strano che non te lo prenda, perchè $mosConfig_absolute_path se hai attivato il legacy mod dovrebbe prendertelo. Però se hai scritto il codice proprio in quel modo, un errorino c'è:

:
$ffeed =  $mosConfig_absolute_path  .'/modules/mod_XXX.xml';

non hai inserito la cartella del modulo in questione.

:
$ffeed =  $mosConfig_absolute_path  .'/modules/mod_XXX/mod_XXX.xml';
: Re:Errore "Direct Access to this location is not allowed" nel passare da 1.0 a 1.5
: ventus85 30 May 2009, 11:17:54
Buon giorno. Ma come sia mattiniere.  ;D
Semmai nottambula, avendolo scritto quasi a mezzanotte!
Nella 1.5
:
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

Deve essere cambiato in:

:
defined('_JEXEC') or die('Restricted access');
Ecco, hai ragione, non ci ripensavo che bisognava cambiare anche lì, avendo sempre fatto i moduli da zero e non "convertirli" dalla 1.0 alla 1.5.
Mentre per la questione del file xml strano che non te lo prenda, perchè $mosConfig_absolute_path se hai attivato il legacy mod dovrebbe prendertelo. Però se hai scritto il codice proprio in quel modo, un errorino c'è:

:
$ffeed =  $mosConfig_absolute_path  .'/modules/mod_XXX.xml';
non hai inserito la cartella del modulo in questione.

:
$ffeed =  $mosConfig_absolute_path  .'/modules/mod_XXX/mod_XXX.xml';
Non so perchè non me lo prendere, comunque si avevo messo anche la cartella con il contenuto dei file.
Riprovo, grazie!


Edit:
allora con
:
defined('_JEXEC') or die('Restricted access');
adesso mi restituisce una pagina bianca, il che mi fa pensare che ho un errore nel file php.
Ma intanto è un passo avanti.

Edit2:
Allora, ora torna, l'errore nel file php era dovuto ad un apice di troppo.
: Re:Errore "Direct Access to this location is not allowed" nel passare da 1.0 a 1.5
: teakor 30 May 2009, 11:52:46
Semmai nottambula, avendolo scritto quasi a mezzanotte!
Era riferito al fatto che al momento della mia risposta eri loggata  ;)

Per usarlo senza legacy, la variabile $mosConfig_absolute_path è associata alla costante JPATH_SITE quindi nel tuo caso per usarla dovresti scrivere:

:
$ffeed = JPATH_SITE.DS.'modules'.DS.'mod_XXX'.DS.'mod_XXX.xml';
Nota : DS
è una costante a cui è associato il valore '/'
: Re:[RISOLTO]Err"Direct Access to this location is not allowed"nel passare da1.0a1.5
: ventus85 30 May 2009, 12:00:25
Si, infatti ho visto (e cancellato la domanda se ci hai fatto caso, forse mentre te postavi, però grazie lo stesso!) che funziona allo stesso modo.
Grazie!  :)
: Re:[RISOLTO]Err"Direct Access to this location is not allowed"nel passare da1.0a1.5
: teakor 30 May 2009, 12:07:46
e cancellato la domanda se ci hai fatto caso, forse mentre te postavi, però grazie lo stesso!
Esatto.

Di nulla. Qunado posso do sempre una mano ;)