« : Haziran 20, 2008, 03:58:50 pm » |
Online
Mesaj Sayısı: 9110
Konu Sayısı: 2799
Cinsiyet:
Nerden: Nereye...
Üye ID: 1
|
Mod Adı : GoogleTagged Mod Sahibi : karlbenson Linki : Linklerin Görülmesine İzin Verilmiyor Linki Görebilmek İçin Üye Ol veya Giriş YapDemo : Linklerin Görülmesine İzin Verilmiyor Linki Görebilmek İçin Üye Ol veya Giriş YapNe işe yarar bu mod?Bu mod, google aramalarında sitenize hangi kelime (keyword) ile ziyaretçi geliyorsa, bu kelimeleri, yani anahtar kelimeleri konunun en altında listeler. Ayrıca ?action=tagged uzantısında ayrı bir sayfada bu keywordleri toplar. Google aramalarında üst sıralarda çıkmak ve sitenize en çok hangi konunun ziyaretçi çektiğini bilmek istiyorsanız bu mod tam size göre! Caps : MANUEL KURULUM:languages/Modifications.turkish.php dosyasının en altındaki şu kısmı bulun: | CODE |  | | ?> |
üstüne bunu ekleyin: | CODE |  | $txt['googletagged'] = 'GoogleTagged'; $txt['googletagged_admin'] = 'GoogleTagged'; $txt['googletagged_menu'] = 'GoogleTagged'; $txt['googletagged_manage'] = 'Manage GoogleTagged'; |
temanız/style.css açın ve en sona şunu ekleyin: | CODE |  | a.googletag { color: #003399; } a.googletagged { color: #336699; } |
temanız/Display.template.php açın ve şunu bulun: | CODE |  | if ($context['show_spellchecking']) echo ' <script language="JavaScript" type="text/javascript" src="' . $settings['default_theme_url'] . '/spellcheck.js"></script>'; |
üstüne şunu ekleyin: | CODE |  | // START OF GOOGLE TAGGED MOD if(isset($context['tags'])) { // START OUR DIV CONTAINER echo '<div id="googletagged" style="text-align:center;"> '.$txt['googletagged'].':'; $i = 1 ; // WRITE OUT OUR TAGS foreach($context['tags'] as $key => $row) { echo ' <a href="', $scripturl , '?action=tagged;id=', $key ,';tag=', $row['tag'] ,'" style="font-size: '.$row['size'].'%;" class="', ($row['tagged']) ? 'googletagged' : 'googletag' ,'" title="', $row['text'] ,'">', $row['text'] ,'</a>'; // INCREASE COUNTER UNTIL WE MAY NEED TO BREAK // IF DIVISABLE BY 10 - NEW LINE echo (($i % 10) == 0) ? '<br/>' : ''; $i++; } // TIDY UP unset($i,$key,$row); // CLOSE OUT OUR DIV echo '</div><br/>'; } // END OF GOOGLE TAGGED MOD |
temanız/index.template.php açın ve şunu bulun: | CODE |  | // the [member] list button if ($context['allow_memberlist']) echo ($current_action == 'mlist' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '"> </td>' : '' , ' <td valign="top" class="maintab_' , $current_action == 'mlist' ? 'active_back' : 'back' , '"> <a href="', $scripturl, '?action=mlist">' , $txt[331] , '</a> </td>' , $current_action == 'mlist' ? '<td class="maintab_active_' . $last . '"> </td>' : ''; |
altına bunu ekleyin: | CODE |  | // The [GoogleTagged] Button echo ($current_action == 'tagged' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '"> </td>' : '' , ' <td valign="top" class="maintab_' , $current_action == 'tagged' ? 'active_back' : 'back' , '"> <a href="', $scripturl, '?action=tagged">' , $txt['googletagged'] , '</a> </td>' , $current_action == 'tagged' ? '<td class="maintab_active_' . $last . '"> </td>' : ''; |
Not: Bu aşama default temanın menüsüne GoogleTagged butonunu eklemek içindi. Eğer siz başka bir tema kullanıyorsanız kendinize göre ayarlamanız gerekiyor; yapmanız gereken sadece index.php?action=tagged bağlantısını menüye eklemek.. yine index.template.php dosyasında bulun: | CODE |  | $current_action = 'admin'; if (in_array($context['current_action'], array( |
hemen parantezden sonrasına şunu ekleyin: | CODE |  | | 'tagged', |
forum dizini/index.php dosyasında şunu bulun: | CODE |  | | 'help' => array('Help.php', 'ShowHelp'), |
altına şunu ekleyin: | CODE |  | | 'tagged' => array('GoogleTagged.php', 'GoogleTagged'), |
Sources/ManagePermissions.php dosyasında şunu bulun: | CODE |  | 'pm' => array( 'pm_read' => false, 'pm_send' => false, ), |
altına bunu ekleyin: | CODE |  | 'googletagged' => array( 'googletagged_manage' => false, ), |
Sources/Subs.php dosyasında şunu bulun: | CODE |  | | 'edit_settings' => '<a href="' . $scripturl . '?action=serversettings;sesc=' . $sc . '">' . $txt[222] . '</a>', |
altına bunu ekleyin: | CODE |  | | 'googletagged_settings' => '<a href="' . $scripturl . '?action=tagged;sa=admin;sesc=' . $sc . '">' . $txt['googletagged_menu'] . '</a>', |
Sources/Display.php açın ve şunu bulun: | CODE |  | // Add 1 to the number of views of this topic. if (empty($_SESSION['last_read_topic']) || $_SESSION['last_read_topic'] != $topic) |
üstüne şunu ekleyin: | CODE |  | // START OF GOOGLE TAGGED MOD if($modSettings['googletagged'] == 1) { googletagged(); } // END OF GOOGLE TAGGED MOD |
aynı dosyada şunu bulun: | CODE |  | // The central part of the board - topic display. function Display() |
üstüne bunu ekleyin: | CODE |  | // START OF GOOGLE TAGGED MOD function googletagged(){ global $db_prefix, $context, $modSettings, $topic; $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; // IF WANTING TO TEST WITH VARIOUS SERIOUS URLS, UNCOMMENT THE NEXT LINE // $referer = "http://www.google.com/search?hl=en&q=harry+potter&meta="; if(!empty($referer)) { // DETECT CERTAIN SEARCH ENGINES if(preg_match('/www\.google.*/i',$referer) || preg_match('/search\.msn.*/i',$referer) || preg_match('/search\.yahoo.*/i',$referer) || preg_match('/search\.lycos\.com/i', $referer) || preg_match('/www\.alltheweb\.com/i', $referer) || preg_match('/search\.aol\.com/i', $referer) || preg_match('/www\.ask\.*/i', $referer)) { // DETECTED A SEARCH ENGINE REFERRED - NOW GET THE SEARCH TERM DELIMITER //Figure out which search and get the part of its URL which contains the search terms. if(preg_match('/(www\.google.*)|(search\.msn.*)|(www\.alltheweb\.com)|(ask\.*)/i',$referer)) $delimiter = "q"; elseif(preg_match('/(search\.lycos\.com)|(search\.aol\.com)/i', $referer)) $delimiter = "query"; elseif(preg_match('/search\.yahoo.*/i',$referer)) $delimiter = "p"; // NOW USE THE DELIMITER $pattern = "/^.*" . $delimiter . "=([^&]+)&?.*\$/i"; $query = preg_replace($pattern, '$1', $referer); // TIDY UP unset($pattern,$delimiter); // REMOVE OUR QUOTES $query = preg_replace('/\'|"/','',$query); // COMMON IGNORE/BAD WORDS/UNWANTED BITS $ignorewords = array( 'a', 'am', 'an', 'and', 'are', 'be', 'been', 'because', 'by', 'for', 'from', 'he', 'her', 'his', 'i', 'in', 'is', 'isnt', 'its', 'it', 'of', 'on', 'or', 'over', 'off', 'that', 'the', 'there', 'their', 'this', 'was', 'with', 'fuck', 'dick', 'wanker', 'bastard', 'fucking', 'whore', 'cunt', 'bitch', 'fucker', 'http://www', 'www', 'www.', 'http://', 'com', 'co.uk', 'v1agra', 'viagra', '<script', 'javascript' ); $search_terms = preg_split ("/[\s,\+\.]+/",$query); // RE-CASE EACH SEARCH TERM AND REMOVE IGNORE WORDS foreach($search_terms as $key => $term) { // LOWERCASE $term = strtolower($term); $term = eregi('^[-0-9a-z]{3,24}$', $term) ? $term : '' ; // SET SOME MIN/MAX LENGTHS if(strlen($term) < 3 || strlen($term) > 20) { unset($search_terms[$key]); } // IF IGNORE/BAD WORD, THEN REMOVE IT if(in_array($term, $ignorewords)) { unset($search_terms[$key]); } // REPLACES ANY SPACES WITH PLUS $search_terms[$key] = str_replace(" ", "+", $term); } // TIDY UP unset($key,$term); // IMPLODE OUR ARRAY BACK TO A STRING $search_terms = implode("+", $search_terms); $tags = htmlspecialchars(urldecode($search_terms)); } } // NOW CHECK / STORE / UPDATE THE TAGS if(!empty($tags) && !empty($topic)) { // IF ANY REMAINING SPACES GOT PAST US, DOUBLE CHECK $tags = str_replace(" ", "+", $tags); // IF MULTIPLE TAGS DO WE STORE THE TAGS THESE TOGETHER OR SEPARATELY? if($modSettings['googletagged_together'] == 1) { // THEN TAGS WILL BE ADDED TOGETHER $tags = array($tags); } else { // DO EACH TAG INDIVIDUALLY $tags = strpos($tags, '+') ? explode('+', $tags) : array($tags); } // FOREACH TAG CHECK AND INSERT/UPDATE AS NECESSARY // WHETHER(TOGETHER OR INDIVIDUALLY DEPENDS ON THE ABOVE SETTING) foreach($tags as $tag) { // CHECK TAG IS NOT BANNED $query = db_query(" SELECT ID_TAG FROM {$db_prefix}googletagged WHERE tag = '$tag' AND status = '0' AND ID_TOPIC = '0' LIMIT 1 ", __FILE__, __LINE__); // IF NOT BANNED if(mysql_num_rows($query) == 0) { mysql_free_result($query); // CHECK WHETHER TAGGED BEFORE - IF SO INCREASE HITS $query = db_query(" SELECT ID_TAG FROM {$db_prefix}googletagged WHERE ID_TOPIC = $topic AND tag = '$tag' LIMIT 1 ", __FILE__, __LINE__); // EXISTS SO JUST UPDATE HITS if(mysql_num_rows($query) == 1) { list($idtag) = mysql_fetch_array($query); // UPDATE HITS + 1 db_query(" UPDATE {$db_prefix}googletagged SET hits = hits + 1 WHERE ID_TAG = '$idtag' LIMIT 1 ", __FILE__, __LINE__); // TIDY UP unset($idtag); mysql_free_result($query); } else { // INSERT THE TAG db_query(" INSERT INTO {$db_prefix}googletagged (ID_TOPIC, tag, hits, status) VALUES ($topic, '$tag', '1', '1') ", __FILE__, __LINE__); } } } // TIDY UP unset($tag); } // NOW PREPARE THE TAGS FOR THIS TOPIC if(!empty($topic)) { $query = db_query(" SELECT ID_TAG, status, hits, tag FROM {$db_prefix}googletagged WHERE ID_TOPIC = $topic AND status != 0 ORDER BY RAND() LIMIT 20 ", __FILE__, __LINE__); if(mysql_num_rows($query) != 0) { $context['tags'] = array(); $highest = 1 ; $lowest = 999999999999 ; // SO IT FORCES THE FIRST ROW TO BE THE LOWEST while($row = mysql_fetch_assoc($query)) { // STORE THE INFO FOR LATER ON $context['tags'][$row['ID_TAG']] = $row; $highest = ($row['hits'] > $highest) ? $row['hits'] : $highest ; $lowest = ($row['hits'] < $lowest) ? $row['hits'] : $lowest ; } // TIDY UP unset($row); // WORK OUT THE SIZES FOR US // FIRST THE MAX AND MIN SIZES THAT WE CAN USE IN % $maxsize = 200; $minsize = 100; // WHATS THE DIFFERENCE - IF 0, DIVIDING MY ZERO WILL CAUSE AN ERROR $diff = ($highest - $lowest == 0) ? 1 : ($highest - $lowest) ; // EVENLY STEP THE TAGS $steps = ($maxsize - $minsize)/$diff; // CYCLE THROUGH OUR TAGS foreach ($context['tags'] as $key => $row) { // ADD THE COLUMN FOR SIZE $context['tags'][$key]['size'] = ceil($minsize + ($steps * ($row['hits'] - $lowest))); // DID THIS VISITOR JUST COME FROM GOOGLE AND THIS TAG WAS GOOGLE TAGGED // DON'T WANT + SIGNS TO JOIN THE WORDS, SO REPLACE WITH SPACE $context['tags'][$key]['text'] = str_replace("+", " ", $row['tag']); $context['tags'][$key]['tagged'] = (!empty($tags) && in_array($row['tag'],$tags)) ? true : false ; } // TIDY UP unset($key,$row,$steps,$highest,$lowest,$maxsize,$minsize); mysql_free_result($query); } } } // END OF GOOGLE TAGGED MOD |
Son olarakta ekteki GoogleTagged.zip indirin ve içindeki dosyaları: GoogleTagged.php Sources klasörüne, GoogleTagged.template.php tema klasörüne, GoogleTagged.turkish.php temanızın languages klasörüne atın (ekte ayrı verdim). install.php isimli dosyayı da anadizine atın ve bir kez çalıştırın. Önemli Not:Eğer install.php dosyası çalışmaz, fatal error hatası verirse PhpMyAdmin'den SQL sorgusu sayfasından şu sorguyu çalıştırın: | CODE |  | CREATE TABLE `smf_googletagged` ( `ID_TAG` mediumint(9) NOT NULL auto_increment, `tag` text NOT NULL, `ID_TOPIC` mediumint(8) NOT NULL, `hits` mediumint(8) NOT NULL default '1', `status` tinyint(1) NOT NULL default '1', PRIMARY KEY (`ID_TAG`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; |
İşlem bu kadar arkadaşlar.. Manuel anlatım bana aittir, teşekkürleri eksik etmeyin. 
|
|
|
|
« Son Düzenleme: Haziran 20, 2008, 04:03:01 pm Gönderen: ★ѕραη∂αυєя★ »
|
Logged
|
Linklerin Görülmesine İzin Verilmiyor Linki Görebilmek İçin Üye Ol veya Giriş Yap>>GÖZLERİNİZE İNANAMAYACAKSINIZ!!<< Linklerin Görülmesine İzin Verilmiyor Linki Görebilmek İçin Üye Ol veya Giriş Yap>>TÜM PAYLAŞIMLARIM İÇİN TIKLA!!..<< Linklerin Görülmesine İzin Verilmiyor Linki Görebilmek İçin Üye Ol veya Giriş Yap>>ŞOK OLACAKSINIZ, TIKLAYIN!!<< KONULARDA KIRIK LİNKE RASTLARSANIZ LÜTFEN KONU SAHİBİNE VEYA YÖNETİCİLERE BİLDİRİNİZ!
|
|
|