Vai al contenuto
  • 0

ip content e o stato a cosa stai pensando


trattore

Domanda

Ciao...buona giornata, qualcuno puo illuminarmi di come posso mette gli aggiornamenti di stato sulla agina dell ip.content? il blocco esiste ok ma io vorrei quacosa dove posso modificare le dimensioni dei caratteri ecc...una cosa tipo il tab che c'è in ogni profilo utente...grazie in anticipo

Link al commento
Condividi su altri siti

Messaggi raccomandati

  • 0
Inviato (modificato)

IERI ci ho pensato e mi sono detto, ma xe fare uso del linguaggio php complicarmi la vita quando è possibile mettere questo benedetto pulsante con codici esterni  a ip.bord..e infatti sono arrivato alla conclusione di inserire dei codici identificativi da collegare alla textarea con un click mettendo tutto dentro uno spoiler che nasconde i div con scritto emoticons... ed il risultato e perfetto :D ...la pecca e solo che devo inserire i codici delle emo una alla volta, ma direi che si puo fare..

Logicamente le emo vanno aggiunte ne ho messe un po per farvi vedere il risultato che e perfetto :D

rdw94d5u.gif

Modificato da trattore
  • Like 2
Link al commento
Condividi su altri siti

  • 0

la pecca e solo che devo inserire i codici delle emo una alla volta

usa questo codice per generare le emoticon dalla cache

        print "<div class=\"alist\" id='lista_emo' style='height:100px;overflow:auto;display:none'>";        if( is_array( $this->cache->getCache('emoticons') ) && count( $this->cache->getCache('emoticons') ) )        {            foreach ($this->cache->getCache('emoticons') as $v)            {print '<A onClick="emoticon(\'' . $v['typed'] . '\')"><img src="public/style_emoticons/' . $v['emo_set'] . '/' . $v['image'] .'" /></A>';            }        }print "</div>";

poi io per provare sto usando questo javascript, e ho aggiunto nel <form> la proprietà name="myForm"

<script type="text/javascript">function emoticon(theSmilie){document.myForm.content.value += " " + theSmilie + " ";}function toggle_visibility(id) {    var e = document.getElementById(id);    if (e.style.display == 'block') e.style.display = 'none';    else e.style.display = 'block';        hideAllBut(id);}function hideAllBut(id) {    var lists = document.querySelectorAll('.alist');    for (var i = lists.length; i--; ) {        if (lists[i].id != id) {            lists[i].style.display = 'none';        }    }}//http://stackoverflow.com/questions/15288790/show-hide-script-using-javascript</script>

unica cosa che manca ora è impaginare le emoticon... per chi ne ha impostate + di 100 è davvero un pò brutto con

 

 

potresti pubblicare il codice appena lo adegui? ne sto facendo uno anche io ormai, cosi almeno la rendiamo risorsa pubblica :)

post-29-0-07965900-1395726314_thumb.png

Link al commento
Condividi su altri siti

  • 0

usa questo codice per generare le emoticon dalla cache

        print "<div class=\"alist\" id='lista_emo' style='height:100px;overflow:auto;display:none'>";        if( is_array( $this->cache->getCache('emoticons') ) && count( $this->cache->getCache('emoticons') ) )        {            foreach ($this->cache->getCache('emoticons') as $v)            {print '<A onClick="emoticon(\'' . $v['typed'] . '\')"><img src="public/style_emoticons/' . $v['emo_set'] . '/' . $v['image'] .'" /></A>';            }        }print "</div>";

mi da errore forse sbaglio dove piazzarlo.. mi diresti dove metterlo?

$this->registry->class_localization->loadLanguageFile( array( 'public_profile' ), 'members' );$this->registry->class_localization->loadLanguageFile( array( 'public_boards' ), 'forums' );/* Load status class */		if ( ! $this->registry->isClassLoaded( 'memberStatus' ) )		{			$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/member/status.php', 'memberStatus' );			$this->registry->setClass( 'memberStatus', new $classToLoad( ipsRegistry::instance() ) );		}				/* Fetch */		$updates = $this->registry->getClass('memberStatus')->fetch( $this->memberData, array( 'limit' => intval( 15 ), 'status_is_latest' => 1, 'ownerOnly' => true ) );?><script type='text/javascript' src="<? print $this->settings['public_dir'] ?>js/ips.status.js"></script><div class='ipsSideBlock clearfix' id='statusHook'>	<h3><? print $this->lang->words['recent_status_updates'] ?></h3><? if ($this->registry->getClass('memberStatus')->canCreate( $this->memberData ) && !($this->settings['board_offline'] && !$this->memberData['g_access_offline'])){ print "<div class='status_update row2'><div id='nameuser'>{$this->memberData['members_display_name']}</div><div class='user_boxx'><img src='{$this->memberData['pp_small_photo']}' WIDTH=70 HEIGHT=90 /> </div><form name='statusForm' id='statusForm' action='". $this->settings['base_url']."app=members&module=profile&section=status&do=new&k=".$this->member->form_hash."&id=".$this->memberData['member_id']."' method='post'><div class='statusBoxx'>   <textarea id='statusUpdate_page' name='content' class='statusUpdatext' ></textarea></div><div class='textright'><input type='submit' id='statusSubmit_page' class='statusSubmitGloball' value='".$this->lang->words['gbl_post']."' /></div>"; 	if ((IPSLib::twitter_enabled() OR IPSLib::fbc_enabled() ) AND ( $this->memberData['fb_uid'] OR $this->memberData['twitter_id'] )){		print "  ";		if (IPSLib::twitter_enabled() AND ( $this->memberData['twitter_id'] )){ print "<input type='checkbox' id='su_Twitter' value='1' name='su_Twitter' /> <label for='su_Twitter' class='desc ipsType_smaller'>Twitter</label>"; } print " ";		if (IPSLib::fbc_enabled() AND ( $this->memberData['fb_uid'] )){ print " <input type='checkbox' id='su_Facebook' value='1' name='su_Facebook' /> <label for='su_Facebook' class='desc ipsType_smaller'>Facebook</label>"; }		}		print "<br />		<hr /></form></div>";} ?><br />                         <div class='_sbcollapsable'>		<div id="status_wrapper">			<div id="nameuser1"><? print $this->registry->getClass('output')->getTemplate('boards')->statusUpdates($updates, 1, 1) ?></div>			<div class="status_main_content ipsType_small" style='text-align: center'>				<a href='<? print $this->registry->output->buildSEOUrl( 'app=members&module=profile&section=status&type=all', 'public', true, 'members_status_all' )?>'><? print $this->lang->words['viewallupdates'] ?></a>			</div>      	</div>	</div></div><?
Link al commento
Condividi su altri siti

  • 0

$this->registry->class_localization->loadLanguageFile( array( 'public_profile' ), 'members' );

$this->registry->class_localization->loadLanguageFile( array( 'public_boards' ), 'forums' );

/* Load status class */

if ( ! $this->registry->isClassLoaded( 'memberStatus' ) )

{

$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/member/status.php', 'memberStatus' );

$this->registry->setClass( 'memberStatus', new $classToLoad( ipsRegistry::instance() ) );

}

/* Fetch */

$updates = $this->registry->getClass('memberStatus')->fetch( $this->memberData, array( 'limit' => intval( 15 ), 'status_is_latest' => 1, 'ownerOnly' => true ) );

?>

<script type='text/javascript' src="<? print $this->settings['public_dir'] ?>js/ips.status.js"></script>

<script type="text/javascript">

function emoticon(theSmilie)

{

document.myForm.content.value += " " + theSmilie + " ";

document.myForm.content.focus();

}

function toggle_visibility(id) {

var e = document.getElementById(id);

if (e.style.display == 'block') e.style.display = 'none';

else e.style.display = 'block';

hideAllBut(id);

}

function hideAllBut(id) {

var lists = document.querySelectorAll('.alist');

for (var i = lists.length; i--; ) {

if (lists[i].id != id) {

lists[i].style.display = 'none';

}

}

}

//http://stackoverflow.com/questions/15288790/show-hide-script-using-javascript

</script>

<div class='ipsSideBlock clearfix' id='statusHook'>

<h3><? print $this->lang->words['recent_status_updates'] ?></h3>

<? if ($this->registry->getClass('memberStatus')->canCreate( $this->memberData ) && !($this->settings['board_offline'] && !$this->memberData['g_access_offline'])){

print "<div class='status_update row2'>

<div id='nameuser'>{$this->memberData['members_display_name']}</div>

<div class='user_boxx'><img src='{$this->memberData['pp_small_photo']}' WIDTH=70 HEIGHT=90 /> </div>

<form

name='myForm' id='statusForm'
 action='". $this->settings['base_url']."app=members&module=profile&section=status&do=new&k=".$this->member->form_hash."&id=".$this->memberData['member_id']."' method='post'>

<div class='statusBoxx'>

<textarea id='statusUpdate_page' name='content' class='statusUpdatext' ></textarea>

</div>

<div class='textright'><input type='submit' id='statusSubmit_page' class='statusSubmitGloball' value='".$this->lang->words['gbl_post']."' />

<input type='button' class='ipsButton_secondary left' onclick=\"toggle_visibility('lista_emo');\" value=\"Emoticon\" />

</div>";

if ((IPSLib::twitter_enabled() OR IPSLib::fbc_enabled() ) AND ( $this->memberData['fb_uid'] OR $this->memberData['twitter_id'] )){

print "  ";

if (IPSLib::twitter_enabled() AND ( $this->memberData['twitter_id'] )){ print "<input type='checkbox' id='su_Twitter' value='1' name='su_Twitter' /> <label for='su_Twitter' class='desc ipsType_smaller'>Twitter</label>"; } print " ";

if (IPSLib::fbc_enabled() AND ( $this->memberData['fb_uid'] )){ print " <input type='checkbox' id='su_Facebook' value='1' name='su_Facebook' /> <label for='su_Facebook' class='desc ipsType_smaller'>Facebook</label>"; }

}

		print "<div class=\"alist ipsPad_double\" id='lista_emo' style='height:100px;overflow:auto;display:none'>";

if( is_array( $this->cache->getCache('emoticons') ) && count( $this->cache->getCache('emoticons') ) )

{

foreach ($this->cache->getCache('emoticons') as $v)

{

print '<A onClick="emoticon(\'' . $v['typed'] . '\')"><img title="'.$v['typed'].'" style="cursor:pointer" src="'.$this->settings['board_url'].'/public/style_emoticons/' . $v['emo_set'] . '/' . $v['image'] .'" /></A>';

}

}

print "</div><hr /></form></div>";

} ?>

<br />

<div class='_sbcollapsable'>

<div id="status_wrapper">

<div id="nameuser1"><? print $this->registry->getClass('output')->getTemplate('boards')->statusUpdates($updates, 1, 1) ?></div>

<div class="status_main_content ipsType_small" style='text-align: center'>

<a href='<? print $this->registry->output->buildSEOUrl( 'app=members&module=profile&section=status&type=all', 'public', true, 'members_status_all' )?>'><? print $this->lang->words['viewallupdates'] ?></a>

</div>

</div>

</div>

</div>

<?

ho separato dove ho effettuato la modifica, tenendo il tuo file come riferimento quindi puoi anche copiarlo e incollarlo ;)
Link al commento
Condividi su altri siti

  • 0
Inviato (modificato)

perfect ho sistemato tutto grz :D ...ora e davvero ok ... guardate lo stamp

post-942-0-93903300-1395800087_thumb.png

la parte delle emo le ho carcate tutte manualmente sono piu di 120 mettendo una bella scrollbar e sistemandole tutte per le dimensioni 20 x 20 px dentro delle celle....ora punto verso la modifica di mettere dei link dento un imput per le immagini che quando inserisci il link te le carica dentro i bbcode img ...ma la vedo dura

Modificato da trattore
Link al commento
Condividi su altri siti

  • 0

ma no, non usare il bbcode img... avevo postato una modifica xml in un messaggio precedente che ti permette di far funzionare bbcode e emoticon negli stati, o vuoi proprio metterli tra img a prescindere? perchè gli [ img ] prendono i link delle immagini non la scorciatoia... funziona eh ma decidi tu, si arriva alla stessa cosa :blink:

 

a un input a parte per le img...

Link al commento
Condividi su altri siti

  • 0

vorrei mettere un imput text che qundo un utente ci inserisce un link dentro e preme invio la carica direttamente nello stato....si potra mai fare...cchissà

Link al commento
Condividi su altri siti

  • 0

guarda per ora ho fatto un input che se cliccato sostituisce il testo selezionato nel textarea anteponendo [ img ] ... [ /img ] ... è come il pulsante emoticon ma con un altra funzione...

function immagine() {    // code for IE    var textarea = document.getElementById("statusUpdate_page");         if (document.selection)    {    textarea.focus();    var sel = document.selection.createRange();    // alert the selected text in textarea//    alert(sel.text);         // Finally replace the value of the selected text with this new replacement one    sel.text = '[img]' + sel.text + '[/img]';    }                        // code for Mozilla         var textarea = document.getElementById("statusUpdate_page");         var len = textarea.value.length;    var start = textarea.selectionStart;    var end = textarea.selectionEnd;    var sel = textarea.value.substring(start, end);         // This is the selected text and alert it//    alert(sel);         var replace = '[img]' + sel + '[/img]';         // Here we are replacing the selected text with this one    textarea.value = textarea.value.substring(0,start) + replace + textarea.value.substring(end,len);//http://snipplr.com/view/8406/}

questo sotto mettilo dopo quello delle emoticon...

		print " <input type='button' class='ipsButton_secondary' onclick=\"immagine();\" value=\"Immagine\" />";

solo che a me rimane [ img ] non formattato... quindi occorre rivedere l'xml che feci tempo fa, perchè i bbcode come [ hr ] li prende :/

  • Like 1
Link al commento
Condividi su altri siti

  • 0

grz per la dritta,ma ho optato per inserire un bel script che ti permette di inserire i bbcode  sulla textarea...FANTASTICO ed e facile come un bicchiere d acqua inserirlo...grazie mille per il tuo aiuto! :D

Link al commento
Condividi su altri siti

  • 0

j4rd59p7.gif

potresti darmi il link del tuo sito? anche in privato... non riesco a capire come mai riesci a inserire le immagini formattate :(

Link al commento
Condividi su altri siti

  • 0

 

magari c'è un altro template o oppure potresti caricare l'editor completo invece del textarea... ci sono molte soluzioni ma preferisco anche io lasciare un campo e affiancargli un pulsante per le emoticon.

http://www.invisionpower.com/support/guides/_/advanced-and-developers/api-methods/editor-bbcode-r146

http://www.invisionpower.com/support/guides/_/advanced-and-developers/api-methods/34-editor-and-parsing-methods-r229

con l'editor lo script si interrompe perchè non trova un $('statusUpdate_page') mentre con l'input si :/ quindi se metti l'editor non ci saranno controlli ajax

ciao, come hai fatto per caricare l editor completo?

Link al commento
Condividi su altri siti

  • 0

avevo aggiunto:

	$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' );	$editor = new $classToLoad();

poi al posto dell'input avevo messo:

$editor->show( 'content', array( 'minimize' => 1, 'type' => 'full', 'isHtml' => 1, 'legacyMode' => 'off' ) );

unico problema è che nell'editor non c'è l'id "statusUpdate_page", che permetteva all'input di inviare il messaggio con richiesta ajax (senza caricare la pagina).

Link al commento
Condividi su altri siti

  • 0
$this->registry->class_localization->loadLanguageFile( array( 'public_profile' ), 'members' );$this->registry->class_localization->loadLanguageFile( array( 'public_boards' ), 'forums' );/* Load status class */		if ( ! $this->registry->isClassLoaded( 'memberStatus' ) )		{			$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/member/status.php', 'memberStatus' );			$this->registry->setClass( 'memberStatus', new $classToLoad( ipsRegistry::instance() ) );		}				/* Fetch */		$updates = $this->registry->getClass('memberStatus')->fetch( $this->memberData, array( 'limit' => intval( $this->settings['status_sidebar_show_x'] ), 'status_is_latest' => 1, 'ownerOnly' => true ) );?><script type='text/javascript' src="<? print $this->settings['public_dir'] ?>js/ips.status.js"></script><div class='ipsSideBlock clearfix' id='statusHook'>	<h3><? print $this->lang->words['recent_status_updates'] ?></h3><? if ($this->registry->getClass('memberStatus')->canCreate( $this->memberData ) && !($this->settings['board_offline'] && !$this->memberData['g_access_offline'])){ 	print "<div class='status_update row2'><form id='statusForm' action='". $this->settings['base_url']."app=members&module=profile&section=status&do=new&k=".$this->member->form_hash."&id=".$this->memberData['member_id']."' method='post'>		<input type='text' id='statusUpdate_page' name='content' style='width:60%' class='input_text' />		<input type='submit' id='statusSubmit_page' class='ipsButton_secondary' value='".$this->lang->words['gbl_post']."' />";		if ((IPSLib::twitter_enabled() OR IPSLib::fbc_enabled() ) AND ( $this->memberData['fb_uid'] OR $this->memberData['twitter_id'] )){		print "  ";		if (IPSLib::twitter_enabled() AND ( $this->memberData['twitter_id'] )){ print "<input type='checkbox' id='su_Twitter' value='1' name='su_Twitter' /> <label for='su_Twitter' class='desc ipsType_smaller'>Twitter</label>"; } print " ";		if (IPSLib::fbc_enabled() AND ( $this->memberData['fb_uid'] )){ print " <input type='checkbox' id='su_Facebook' value='1' name='su_Facebook' /> <label for='su_Facebook' class='desc ipsType_smaller'>Facebook</label>"; }		}		print "<br />		<hr />	</form></div>";} ?><br />	<div class='_sbcollapsable'>		<div id="status_wrapper">			<div id="status_wrapper_inside"><? print $this->registry->getClass('output')->getTemplate('boards')->statusUpdates($updates, 1, 1) ?></div>			<div class="status_main_content ipsType_small" style='text-align: center'>				<a href='<? print $this->registry->output->buildSEOUrl( 'app=members&module=profile&section=status&type=all', 'public', true, 'members_status_all' )?>'><? print $this->lang->words['viewallupdates'] ?></a>			</div>			</div>	</div></div><?

funziona in tutto e per tutto... se vuoi più di 5 risultati devi modificare $this->settings['status_sidebar_show_x'] nel codice e sostituirlo con un numero maggiore ;)

 

l'importante è che ips.status.js venga caricato, ci pensa lui a autoinserire o autoaggiornare(se il più recente è il tuo viene sostituito, cioè non eliminato dal sistema, lasciando l'ultimo valore di stato... i precedenti sono comunque archiviati nel tuo profilo) il tuo ultimo stato pubblicato  :D

 

ps: per abilitare emoticon e bbcode occorre installare questo xml tra le hooks (leggi qui per ulteriori info)

 

ciao scusa, mi puoi dire come si modifica quella parte di codice che citi, per avere piu risultati? grz mille

Link al commento
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora
  • Chi sta navigando   0 utenti

    • Nessun utente registrato visualizza questa pagina.
×
×
  • Crea Nuovo...

Informazioni importanti

Abbiamo inserito dei cookies nel tuo dispositivo per aiutarti a migliorare la tua esperienza su questo sito. Puoi modificare le impostazioni dei cookie, altrimenti puoi accettarli cliccando su continua. to insert a cookie message.