Joomla.it Forum
Joomla! 3 => Joomla! 3 => : andrea cerra 31 Mar 2021, 22:45:58
-
Ciao a tutti, sono nuovo nel forum e spero di postare nella sezione giusta. Ringrazio in anticipo chi potrà aiutarmi.
Con il componenete sourcerer ho creato con php custom l'avviso dell'immagine allegata, ora con il pulsante disattiva devo fare update sul DB mysqle cambiare campo da 0 a 1 (0 indica non letto, 1 indica letto).
Ora inserendo una funzione javascript che richiama il mio file .php con la funzione di update, che messo nella root del sito,non fa l'update-non accade nulla.
Testato tutto il codice fuori da joomla e funziona perfettamente, in joomla è come se non riuscisse a trovare il file 'alert_lettoAC.php', sbaglio dove inserisco il javascript? o devo indicare in modo diverso il percorso al file?
Questo il codice php inserito con plugin sourcerer in modulo joomla custom
{source}
<?php
$myDb = FabrikWorker::getDbo(1);
$query_alerts_manomesso = "SELECT ntx_code FROM xtr_alerts WHERE type_received= 3 and status_alert = 0 ; " ;
$db->setQuery($query_alerts_manomesso);
$db->query();
$rows_manomesso = $db->loadObjectList();
$list = array();
foreach ($rows_manomesso as $row)
{
//echo '<div class="container-fluid rounded p-3 my-3 bg-danger text-white">
echo '<div class="mx-alerts">';
echo '<div><i class="fa fa-exclamation"> L\'ntx <a href="#">' . $row->ntx_code."[/url] è stato manomesso! ".'<input type="button" name="B3" value="DISATTIVA" OnClick="javascript:messaggio()"> </div>';
echo '</div>';
?>
<script language="javascript">
function messaggio() {
$.get("alert_lettoAC.php");
}
</script>
<?php
}
{/source}[code]
e questo il codice della funzione nel file alert_lettoAC.php
[code]
<?php
include 'config_AC.php';
$mysqli = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_DEFAULT);
if ($mysqli -> connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
exit();
}
$query_update_status_alerts = " UPDATE xtr_alerts SET status_alert = 1 WHERE id = 5;" ;
@$mysqli->query($query_update_status_alerts);
?>
-
Quel codice per lavorare con joomla lo devi scrivere secondo l'MVC di joomla usando il framework e le sue API.
-
Grazie, secondo te esiste un modo alternativo per farlo, magari qualche estensione particolare?
E un altra precisazione, ti riferisci al codice completo anche di visualizzazione alert oppure solo al javacript e alla relativa pagina php con la funzione?
-
probabilmente fabrik...
-
Potrebbe anche funzionare in joomla adattando il percorso al file che richiami all'interno del codice. Per farti capire se stai al piano terra (root) e il file sta al quarto piano il percorso sarà 4 piani sopra, ma se stai al primo piano ( contenitore codice) il percorso cambia e sarà 2 piani sopra.Comunque questo modo di aggiungere codice è da evitare per tanti motivi, rottura di equilibri e ottimizzazione, e tanti altri non ultimo ma il più importante è la possibilità di ingenerare falle nella sicurezza. Segui il consiglio di scrivere un modulo, un estensione, un plugin in conformità al modo di come funziona joomla. Roba esterna induce falle.
-
Grazie mille per la delucidazione, ora studierò per mia conoscenza coem creare un componente ad hoc anche se ho già risolto in altro modo (con una vista Fabrik) il mio problema. Detto questo allora non capisco la potenzialità del componenente Sourcerer per
inserire codice php custom
Detto questo per curiosità vorrei comunque provare a far funzionare la cosa adattando il perorso del mio file. Il file .php è nella root , non capisco come indicare il percorso nel contenitore codice o come individuare il piano in cui si trova la mia pagina, potresti farmi un esempio di come raggiunger un file a seconda della root in joomla?
Grazie per chi vorrà aiutarmi
-
Prova con un percorso assoluto, cioè inizia con https:// ecc. ecc