Back to top

Autore Topic: Web Link redirect  (Letto 2995 volte)

Offline Donatinho

  • Esploratore
  • **
  • Post: 51
    • Mostra profilo
Web Link redirect
« il: 17 Gen 2011, 12:01:56 »
Buongiorno, avrei bisogno di rendere un collegamento "Web Link" accessibile solo ad utenti registrati.

Ho impostato la categoria dei Web Link su "registered", ma, se non sono loggato, mi restituisce una pagina con errore "403 - Non sei autorizzato a visualizzare questa risorsa."

Cosa devo modificare per fargli aprire la pagina che rimanda al messaggio di login?

Grazie


Offline Donatinho

  • Esploratore
  • **
  • Post: 51
    • Mostra profilo
Re:Web Link redirect
« Risposta #1 il: 18 Gen 2011, 16:32:27 »
.... o magari se esiste un extensions.......

Offline mattialori

  • Appassionato
  • ***
  • Post: 412
    • Mostra profilo
Re:Web Link redirect
« Risposta #2 il: 18 Gen 2011, 17:18:07 »
Il metodo che controlla se l'utente è registrato o meno si trova nel model category e si chiama getCategory(). Ovviamente se vuoi dare accesso solo agli utenti registrati alla visione di un link il model che verrà usato è weblink. A questo punto penso che basti modificare il pezzo
Codice: [Seleziona]
if ($this->_category->access > $user->get('aid', 0)) {
JError::raiseError(403, JText::_("ALERTNOTAUTH"));
return false;
}

con un redirect verso la pagina che vuoi, però non penso si possa fare il redirect all'interno del model, lo devi gestire nel controller

Offline Donatinho

  • Esploratore
  • **
  • Post: 51
    • Mostra profilo
Re:Web Link redirect
« Risposta #3 il: 19 Gen 2011, 14:02:57 »
Grazie della risposta, provo quanto prima e ti farò sapere

Offline Donatinho

  • Esploratore
  • **
  • Post: 51
    • Mostra profilo
Re:Web Link redirect
« Risposta #4 il: 19 Gen 2011, 18:43:56 »
Premetto che non sono un programmatore, ma ho trovato la riga di codice che genera l'errore nel file "components/com_weblink/models/weblink.php" dalla linea 94-96:
                 
// Check whether category access level allows access
         if ($this->_data->cat_access > $user->get('aid', 0)) {
            JError::raiseError( 403, JText::_('ALERTNOTAUTH') );
            return;
         }

ho provato ad inserire "header("Location: index.php?option=com_user&view=login");" e mi restitusce l'errore "500 Layout no found"...

Non conosco l'esatta stringa per poter far aprire uno specifico articolo.

Grazie in anticipo


Offline mattialori

  • Appassionato
  • ***
  • Post: 412
    • Mostra profilo
Re:Web Link redirect
« Risposta #5 il: 19 Gen 2011, 20:53:51 »
Hai fatto il redirect dal controller o dal model?

Offline Donatinho

  • Esploratore
  • **
  • Post: 51
    • Mostra profilo
Re:Web Link redirect
« Risposta #6 il: 19 Gen 2011, 21:09:16 »
... dal model...

Offline mattialori

  • Appassionato
  • ***
  • Post: 412
    • Mostra profilo
Re:Web Link redirect
« Risposta #7 il: 19 Gen 2011, 21:49:26 »
devi farlo da controller

Offline Donatinho

  • Esploratore
  • **
  • Post: 51
    • Mostra profilo
Re:Web Link redirect
« Risposta #8 il: 19 Gen 2011, 22:18:11 »
Ho provato da tutte e due le parti, ma dal model se cambio la parte del "('ALERTNOTAUTH')" con qualsiasi altro testo, mi cambia il messaggio sul sito, quindi ho pensato che fosse quello da cambiare.

Comunque sai dirmi qual è la giusta stringa per reindirizzare alla pagina del login?

Offline mattialori

  • Appassionato
  • ***
  • Post: 412
    • Mostra profilo

Offline Donatinho

  • Esploratore
  • **
  • Post: 51
    • Mostra profilo
Re:Web Link redirect
« Risposta #10 il: 21 Gen 2011, 17:53:13 »
Ho provato dal controller.php del componet weblink, ma non ho trovato dove poterlo inserire.

Ti posto il contenuto del controller.php

<?php
/**
 * @version      $Id: controller.php 14401 2010-01-26 14:10:00Z louis $
 * @package      Joomla
 * @subpackage   Content
 * @copyright   Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
 * @license      GNU/GPL, see LICENSE.php
 * Joomla! is free software. This version may have been modified pursuant to the
 * GNU General Public License, and as distributed it includes or is derivative
 * of works licensed under the GNU General Public License or other free or open
 * source software licenses. See COPYRIGHT.php for copyright notices and
 * details.
 */

// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die( 'Restricted access' );

jimport('joomla.application.component.controller');

/**
 * Weblinks Component Controller
 *
 * @package      Joomla
 * @subpackage   Weblinks
 * @since 1.5
 */
class WeblinksController extends JController
{
   /**
    * Method to show a weblinks view
    *
    * @access   public
    * @since   1.5
    */
   function display()
   {
      // Set a default view if none exists
      if ( ! JRequest::getCmd( 'view' ) ) {
         JRequest::setVar('view', 'categories' );
      }

      //update the hit count for the weblink
      if(JRequest::getCmd('view') == 'weblink')
      {
         $model =& $this->getModel('weblink');
         $model->hit();
      }
      
      // View caching logic -- simple... are we logged in?
      $user = &JFactory::getUser();
      $view = JRequest::getVar('view');
      $viewcache = JRequest::getVar('viewcache', '1', 'POST', 'INT');
      if ($user->get('id') || ($view == 'category' && $viewcache == 0)) {
         parent::display(false);
      } else {
         parent::display(true);
      }
   }
}



 



Web Design Bolzano Kreatif