Autolink MOD
Szerző
Üzenet
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>
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>
Már ideje volt. Persze még lehet lesz egy-két kisebb javítás.
_________________
<M>
_________________
<M>
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
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
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
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>
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>
pstvfan írta:
Még csak tesztelési célzattal telepítsétek!
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
Úgy tűnik tegnap késő volt, ugyanis ezt is javítottam. Nem értem mért írtam ezt...
_________________
<M>
_________________
<M>
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!
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!
pstvfan írta:
Úgy tűnik tegnap késő volt, ugyanis ezt is javítottam. Nem értem mért írtam ezt...
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.
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>
_________________
<M>
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...
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
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
most egyenlőre ennyi, lenne még sok, csak ideje feküdni
Módosítások: viewtopic.php szerkesztéseid
1., részed
lecseréltem erre
2., részed
lecseréltem erre
Ha valamivel nem értesz egyet akkor kíváncsian várom véleményed.
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
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
most egyenlőre ennyi, lenne még sok, csak ideje feküdni
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.
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.
_________________
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!
Off: Mintha két szecsuáni konyhai munkás vitatkozni a saját nyelvükön, hogy a csirkét meddig főzzék.
_________________
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!
syska írta:
Picit kezd nekem kusza lenni.
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.
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.
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.
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ó:
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):
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>
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
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
}
}
_________________
<M>
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.
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.