Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 10232 Просмотров
*

rom_4

  • Захожу иногда
  • 87
  • 4 / 0
Здравствуйте. Почти не разбираюсь в пшп, может кто хоть направление для действия подскажет.
В общем есть у меня сайт про онлайн игры, хочу туда прикрутить генератор ников навроде как реализовано здесь:http://onlinetoplist.com/nick.htm

Нашел пшп код в свободном доступе, т.е. фри. Но автор видно подразумевает что им будут пользоваться люди знающие... :'(

Куда мне засунуть этот код и как это дело вывести для показа на сайте? Хотяб примерно пути реализации если можно. Код привожу ниже:

Код
<?php
/*************************************************************
   * Генератор ников
   * http://BrokenBrake.biz/
*************************************************************/
  mb_internal_encoding('UTF-8');
 
  $q = $_GET['q'];
  $lang = $_GET['lang'];
  $num = $_GET['num']; // prefixGen | halfGluing | bcdReplace
  $type = $_GET['type'];
 
  $ru = false;
  if ($lang == 'ru')
      $ru = true;
  if (empty($num))
      $num = 5;
  if (empty($type))
      $type = 'prefixGen';
  if (empty($q))
      $q = 'test';
 
 
/*
function endsdel($word) // Глагольные окончания всякие
{
$ends = array(
'/тся$/u',
'/ться$/u',
'/ть$/u',
'/ся$/u',
'/аю$/u',
'/шь$/u',
'/сь$/u',
'/ют$/u',
'/и$/u');
return preg_replace($ends, '', $word);
}
*/
 
 
 
  function prefixGen($words, $ru)// Алгоритм добавления приставок
  {
      unset($words['halves1'], $words['halves2']);
      foreach ($words as $val) {
          $prefixes = 'su, do, du, de, un, pseudo, super, emo, hyper, mega, meta, nano, tera, anti, avia, porno, euro, bio, micro, uni, neo, conta, co-, in, mis, over, pre, post, re, sub';
          $end = $val;
          if ($ru) {
              $prefixes = 'недо, пере, во, вы, до, за, изо, ко, на, не, о, обо, ото, па, по, подо, пра, предо, про, разо, со, пре, при, мета, су, у, гипер, гипо, недопере, перенедо, ана, а, дека, гекто, кило, мега, гига, пета, экса, тера, микро, мини, милли, нано, пико, деци, йокто, йоби, киби, меби, гиби, теби, пеби, эксби, экс-, зеби, эрзац-, слабо, био, техно, страшно, переподвы, индо, евро, нагло, спорно, псевдо, сверх, супер, квази, лже, архи, де, анти, ультра, флудо, эмо, порно, глупо, умно, странно, обоюдо, нео, после, авиа, пай-, ебо, педо, уни, лакто, литро, нарко, вые, добро, снего, садо, абра, арабо, гидро, англо, педро, ибн-, сочно, трудо, грязно, ложно, переподвы, худо, ржачно, любо, мило, крико, синхро, психо, водо, фигня, круто, вольно, пара, паро, боле, астро, стерео, моно, сыро, мясо, нитро, зло, авто, мото, вело, кино, радио, ретро, трахо, сексо, вечно, потно, взрыво, криво, ядо, волно, фило, само, крупно, мелко, титько, жопо, гнуто, рабо, крио, аква, длинно, лаго, баго, блохо, макро, би, тетра, тупо, страхо, воро, бандито, сердито, вьюго, ветро, градо, между, токсо, токси, славно, бого, полу, полу, полу, нано, нано, лже, лже, эмо, эмо, эмо, микро, микро, псевдо, всевдо, квази, квази, нарко, евро, евро, ибн-, ибн-';
          }
          $prefixes = explode(', ', $prefixes);
          shuffle($prefixes);
          $prefix = $prefixes[0];
          $result[] = $prefix . $end;
      }
      return $result;
  }
 
 
 
  function halfGluing($words, $ru)// Алгоритм склейки половинок разных слов
  {
      shuffle($words['halves2']);
      foreach ($words['halves1'] as $key => $val) {
          $end = $words['halves2'][$key];
          $result[] = $val . $end;
      }
      return $result;
  }
 
 
  function bcdReplace($words, $ru) // Алгоритм замены согласных
  {
      unset($words['halves1'], $words['halves2']);
     
      function randl($letters)
      {
          shuffle($letters);
          return array_shift($letters);
      }
     
      function bcd($raw, $ru)
      {
          $letters = str_split('bcdfghklmnpqrstvwxz');
          if ($ru)
              $letters = explode(',', 'б,в,г,д,ж,з,к,л,м,н,р,с,ч,ш'); // Исключение некоторых букв повышает читаемость
          $temp = mb_split('1', $raw);
          foreach ($temp as $val) {
              $one = $val;
              if ($val == '0')
                  $one = randl($letters);
              $nick .= $one;
          }
          return $nick;
      }
     
      foreach ($words as $word) {
          $search = 'bcdfghklmnpqrstvwxz';
          if ($ru)
             $search = 'бвгджзклмнпрстфхцчшщ';
          $raw = preg_replace("/[$search]/u", '101', $word);
          $result[] = bcd($raw, $ru);
      }
      return $result;
  }
 
// $base = unserialize(file_get_contents("base.txt")); // Удобно для тестирования
$base = unserialize(
file_get_contents("http://pipes.yahoo.com/pipes/pipe.run?_id=2e234671cafed4492b6f560a4d9d0ddb&_render=php&int=4-12&lang=$lang&q=$q")
);
$words = $base['value']['items'];
 
 
  foreach ($words as $val) {
      $word = $val['title'];
      $justwords[] = $word;
      $lesshalf = '{' . floor(mb_strlen($word) * 0.4). '}';
      $ready = 'бвгджзклмнпрстфхцчшщbcdfghklmnpqrstvwxz';
      preg_match_all("/(^.$lesshalf.*[$ready])(.*$)/Uu", $word, $halves);
      $justwords['halves1'][] = $halves[1][0];
      $justwords['halves2'][] = $halves[2][0];
  }
 
 
  $nicknames = $type($justwords, $ru);
  shuffle($nicknames);
  $result = array_slice($nicknames, 0, $num);
  if (!empty($result)) {
      echo join(', ', $result);
  } else {
      echo 'error';
  }

Заранее спасибо всем кто откликнется. Подозреваю что сложного ничего нет, но чего-то я туплю...
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
действительно, ничего сложного.

0 установить плагин, позволяющий вписывать скрипты в модули
1 создать произвольный модуль HTML
2 скопировать в него код скрипта
3 назначить модулю позицию по Вашему предпочтению
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

rom_4

  • Захожу иногда
  • 87
  • 4 / 0
действительно, ничего сложного.

0 установить плагин, позволяющий вписывать скрипты в модули
1 создать произвольный модуль HTML
2 скопировать в него код скрипта
3 назначить модулю позицию по Вашему предпочтению

0 установить плагин, позволяющий вписывать скрипты в модули

Не могли бы вы подсказать название плагина?

1 создать произвольный модуль HTML

Я так понимаю что-то вроде папки mod_mymodyl  с файлом внутри index.html где и будет находится код? или я неправильно понимаю ситуацию?
Если не так, то можно немного подробнее?
Спасибо.
*

rom_4

  • Захожу иногда
  • 87
  • 4 / 0
Видать чего то я не то писанул...никто ответить не захотел)))
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
для включения скриптов РНР в содержание сайта (включая модули) рекомендую использовать плагин Sourcerer

# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

rom_4

  • Захожу иногда
  • 87
  • 4 / 0
4webspot

Спасибо, буду пробовать освоить.
*

rom_4

  • Захожу иногда
  • 87
  • 4 / 0
Вроде разобрался что к чему ;) Долго голову ломал, а как оказалось код генератора ников где-то видно или с ошибкой или надо еще чего-то до него. Нашел сайт и там несколько кодов, так вот ни один не захотел работать. Может это и не по теме и не по профилю Joomla, но обращусь, вдруг кому не трудно будет. Сайт с кодами тут: http://bomlenta.blogspot.com/2009/07/14.html

А сами коды ниже, может можно выбрать что-то из этого и интегрировать с Joomla...

Первое:
Код
<?php
/*************************************************************
   * Генератор ников
   * http://BrokenBrake.biz/
*************************************************************/
  mb_internal_encoding('UTF-8');
 
  $q = $_GET['q'];
  $lang = $_GET['lang'];
  $num = $_GET['num']; // prefixGen | halfGluing | bcdReplace
  $type = $_GET['type'];
 
  $ru = false;
  if ($lang == 'ru')
      $ru = true;
  if (empty($num))
      $num = 5;
  if (empty($type))
      $type = 'prefixGen';
  if (empty($q))
      $q = 'test';
 
 
/*
function endsdel($word) // Глагольные окончания всякие
{
$ends = array(
'/тся$/u',
'/ться$/u',
'/ть$/u',
'/ся$/u',
'/аю$/u',
'/шь$/u',
'/сь$/u',
'/ют$/u',
'/и$/u');
return preg_replace($ends, '', $word);
}
*/
 
 
 
  function prefixGen($words, $ru)// Алгоритм добавления приставок
  {
      unset($words['halves1'], $words['halves2']);
      foreach ($words as $val) {
          $prefixes = 'su, do, du, de, un, pseudo, super, emo, hyper, mega, meta, nano, tera, anti, avia, porno, euro, bio, micro, uni, neo, conta, co-, in, mis, over, pre, post, re, sub';
          $end = $val;
          if ($ru) {
              $prefixes = 'недо, пере, во, вы, до, за, изо, ко, на, не, о, обо, ото, па, по, подо, пра, предо, про, разо, со, пре, при, мета, су, у, гипер, гипо, недопере, перенедо, ана, а, дека, гекто, кило, мега, гига, пета, экса, тера, микро, мини, милли, нано, пико, деци, йокто, йоби, киби, меби, гиби, теби, пеби, эксби, экс-, зеби, эрзац-, слабо, био, техно, страшно, переподвы, индо, евро, нагло, спорно, псевдо, сверх, супер, квази, лже, архи, де, анти, ультра, флудо, эмо, порно, глупо, умно, странно, обоюдо, нео, после, авиа, пай-, ебо, педо, уни, лакто, литро, нарко, вые, добро, снего, садо, абра, арабо, гидро, англо, педро, ибн-, сочно, трудо, грязно, ложно, переподвы, худо, ржачно, любо, мило, крико, синхро, психо, водо, фигня, круто, вольно, пара, паро, боле, астро, стерео, моно, сыро, мясо, нитро, зло, авто, мото, вело, кино, радио, ретро, трахо, сексо, вечно, потно, взрыво, криво, ядо, волно, фило, само, крупно, мелко, титько, жопо, гнуто, рабо, крио, аква, длинно, лаго, баго, блохо, макро, би, тетра, тупо, страхо, воро, бандито, сердито, вьюго, ветро, градо, между, токсо, токси, славно, бого, полу, полу, полу, нано, нано, лже, лже, эмо, эмо, эмо, микро, микро, псевдо, всевдо, квази, квази, нарко, евро, евро, ибн-, ибн-';
          }
          $prefixes = explode(', ', $prefixes);
          shuffle($prefixes);
          $prefix = $prefixes[0];
          $result[] = $prefix . $end;
      }
      return $result;
  }
 
 
 
  function halfGluing($words, $ru)// Алгоритм склейки половинок разных слов
  {
      shuffle($words['halves2']);
      foreach ($words['halves1'] as $key => $val) {
          $end = $words['halves2'][$key];
          $result[] = $val . $end;
      }
      return $result;
  }
 
 
  function bcdReplace($words, $ru) // Алгоритм замены согласных
  {
      unset($words['halves1'], $words['halves2']);
     
      function randl($letters)
      {
          shuffle($letters);
          return array_shift($letters);
      }
     
      function bcd($raw, $ru)
      {
          $letters = str_split('bcdfghklmnpqrstvwxz');
          if ($ru)
              $letters = explode(',', 'б,в,г,д,ж,з,к,л,м,н,р,с,ч,ш'); // Исключение некоторых букв повышает читаемость
          $temp = mb_split('1', $raw);
          foreach ($temp as $val) {
              $one = $val;
              if ($val == '0')
                  $one = randl($letters);
              $nick .= $one;
          }
          return $nick;
      }
     
      foreach ($words as $word) {
          $search = 'bcdfghklmnpqrstvwxz';
          if ($ru)
             $search = 'бвгджзклмнпрстфхцчшщ';
          $raw = preg_replace("/[$search]/u", '101', $word);
          $result[] = bcd($raw, $ru);
      }
      return $result;
  }
 
// $base = unserialize(file_get_contents("base.txt")); // Удобно для тестирования
$base = unserialize(
file_get_contents("http://pipes.yahoo.com/pipes/pipe.run?_id=2e234671cafed4492b6f560a4d9d0ddb&_render=php&int=4-12&lang=$lang&q=$q")
);
$words = $base['value']['items'];
 
 
  foreach ($words as $val) {
      $word = $val['title'];
      $justwords[] = $word;
      $lesshalf = '{' . floor(mb_strlen($word) * 0.4). '}';
      $ready = 'бвгджзклмнпрстфхцчшщbcdfghklmnpqrstvwxz';
      preg_match_all("/(^.$lesshalf.*[$ready])(.*$)/Uu", $word, $halves);
      $justwords['halves1'][] = $halves[1][0];
      $justwords['halves2'][] = $halves[2][0];
  }
 
 
  $nicknames = $type($justwords, $ru);
  shuffle($nicknames);
  $result = array_slice($nicknames, 0, $num);
  if (!empty($result)) {
      echo join(', ', $result);
  } else {
      echo 'error';
  }

Вариант 2 PHP-код генератора ников из латинского алфавита:
Код
<?php
/*************************************************
   http://BrokenBrake.biz/
   http://pipes.yahoo.com/exp30/wordsfetcher
*************************************************/

$q = $_GET['q'];
$min = $_GET['min'];
$max = $_GET['max'];

$words = unserialize(
file_get_contents("http://pipes.yahoo.com/pipes/pipe.run?_id=UgbtTtN23hGx5Yj4U1y0Jw&_render=php&int=$min-$max&lang=en&q=$q")
);

$words = $words['value']['items'];
shuffle($words); $item= array_shift($words);

$word = $item['title'];

$letters = 'bcdfghklmnpqrstvwxz';
$rand = str_split($letters);
shuffle($rand); $randletters = join('', $rand);

$nick = strtr($word, $letters, $randletters);

echo $nick;

Вариант 3 Генератор ников на русском:
Код
<?php
/*************************************************
   http://BrokenBrake.biz/
   http://pipes.yahoo.com/exp30/wordsfetcher
   Вариант генерации русских читаемых ников
*************************************************/

$q = $_GET['q'];
$lang = $_GET['lang'];
$min = $_GET['min'];
$max = $_GET['max'];

$words = unserialize(
file_get_contents("http://pipes.yahoo.com/pipes/pipe.run?_id=UgbtTtN23hGx5Yj4U1y0Jw&_render=php&int=$min-$max&lang=$lang&q=$q")
);

$words = $words['value']['items'];
shuffle($words); $item= array_shift($words);

$word = $item['title'];

if ($lang == 'ru')
{
function randl()
{
$letters = explode(',', 'б,в,г,д,ж,з,к,л,м,н,п,р,с,т,ф,х,ц,ч,ш,щ');
shuffle($letters);
return array_shift($letters);
}
$word = preg_replace("/[бвгджзклмнпрстфхцчшщ]/u", 'xzx', $word);
$temp = mb_split('x', $word);

foreach ($temp as $val)
{
$one = $val;
if ($val == 'z') $one = randl();
$nick .= $one;
}
}
else
{
$letters = 'bcdfghklmnpqrstvwxz';
$rand = str_split($letters);
shuffle($rand); $randletters = join('', $rand);
$nick = strtr($word, $letters, $randletters);
}

echo $nick;

Пробовал в конце добавлять ?> но как-то не помогает, пшп практически не знаю. Помогите решить этот вопрос. Прогуглил уже не знаю сколько и чего...
*

rom_4

  • Захожу иногда
  • 87
  • 4 / 0
Интересный эффект вчера выявил при использовании плагина Sourcerer на Joomla 1.5. Буквально гуглил на днях эту тему, так по нету ничего похожего не описывается.

Короче дополнительный эффект от использования плагина Sourcerer заключается в том, что с его помощью можно выделять цветом (и не только) какой либо пункт в меню, используя его теги    {source}  {/source}
Например мне нужно выделить пункт меню "Генератор Ников" красным цветом и жирным начертанием. Я в том месте где задается название для пункта меню (он же Заголовок), прописываю:
{source}<b><font color="#FF0000"> Генератор Ников </font></b>{/source}
Готово! Ваша менюшка красненькая :)
(модераторы: может вынести этот рецепт куда-нибудь на видное место, а то здесь затеряется?)

P.S. Оказывается у этого рецепта есть побочный эффект. Меню сайта где использован этот параметр, некорректно работают в IE,не отображает открываемую страницу,  поэтому для кого важны все пользователи то придется отказаться от этой штуки.

 !  ! А теперь еще раз спрошу: если никто не может помочь мне с кодом по генератору ников, может у кого на компе завалялся другой готовый код Генератора ников для вставки на страницу сайта? Заранее спасибо всем кто откликнется.
« Последнее редактирование: 27.07.2010, 16:28:34 от rom_4 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Компонент Commedia (неизвестный конфликт на сайте)

Автор Методист

Ответов: 2
Просмотров: 3526
Последний ответ 06.11.2022, 07:25:57
от ecolora
Модуль IPrice Popup News - всплывающая новость на сайте

Автор radius

Ответов: 3
Просмотров: 1539
Последний ответ 18.08.2019, 15:04:13
от radius
JCH Optimize на сайте - не открыть админку плагина: временно недоступна или перемещена на новый веб-

Автор Beer

Ответов: 7
Просмотров: 1988
Последний ответ 17.10.2016, 21:35:47
от Beer
Модуль«Кто на сайте»

Автор Doctor Death

Ответов: 0
Просмотров: 994
Последний ответ 23.04.2016, 23:34:39
от Doctor Death
Новости на сайте выводятся с задержкой

Автор andriy1980

Ответов: 4
Просмотров: 1377
Последний ответ 24.11.2015, 08:46:59
от Alex GOOD