Időzóna: (GMT +1 óra) RSS - hozzászólások

Autolink MOD

Szerző
Üzenet
pstvfan
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.07.30. Vasárnap 1:00
Hozzászólások: 1542
Hozzászólás Elküldve: 2010.03.14. 21:30    Hozzászólás témája: Autolink MOD
Hozzászólás az előzmény idézésével
MOD neve: Autolink MOD
Készítette: CHItA (vagy itt pstvfan)
MOD leírása: Meghatározott szavakat linkké konvertál a hozzászólásokban
MOD Verzió: 1.0.1
Kompatibilitás: 3.0.x
Letöltés: innen
Képernyő mentés: Kezdőlap; Szó hozzáadésa
_________________
<M>

Felhasználó profiljának megtekintése Privát üzenet küldése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2258
Hozzászólás Elküldve: 2010.03.14. 22:13    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Hoppá megszületett végre :lol:

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
pstvfan
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.07.30. Vasárnap 1:00
Hozzászólások: 1542
Hozzászólás Elküldve: 2010.03.14. 22:20    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Már ideje volt. Persze még lehet lesz egy-két kisebb javítás.
_________________
<M>

Felhasználó profiljának megtekintése Privát üzenet küldése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2258
Hozzászólás Elküldve: 2010.03.14. 23:22    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Hibák

1., A telepítőn futtattam a felkínált frissítés lehetőségét és újra akarta telepíteni amit már az első kiadás megcsinált.

2., üres űrlap elküldése ezt adja

Kód:

[phpBB Debug] PHP Notice: in file /includes/acp/acp_autolink.php  on line 220: Undefined variable: user
[phpBB Debug] PHP Notice: in file /includes/acp/acp_autolink.php on line 220: Trying to get property of non-object
[phpBB Debug] PHP Notice: in file /includes/acp/acp_autolink.php on line 226: Undefined variable: user
[phpBB Debug] PHP Notice: in file /includes/acp/acp_autolink.php on line 226: Trying to get property of non-object


3., ékezetes szó ugyan úgy nem alakul át

4., egy szót még mindig megadhatók kétszer
5., a class=autolink re még mindig nincs ccs

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
pstvfan
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.07.30. Vasárnap 1:00
Hozzászólások: 1542
Hozzászólás Elküldve: 2010.03.14. 23:52    Hozzászólás témája:
Hozzászólás az előzmény idézésével
A 4-est nem értem. Én kipróbáltam a "hozzászólás" szóval, és tökéletesen ment... Amúgy az előző meg egy "fejlesztői kiadás" volt, szóval a telepítővel azért vannak most gondok. Előbb töröld, aztán telepítsd, és így már működnie kell...

Javítottam, mindet, kivéve az installt és a CSS-t, és nálam a 3-as pontban írtak nem észlelhetőek, talán az lehet a baj, hogy a fájl szerkesztéseket nem frissítetted, mivel bekerült erre a javítás... Viszont a vendég felhasználóknál most nem működik. Még csak tesztelési célzattal telepítsétek!
_________________
<M>

Felhasználó profiljának megtekintése Privát üzenet küldése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2258
Hozzászólás Elküldve: 2010.03.15. 00:50    Hozzászólás témája:
Hozzászólás az előzmény idézésével

pstvfan írta:

Még csak tesztelési célzattal telepítsétek!
úgy van elhiheted :lol:

A gyorsítótárat töröltem így se megy az ékezetes azt írtam be, hogy árva, de semmi reakció rá :?

hsz be meg árva fiú semmi

4., pont szavakat adhatsz meg az adminba, hogy mire reagáljon a hszbe ugyebár na egy szót többször is elfogad minek ?


szerk: a hozzászólás szó tényleg működik , de az árva nem :?

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
pstvfan
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.07.30. Vasárnap 1:00
Hozzászólások: 1542
Hozzászólás Elküldve: 2010.03.15. 08:59    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Úgy tűnik tegnap késő volt, ugyanis ezt is javítottam. :) Nem értem mért írtam ezt...
_________________
<M>

Felhasználó profiljának megtekintése Privát üzenet küldése
syska
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.11.20. Kedd 14:52
Hozzászólások: 1484
Hozzászólás Elküldve: 2010.03.15. 14:03    Hozzászólás témája:
Hozzászólás az előzmény idézésével
A Rate-nél meg lehet adni, hogy milyen arányba tegyen rá több link közül? Ez jó ötlet.
Annyival még kiegészíteném, hogy lehessen a szó után valami kis jelet tenni.
Így értem:
Van a szó, ami pl. kerámia és van 2 link hozzáadva, 3:1-es arányban. van olyan link ami a fórumon belül egy másik témára mutat. A másik link pedig egy külön weboldalra.
Amelyik hsz-ben a weboldal van, ahhoz egy + kisképet tenni css-el.

Szóval minden szóhoz lenne egy külön css azonosító.
_________________
Vízipipa Fórum - Az ország első és legnagyobb vízipipás fóruma! Folyamatosan moderált és mindig találhatsz érdekes témát! :)
Vízipipa - Az ország első és legnagyobb vízipipás közössége. Legtöbb infó a vízipipáról, legnagyobb fórummal és a legtöbb cikkel!
Vízipipa Blog - Egy blog, melynek fő témaköre a vízipipázás! Minden információ: tippek, hírek a hazai és külföldi fronton, dohány tesztek és miegymás!

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2258
Hozzászólás Elküldve: 2010.03.15. 15:00    Hozzászólás témája:
Hozzászólás az előzmény idézésével

pstvfan írta:

Úgy tűnik tegnap késő volt, ugyanis ezt is javítottam. :) Nem értem mért írtam ezt...
Minden jó kivéve a szavak kezelése (Ékezetes szavak).

Ha ez javítva lesz akkor, ha akarod felsorolom a szépséghibákat is.(Legalább is amit én látok.)

Amit Syska ír az se hülyeség

Két darab kis ikon jó lenne egyik az oldalon belülit jelezné a másik, hogy más oldalra visz a link.

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
pstvfan
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.07.30. Vasárnap 1:00
Hozzászólások: 1542
Hozzászólás Elküldve: 2010.03.15. 15:21    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Felőlem lehet róla szó, de hogy mért nem működi ékezetes betűvel kezdődő szavakkal, azt nem tudom. Már kipróbáltam egy pár verziót, de semmi...
_________________
<M>

Felhasználó profiljának megtekintése Privát üzenet küldése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2258
Hozzászólás Elküldve: 2010.03.15. 15:23    Hozzászólás témája:
Hozzászólás az előzmény idézésével

pstvfan írta:

Felőlem lehet róla szó, de hogy mért nem működi ékezetes betűvel kezdődő szavakkal, azt nem tudom. Már kipróbáltam egy pár verziót, de semmi...
igen úgy látszik csak ami azzal kezdődik csak az nem megy a viewtopik kódod még nem néztem majd meglesem én is azt kiderül vagy nem :lol:

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2258
Hozzászólás Elküldve: 2010.03.17. 03:03    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Amit a viewtopic.php ba készítettél azt átnéztem.

Az ékezetes gondot javítottam igaz nem 100-as, de így viszi, az a gond ha oda tesszük a \b akkor nem megy az ékezetes kezdés.
Az arány számítást átírtam most a valós arány alapján készít randomot, lehet a tied is csak én nem úgy vettem ki belőle, ráadásul hibás is volt mert volt, hogy a megadott url-ből nem csak egyet tett rá a szóra hanem két linket is. pl: (http://phpbb.hu|http://phpbb.com) ezt teszi rá időnként :?

Akkor szerintem a nyelv választásnak nincs értelme mert, ha angol szót ír akkor olyat magyar szövegbe nem igen talál, a másik, hogy emiatt nem is lehet gyorsító tárazni.
Ha szerinted van értelme akkor cáfolj meg :lol:

Akkor nagyon jó, hogy tettél duplikáció ellenőrzést az új szó elküldésére csak ép az a baj, hogy azt is rosszul ugyan is hatással van a szerkesztésre is ezáltal nem tudom szerkeszteni a szót mert elküldésnél kiírja, hogy a szó már létezik.

Akkor, ha pl az arányt rosszul adom meg arra is kiírja, hogy hibás ami nem rossz csak ép a kitöltött űrlap újra üres lesz kissé idegesítő újra kitölteni.

Az acp fájlról nem írok semmit ránéztem, annyit max, hogy fura :lol:

most egyenlőre ennyi, lenne még sok, csak ideje feküdni :shock:

Módosítások: viewtopic.php szerkesztéseid

1., részed

Kód:

// Autolink MOD [start]
$autolinks = array();
// Get the words which we want to replace with a link
$autolink_sql      = 'SELECT * FROM ' . AUTOLINK_MOD_WORDS_TABLE . ' a
                  LEFT JOIN ' . LANG_TABLE . ' l ON a.autolink_word_lang = l.lang_id
                  WHERE l.lang_iso = "' . $db->sql_escape($user->data['user_lang']) . '"
                  OR a.autolink_word_lang = 0';
$autolink_result   = $db->sql_query($autolink_sql);

$i = 0;
while ($autolink_row = $db->sql_fetchrow($autolink_result))
{
   $autolinks[$i]['word']         = $autolink_row['autolink_word'];
   $autolinks[$i]['url']         = $autolink_row['autolink_url'];
   $autolinks[$i]['rate']         = $autolink_row['autolink_rate'];
   $autolinks[$i]['times_used']   = 0;
   $i++;
}

$db->sql_freeresult($autolink_result);
// Autolink MOD [end]


lecseréltem erre

Kód:

// Autolink MOD [start]
// Get the words which we want to replace with a link
$autolink_sql    = 'SELECT a.*
                    FROM      ' . AUTOLINK_MOD_WORDS_TABLE . ' a
                    LEFT JOIN ' . LANG_TABLE . ' l
                    ON a.autolink_word_lang = l.lang_id
                    WHERE l.lang_iso = "'. $user->data['user_lang'].'"
                    OR a.autolink_word_lang = 0';
$autolink_result = $db->sql_query($autolink_sql);
$autolinks       = $db->sql_fetchrowset($autolink_result);
                   $db->sql_freeresult($autolink_result);
// Autolink MOD [end]


2., részed

Kód:

   // Autolink MOD [start]
   foreach ($autolinks as $key => $value)
   {      
      $autolink_word   = $value['word'];
      $autolink_url   = $value['url'];
      
      if (preg_match_all("#\b" . $autolink_word . "\b#uis", $message, $autolink_matches))
      {         
         if (strpos($autolink_url, '|') !== false)
         {
            $autolink_url_parts = explode('|', $autolink_url);
            $autolink_rates = explode(':', $value['rate']);
            
            // Check the two array
            if (sizeof($autolink_url_parts) != sizeof($autolink_rates))
            {
               trigger_error("AUTOLINK_DIFFERENT_SIZE_ARRAY");
            }
            
            $maximum = array_sum($autolink_rates);            
            $num = rand(1, $maximum);
            
            $total = sizeof($autolink_rates);
            for ($autolink_i = 0; $autolink_i < $total; $autolink_i++)
            {
               if ($num <= $autolink_rates[$autolink_i])
               {
                  $autolink_url = $autolink_url_parts[$autolink_i];
                  break;
               }
               else
               {
                  continue;
               }
            }
         }
         
         $num_of_replace = (sizeof($autolink_matches) < $config['autolink_replace_times_in_a_post']) ? sizeof($autolink_matches) : $config['autolink_replace_times_in_a_post'];
         $num_of_replace = (($num_of_replace + $value['times_used']) < $config['autolink_max_num_of_a_word']) ? $num_of_replace : $config['autolink_max_num_of_a_word'] - $value['times_used'];
         //Now replace the word to a link
         $message = preg_replace("#\b(" . $autolink_word . ")\b#uis", "<a href=\"" . $autolink_url . "\" class=\"autolink\">$1</a>", $message, $num_of_replace, $amount);
         $autolinks[$key]['times_used'] += $amount;
         
         // Delete the words that we used enough...
         if ($autolinks[$key]['times_used'] >= $config['autolink_max_num_of_a_word'])
         {
            unset($autolinks[$key]);
            
            if (sizeof($autolinks) == 0)
            {
               $autolinks = array();
               break;
            }
         }
      }
      else
      {
         continue;
      }
   }
   
   $message = preg_replace("#(<a.*?>)<a href=\".*?\" class=\"autolink\">(.*?)</a></a>#", "$1$2</a>", $message);
   // Autolink MOD [end]


lecseréltem erre

Kód:

// Autolink MOD [start]
if (sizeof($autolinks))
 {
   foreach ($autolinks as $key => $value)
   {
      $autolink_word    = $value['autolink_word'];
      $autolink_url     = $value['autolink_url'];
      
    if (!isset($times_used[$key]))
      {
        $times_used[$key] = 0;
      }

      if (preg_match_all("#(?:[^\w]|^)(" . $autolink_word . ")(?:[^\w]|$)#uis", $message, $autolink_matches))
      {
         if (strpos($autolink_url, '|') !== false)
         {

            $autolink_url_parts = explode('|', $autolink_url);
            $autolink_rates     = explode(':', $value['autolink_rate']);

        foreach ($autolink_rates as $rst => $rate)
         {
            foreach ($autolink_url_parts as $ust => $url)
             {
               if ($rst == $ust)
                {
                  for ($xx = 0; $xx < $rate; $xx++)
                   {
                     $urls[] = $url;
                   }
                }
             }
         }
         $autolink_url = $urls[mt_rand(0, sizeof($urls) - 1)];
         }
         
         $num_of_replace = (sizeof($autolink_matches) < $config['autolink_replace_times_in_a_post']) ? sizeof($autolink_matches) : $config['autolink_replace_times_in_a_post'];
         $num_of_replace = (($num_of_replace + $times_used[$key]) < $config['autolink_max_num_of_a_word']) ? $num_of_replace : $config['autolink_max_num_of_a_word'] - $times_used[$key];
         //Now replace the word to a link

         $message = preg_replace("/(" . $autolink_word . ")/uis", "<a href=\"" . $autolink_url . "\" class=\"autolink\">$1</a>", $message, $num_of_replace, $amount);

         $times_used[$key] += $amount;
         
         // Delete the words that we used enough...
         if ($times_used[$key] >= $config['autolink_max_num_of_a_word'])
         {
            unset($autolinks[$key]);
            
            if (sizeof($autolinks) == 0)
            {
               $autolinks = array();
               break;
            }
         }
      }
   }
 }
// Autolink MOD [end]


Ha valamivel nem értesz egyet akkor kíváncsian várom véleményed. :wink:

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
syska
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.11.20. Kedd 14:52
Hozzászólások: 1484
Hozzászólás Elküldve: 2010.03.17. 09:19    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Picit kezd nekem kusza lenni.
Off: Mintha két szecsuáni konyhai munkás vitatkozni a saját nyelvükön, hogy a csirkét meddig főzzék. :D
_________________
Vízipipa Fórum - Az ország első és legnagyobb vízipipás fóruma! Folyamatosan moderált és mindig találhatsz érdekes témát! :)
Vízipipa - Az ország első és legnagyobb vízipipás közössége. Legtöbb infó a vízipipáról, legnagyobb fórummal és a legtöbb cikkel!
Vízipipa Blog - Egy blog, melynek fő témaköre a vízipipázás! Minden információ: tippek, hírek a hazai és külföldi fronton, dohány tesztek és miegymás!

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2258
Hozzászólás Elküldve: 2010.03.17. 14:40    Hozzászólás témája:
Hozzászólás az előzmény idézésével

syska írta:

Picit kezd nekem kusza lenni.
Ez nem neked szól, te csak használd a letöltő linket amit pstvfan adott.

syska írta:

Off: Mintha két szecsuáni konyhai munkás vitatkozni a saját nyelvükön, hogy a csirkét meddig főzzék. :D
Dehogy mi soha max tanácsokat és ötleteket cserélünk. 8)

Amúgy meg úgy is olyan lesz amilyenre meg írja pstvfan, nem biztos, hogy elfogadja a módosításaimat a döntés úgy is az ő kezében van. :wink:

Fő a végeredmény legyen akkor már minél jobb ez a mod is, amúgy, ha pstvfan nem tetszik akkor majd jelzi, hogy ne szóljak bele.

ui:én is sokszor örülnék a segítségért nekem is van még bőven mit tanulni, hisz a php rengeteg mindent foglal magában és a megtanulása nem lehetséges 1-2 év alatt se.

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
pstvfan
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.07.30. Vasárnap 1:00
Hozzászólások: 1542
Hozzászólás Elküldve: 2010.03.17. 15:49    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Nekem tetszik, amit csináltál, meg mostanában nekem is van egy-két másik projektem is, szóval hálás vagyok a segítségért! Akkor a változtatásokat szerintem bele is teszem a csomagba...

Egy-két reakció:

KillBill írta:

Az arány számítást átírtam most a valós arány alapján készít randomot, lehet a tied is csak én nem úgy vettem ki belőle, ráadásul hibás is volt mert volt, hogy a megadott url-ből nem csak egyet tett rá a szóra hanem két linket is. pl: (http://phpbb.hu|http://phpbb.com) ezt teszi rá időnként :?
Ez már javítva lett, töltsd le a jelenlegi csomagot, mert ott már lesz egy temp változó, ami eredetileg nem volt, mivel a dolgát elvégezte a másik for ciklus, csak azt kivettem, szóval az első csomag még rossz volt...
Az enyém is valós arányokkal számolt, ha gondolod most kifejtem a kód működését (ez a jelenlegi kód):

Kód:

            // Itt összeadja a maximum tömb elemeit,
            //ez ügye akkor a 100%, tehát valós rate-tel számolunk
            $maximum = array_sum($autolink_rates); 
            $num = rand(1, $maximum); // random szám 1, és ugye az arányszámok összege között
            $temp = 0; // Ebben tároljuk az eddigi rate számok összegét, lásd alább
           
            $total = sizeof($autolink_rates);
            for ($autolink_i = 0; $autolink_i < $total; $autolink_i++)
            {
               // megnézzük, hogy a random szám (num) nagyobb vagy egyenlő-e
               //  az arányszám és az eddigi arányszámok összegével
               if ($num <= ($autolink_rates[$autolink_i] + $temp))
               { // ha igen, akkor kész vagyunk
                  $autolink_url = $autolink_url_parts[$autolink_i];
                  break;
               }
               
               $temp += $autolink_rates[$autolink_i]; // ha nem, növeljük temp értékét, a jelenleg arányszámmal
            }
         }
Amúgy szerintem ebben az esetben a saját kódomnál maradnék, mert jóval kevesebb ciklust használ, mint a tied. A többit viszont javítom, és akkor azt hiszem az már az 1.0.2-RC1 lesz... :)
_________________
<M>

Felhasználó profiljának megtekintése Privát üzenet küldése
Hozzászólások megtekintése:  

Időzóna: (GMT +1 óra) RSS - hozzászólások
Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.

Hirdetés
Hirdetés