Back to top

Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - e_gigi

Pagine: [1]
1
Ciao,

il mio primo post in questa sezione per chiedere aiuto.

Ho installato VirtueMart con il template dedicato ShopLab su Joomla 2.5.6.

Ho fatto qualche modifica per adattarlo alle mie esigenze ma vorrei migliorarlo..

In particolare il bottone "Aggiungi al Carrello", non e' allineato alla quantita' (come da allegato):
http://gyazo.com/5bd5666629c9338540e59e4216b03c65

A seguire il codice coinvolto:
Codice: [Seleziona]
<div class="cbox">
         
    <form method="post" class="product" action="index.php" id="addtocartproduct<?php echo $product->virtuemart_product_id ?>">

<?php // Display the quantity box ?>
            <!-- <label for="quantity<?php echo $this->product->virtuemart_product_id;?>" class="quantity_box"><?php echo JText::_('COM_VIRTUEMART_CART_QUANTITY'); ?>: </label> -->

            <div class="quantity-controls-add">
                <input type="button" class="quantity-controls quantity-plus" />
            </div>

            <div class="quantity-box">
                <input type="text" class="quantity-input" name="quantity[]" value="1" />
            </div>

            <div class="quantity-controls-remove">
                <input type="button" class="quantity-controls quantity-minus" />
            </div>
<?php // Display the quantity box END ?>

<?php // Add the button
     
$button_lbl JText::_('COM_VIRTUEMART_CART_ADD_TO');
     
$button_cls ''//$button_cls = 'addtocart_button';
     
if (VmConfig::get('check_stock') == '1' && !$this->product->product_in_stock) {
           
$button_lbl JText::_('COM_VIRTUEMART_CART_NOTIFY');
           
$button_cls 'notify-button';
     } 
?>


 <?php // Display the add to cart button ?>
  <span class="addtocart-button">
  <input type="submit" name="addtocart"  class="addtocart-button" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />
  </span>
<?php // Display the add to cart button END ?>



Codice: [Seleziona]
span.addtocart-button {width: 100%;}

.vmgroup span.addtocart-button, .popisdetail span.addtocart-button {
    width: 170px;
}
.cbox span.addtocart-button input.addtocart-button,.cbox span.addtocart-button input.notify-button{line-height:19px;background:#7c9a3f; border: 0 none;border-radius: 0px; -webkit-border-radius: 0px;color: #fff;cursor: pointer;font-size: 13px;letter-spacing: 0px;padding: 4px 5px;text-align: center;width: 130px;height: 25px; margin:0px;}
.cbox span.addtocart-button input.addtocart-button:hover,.cbox span.addtocart-button input.notify-button:hover{background: url("../images/vmgeneral/buttbg.png") repeat-x scroll center top #957342; border: 0 none;border-radius: 0px; -webkit-border-radius: 0px;color: #fff;cursor: pointer;font-size: 13px;letter-spacing: 0px; padding: 4px 5px;text-align: center;width: 130px; margin:0px;}
span.addtocart-button input.addtocart-button, span.addtocart-button input.notify-button{line-height:19px; background:#7c9a3f; border: 0 none;border-radius: 0px; -webkit-border-radius: 0px;color: #fff;cursor: pointer;font-size: 13px;letter-spacing: 0px;margin-top: 15px;margin-bottom: 0;padding: 4px 5px;text-align: center;width: 170px;height: 25px}
span.addtocart-button input.addtocart-button:hover, span.addtocart-button input.notify-button:hover{background: url("../images/vmgeneral/buttbg.png") repeat-x scroll center top #957342; border: 0 none;border-radius: 0px; -webkit-border-radius: 0px;color: #fff;cursor: pointer;font-size: 13px;letter-spacing: 0px;margin-top: 15px;margin-bottom: 0;padding: 4px 5px;text-align: center;width: 170px;}



Il sito non ha fini commerciali ma serve ad un gruppo di amici che fanno la spesa insieme...
Potrebbe andar bene anche cosi' com'e' ma mi farebbe piacere sistemarlo..

Qualcuno mi aiuta cortesememnte?

Grazie
  e_gigi

2
Rieccomi  ;D con la soluzione...

Ricapitolando:

- Ho adattato un tutorial helloworld sviluppato nel backend, nel frontend

- Funzionava tutto correttamente tranne per la chiamata a getListFooter()

- In particolare i link generati dalla precedente chiamata erano in questo modo:
  http://localhost/Joomla256/index.php/start=5
  mentre dovevano essere cosi':
  http://localhost/Joomla256/index.php/helloworld?start=5

- Ho risolto modificando il template in questo modo:

Codice: [Seleziona]
<form action="<?php echo JRoute::_('index.php?option=com_helloworld'); ?>" method="post" name="adminForm">
- Quando non funzionava era cosi'
Codice: [Seleziona]
<form action="index.php" method="post" name="adminForm" id="adminForm">

Trovata la soluzione... si passa all'approfondimento ;)



3
Teoricamente, conosco i concetti base delle classi.

La pratica diciamo che la sto facendo con Joomla!

I miei post sono da newbie, lo so,
ma penso che potrebberero tornare utili anche a qualcun altro se mai un giorno postero' la soluzione....

e_gigi

4
Citazione
JModel è stato esteso con 3 classi, JModelForm, JModelItem e JModelList, già dal nome capisci le peculiarità per cui viene usato uno piuttosto che l'altro

ok e' vero:
              class JModelList   extends JModel
abstract class JModelItem extends JModel
abstract class JModelForm extends JModel

la JModelList dovrebbe aggiungere (estendere) alla JModel, funzionalita' relative alle List(e).
Leggeremente diverso dovrebbe essere per le classi abstract..!

Citazione
Non tutto ciò che sta in admin è anche nel frontend per cui devi andare a vedere dove richiedere quel metodo.
Se tu usassi un ide di sviluppo come netbeans, eclipse etc... hai già un aiuto con l'autocompile e documentor dal quale capisci subito se qualcosa ce l'hai o se devi importarla.

Sto ancora spulciando le classi e asap andro' a vedermi il funzionamento di qualche com_predefinito.
Anche se ancora non ci sono arrivato ho avuto modo di configurare xampp per il debug tramite netbeans... grazie per la dritta... ho avuto modo di avvicinarmi all'IDE  ;)

Citazione
Hai dato alla tua classe lo stesso nome che hai usato nel backend quindi probabilmente qualcosa del backend come lo state e quindi l'auth e quindi la paginazione etc dovresti ereditarla... ma non la paginazione bell'e che pronta ma i metodi per costruirla.

Ho eliminato il backend ma faccio le stesse chiamate...
Sto cercando di studiarmi meglio le chiamate alle classi e capire cosa avviene realmente step by step


Citazione
Uno dei principali motivi dei malfunzionamenti di ciò che sviluppi è legato al naming, su di esso Joomla costruisce numerosi "automatismi" per cui helloworld o helloworlds non è proprio la stessa cosa.
Solitamente il plurale viene usato per l'handling delle liste e il singolare per gli item.

Sembra tutto corretto... boh


Per il resto...
ma esiste un tutorial on line fatto bene o e' il caso di passare ad un buon libro?


Many thanks
  e_gigi

5
non ti preoccupare, per me tutto fa scuola..!
Bisogna sporcarsi le mani (hihih) altrimenti non si impara...

Comunque nell'esempio che sto seguendo:

- lato Admin il model eredita la JModelList senza overriding della populateState
- ho provato comunque ad estenderla lato Site ma diciamo che non sono capace... :(

La cosa che pero' secondo me e' strana e' che:

la prima esecuzione del componente genera il seguente codice per spostarsi  ad inizio, fine, pagina 1, 2 etc
la seconda esecuzione del componente genera
Puo' essere utile capire chi genera questo codice per risolvere il mio "dramma"?

Quale classe / file se ne occupa?

Grazie
  e_gigi




6
Ok grazie, sbircero' qualche com predefdinito...

Cmunque lo stesso codice lato admin funziona perfettamente... boh!  ::)

e_gigi

7
Ciao, per completezza e perche' ho ancora dubbi, riporto il model:

Codice: [Seleziona]
<?php
defined
('_JEXEC') or die();
jimport'joomla.application.component.modellist' );
class 
HelloworldModelHelloworld extends JModelList
{
    function 
getListQuery()
    {
        
$db JFactory::getDBO();
        
$query $db->getQuery(true);
        
$query->select('id, saluto, lingua');
        
$query->from('#__hello_world');
        return 
$query;
    }
}

Con questi files ho il seguente comportamento:
  • Carico il com_helloworld e visualizza tutti i dati dal db (13 record) ..ok
  • Scelgo di visaulizzare 5 record per pagina.. ok
  • Mi sposto in pagina 2 ma esce la pagina bianca con scritto HOME ..nok
  • Ricarico il componente com_helloworld e ora visualizza 5 record ..ok
  • Mi sposto in pagina 2 e funziona correttamente ..ok
A me sembra strano questo comportamento ma di sicuro faccio qualche sciocchezza.
Carneade pls
   e_gigi

8
Chi la dura la vince...
Mi piego ma non mi spezzo...
Sto impiegando un sacco di tempo ma ce la faro'...

Filosofia e proverbi a parte  :D ... ho il seguente dilemma:
Perche' la paginazione funziona bene lato amministarzione mentre lato sito fa dei capricci..?

Il codice tratto da qui "opportunamente" modificato per creare il mio hello world e' il seguente


Codice: [Seleziona]

<?php

//     helloworld/view.html.php

defined('_JEXEC') or die('Restricted access');
jimport'joomla.application.component.view' );
jimport'joomla.html.pagination' );

class 
HelloworldViewHelloworld extends JView
{
    function 
display($tpl null)
    {
        
// Add required JS
        
JHtml::_('behavior.framework');
        
$this->pagination $this->get('Pagination');
        
$this->items $this->get('Items');
        
parent::display($tpl);
    }
}


Codice: [Seleziona]
<?php

// tmpl/default.php

defined'_JEXEC' ) or die( 'Restricted access' );
$option JRequest::getCmd('option');
$view JRequest::getCmd('view');
?>
[code]
<form action="index.php" method="post" name="siteForm" id="siteForm">
    <input type="hidden" name="option" value="<?=$option?>" />
    <input type="hidden" name="view" value="<?=$view?>" />
    <div id="editcell">   
        <table class="adminlist">
            <thead>
                <tr>
                    <th>SALUTO</th>
                    <th>LINGUA</th>
                    <th>ID</th>
                </tr>
            </thead>
            <tfoot>
                <tr>
                    <td colspan="3">
                        <?=$this->pagination->getListFooter()?>
                    </td>
                </tr>
            </tfoot>
            <tbody>
<?
        $k = 0;
        foreach ($this->items as &$row)
        {
?>
                <tr class="row<?=$k?>">
                    <td><?=$row->saluto?></td>
                    <td><?=$row->lingua?></td>
                    <td><?=$row->id?></td>
                </tr>
<?
            $k = 1 - $k;
        }
?>
            </tbody>
        </table>
    </div>
</form>

L'unica modifica che ho fatto rispetto al lato admin e' questa

ADMIN
<form action="index.php" method="post" name="adminForm" id="adminForm">

SITE
<form action="index.php" method="post" name="siteForm" id="siteForm">

Nel frontend i dati vengono correttamente visualizzati in tabella (layout a parte).
Se come prima operazione uso la funzione visualizza n x. record per pagina, successivamente quando mi sposto di pagina con successivo, fine oppure pagina 1 etc... non vengono visualizzati i dati relativi alla pagina richiesta ma (siccome non ho il file index.html) visualizzo una pagina bianca con la scritta HOME.

Ho come la sensazione che qualche variabile andasse persa se faccio determinate operazioni prima ma non riesco a capire come fare il debug o cosa sto sbagliando. E poi lato admin funziona bene.

Qualcuno mi da qualche dritta? Cosa sto sbagliando?

Grazie
  e_gigi

template
beez_20 lato site
bluestork lato admin

Localhost
Vista
Joomla (2.5.6)
Apache (2.2.11)
MySQL (5.1.23)
PHP (5.3.5)

9
Diciamo la seconda.... ke figuraccia  :-[ 

10
Rieccomi dopo un po' di tempo...
ancora non ho mollato, ma sono nuovamente bloccato  >:(

Sto seguendo il seguente tutorial
http://library.logicsistemi.it/it/joomla/developing-joomla-25-mvc-components/28-sviluppare-componenti-mvc-joomla25-parte6


in particolare il codice giu' va in errore quando eseguo Nuovo Modifica o Elimina.

L'errore quando clicco su Nuovo e':
500 - Si è verificato un errore.
Controllo non valido: nome='persona', formato=''

Modifica ed elimina non danno segni di vita...

Helpme pls...  :'(

Codice: [Seleziona]
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
jimport'joomla.application.component.view' );
jimport'joomla.html.pagination' );
class 
AnagraficheViewPersone extends JView
{
    function 
display($tpl null)
    {
        
// Toolbar
        
JToolBarHelper::titleJText::_'PERSONE' ), 'generic.png' );        
        
JToolBarHelper::addNewX('persona.add');
        
JToolBarHelper::editListX('persona.edit');
        
JToolBarHelper::deleteListJText::_'PERSONE_CONFIRM_DELETE' ), 'persone.delete' );
        
$this->pagination $this->get('Pagination');
        
$this->items $this->get('Items');
        
$this->state $this->get('State');
        
parent::display($tpl);
    }
}


Localhost
Vista
Joomla (2.5.6)
Apache (2.2.11)
MySQL (5.1.23)
PHP (5.3.5)

11
Grazie Cyborg...  :)
 
mi sa che devo aggiungere un altro tassello per andare avanti...

12
Salve,

forse dall'oggetto gia' si capisce la mia domanda...

E' possibile realizzare componenti per Joomla 2.5 con la programmazione strutturata invece di quella ad oggetti?

Per componenti intendo delle pagine html nel frontend dove l'utente fa delle scelte in base alle quali si fanno query ad un database e poi si ritornano le informazioni richieste.

Vorrei saperlo perche' seguendo i vari tutorial helloworld, mi rendo conto che trovo la sintassi complicata  (tra l'altro la parte relativa al db non mi funziona nemmeno >:( ...!)
Probabilmente dovrei studiare PHP ad oggetti ma vorreri risparmiarmi la "fatica"...  ;D hihih

Esiste eventualmente qualche tutorial con php strutturato che interroga un database?


Grazie
  Luigi

13
Sviluppo / Re:Developing a MVC Component 2.5
« il: 18 Ago 2012, 22:53:32 »
Ciao,

l'ho definito task fittizio perche' nel codice esempio che sto seguendo/studiando, non c'e' nessuna funzione o variabile di nome 'task'.

A quanto ho capito, Joomla in questi casi non va in errore ma esegue un comportamento di default che e' display.

Spero di essermi spiegato e se ho scritto sciocchezze vi prego di corregermi....  :o

PS: per entrare nel linguaggio, cosa intendi per valorizzato?

14
Sviluppo / Re:Developing a MVC Component 2.5
« il: 18 Ago 2012, 10:07:03 »
Ciao grazie per la risposta ed i suggerimenti per l'edit.

Avrai ancora una domanda circa il codice

Codice: [Seleziona]

$controller->execute( JRequest::getCmd('task') );

in particolare relativo a 'task' che dovrebbe essere fittizio, ma forse e' meglio che mi faccio prima una "letturina" qua...

http://docs.joomla.org/How_Joomla_pieces_work_together

15
Sviluppo / Developing a MVC Component 2.5
« il: 17 Ago 2012, 21:55:54 »
Salve,

ho iniziato a studiare Joomla da poco ed avrei bisogno del Vs supporto...

Ho appena letto la guida per principianti ed ora mi sto cimentando con questa lettura:
http://docs.joomla.org/Developing_a_Model-View-Controller_Component/2.5/Adding_a_view_to_the_site_part

Il codice dove mi sono bloccato (all'inizio praticamente) e' il seguente:

Codice: [Seleziona]
<?php
// No direct access to this file
defined('_JEXEC') or 
die(
'Restricted access');
 
// import joomla controller 
library
jimport
('joomla.application.component.controller');
 
// 
Get an instance of the controller prefixed by HelloWorld
$controller 

JController::getInstance('HelloWorld');
 
// Perform the 
Request task
$input 

JFactory::getApplication()->input;
$controller->execute($input->getCmd('task'));
 

// Redirect if set by the controller
$controller->redirect();
Vorrei approfondire il codice in grassetto ma ho difficolta'.
  • $input dovrebbe essere l'oggetto della classe JFactory, ma cosa mi rappresenta quella ->input?
  • $controller esegue un finto 'task', ma ->getCmd da dove esce fuori?
C'e' qualcuno di buona volonta' che mi spiega in modo piu' dettagliato?

Grazie
  Luigi
 
Edit: per il codice utilizzare il tag #

16
Ciao, sto facendo delle prove con Joomla 2.5.1.

Ho attivato qualche opzioni base e quelle richieste vengono visualizzate in fase di registrazione.

Effettuo il login ed e' tutto OK.

Ma se provo a modificare il profilo, le opzioni precedentemente richieset e compilate non vengono visualizzate.

Tra le impostazioni di base vengono mostrate le seguenti:
- Editor (opzionale)
- Fuso orario  (opzionale)
- Lingua lato pubblico (opzionale)

Qualcuno mi aiuta cortesemente?

Come mai non visualizzo i campi richiesti?





Pagine: [1]


Web Design Bolzano Kreatif