Autore Topic: [RISOLTO] Pubblica nascondi Item non funziona  (Letto 2556 volte)

Offline mpigio

  • Appassionato
  • ***
  • Post: 235
  • Sesso: Maschio
    • Mostra profilo
[RISOLTO] Pubblica nascondi Item non funziona
« il: 24 Mag 2013, 12:31:55 »
Ho realizzato un componente x Joomla 2.5 collegato a 3 differenti tabelle.
Sulla prima cliccando sui bottoni di pubblica/nascondi di ogni item e quelli globali della Toolbar funziona tutto e riesco a vedere che passa per la funzione populateState del model relativo.

Nelle altre due tabelle, nelle relitive pagine con le liste degli item, questo non accade ed ho notato che entra nella funzione populateState soltanto al primo accesso e non dopo aver cliccato su pubblica/nascondi e credo che per questo non riesca a cambiare lo stato degli item.

Come posso rintracciare il problema? Da dove si richiama quel metodo?

Ho verificato che i file sono identici a meno dei nomi che ovviamente cambiano sia nei file che all'interno degli stessi.

Spero possiate aiutarmi e da tempo che ci sbatto la testa senza risolvere.
Grazie a tutti

EDIT:
Dimenticavo che anche passando con il mouse sopra ai bottoni della toolbar dopo aver premuto pubblica o nascondi si ottiene il link: index.php# al posto di index.php?option=com_miocom&view=miaview

Questo il listato del model

Codice: [Seleziona]
....
protected function populateState($ordering = null, $direction = null)
    {
        // Load the filter state.
        $search = $this->getUserStateFromRequest($this->context.'.filter.search', 'filter_search');
        $this->setState('filter.search', $search);

        $published = $this->getUserStateFromRequest($this->context.'.filter.published', 'filter_published', '');
        $this->setState('filter.published', $published);
       
        // List state information.
        parent::populateState($ordering, $direction);
    }

e del view.html.php

Codice: [Seleziona]
....
protected function addToolBar()
    {
        JToolBarHelper::title( JText::_( 'COM_MIOCOM_USERS' ), 'generic.png' ); 
       
        JToolBarHelper::custom('users.sendmsg', 'sendmsg', '', 'COM_MIOCOM_MSG_SEND', true);
        JToolBarHelper::divider();
        JToolBarHelper::addNewX('user.add');
        JToolBarHelper::publishList('users.publish');
        JToolBarHelper::unpublishList('users.unpublish');
        JToolBarHelper::editListX('user.edit');
        JToolBarHelper::deleteList( JText::_( 'COM_MIOCOM_CONFIRM_DELETE' ), 'users.delete' );
        JToolBarHelper::divider();
        JToolBarHelper::preferences('com_miocom', '400');
    }
« Ultima modifica: 07 Giu 2013, 09:51:38 da mpigio »

Offline mpigio

  • Appassionato
  • ***
  • Post: 235
  • Sesso: Maschio
    • Mostra profilo
Re:Pubblica nascondi Item non funziona
« Risposta #1 il: 05 Giu 2013, 17:11:46 »
Nessuno può aiutarmi?

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Pubblica nascondi Item non funziona
« Risposta #2 il: 05 Giu 2013, 23:25:33 »
intendi pubblica sospendi credo non nascondi, comunque populate state non centra nulla, publish e unpublish delle liste richiamano una funzione della classe JControllerAdmin a meno che tu non li voglia riscrivere nel tuo controller, qui viene richiamata la funzione del JModelAdmin che a sua volta ricchiama l'oggetto jtable dell'elemento che forma la lista
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline mpigio

  • Appassionato
  • ***
  • Post: 235
  • Sesso: Maschio
    • Mostra profilo
Re:Pubblica nascondi Item non funziona
« Risposta #3 il: 06 Giu 2013, 09:47:55 »
Infatti non le ho riscritte, usa quindi quelle del framework di joomla, allora dove posso ricercare il problema?

Il problema potrebbe essere sul db? Ho inserito un campo 'published' tinyint(1) Null: No Predefinito: 0

Come su un'altra tabella in cui mi funziona! Non so più dove cercare!!!


Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Pubblica nascondi Item non funziona
« Risposta #4 il: 06 Giu 2013, 10:02:34 »
ad esempio io non uso published ma state, quindi mi riscrivo la funzione JTable publish nelle mie class JTable.
Molto probabilmente a te non arriva nel controller giusto prova a riscrivere la funzione publish nel controller dove pensi che dovrebbe andare e mettici un die
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline mpigio

  • Appassionato
  • ***
  • Post: 235
  • Sesso: Maschio
    • Mostra profilo
Re:Pubblica nascondi Item non funziona
« Risposta #5 il: 06 Giu 2013, 11:27:26 »
Bene! Grazie al tuo suggerimento ho scoperto che riscrivendo la funziona publish nel controller la raggiungo e mi "saluta" :)

Ho inserito:

    function publish()
    {
        echo 'ciao';
        die;
    }

Posso evitare di riscrivere qui la funzione di pubblicazione e trovare l'inghippo o mi conviene fare la query di update in questo override?

Grazie ancora

mau_develop

  • Visitatore
Re:Pubblica nascondi Item non funziona
« Risposta #6 il: 06 Giu 2013, 11:33:59 »
se guardi come funziona sulla 3.1 capisci subito cosa fare e molto probabilmente riesci ad usare gli stessi metodi visto che la platform dovrebbe essere la stessa.
attenzione che non usa il model che ti aspetteresti... ma l'altro... almeno sulla 3.1
nel controller si usa il proxi al model, probabilmente è quello che non funziona.

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Pubblica nascondi Item non funziona
« Risposta #7 il: 06 Giu 2013, 11:58:39 »
prova a postare il codice del tuo controller, forse c'e qualche impostazione di abse che non va
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline mpigio

  • Appassionato
  • ***
  • Post: 235
  • Sesso: Maschio
    • Mostra profilo
Re:Pubblica nascondi Item non funziona
« Risposta #8 il: 06 Giu 2013, 12:38:34 »
Ecco il codice:

Codice: [Seleziona]
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla controlleradmin library
jimport('joomla.application.component.controlleradmin');
 
/**
 * About Controller
 */
class LifeMsgControllerGroups extends JController {
    function 
__construct$config = array() )
    {
        
parent::__construct$config );
    }
    
    public function 
getModel($name 'Group'$prefix 'LifeMsgModel'
    {
        
$model parent::getModel($name$prefix, array('ignore_request' => true));
        return 
$model;
    }
    
    function 
publish()
    {
        echo 
'ciao';
        die;
    }
}
?>


mau_develop

  • Visitatore
Re:Pubblica nascondi Item non funziona
« Risposta #9 il: 06 Giu 2013, 14:10:51 »
bene, publish userà un metodo del model per cambiare lo stato
il metodo del model userà la table per farlo e restituirà un true o false
anche il metodo del model ritornerà un true o false al controller che provvederà al redirect alla vista lista oppure alla stessa con messaggio di errore

oppure se usi ajax puoi semplicemente ucciderla dopo la risposta

se ti serve usare metodi di diversi model puoi farlo con un getModel, di defaul hai il proxi getModel($name = 'Group'
« Ultima modifica: 06 Giu 2013, 14:16:10 da M_W_C »

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Pubblica nascondi Item non funziona
« Risposta #10 il: 06 Giu 2013, 14:20:57 »
Ah l'ereditarieta delle classi....

ecco il tuo errore,

Codice: [Seleziona]
jimport('joomla.application.component.controlleradmin');
 
/**
 * About Controller
 */
class LifeMsgControllerGroups extends JController {
Se dai uno sguardo alla cartella libraries joomla application component vedrai la classe JController, prova a ceracare il metodo publish, bene non c'e. questo perche si trova in JControllerAdmin che estende jController quindi tu estendendo JController non hai un metodo publish impostato. Se guardi il tuo codice vedrai che avevi giustamente incluso controller admin, quindi basta che fai

class LifeMsgControllerGroups extends JControllerAdmin e dovrebbe andare
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

mau_develop

  • Visitatore
Re:Pubblica nascondi Item non funziona
« Risposta #11 il: 06 Giu 2013, 15:20:25 »
:) che falco

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Pubblica nascondi Item non funziona
« Risposta #12 il: 06 Giu 2013, 15:33:17 »
 :) hai visto che occhio clinico
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline mpigio

  • Appassionato
  • ***
  • Post: 235
  • Sesso: Maschio
    • Mostra profilo
Re:Pubblica nascondi Item non funziona
« Risposta #13 il: 07 Giu 2013, 09:51:07 »
Grazie a tutti in particolare all'occhio clinico di simone83, problema RISOLTO!!!

 

Host

Torna su