Autore Sottoscrivi questo autore
Avatar utente
Lucky
Amministratore
Amministratore
 
Articoli: 75
Iscritto il: 11 gen 2009, 21:14
Località: Bari
Sito Web: http://www.portalxl.eu
Cerca articoli

Opzioni segnalibri
Segnalibri social networks disponibili:
Blogger Delicious Digg Facebook Feed amici Google Link in Live Mixx MySpace Netvibes Reddit Stumbleupon Technorati Twitter Wordpress
Vota questo articolo

Questo articolo è valutato 3
con 0 voti espressi.
Esporta articolo
 

[Docs] Ajax Chat su Portal XL Premod 3.0.x

ID Articolo: 87
Scritto da: Lucky
Scritto il: 24 ago 2011, 2:08
Descrizione articolo: Come ripristinare la vecchia Chat Ajax eliminata con la Portal XL Premod 3.0.9
Link esterno a questo articolo:
http://portalxl.eu/kb.php?a=87

Istruzioni:

Per l'installazione della chat eseguire semplicemente /chat/install.php

o in alternativa questa query in phpmyadmin:

Codice: Seleziona tutto
    DROP TABLE IF EXISTS ajax_chat_bans;
    CREATE TABLE ajax_chat_bans (
      userID int(11) NOT NULL,
      userName varchar(64) binary NOT NULL,
      `dateTime` datetime NOT NULL,
      ip varbinary(16) NOT NULL
    ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

    DROP TABLE IF EXISTS ajax_chat_invitations;
    CREATE TABLE ajax_chat_invitations (
      userID int(11) NOT NULL,
      channel int(11) NOT NULL,
      `dateTime` datetime NOT NULL
    ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

    DROP TABLE IF EXISTS ajax_chat_messages;
    CREATE TABLE ajax_chat_messages (
      id int(11) NOT NULL AUTO_INCREMENT,
      userID int(11) NOT NULL,
      userName varchar(64) binary NOT NULL,
      userRole int(1) NOT NULL,
      channel int(11) NOT NULL,
      `dateTime` datetime NOT NULL,
      ip varbinary(16) NOT NULL,
      `text` text,
      PRIMARY KEY (id)
    ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

    DROP TABLE IF EXISTS ajax_chat_online;
    CREATE TABLE ajax_chat_online (
      userID int(11) NOT NULL,
      userName varchar(64) binary NOT NULL,
      userRole int(1) NOT NULL,
      channel int(11) NOT NULL,
      `dateTime` datetime NOT NULL,
      ip varbinary(16) NOT NULL
    ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;



Modifiche manuali:


Apri includes/session.php

Cerca:
Codice: Seleziona tutto
$sql = 'DELETE FROM ' . SESSIONS_TABLE . "
         WHERE session_id = '" . $db->sql_escape($this->session_id) . "'
            AND session_user_id = " . (int) $this->data['user_id'];
      $db->sql_query($sql);


Aggiungi dopo:

Codice: Seleziona tutto
// ajax_chat-0.8.3_phpBB3
      // Removes the current user from the AJAX chat online list
      $sql2 = "DELETE FROM ajax_chat_online
         WHERE userID = " . (int) $this->data['user_id'];
      $db->sql_query($sql2);
// ajax_chat-0.8.3_phpBB3



Apri includes/functions.php

Cerca:

Codice: Seleziona tutto
      'U_FAQ'               => append_sid("{$phpbb_root_path}faq.$phpEx"),


Aggiungi sotto:

Codice: Seleziona tutto
// ajax_chat-0.8.3_phpBB3
      'SHOUTBOX'              => getShoutBoxContent(),
        'CHAT_LINK'             => append_sid("{$phpbb_root_path}chat/index.$phpEx"),
        'CHAT_LABEL'            => $user->lang['CHAT_LABEL'] .' ['.count(getChatOnlineUserIDs()).']',
        'CHAT_TITLE'            => $user->lang['CHAT_TITLE'] .' ['.htmlentities(implode(', ', getChatOnlineUsers()), ENT_QUOTES, 'UTF-8').']',
// ajax_chat-0.8.3_phpBB3


Cerca:

Codice: Seleziona tutto
            if (!isset($online_users['hidden_users'][$row['user_id']]) || $auth->acl_get('u_viewonline'))
            {
               $user_online_link = get_username_string(($row['user_type'] <> USER_IGNORE) ? 'full' : 'no_profile', $row['user_id'], $row['username'], $row['user_colour']);


Aggiungi sotto:

Codice: Seleziona tutto
// phpBB3 AJAX Chat
            if(in_array($row['user_id'], getChatOnlineUserIDs()))
            {
              $user_online_link = '<span title="* = '.strip_tags($row['username']).' is logged into the Chat">'.$user_online_link.'*</span>';
            }               
// phpBB3 AJAX Chat



Cerca:

Codice: Seleziona tutto
?>


Aggiungi prima:

Codice: Seleziona tutto
/**
* ajax_chat-0.8.3_phpBB3
*/
function getShoutBoxContent()
{
   global $phpEx, $phpbb_root_path;

   // Get the URL to the chat directory:
   if (!defined('AJAX_CHAT_URL'))
   {
      define('AJAX_CHAT_URL', $phpbb_root_path . 'chat/');
   }

   // Get the real path to the chat directory:
   if (!defined('AJAX_CHAT_PATH'))
   {
      if (empty($_SERVER['SCRIPT_FILENAME']))
      {
         $_SERVER['SCRIPT_FILENAME'] = $_SERVER['DOCUMENT_ROOT'] . $_SERVER['SCRIPT_URL'];
      }
      define('AJAX_CHAT_PATH', realpath(dirname($_SERVER['SCRIPT_FILENAME']) . '/chat') . '/');
   }

   // Validate the path to the chat:
   if (@is_file(AJAX_CHAT_PATH . 'lib/classes.' . $phpEx))
   {
      // Include Class libraries:
      require_once(AJAX_CHAT_PATH.'lib/classes.' . $phpEx);

      // Initialize the shoutbox:
      $ajaxChat = new CustomAJAXChatShoutBox();

      // Parse and return the shoutbox template content:
      return $ajaxChat->getShoutBoxContent();
   }

   return null;
}

function getChatInterface() {
    global $phpEx, $phpbb_root_path;
    static $ajaxChat;

    if (!$ajaxChat) {
        // URL to the chat directory:
        if (!defined('AJAX_CHAT_URL')) {
            define('AJAX_CHAT_URL', $phpbb_root_path . 'chat/');
        }

        // Path to the chat directory:
        if (!defined('AJAX_CHAT_PATH')) {
            if (empty($_SERVER['SCRIPT_FILENAME'])) {
                $_SERVER['SCRIPT_FILENAME'] = $_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_URL'];
            }
            define('AJAX_CHAT_PATH', realpath(dirname($_SERVER['SCRIPT_FILENAME']).'/chat').'/');
        }

        // Validate the path to the chat:
        if (@is_file(AJAX_CHAT_PATH.'lib/classes.'.$phpEx)) {
            // Include Class libraries:
            require_once(AJAX_CHAT_PATH.'lib/classes.'.$phpEx);

            // Initialize the chat interface:
            $ajaxChat = new CustomAJAXChatInterface();
        }
    }

    return $ajaxChat;
}

function getChatOnlineUsers() {
    $chatInterface = getChatInterface();
    if($chatInterface) {
        // Clean out any users who didn't log out properly by calling removeInactive()
        // Not necessary but a good idea. You can take out this line if you want.
        $chatInterface->removeInactive();
        // Now get the online users:
        return $chatInterface->getOnlineUsers();
    }
    else {
        return array();
    }
}

function getChatOnlineUserIDs() {
    return ($chatInterface = getChatInterface()) ? $chatInterface->getOnlineUserIDs() : array();
}


Apri language/it/common.php

Cerca:

Codice: Seleziona tutto
?>


Aggiungi prima:

Codice: Seleziona tutto
// phpBB AJAX Chat
$lang = array_merge($lang, array(
   'SHOUTBOX'      => 'Chat',
   'CHAT_LABEL'   => 'In Chat',
   'CHAT_TITLE'   => 'Online',
   'CHAT_WINDOW'   => 'Finestra chat',
));


Apri styles/[STYLE_NAME]/theme/stylesheet.css

Aggiungi alla fine del file:

Codice: Seleziona tutto
@import url("../../../chat/css/shoutbox.css");


Apri styles/prosilver/theme/buttons.css

Cerca:

Codice: Seleziona tutto
.sitehome, .icon-faq, .icon-members, .icon-home, .icon-ucp, .icon-register, .icon-logout,
.icon-bookmark, .icon-bump, .icon-subscribe, .icon-unsubscribe, .icon-pages,  .icon-search {


Sostituisci con:

Codice: Seleziona tutto
.sitehome, .icon-faq, .icon-members, .icon-home, .icon-ucp, .icon-register, .icon-logout,
.icon-bookmark, .icon-bump, .icon-subscribe, .icon-unsubscribe, .icon-pages, .icon-chat, .icon-search {


Apri styles/prosilver/theme/colours.css

Cerca:

Codice: Seleziona tutto
.icon-pages                  { background-image: url("{T_THEME_PATH}/images/icon_pages.gif"); }


Aggiungi sotto:

Codice: Seleziona tutto
.icon-chat                                            { background-image: url("{T_THEME_PATH}/images/icon_chat.png"); }


Apri styles/prosilver/templates/overall_header.html

cerca:

Codice: Seleziona tutto
<!-- IF S_SHOW_VIDEO --><li class="icon-video"><a href="{U_DMV_VIDEO}" title="{L_DMV_VIDEO}">{L_DMV_VIDEO}</a></li><!-- ENDIF -->


aggiungi prima:

Codice: Seleziona tutto
<li class="icon-chat"><a href=" javascript:void(0)" onClick="window.open('{CHAT_LINK}', 'standaloneflash','width=800,height=600'); return false;" rel="nofollow">{CHAT_LABEL}
<a rel="nofollow">


Altre configurazioni e guide sono disponibili su
http://sourceforge.net/apps/mediawiki/a ... ctionality

oppure su

http://ajax-chat.forkforge.net/Home_Page


CONFIGURAZIONE BLOCCO CHAT

Per configurare il blocco apri il file \template\portal\block\center_ajax_chat.html

Cerca:

Codice: Seleziona tutto
         win = window.open(mypage,nn,settings);
       }
    // ]]>
    </script>


Aggiungi ad esempio

Codice: Seleziona tutto
    <style type='text/css'>
    #ajaxChatContent #ajaxChatChatList {
       background-color: #212121;
       font-size: 1.2em;
       font-family: "Trebuchet MS", Verdana, Arial, sans-serif;
       color: #CCC;
       border: inset 2px #666;
       -moz-border-radius: 5px;
       -webkit-border-radius: 5px;
       height: 120px;
       overflow: auto;
    }

    #ajaxChatInputFieldContainer {
        margin: 10px 0px 10px 0px;
        width: 90%;
    }

    #ajaxChatInputFieldContainer #ajaxChatInputField {
       background-color: #212121;
       color: #CCC;
    }

    #ajaxChatContent .rowEven {
       background-color:#666;
    }
    #ajaxChatContent .rowOdd {
       background-color:#333;
    }
    </style>


Nota!
Hex-value dopo "background-color:" sarà il nuovo colore di sfondo della chat.
Hex-value dopo "border:" sarà il nuovo colore del bordo della finestra chat.
Hex-value dopo "color:" sarà il nuovo colore del font.

Alcune configurazioni sono disponibili in chat\lib\config.php

ad esempio:

Evitare il login agli anonimi

Apri il file chat\lib\config.php

Cerca:

Codice: Seleziona tutto
$config['allowGuestLogins'] = true;


Sostituisci con:

Codice: Seleziona tutto
$config['allowGuestLogins'] = false;


Scaricate il pacchetto allegato e inviatelo via ftp nella root principale del sito, il pacchetto non contiene i file relativi modificati relativi alle modifiche manuali.

24/08/2011 E' stata aggiunta una modifica al template della chat, postata tempo fa da Ninowebs, e un piccolo messaggio informativo "Gli anonimi non possono leggere i messaggi", utile se si imposta il blocco con visibilità a tutti! Sovrascrivete sul vostro server rispettando i percorsi tutto il contenuto.

Modifica per inserire il pulsante tira un dado anche nel blocco centrale del portale

Immagine
Se volete aggiungere anche nel blocco del portale il pulsante tira un dado basterà effettuare questa modifica:

Apri
root/chat/lib/template/shoutbox.html
Cerca
Codice: Seleziona tutto
<input type="button" id="submitButton" value="Invia" onclick="ajaxChat.sendMessage();" />

Aggiungi sotto
Codice: Seleziona tutto
<input type="button" id="submitButton" value="Getta un Dado" onclick="ajaxChat.insertMessageWrapper('/roll ');" />



Un altra piccola modica che permette di selezionare tre colori.

Aggiungi i pulsanti per il colore
verde rosso e blu
basta inserire sotto il codice del post sopra(cioè sotto a getta un dado)
Codice: Seleziona tutto
 <input type="button" id="submitButton" value="Testo Rosso" onclick="ajaxChat.insertMessageWrapper('[color=red]testo[/color]');" />
        <input type="button" id="submitButton" value="Testo Verde" onclick="ajaxChat.insertMessageWrapper('[color=green]testo[/color]');" />
        <input type="button" id="submitButton" value="Testo Blu" onclick="ajaxChat.insertMessageWrapper('[color=blue]testo[/color]');" />


Immagine

ajax_chat-0.8.3_phpBB3.rar
Modifica template
(458.46 KiB) Scaricato 121 volte

Allegati
ajax_chat-0.8.3_phpBB3.rar
ajax chat, flash chat
(457.9 KiB) Scaricato 105 volte

La creazione, il mantenimento e gli aggiornamenti per il progetto Portal XL Italia richiedono molto tempo e fatica, aiutaci con una donazione, tutte le info qui.

Immagine
© Portal XL Italia Group - www.portalxl.eu
Questo articolo è stato modificato da Lucky il 3 dic 2011, 16:38
Risposte

{ PERMANENT_LINK }da Lucky il 16 set 2011, 20:21

Ecco come leggere i Log della chat loggati da amministratore, tutte le info su Portal XL Italia Blog. :co11:
La creazione, il mantenimento e gli aggiornamenti per il progetto Portal XL Italia richiedono molto tempo e fatica, aiutaci con una donazione, tutte le info qui.

Immagine
Avatar utente
Lucky
Amministratore
Amministratore
 
Articoli: 75
Iscritto il: 11 gen 2009, 21:14
Località: Bari
Sito Web: http://www.portalxl.eu

{ PERMANENT_LINK }da Ricky il 27 set 2011, 16:30

Ottima guida, se non vi dispiace aggiungo un link che porta a questa pagina nella wiki http://ajax-chat.forkforge.net :co11:
Avatar utente
Ricky
Utente Junior
Utente Junior
 
Articoli: 0
Iscritto il: 11 gen 2009, 21:14

{ PERMANENT_LINK }da Lucky il 6 ott 2011, 15:45

Nel caso si verificasse questo errore:

Codice: Seleziona tutto
    [phpBB Debug] PHP Notice: in file /chat/lib/config.php on line 11: Constant AJAX_CHAT_CHATBOT already defined
    [phpBB Debug] PHP Notice: in file /chat/lib/config.php on line 12: Constant AJAX_CHAT_ADMIN already defined
    [phpBB Debug] PHP Notice: in file /chat/lib/config.php on line 13: Constant AJAX_CHAT_MODERATOR already defined
    [phpBB Debug] PHP Notice: in file /chat/lib/config.php on line 14: Constant AJAX_CHAT_USER already defined
    [phpBB Debug] PHP Notice: in file /chat/lib/config.php on line 15: Constant AJAX_CHAT_GUEST already defined


Aprite il file /chat/lib/config.php

Cercate:

Codice: Seleziona tutto
// Define AJAX Chat user roles:
define('AJAX_CHAT_CHATBOT',      4);
define('AJAX_CHAT_ADMIN',      3);
define('AJAX_CHAT_MODERATOR',   2);
define('AJAX_CHAT_USER',      1);
define('AJAX_CHAT_GUEST',      0);

// AJAX Chat config parameters:


Sostituite con:

Codice: Seleziona tutto
    // Define AJAX Chat user roles:
    if(!defined('AJAX_CHAT_CHATBOT')){
    define('AJAX_CHAT_CHATBOT', 4);}
    if (!defined('AJAX_CHAT_ADMIN')){
    define('AJAX_CHAT_ADMIN', 3);}
    if (!defined('AJAX_CHAT_MODERATOR')){
    define('AJAX_CHAT_MODERATOR', 2);}
    if (!defined('AJAX_CHAT_USER')){
    define('AJAX_CHAT_USER', 1);}
    if (!defined('AJAX_CHAT_GUEST')){
    define('AJAX_CHAT_GUEST', 0);}
    // AJAX Chat config parameters:
La creazione, il mantenimento e gli aggiornamenti per il progetto Portal XL Italia richiedono molto tempo e fatica, aiutaci con una donazione, tutte le info qui.

Immagine
Avatar utente
Lucky
Amministratore
Amministratore
 
Articoli: 75
Iscritto il: 11 gen 2009, 21:14
Località: Bari
Sito Web: http://www.portalxl.eu

{ PERMANENT_LINK }da blackaccio il 11 ott 2011, 18:11

Gran bel post grazie, una domanda io uso sul portal il bolocco center shout dove
vanno messe le modifiche per aggiuhgere i tasti testo colorato e lancia il dado?
Ciao e grazie!!!!
Avatar utente
blackaccio
Principiante
Principiante
 
Articoli: 0
Iscritto il: 6 apr 2009, 21:46
Località: Nord Est Italy

{ PERMANENT_LINK }da DDL2006 il 5 apr 2012, 9:56

a me con google chrome mi da questo errore http://www.freeimagehosting.net/adpgm
Avatar utente
DDL2006
Nuovo Iscritto
Nuovo Iscritto
 
Articoli: 0
Iscritto il: 20 mar 2012, 11:48

{ PERMANENT_LINK }da Lucky il 5 apr 2012, 12:43

Su http://ajax-chat.forkforge.net/Home_Page trovi altre configurazioni e info sull'errore da te citato.
La creazione, il mantenimento e gli aggiornamenti per il progetto Portal XL Italia richiedono molto tempo e fatica, aiutaci con una donazione, tutte le info qui.

Immagine
Avatar utente
Lucky
Amministratore
Amministratore
 
Articoli: 75
Iscritto il: 11 gen 2009, 21:14
Località: Bari
Sito Web: http://www.portalxl.eu

{ PERMANENT_LINK }da mabocrack il 25 apr 2015, 16:43

Ciao a tutti

vorrei sapere se questa chat la si può installare anche sulla Plain comodamente uppando il pacchetto decompresso nella cartella di destinazione e facendo partire install.php

Grazie :)
Avatar utente
mabocrack
Nuovo Iscritto
Nuovo Iscritto
 
Articoli: 0
Iscritto il: 22 apr 2015, 16:44

Chi c’è in linea

Iscritti connessi: Exabot [Bot], Google [Bot]

cron