Перейти к содержанию

_Dark_

Ветеран
  • Постов

    3092
  • Зарегистрирован

  • Посещение

  • Победитель дней

    145

Активность репутации

  1. Лайк
    _Dark_ получил реакцию от lexakiker за a record, Конвертирование форума под IP.Board   
    Данная статья написана по просьбе нашего пользователя khoser и описывает процесс  конвертирования   форума   под   IP . Board .

    Если вы используете один из следующих движков
    4images 1.7 bbpress Community Server Coppermine 1.4 Discuz Dragonfly e107 eBlah Fluxbb 1.4 FudForum FuseTalk FusionBB 3.0 Ikonboard InstantForum Joomla! Kunena MegaBBS MyBB 1.4 MyBB 1.6 Ning Photopost 6.2 PhotoPlog 2.x phpBB 2.0 phpBB 3.0 phpFusion 6 phpMyForum 4.1 PunBB 1.3.4 simplepress SMF 1.1 and 2.0 UBB.Threads 7.5 vBulletin 3.8 vBulletin 4.0 WebWiz 8.x Woltlab BB 3.0 Wordpress WowBB 1.7 XenForo 1.1 XMB 1.9 Xoops YAF.NET 1.9 ZenPhoto 1.2 то вы можете легко переехать на  IP . Board , сохранив все свои данные. Для этой цели существуют специальные конвертеры от  IPS . Их использование и будет рассмотрено в статье ниже.
     
    Перевод информации с сайта  IPS  (перевод, автор - _Dark_, оригинал)
    Если вы уже имеете веб-сообщество вы знаете как важно выбрать правильную платформу для него. Наш продукт является проверенным решением для успешных сообществ. Вы можете сконвертировать ваше сообщество из многих других форумных скриптов c сохранением всех данных.
    Мы предоставляем бесплатный, легкий в использовании скрипт для скриптов перечисленных выше. Все инструкции включены в файл с конвертером. Всегда делайте полную резервную копию вашего сайта перед началом процесса  конвертирования .

    F.A.Q.

    Я использую vBulletin с vBSEO. Я потеряю мои ЧПУ-URL'ы?

    Нет! Если вы выполняете  конвертирование  с vBulleting, наш скрипт автоматически преобразует ваши ЧПУ-URL'ы в формат  IP . Board  3. Эти изменения не повлияют на поисковую оптимизацию вашего сайта.
    Я потеряю мои скины и модификации?

    К сожалению, да. Скины и модификации разработанные для других скриптов не работают с продуктами  IPS . Но похожие модификации и скины могут быть в нашем файловом центре, размещенные другими пользователями.

    Сколько времени занимает конвертация?

    Это зависит от размеров вашей базы данных и количества записей в ней, поэтому трудно дать точный ответ. Небольшие  форумы  и сайты могут конвертироваться в течение нескольких минут, тогда как конвертация больших сообществ может занять несколько часов.

    Будут ли пароли пользователей работать после конвертации?

    Да, пользователи смогут авторизоваться в обычном режиме когда конвертация будет завершена.
     
    Далее идет информация от меня.

    Для начала вам необходимо установить  IP . Board . Это может быть купленная вами лицензионная версия, либо наш релиз со снятой активацией.
    После установки, необходимо скачать конвертеры. Как написано выше, они бесплатны, вы можете скачать их либо отсюда, либо из нашего файлового архива. //Загружу позже, _Dark_
    В архиве с конвертером вы увидите папку upload. Все файлы из нее необходимо загрузить в корень вашего  форума   IP . Board .
    Зайдите в Админ-Центр вашего  форума   IP . Board  и проследуйте в Управление приложениями. Справа появится приложение  IPS  Converters, установите его.
    После установки в АЦ  IP . Board  перейдите в Другие приложения →  IPS  Converters.
    Важно! Сделайте полную резервную копию сайта с которого вы будете конвертировать данные.

    На главной странице конвертеров выберите то приложение, в которое вы будете конвертировать данные. Это может быть  IP . Board , если вы конвертируете  форумы ,  IP .Gallery, если вы конвертируетесь с 4images 1.7,  IP .Blog, если вы конвертируете Wordpress и другое.
    [attachment=354:Snap_2012.05.30_20h31m56s_001_.png]

    Список того, что можно сконвертировать и во что находится здесь.
    Для примера я буду просто конвертировать  форум  xenForo 1.1.2.

    Итак, вы выбрали приложение, теперь необходимо выбрать скрипт с которого вы конвертируете данные. У меня это xenForo. В поле ID введите любой текст, например,старый_форум.
    [attachment=353:Snap_2012.05.30_20h31m56s_001_.png]

    Обратите внимание, что после  конвертирования  могут возникнуть небольшие проблемы с работой  форума , мы поможем вам в случае возникновения проблем, но примите к сведению, что что-то может пойти не так и вам придется подождать пока мы поможем вам с решением вашей проблемы.
    Так же обратите внимание на то, что если в списке есть скрипт который вы используете, но он более новой версии чем у вас, вам необходимо вначале обновиться до той версии, которая есть в списке.

    Итак, выберите скрипт, введите ID и нажмите на Продолжить.
    После этого, вам необходимо ввести данные от базы данных, которая используется скриптом с которого вы собираетесь сконвертировать данные, в моем случае от базы данных используемой xenForo.
    В поле Database Driver необходимо выбрать драйвер базы данных, в подавляющем большинстве случаев это MySQL, поэтому ничего не меняйте.
    Database Host - сервер базы данных, у меня это localhost.
    Database Username - пользователь БД, у меня это dk_xenforo.
    Database Password - пароль пользователя, у меня 12345.
    Database Name - название базы данных, у меня это dk_xenforo.
    Database Table Prefix - префикс таблиц (если есть), у меня это
    xf_ .
    Database Charset - кодировка базы данных, ее можно узнать в phpMyAdmin, у меня - UTF8.
    [attachment=355:Snap_2012.05.30_20h42m51s_003_.png]
    Заполняйте поля и жмите на Продолжить.

    А теперь самое главное. Необходимо запускать конвертацию. Нажимайте на кнопку Convert около всех пунктов по порядку.
    В столбце Local Rows указано количество соответствующих записей в  IP . Board , а в Source Rows количество записей в конвертируемом скрипте.
    Если вы поставите галочку на Empty local data?, то данные из  IP . Board  будут удалены и заменены данным из конвертируемого скрипта. Т.е., если вы поставите галочку околоMembers, то все пользователи из  IP . Board  будут удалены и будут добавлены пользователи из конвертируемого скрипта. Если же вы не поставите галочку, пользователи будут просто добавлены.
    [attachment=356:Snap_2012.05.30_20h47m33s_006_.png]

    В процессе  конвертирования  могут возникнуть дополнительные вопросы, в таком случае введите, что от вас требуется и нажимайте на Продолжить.
    [attachment=357:Snap_2012.05.30_20h55m29s_008_.png]

    После того как вы выполните всю конвертацию, перейдите в АЦ -> Пересчет и обновление, и выполните последовательно:
    Пересчет статистики Синхронизация тем Синхронизация форумов Обновить изображения предпросмотра Обновить фотографии пользователей Обновить информацию о прикрепленных файлах После этого перейдите в АЦ → Управление кэшем → Перестроить весь кэш.

    Все, конвертация на этом завершена. Если у вас возникнут какие-либо вопросы - можете обращаться в соответствующий форум техподдержки.
     
    Автор статьи _Dark_
    Написано для IPBMafia.Ru
  2. Лайк
    _Dark_ получил реакцию от MaZaHaKa за a record, Добавление текста при копировании информации с сайта   
    Статья написано с подачи пользователя Poliik.

    В общем, задача:

    При копировании текста с сайта добавить в этот текст свою информацию.
    Другими словами, если кто-то скопирует с вашего сайта текст, скажем, Привет, то при вставке будет что-то вроде
    Привет

    Источник: ссылка

    Решение

    Нетривиальное. Простейший способ, который работает (что важно).

    Переходим в АЦ → Внешний вид → ваш стиль

    Открываем шаблон globalTemplate.
    Почти в самом начале ищем:
     
    //<![CDATA[ jsDebug = {parse expression="intval($this->settings['_jsDebug'])"}; /* Must come before JS includes */ USE_RTE = 1; DISABLE_AJAX = parseInt({$this->settings['disable_text_ajax']}); /* Disables ajax requests where text is sent to the DB; helpful for charset issues */ inACP = false; var isRTL = false; var rtlIe = ''; var rtlFull = ''; //]]> </script>
    Ниже вставляем:
     
    <script type="text/javascript"> //<![CDATA[ function addLink() { var eBody = document.getElementsByTagName('body')[0]; var selection = window.getSelection(); // Вы можете изменить текст в этой строчке var info = "Источник: <a href='"+document.location.href+"'>"+document.location.href+"</a>"; var copytext = selection + info; var newdiv = document.createElement('div'); newdiv.style.position = 'absolute'; newdiv.style.left = '-99999px'; eBody.appendChild(newdiv); newdiv.innerHTML = copytext; selection.selectAllChildren(newdiv); window.setTimeout( function() { eBody.removeChild(newdiv); }, 0); } document.oncopy = addLink; //]]> </script>
    Сохраняем.

    В строчке
    var info = "Источник: <a href='"+document.location.href+"'>"+document.location.href+"</a>"; можете написать любой свой текст.
    document.location.href заменится на страницу, с которой текст был скопирован.

    Первоначальный автор: ссылка

    Статья эксклюзивно для IPBMafia.Ru
  3. Лайк
    _Dark_ получил реакцию от benix за a record, Добавление текста при копировании информации с сайта   
    Статья написано с подачи пользователя Poliik.

    В общем, задача:

    При копировании текста с сайта добавить в этот текст свою информацию.
    Другими словами, если кто-то скопирует с вашего сайта текст, скажем, Привет, то при вставке будет что-то вроде
    Привет

    Источник: ссылка

    Решение

    Нетривиальное. Простейший способ, который работает (что важно).

    Переходим в АЦ → Внешний вид → ваш стиль

    Открываем шаблон globalTemplate.
    Почти в самом начале ищем:
     
    //<![CDATA[ jsDebug = {parse expression="intval($this->settings['_jsDebug'])"}; /* Must come before JS includes */ USE_RTE = 1; DISABLE_AJAX = parseInt({$this->settings['disable_text_ajax']}); /* Disables ajax requests where text is sent to the DB; helpful for charset issues */ inACP = false; var isRTL = false; var rtlIe = ''; var rtlFull = ''; //]]> </script>
    Ниже вставляем:
     
    <script type="text/javascript"> //<![CDATA[ function addLink() { var eBody = document.getElementsByTagName('body')[0]; var selection = window.getSelection(); // Вы можете изменить текст в этой строчке var info = "Источник: <a href='"+document.location.href+"'>"+document.location.href+"</a>"; var copytext = selection + info; var newdiv = document.createElement('div'); newdiv.style.position = 'absolute'; newdiv.style.left = '-99999px'; eBody.appendChild(newdiv); newdiv.innerHTML = copytext; selection.selectAllChildren(newdiv); window.setTimeout( function() { eBody.removeChild(newdiv); }, 0); } document.oncopy = addLink; //]]> </script>
    Сохраняем.

    В строчке
    var info = "Источник: <a href='"+document.location.href+"'>"+document.location.href+"</a>"; можете написать любой свой текст.
    document.location.href заменится на страницу, с которой текст был скопирован.

    Первоначальный автор: ссылка

    Статья эксклюзивно для IPBMafia.Ru
  4. Лайк
    _Dark_ получил реакцию от benix за a record, Конвертирование форума под IP.Board   
    Данная статья написана по просьбе нашего пользователя khoser и описывает процесс  конвертирования   форума   под   IP . Board .

    Если вы используете один из следующих движков
    4images 1.7 bbpress Community Server Coppermine 1.4 Discuz Dragonfly e107 eBlah Fluxbb 1.4 FudForum FuseTalk FusionBB 3.0 Ikonboard InstantForum Joomla! Kunena MegaBBS MyBB 1.4 MyBB 1.6 Ning Photopost 6.2 PhotoPlog 2.x phpBB 2.0 phpBB 3.0 phpFusion 6 phpMyForum 4.1 PunBB 1.3.4 simplepress SMF 1.1 and 2.0 UBB.Threads 7.5 vBulletin 3.8 vBulletin 4.0 WebWiz 8.x Woltlab BB 3.0 Wordpress WowBB 1.7 XenForo 1.1 XMB 1.9 Xoops YAF.NET 1.9 ZenPhoto 1.2 то вы можете легко переехать на  IP . Board , сохранив все свои данные. Для этой цели существуют специальные конвертеры от  IPS . Их использование и будет рассмотрено в статье ниже.
     
    Перевод информации с сайта  IPS  (перевод, автор - _Dark_, оригинал)
    Если вы уже имеете веб-сообщество вы знаете как важно выбрать правильную платформу для него. Наш продукт является проверенным решением для успешных сообществ. Вы можете сконвертировать ваше сообщество из многих других форумных скриптов c сохранением всех данных.
    Мы предоставляем бесплатный, легкий в использовании скрипт для скриптов перечисленных выше. Все инструкции включены в файл с конвертером. Всегда делайте полную резервную копию вашего сайта перед началом процесса  конвертирования .

    F.A.Q.

    Я использую vBulletin с vBSEO. Я потеряю мои ЧПУ-URL'ы?

    Нет! Если вы выполняете  конвертирование  с vBulleting, наш скрипт автоматически преобразует ваши ЧПУ-URL'ы в формат  IP . Board  3. Эти изменения не повлияют на поисковую оптимизацию вашего сайта.
    Я потеряю мои скины и модификации?

    К сожалению, да. Скины и модификации разработанные для других скриптов не работают с продуктами  IPS . Но похожие модификации и скины могут быть в нашем файловом центре, размещенные другими пользователями.

    Сколько времени занимает конвертация?

    Это зависит от размеров вашей базы данных и количества записей в ней, поэтому трудно дать точный ответ. Небольшие  форумы  и сайты могут конвертироваться в течение нескольких минут, тогда как конвертация больших сообществ может занять несколько часов.

    Будут ли пароли пользователей работать после конвертации?

    Да, пользователи смогут авторизоваться в обычном режиме когда конвертация будет завершена.
     
    Далее идет информация от меня.

    Для начала вам необходимо установить  IP . Board . Это может быть купленная вами лицензионная версия, либо наш релиз со снятой активацией.
    После установки, необходимо скачать конвертеры. Как написано выше, они бесплатны, вы можете скачать их либо отсюда, либо из нашего файлового архива. //Загружу позже, _Dark_
    В архиве с конвертером вы увидите папку upload. Все файлы из нее необходимо загрузить в корень вашего  форума   IP . Board .
    Зайдите в Админ-Центр вашего  форума   IP . Board  и проследуйте в Управление приложениями. Справа появится приложение  IPS  Converters, установите его.
    После установки в АЦ  IP . Board  перейдите в Другие приложения →  IPS  Converters.
    Важно! Сделайте полную резервную копию сайта с которого вы будете конвертировать данные.

    На главной странице конвертеров выберите то приложение, в которое вы будете конвертировать данные. Это может быть  IP . Board , если вы конвертируете  форумы ,  IP .Gallery, если вы конвертируетесь с 4images 1.7,  IP .Blog, если вы конвертируете Wordpress и другое.
    [attachment=354:Snap_2012.05.30_20h31m56s_001_.png]

    Список того, что можно сконвертировать и во что находится здесь.
    Для примера я буду просто конвертировать  форум  xenForo 1.1.2.

    Итак, вы выбрали приложение, теперь необходимо выбрать скрипт с которого вы конвертируете данные. У меня это xenForo. В поле ID введите любой текст, например,старый_форум.
    [attachment=353:Snap_2012.05.30_20h31m56s_001_.png]

    Обратите внимание, что после  конвертирования  могут возникнуть небольшие проблемы с работой  форума , мы поможем вам в случае возникновения проблем, но примите к сведению, что что-то может пойти не так и вам придется подождать пока мы поможем вам с решением вашей проблемы.
    Так же обратите внимание на то, что если в списке есть скрипт который вы используете, но он более новой версии чем у вас, вам необходимо вначале обновиться до той версии, которая есть в списке.

    Итак, выберите скрипт, введите ID и нажмите на Продолжить.
    После этого, вам необходимо ввести данные от базы данных, которая используется скриптом с которого вы собираетесь сконвертировать данные, в моем случае от базы данных используемой xenForo.
    В поле Database Driver необходимо выбрать драйвер базы данных, в подавляющем большинстве случаев это MySQL, поэтому ничего не меняйте.
    Database Host - сервер базы данных, у меня это localhost.
    Database Username - пользователь БД, у меня это dk_xenforo.
    Database Password - пароль пользователя, у меня 12345.
    Database Name - название базы данных, у меня это dk_xenforo.
    Database Table Prefix - префикс таблиц (если есть), у меня это
    xf_ .
    Database Charset - кодировка базы данных, ее можно узнать в phpMyAdmin, у меня - UTF8.
    [attachment=355:Snap_2012.05.30_20h42m51s_003_.png]
    Заполняйте поля и жмите на Продолжить.

    А теперь самое главное. Необходимо запускать конвертацию. Нажимайте на кнопку Convert около всех пунктов по порядку.
    В столбце Local Rows указано количество соответствующих записей в  IP . Board , а в Source Rows количество записей в конвертируемом скрипте.
    Если вы поставите галочку на Empty local data?, то данные из  IP . Board  будут удалены и заменены данным из конвертируемого скрипта. Т.е., если вы поставите галочку околоMembers, то все пользователи из  IP . Board  будут удалены и будут добавлены пользователи из конвертируемого скрипта. Если же вы не поставите галочку, пользователи будут просто добавлены.
    [attachment=356:Snap_2012.05.30_20h47m33s_006_.png]

    В процессе  конвертирования  могут возникнуть дополнительные вопросы, в таком случае введите, что от вас требуется и нажимайте на Продолжить.
    [attachment=357:Snap_2012.05.30_20h55m29s_008_.png]

    После того как вы выполните всю конвертацию, перейдите в АЦ -> Пересчет и обновление, и выполните последовательно:
    Пересчет статистики Синхронизация тем Синхронизация форумов Обновить изображения предпросмотра Обновить фотографии пользователей Обновить информацию о прикрепленных файлах После этого перейдите в АЦ → Управление кэшем → Перестроить весь кэш.

    Все, конвертация на этом завершена. Если у вас возникнут какие-либо вопросы - можете обращаться в соответствующий форум техподдержки.
     
    Автор статьи _Dark_
    Написано для IPBMafia.Ru
  5. Лайк
    _Dark_ получил реакцию от benix за a record, Транслитерация URL в версиях от IPS   
    В русских  версиях   IP .Board присутствует полезная возможность транслита  URL .
    Поисковикам нравится, если адреса на сайте написаны латинскими буквами, поэтому это помогает в поисковой оптимизации форума.

    Однако, в англоязычных  версиях  такой функции нет (попросту не нужно), поэтому, если вы поставили англоязычную версию форума, адреса будут отображаться как есть, без транслита. Ниже я описываю как добавить эту функцию в англоязычную  версию  форума.
    Внимание! Это нужно только если у вас англоязычная  версия , не от IBR!

     
    Откройте файл root/admin/sources/base/core.php (где root - корень вашего форума).
    Найдите:
    static public function encodeForXml( $string ) { if ( function_exists( 'mb_detect_encoding' ) ) { $encoding = mb_detect_encoding( $string ); if ( $encoding != 'UTF-8' ) { $string = IPSText::convertCharsets( $string, $encoding ); } } elseif ( strtolower(  IPS _DOC_CHAR_SET ) == 'utf-8' ) { $string = utf8_encode( $string ); } return $string; } ниже вставьте:
    static public function transliterate( $text ) { return str_replace( array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','э','ю','я','ы','ь','ъ'), array('a','b','v','g','d','e','e','zh','z','i','i','k','l','m','n','o','p','r','s','t','u','f','h','c','ch','sh','sh','a','ju','ja','i','',''), $text); } static public function makeSeoTransliterate( $text ) { $text = urldecode($text); $text = self::transliterate( $text ); $text = preg_replace('#[^a-z0-9-]#', '', $text); $text = urlencode($text); return $text; }
    Теперь в этом же файле найдите
    /** * Make an SEO title for use in the  URL  * We parse them even if friendly  urls  are off so that the data is there when you do switch it on * * @param string Raw SEO title or text * @return string Cleaned up SEO title */ static public function makeSeoTitle( $text ) { if ( ! $text ) { return ''; } /* Strip all HTML tags first */ $text = strip_tags($text); /* Preserve %data */ $text = preg_replace('#%([a-fA-F0-9][a-fA-F0-9])#', '-xx-$1-xx-', $text); $text = str_replace( array( '%', '`' ), '', $text); $text = preg_replace('#-xx-([a-fA-F0-9][a-fA-F0-9])-xx-#', '%$1', $text); /* Convert accented chars */ $text = self::convertAccents($text); /* Convert it */ if ( self::isUTF8( $text ) ) { if ( function_exists('mb_strtolower') ) { $text = mb_strtolower($text, 'UTF-8'); } $text = self::utf8Encode( $text, 250 ); } /* Finish off */ $text = strtolower($text); if ( strtolower(  IPS _DOC_CHAR_SET ) == 'utf-8' ) { $text = preg_replace( '#&.+?;#' , '', $text ); $text = preg_replace( '#[^%a-z0-9 _-]#', '', $text ); } else { /* Remove &#xx; and &#xxx; but keep &#xxxx; */ $text = preg_replace( '/&#(d){2,3};/', '', $text ); $text = preg_replace( '#[^%&#;a-z0-9 _-]#', '', $text ); $text = str_replace( array( '&quot;', '&amp;'), '', $text ); } $text = str_replace( array( '`', ' ', '+', '.', '?', '_', '#' ), '-', $text ); $text = preg_replace( "#-{2,}#", '-', $text ); $text = trim($text, '-'); IPSDebug::addMessage( "<span style='color:red'>makeSeoTitle ($text) called</span>" ); return ( $text ) ? $text : '-'; } и после строчки
    $text = trim($text, '-'); вставьте:
    $text = self::makeSeoTransliterate( $text ); Внимание! Сохраните этот файл в кодировке UTF-8 БЕЗ BOM! По умолчанию он в кодировке ANSI, поэтому работать ничего не будет! Для того, чтобы сохранить файл в этой кодировке, скачайте программу Notepad++, откройте в ней этот файл (root/admin/sources/base/core.php) и выберите в верхнем меню Кодировки → Преобразовать в UTF-8 без BOM, после этого сохраните файл и закачайте к себе на сервер.


    Теперь откройте файл root/admin/sources/classes/output/publicOutput.php
    Найдите:
    /** * Formats the  URL  (.htaccess SEO, etc) * * @access public * @param string Raw  URL  * @param string Any special SEO title passed * @param string Any special SEO template to use. If none is passed but SEO is enabled, IPB will search all templates for a match * @return string Formatted  URL  */ public function formatUrl( $ url , $seoTitle='', $seoTemplate='' ) { //----------------------------------------- // INIT //----------------------------------------- if ( ! ipsRegistry::$settings['use_friendly_ urls '] ) { return $ url ; } и после этой фигурной скобки вставьте:
    $seoTitle = IPSText::makeSeoTransliterate( $seoTitle );
    Все. Теперь адреса содержащие кириллицу будут отображаться транслитом.
  6. Лайк
    _Dark_ получил реакцию от Mano за a record, Добавление текста при копировании информации с сайта   
    Статья написано с подачи пользователя Poliik.

    В общем, задача:

    При копировании текста с сайта добавить в этот текст свою информацию.
    Другими словами, если кто-то скопирует с вашего сайта текст, скажем, Привет, то при вставке будет что-то вроде
    Привет

    Источник: ссылка

    Решение

    Нетривиальное. Простейший способ, который работает (что важно).

    Переходим в АЦ → Внешний вид → ваш стиль

    Открываем шаблон globalTemplate.
    Почти в самом начале ищем:
     
    //<![CDATA[ jsDebug = {parse expression="intval($this->settings['_jsDebug'])"}; /* Must come before JS includes */ USE_RTE = 1; DISABLE_AJAX = parseInt({$this->settings['disable_text_ajax']}); /* Disables ajax requests where text is sent to the DB; helpful for charset issues */ inACP = false; var isRTL = false; var rtlIe = ''; var rtlFull = ''; //]]> </script>
    Ниже вставляем:
     
    <script type="text/javascript"> //<![CDATA[ function addLink() { var eBody = document.getElementsByTagName('body')[0]; var selection = window.getSelection(); // Вы можете изменить текст в этой строчке var info = "Источник: <a href='"+document.location.href+"'>"+document.location.href+"</a>"; var copytext = selection + info; var newdiv = document.createElement('div'); newdiv.style.position = 'absolute'; newdiv.style.left = '-99999px'; eBody.appendChild(newdiv); newdiv.innerHTML = copytext; selection.selectAllChildren(newdiv); window.setTimeout( function() { eBody.removeChild(newdiv); }, 0); } document.oncopy = addLink; //]]> </script>
    Сохраняем.

    В строчке
    var info = "Источник: <a href='"+document.location.href+"'>"+document.location.href+"</a>"; можете написать любой свой текст.
    document.location.href заменится на страницу, с которой текст был скопирован.

    Первоначальный автор: ссылка

    Статья эксклюзивно для IPBMafia.Ru
  7. Лайк
    _Dark_ получил реакцию от hostrk за a record, Транслитерация URL в версиях от IPS   
    В русских  версиях   IP .Board присутствует полезная возможность транслита  URL .
    Поисковикам нравится, если адреса на сайте написаны латинскими буквами, поэтому это помогает в поисковой оптимизации форума.

    Однако, в англоязычных  версиях  такой функции нет (попросту не нужно), поэтому, если вы поставили англоязычную версию форума, адреса будут отображаться как есть, без транслита. Ниже я описываю как добавить эту функцию в англоязычную  версию  форума.
    Внимание! Это нужно только если у вас англоязычная  версия , не от IBR!

     
    Откройте файл root/admin/sources/base/core.php (где root - корень вашего форума).
    Найдите:
    static public function encodeForXml( $string ) { if ( function_exists( 'mb_detect_encoding' ) ) { $encoding = mb_detect_encoding( $string ); if ( $encoding != 'UTF-8' ) { $string = IPSText::convertCharsets( $string, $encoding ); } } elseif ( strtolower(  IPS _DOC_CHAR_SET ) == 'utf-8' ) { $string = utf8_encode( $string ); } return $string; } ниже вставьте:
    static public function transliterate( $text ) { return str_replace( array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','э','ю','я','ы','ь','ъ'), array('a','b','v','g','d','e','e','zh','z','i','i','k','l','m','n','o','p','r','s','t','u','f','h','c','ch','sh','sh','a','ju','ja','i','',''), $text); } static public function makeSeoTransliterate( $text ) { $text = urldecode($text); $text = self::transliterate( $text ); $text = preg_replace('#[^a-z0-9-]#', '', $text); $text = urlencode($text); return $text; }
    Теперь в этом же файле найдите
    /** * Make an SEO title for use in the  URL  * We parse them even if friendly  urls  are off so that the data is there when you do switch it on * * @param string Raw SEO title or text * @return string Cleaned up SEO title */ static public function makeSeoTitle( $text ) { if ( ! $text ) { return ''; } /* Strip all HTML tags first */ $text = strip_tags($text); /* Preserve %data */ $text = preg_replace('#%([a-fA-F0-9][a-fA-F0-9])#', '-xx-$1-xx-', $text); $text = str_replace( array( '%', '`' ), '', $text); $text = preg_replace('#-xx-([a-fA-F0-9][a-fA-F0-9])-xx-#', '%$1', $text); /* Convert accented chars */ $text = self::convertAccents($text); /* Convert it */ if ( self::isUTF8( $text ) ) { if ( function_exists('mb_strtolower') ) { $text = mb_strtolower($text, 'UTF-8'); } $text = self::utf8Encode( $text, 250 ); } /* Finish off */ $text = strtolower($text); if ( strtolower(  IPS _DOC_CHAR_SET ) == 'utf-8' ) { $text = preg_replace( '#&.+?;#' , '', $text ); $text = preg_replace( '#[^%a-z0-9 _-]#', '', $text ); } else { /* Remove &#xx; and &#xxx; but keep &#xxxx; */ $text = preg_replace( '/&#(d){2,3};/', '', $text ); $text = preg_replace( '#[^%&#;a-z0-9 _-]#', '', $text ); $text = str_replace( array( '&quot;', '&amp;'), '', $text ); } $text = str_replace( array( '`', ' ', '+', '.', '?', '_', '#' ), '-', $text ); $text = preg_replace( "#-{2,}#", '-', $text ); $text = trim($text, '-'); IPSDebug::addMessage( "<span style='color:red'>makeSeoTitle ($text) called</span>" ); return ( $text ) ? $text : '-'; } и после строчки
    $text = trim($text, '-'); вставьте:
    $text = self::makeSeoTransliterate( $text ); Внимание! Сохраните этот файл в кодировке UTF-8 БЕЗ BOM! По умолчанию он в кодировке ANSI, поэтому работать ничего не будет! Для того, чтобы сохранить файл в этой кодировке, скачайте программу Notepad++, откройте в ней этот файл (root/admin/sources/base/core.php) и выберите в верхнем меню Кодировки → Преобразовать в UTF-8 без BOM, после этого сохраните файл и закачайте к себе на сервер.


    Теперь откройте файл root/admin/sources/classes/output/publicOutput.php
    Найдите:
    /** * Formats the  URL  (.htaccess SEO, etc) * * @access public * @param string Raw  URL  * @param string Any special SEO title passed * @param string Any special SEO template to use. If none is passed but SEO is enabled, IPB will search all templates for a match * @return string Formatted  URL  */ public function formatUrl( $ url , $seoTitle='', $seoTemplate='' ) { //----------------------------------------- // INIT //----------------------------------------- if ( ! ipsRegistry::$settings['use_friendly_ urls '] ) { return $ url ; } и после этой фигурной скобки вставьте:
    $seoTitle = IPSText::makeSeoTransliterate( $seoTitle );
    Все. Теперь адреса содержащие кириллицу будут отображаться транслитом.
×
×
  • Создать...