[ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.07
Prihlásený: 07.12.10
Príspevky: 6
Témy: 2 | 2
NapísalOffline : 27.02.2012 16:22 | preg_match_all upraviť

Dobrý deň,

mám jeden web pomocou cms phpfusion (v7).

Existuje tam preň infusion, ak niekto pozná, že v celom webe mi upraví farbu nickov tak,
že podľa danej skupiny mi jednoducho sfarbí nicky členov.

Táto funkcia sa volá "nicks_mod_panel" a všetko funguje ako má, čiže ak sa niekto
nachádza v nejakej skupine a ja si to v administrácií nastavím, všetko ide ako má. až na jednu vec.

Stiahol som si infusion - jquery chat panel.

Tento panel ma v sebe refresh a je teda možné bez refreshovania stránky refreshnúť obsah len pre daný panel.

Tento refresh je však nakódovaný v javascripte a keď načítam stránku, farby nickom sa zobrazia správne,
no keď dám refresh panelu, farby nickom sa jednoducho upravia na defaultné.

Kód pre zobrazenia nicku na webe je (v danom panely - tento pred refereshom funguje):
Kód:
echo "<a href='".BASEDIR."profile.php?lookup=".$data['shout_name']."' class='shoutboxname' class='side'>".$data['user_name']."</a>\n";


no po refreshi už neukazuje tento link (hore), ale už z javascriptu a tam je kód takýto.

Kód:
var author = "<a href='"+basedir+"profile.php?lookup="+$("authorname",shout).text()+"' class='shoutboxname'>"+$("authoruname",shout).text()+"</a>";


funckia, ktorá prepisuje farbu nickom vyzerá takto

Kód:
function colore_nicks($buf) {
   include INFUSIONS.'nicks_mod_panel/nicks_mod_cache.php';
   if(!empty($nicks_mod_cache)) {
      preg_match_all('#<a.*?href=\''.BASEDIR.'profile\.php\?lookup=([0-9]+)\'.*?>#', $buf, $matches);
      $matches = array_unique($matches[1]);
      if(!empty($matches)) {
         $users_ids = '';
         foreach($matches as $user_id) { $users_ids .= ($users_ids ? ',' : '').$user_id; }
         unset($matches);
         $result = dbquery('SELECT user_id, user_groups, user_level, user_primarygroup FROM '.DB_USERS.' WHERE (user_groups !="" OR user_level IN (102,103)) AND user_id IN ('.$users_ids.')');
         while($data = dbarray($result)) {
            $user_groups = (strpos($data['user_groups'], ".") == 0 ? explode(".", substr($data['user_groups'], 1)) : explode(".", $data['user_groups']));
            if($data['user_level']=='102' || $data['user_level']=='103') { $user_groups[] = "l".$data['user_level']; }
            if(isset($data['user_primarygroup']) && count($user_groups) > 1 && array_key_exists($data['user_primarygroup'], $nicks_mod_cache)) {
               $buf = preg_replace('#<a([^<>]*)href=\''.BASEDIR.'profile\.php\?lookup='.$data['user_id'].'\'([^<>]*)>([-0-9A-Z_@\s]*)</a>#si', '<a\\1href=\''.BASEDIR.'profile.php?lookup='.$data['user_id'].'\'\\2><span style=\'color:'.$nicks_mod_cache[$data['user_primarygroup']][0].';'.$nicks_mod_cache[$data['user_primarygroup']][2].'\'>'.$nicks_mod_cache[$data['user_primarygroup']][1].'\\3</span></a>', $buf);
            } else {
               foreach($user_groups as $user_group) {
                  if(array_key_exists($user_group, $nicks_mod_cache)) {
                     $buf = preg_replace('#<a([^<>]*)href=\''.BASEDIR.'profile\.php\?lookup='.$data['user_id'].'\'([^<>]*)>([-0-9A-Z_@\s]*)</a>#si', '<a\\1href=\''.BASEDIR.'profile.php?lookup='.$data['user_id'].'\'\\2><span style=\'color:'.$nicks_mod_cache[$user_group][0].';'.$nicks_mod_cache[$user_group][2].'\'>'.$nicks_mod_cache[$user_group][1].'\\3</span></a>', $buf);
                     break;
                  }
               }
            }
         }
      }
   }
   return $buf;
}

add_handler("colore_nicks");



Neviete niekto poradiť, aby som to upravil tak, aby to vedel rozoznať i ten kód v tom javascripte? som z toho už troška magor, hnevá ma to už pár dní a neviem to rozlúsknúť, aj keď je to určite len nejaká drobnosť.

Dúfam, že budete vedieť poradiť, pretože ja sa v tom preg_replace vôbec nevyznám.


Ďakujem za rady.

S pozdravom
Jakub


 [ Príspevok: 1 ] 


preg_match_all upraviť



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Upraviť gmail

v Sieťové a internetové programy

2

87

11.10.2013 16:34

Mego

V tomto fóre nie sú ďalšie neprečítané témy.

Možnosť upraviť príspevok

v Správy pre vedenie fóra

17

2066

22.08.2007 21:13

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

ako upraviť klavesnicu ?

v Modifikácie, návody a projekty

5

1155

10.01.2010 0:06

shiro

V tomto fóre nie sú ďalšie neprečítané témy.

Ako upravit template?

v Redakčné systémy

2

475

16.04.2007 15:58

MiroCO

V tomto fóre nie sú ďalšie neprečítané témy.

Potrebujem upravit text ??????? pomoccccccc

v Ostatné programy

2

181

30.09.2012 16:47

Seth Sparrow

V tomto fóre nie sú ďalšie neprečítané témy.

VLC- ako upravit titulky?

v Video programy

2

209

24.11.2015 17:54

sailer

V tomto fóre nie sú ďalšie neprečítané témy.

ako upravit flash webtemplate

v Webdesign

4

1629

07.09.2007 14:05

cr3at0r

V tomto fóre nie sú ďalšie neprečítané témy.

Ako upravit datum na videu

v Video programy

2

286

18.04.2012 17:22

largo2

V tomto fóre nie sú ďalšie neprečítané témy.

Ako upraviť videá z Ipodu ?

v Grafické programy

1

90

14.10.2013 16:39

AFX

V tomto fóre nie sú ďalšie neprečítané témy.

upravit grub podla vlastnych predstav

v Operačné systémy Microsoft

1

150

15.09.2012 16:39

Denco1

V tomto fóre nie sú ďalšie neprečítané témy.

Môže niekto upraviť doručenú sms ?

v Grafické programy

2

112

24.07.2017 15:44

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

zistit class elementu - ako upravit fciu?

v JavaScript, VBScript, Ajax

13

426

02.02.2011 13:47

DeeJay3

V tomto fóre nie sú ďalšie neprečítané témy.

ako zmenit, upravit cisla v tabulke

v Databázy

14

626

10.09.2009 11:37

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

Potrebujem upravit JavaScript,, pre galeriiu obrazkov

v JavaScript, VBScript, Ajax

2

392

20.08.2008 16:34

toma-mato

V tomto fóre nie sú ďalšie neprečítané témy.

XP -> ako upraviť obmedzené oprávnenia?

v Operačné systémy Microsoft

4

215

30.10.2007 23:37

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

Ako upraviť prezentáciu v .pdf formáte?

v Grafické programy

1

356

16.06.2010 0:17

pesso



© 2005 - 2017 PCforum, edited by JanoF