[RED BUTTON] red.Button многоуровневая структура и правильная перелинковка

Тема в разделе "Генераторы дорвеев", создана пользователем olegmoe, 5 апр 2009.

  1. goth

    goth Постоялец

    Регистр.:
    14 ноя 2006
    Сообщения:
    63
    Симпатии:
    3
    Подскажите как пользоватся макросом [RANDBLOCK-filename]? разделитель <!– hesoyam rb –> надо вставлять в текстовый файл между блоками?
     
  2. serg-d

    serg-d

    Регистр.:
    1 фев 2009
    Сообщения:
    176
    Симпатии:
    25
    в файл слаживаеш разные блоки и разделяеш их <!– hesoyam rb –>,и они выводятся при генерации рандомно
     
  3. Sergyk

    Sergyk

    Регистр.:
    1 авг 2006
    Сообщения:
    272
    Симпатии:
    366
    Подскажите как сделать рандомный вывод картинок в блоке
    Я пытался сделать так
    Но во всех блоках выводится одна и та-же картинка :(
    А при попытке прописать еще и выполнение в блоке рандома, трансформер виснет
     
  4. l00k

    l00k Постоялец

    Регистр.:
    18 янв 2010
    Сообщения:
    104
    Симпатии:
    40
    Sergyk, в файл ...\yes\data\mod\anekdot.txt закинь ссылки на картинки
     
    Sergyk нравится это.
  5. Staratel

    Staratel

    Регистр.:
    27 янв 2007
    Сообщения:
    260
    Симпатии:
    65
    А никто не заметил, что в такой конструкции значения макросов [ANEKDOT], [RANDBLOCK-filename], [RANDLIST-filename] повторяются в каждом цикле? Как с этим можно бороться?
     
  6. sergey-r

    sergey-r Создатель

    Регистр.:
    13 сен 2007
    Сообщения:
    18
    Симпатии:
    19
    Да есть такое, только повторяется через раз у меня
     
  7. Staratel

    Staratel

    Регистр.:
    27 янв 2007
    Сообщения:
    260
    Симпатии:
    65
    Решение этой проблемы:
    Кусок кода в функции function Transformer($myshab,$keys_n,$titlekeys,$n)
    PHP:
    while(strstr($myshab"[DOIT-")){
            
    preg_match("/\[DOIT-([0-9]{1,})-([0-9]{1,})\]/"$myshab$m1);
            
    $doit=mt_rand($m1[1],$m1[2]);
            
    preg_match("/\[DOIT-([0-9]{1,})-([0-9]{1,})\](.+)\[\/DOIT\]/Us"$myshab$m1);
            
    $doittext='';
            for(
    $i=0;$i<$doit;++$i)@$doittext.=$m1[3];
            
    $myshab=str_replace($m1[0],$doittext,$myshab);
        }
    надо переместить сразу после строки
    PHP:
    if($onepage&&is_array($keys_n))$keys_n=implode(', '$keys_n);
     
  8. Alex777

    Alex777 Постоялец

    Регистр.:
    6 дек 2007
    Сообщения:
    78
    Симпатии:
    9
    Подскажите, есть ли возможность генерировать названия страниц не в транслите (через [TRANSLIT]), а из оригинального кейворда?
    Т.е. если кейворд для страницы - "привет", то и страница на выходе должна получиться - привет.html, а не privet.html.
     
  9. smithws

    smithws

    Регистр.:
    19 июн 2008
    Сообщения:
    481
    Симпатии:
    153
    Нельзя. Надо лезть в код доргена и править это дело там.
    А зачем нужно это, если не секрет?
     
  10. Alex777

    Alex777 Постоялец

    Регистр.:
    6 дек 2007
    Сообщения:
    78
    Симпатии:
    9
    Мне нужно для дальнейшей работы с этими файлами, транслит не подходит.

    Кстати я сделал, там оказалось не так уж сложно разобраться...

    В файле functions.php заменить функцию транслита на следующую
    PHP:
    function translit($cyr_str){
        
    $razd='-';
        
    $cyr_str=strtolower($cyr_str);
        
    $tr= array("А"=>"А","Б"=>"Б","В"=>"В","Г"=>"Г",
        
    "Д"=>"Д","Е"=>"Е","Ж"=>"Ж","З"=>"З","И"=>"И",
        
    "Й"=>"Й","К"=>"К","Л"=>"Л","М"=>"М","Н"=>"Н",
        
    "О"=>"О","П"=>"П","Р"=>"Р","С"=>"С","Т"=>"Т",
        
    "У"=>"У","Ф"=>"Ф","Х"=>"Х","Ц"=>"Ц","Ч"=>"Ч",
        
    "Ш"=>"Ш","Щ"=>"Щ","Ъ"=>"Ъ","Ы"=>"Ы","Ь"=>"Ь",
        
    "Э"=>"Э","Ю"=>"Ю","Я"=>"Я","а"=>"а","б"=>"б",
        
    "в"=>"в","г"=>"г","д"=>"д","е"=>"е","ж"=>"ж",
        
    "з"=>"з","и"=>"и","й"=>"й","к"=>"к","л"=>"л",
        
    "м"=>"м","н"=>"н","о"=>"о","п"=>"п","р"=>"р",
        
    "с"=>"с","т"=>"т","у"=>"у","ф"=>"ф","х"=>"х",
        
    "ц"=>"ц","ч"=>"ч","ш"=>"ш","щ"=>"щ","ъ"=>"ъ",
        
    "ы"=>"ы","ь"=>"ь","э"=>"э","ю"=>"ю","я"=>"я"," "=>$razd);
        
    $text=strtr($cyr_str,$tr);
        
    $text=preg_replace('/[^A-zА-я0-9_-]*/','',$text);
        return 
    $text;
    }
    Во вкладке "Глянем" так и оставляем [TRANSLIT]
    Результат - русские кейворды в названии страниц. Кейворды других языков остаются без изменений.
    Единственное это то, что теперь для русских кеев транслита не будет.