Seguendo: http://www.simplemachines.org/community/index.php?topic=12936.0
Molto semplicemente ho chiamato nel tema di Coppermine (theme.php) il file come descritto nella procedura e funziona il require, ma mi ritorna una pagina bianca con:
Fatal error: require_once(): Failed opening required '/QueryString.php' (include_path='.:/hsphere/shared/apache/libexec/php5ext/php/') in /hsphere/local/home/sybsite/site.com/board/SSI.php on line 62
Dove alla linea 62 trovo (non modificata, partendo dalla 61) quel che segue:
// Load the important includes.
require_once($sourcedir . '/QueryString.php');
require_once($sourcedir . '/Subs.php');
require_once($sourcedir . '/Errors.php');
require_once($sourcedir . '/Load.php');
require_once($sourcedir . '/Security.php');require_once($sourcedir . '/TPortal.php');
...Perchè? A quanto pare non riconosce $sourcedir, ma come mai? Che posso farci (so che non devo modificare SSI.php)?
La cosa stupida è che devo solo mostrare il menu seguendo i permessi di smf, e dovrebbe bastarmi un ssi_menubar(); ... ... se solo funzionasse il require_once.
Metti il require (che poi sarebbe meglio require_once o include) all'inizio del file di coppermine... potrebbe funzionare.
Grazie, ma purtroppo non cambia nulla (stesso errore) :/
<?php
require_once('/hsphere/local/home/sybsite/site.com/board/SSI.php');
/*************************
Coppermine Photo Gallery
************************
Copyright (c) 2003-2012 Coppermine Dev Team
v1.0 originally written by Gregory Demar
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 3
as published by the Free Software Foundation.
**********************************************/
// HTML template for template sub menu buttons
$template_sys_menu_button = $template_sub_menu_button = <<<EOT
<!-- BEGIN {BLOCK_ID} -->
(...)
Ed allora copia il blocco di global che c'è all'inizio di SSI prima del require di SSI stesso.
global $boardurl, $sourcedir, $whatever;
require_once('SSI.php');
<?php
global $time_start, $maintenance, $msubject, $mmessage, $mbname, $language;
global $boardurl, $boarddir, $sourcedir, $webmaster_email, $cookiename;
global $db_server, $db_name, $db_user, $db_prefix, $db_persist, $db_error_send, $db_last_error;
global $db_connection, $modSettings, $context, $sc, $user_info, $topic, $board, $txt;
global $smcFunc, $ssi_db_user, $scripturl, $ssi_db_passwd, $db_passwd, $cachedir;
require_once('/hsphere/local/home/sybsite/sybeaumonde.com/board/SSI.php');
/*************************
Coppermine Photo Gallery
Non gliene frega nulla, identico errore su QueryString O.o
Prova a fare il require di SSI nell'index.php di coppermine.
<?php
require_once('/hsphere/local/home/sybsite/sybeaumonde.com/board/SSI.php');
/*************************
Coppermine Photo Gallery
************************
Copyright (c) 2003-2016 Coppermine Dev Team
v1.0 originally written by Gregory Demar
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 3
as published by the Free Software Foundation.
********************************************
Coppermine version: 1.5.42
$HeadURL: https://svn.code.sf.net/p/coppermine/code/trunk/cpg1.5.x/index.php $
$Revision: 8846 $
**********************************************/
/**
* Unless this is true most things wont work - protection against direct execution of inc files
*/
define('IN_COPPERMINE', true);
define('INDEX_PHP', true);
define('RESTRICTED_PRIV', true);
require('include/init.inc.php');
Coppermine critical error:
Unable to connect to UDB database !
MySQL said:
E non ho tagliato l'errore, finisce proprio lì O_o Ci sono due tag <strong></strong> messi così, ispezionando la pagina, con nulla all'interno.
Oh wait, messo alla fine di index.php lo include correttamente!!!
Però, appena provo a chiamare ssi_menubar nel theme.php "Fatal error: Call to undefined function ssi_menubar()" :/
Nvm, non lo carica, è solo che non mostra l'errore, ma lo vedo (l'errore) visualizzando il sorgente della pagina.
Sempre si blocca a QueryString (sì, ho messo anche il blocco di global).
Suppongo dovrò installare coppermine...
Basta che poi non ti venga un infarto guardando il codice (rimpiangerai vbgamer) :/
CPG: https://sourceforge.net/projects/coppermine/files/Coppermine/1.5.x/cpg1.5.42.zip/download
Bridge: http://svn.code.sf.net/p/coppermine/code/trunk/cpg1.5.x/bridge/
How-to-bridge: http://documentation.coppermine-gallery.net/en/bridging.htm#bridge_manager_start
Tema in utilizzo (Pinmine) (anche se credo sia irrilevante): http://forum.coppermine-gallery.net/index.php?action=dlattach;topic=75270.0;attach=41704
Perlomeno ti ho risparmiato un bel po' di ricerca :P
Ohhh... ho scoperto che ne avevo già una copia installata in un anfratto (ed ho anche scoperto che sulla partizione di home ho solo 4 GB liberi!!! :o).
Qua funziona perfettamente ("ovvio" che la funzione non va chiamata in themes.php).
Per scrupolo controllerei che in Settings le directory ci siano e siano corrette.
Come tentativo, proverei ad usare percorsi relativi invece che assoluti (sì, lo so che è un'idiozia, ma al momento non mi viene in mente altro):
require_once('../board/SSI.php');
Un'altra possibilità da considerare, è cambiare la versione di php, magari quella in uso potrebbe essere una con qualche strano bug (e se non ricordo male ve ne è qualcuna).
Unrelated: controllerei perché, puntando a SSI.php il browser si ottiene l'errore Warning: in_array(): Wrong datatype for second argument in /.../board/Sources/Subs.php on line 3952
Proverò con il path relativo...
L'errore di Subs è un altro problema che non capisco, ho fatto una condizione per mostrare un bottone solo se l'utente può amministrare il forum o gruppo id in array 2,10. Non sono al pc (cellulare) ma era qualcosa del tipo (in_array 2, 10($user['group']['ID']).
Il bello è che ho copiato/incollato il codice da una qualche guida ._.
La versione php è 5.2 mi pare... Già, dovrei chiedere di aggiornarla.
Come al solito, non posso che suggerire una lettura veloce del manuale di in_array: http://php.net/manual/it/function.in-array.php
Ad ogni modo, sarebbe sempre meglio legare ad un permesso che non ad un gruppo, ma va beh.
Alla fine l'ho legato ad un permesso, lol. (Non ne avevo voglia xD)
Comunque, tornando sul display... Php ora sta a 5.5, ed effettivamente sono riuscito a far venir fuori il menu, solo che 1) viene mostrato senza css, per qualche motivo, e vabbè qui potrei anche metterlo a posto caricandolo a mano da template.html EDIT: no, non lo carica nemmeno da template.html, non carica nessun css per colpa di --> 2) la galleria va in crash con un "Unable to connect to UDB database !"
Ho provato ad includerlo all'inizio di index.php, alla fine (errore QueryString lì), e ora provo pure nel tema... E non va, come avevi detto (QueryString).
Quindi ora il menù viene generato, ma manca il CSS.
Corretto?
Strano che mettendolo in template.html non venga usato, ma la domanda che mi sorge è: la riga la riga di HTML si vede nell'output, ma il file è vuoto, oppure proprio nemmeno la riga viene generata?
Il css non è un problema, armeggiando con template.html lo avevo richiamato nell'head e lo caricava solo e soltanto se non cercavo di caricare anche il menu (cioè se eliminavo il require_once il css funzionava sballandomi il design della galleria, avendolo messo di proposito a caricare dopo i css della stessa per controllarne il funzionamento).
Nel template è... Strano. Avevo incluso erroneamente un path errato per il css e mi sono ritrovato gli errori nella console, per cui significa che almeno le righe il server le ha "lette", ma anche dopo aver corretto il percorso... Non gliene è fregato nulla xD Menu costruito con gli stylesheet di default di chrome.
Fondamentalmente il problema non è tanto il css (in qualche modo lo forzo a caricarlo) quanto che se chiamo il menu (ovunque) crasha la galleria o non carica QueryString, senza una ragione apparente.
Citazione di: emanuele il Giovedì - 07 Luglio 2016 - 09:10
Per scrupolo controllerei che in Settings le directory ci siano e siano corrette.
Beh non funzionerebbe il forum se non fossero corrette xD
Non necessariamente, dati che index.php controlla e corregge i percorsi.
Sorry, intendevo che l'ho effettivamente controllato e sembra ok, ma farò girare un repair_settings dalla proprietaria, per essere sicuri.
EDIT: sono (ed erano) corretti.
Idee? Dici che quelli di Coppermine potrebbero averne qualcuna in più? ;D
L'unica cosa che puoi fare è iniziare ad escludere tutte le possibilità per capire dove sta il problema.
Al momento hai due sistemi complessi, quindi la prima cosa da fare è eliminarne uno e vedere se l'altro funziona: crea un file vuoto, mettici il require_once di SSI e vedi se funziona.
1) File vuoto, con
require_once('../board/SSI.php');
ssi_menubar();
e carica senza css.
2) File vuoto, con
$ssi_theme = 16;
require_once('../board/SSI.php');
ssi_menubar();
e carica CON il css (dafuq?). Tuttavia mi mostrava il menu da sloggato mentre avevo effettuato il login...
3) Messo nella galleria, quest'ultima crasha con l'errore Unable to connect to UDB database (quello della pagina precedente di questo topic), oppure con QueryString, a seconda di dove metto il blocco di codice (rispettivamente prima o dopo gli include di Coppermine).
I due script usano lo stesso database, stesso utente e stessa password?
Cercando si trova:
http://www.simplemachines.org/community/index.php?topic=283840.msg1863156#msg1863156
stesso problema, dovuto a password sbagliata, controlla?
Non stesso database, apparentemente, ma stessa password sì. Dovremmo... Fare un merge?
Il problema, più che altro è se è lo stesso utene con gli stessi permessi su entrambi i database.
Stesso utente sicuramente, con stessa password, stesso account, per cui azzarderei stessi permessi..?
Sicuramente perché hai controllato o perché vai a buonsenso?
Io ho imparato che il buonsenso è meglio metterlo da parte in molti casi.
Ad ogni modo, SMF dovrebbe gestire correttamente diversi database, onestamente non so CPG.
E' la prima volta che viene fatto il bridge o esisteva già?
L'utente è uno solo sul cPanel, per cui è per forza admin su entrambi i database, questo intendo @_@ Se mi stai chiedendo altro ti chiedo scusa che ti ho frainteso, fa un caldo bestia e nonostante l'aranciata mi si scioglie la testa xD
Il bridge esisteva già da prima, non l'ho fatto io (e funziona come da manuale).
CPG è l'ultima versione?
Il bridge è l'ultima versione?
Onestamente non so cosa dire, io ho fatto le stesse identiche cose, con sostanzialmente la stessa configurazione (a parte che uso root come utente mysql) e mi funziona senza nemmeno fare una piega.
A te fa casino.
Non so...
Sì e sì.
Apparentemente è qualcosa di strano in alcune configurazioni e non si è mai capito cosa sia... http://forum.coppermine-gallery.net/index.php/topic,75759.0.html
Ho fatto così, anche se applicare stile ad un iframe è un *enorme* PITA :/
Perché?
Alla fine non è altro che un file html, quindi gli metti il suo foglio di stile e sei a posto.
E' un php, non un html. Ricorda che devo fare i require_once da lì perchè non va se lo faccio da CPG.
sigh...
Perché secondo te al browser fa qualche differenza se una pagina è html, php, asp, c, o altro?
Quello che il browser vede è html.
Se tu usi un iframe, vuol dire che avrai fatto:
<iframe src="htp://qualcosa.tld/miofile.php" />
Poi, in miofile.php avrai:
<?php
require_once('/path/to/forum/SSI.php');
// Ora, immagino che nel tuo file avrai brutalmente fatto:
ssi_menubar();
guess what?
Questo renderizza un file HTML che contiene il solo menù senza fogli di stile... bummer!
<?php
require_once('/path/to/forum/SSI.php');
global $settings;
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="<?php echo $settings['current_theme_url']; ?>/css/index.css?fin20" />
</head>
<body><?php
ssi_menubar();
?>
</body>
</html>
Ecco qui una pagina HTML con il foglio di stile di SMF che mostra il solo menù.
Quando dico che un minimo di tutorial bisognerebbe leggerli non lo dico perché voglio fare pubblicità a chi scrive tutorial. ;)
Lol, ci siamo un tantino fraintesi ;D
Ad importare lo stile ci pensa già il php che ho messo :P
echo '
<link rel="stylesheet" href="/board/Themes/integration_theme/css/index.css" type="text/css" />';
error_reporting(E_ALL);
$ssi_theme = 18;
require_once('/blahblah/board/SSI.php');
ssi_menubar();
?>
Il fatto è che l'iframe non va molto d'accordo con l'overflow, nel senso che qualsiasi cosa faccia i menu a cascata vengono tagliati dalla larghezza massima dell'iframe, oppure vengono mostrati "sotto" al resto del contenuto sulla destra. Oltre al fatto che importando roba chiaramente non funziona *esattamente* come dovrebbe e bisogna sempre adattare @_@