Перейти к публикации

Рекомендованные сообщения

Здравствуйте,

Решил повесить на сайте вывод случайных фраз.

Может кто пробовал как-то это уже реализовать?

Интересует вывод случайной фраз из базы, которая будет представлять собой текстовый файл в 1 000 - 1 500 фраз.

Заранее спасибо за помощь :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

Тогда следующий вопрос. Как корректно расчленить javascript на две части?

То есть, 1 - часть, ссылка типа

<script type="text/javascript" src="/fraza.js"> </script>
вписывается в шаблон сайта. 2 - часть, сам код скрипта:
function text() {

};

text = new text();

number = 0;

text[number++] = "Фраза1"

text[number++] = "Фраза2"

text[number++] = "Фраза3"

text[number++] = "Фраза4"

text[number++] = "Фраза5"

text[number++] = "Фраза6"

text[number++] = "Фраза7"

text[number++] = "Фраза8"

text[number++] = "Фраза9"

text[number++] = "Фраза10"

increment = Math.floor(Math.random() * number);

document.write(text[increment]);

Так правильно?

И есть ли какие то символы которые не стоит использовать в коде javaскритпа (" , : ')?

И ещё одно. Как можно реализовать вывод случайной фразы без javascript? Если можно подробно и в примерах :huh:

Ссылка на сообщение
Поделиться на других сайтах

В index.php сразу после:

$tpl->load_template ( 'main.tpl' );
прописать:

$sovet = array (

	"Если не хочешь жить, так как живёт большинство, посмотри что делает большинство и сделай наоборот.",

	"Никогда не торгуйся с успехом... В жизни нельзя вернуть четыре вещи: прожитую жизнь, выпущенную стрелу (пулю) сказанное слово и УПУЩЕНУЮ возможность!",

	"Жизнь продолжается, конец чего-то, означает начало чего-то нового.",

	"Не стыдно родится в бедности - стыдно умирать в нищете!",

	"За скромность не платят.",

	"Вы хотите деньги сегодня, или деньги на всю оставшуюся жизнь?",

	"Если вы не уделяете внимания своим клиентам, им уделят внимание другие люди.",

	"Деньги нужны даже для того, чтобы без них обходиться.",

	"Можно смотреть на деньги с высока, но ни в коем случае нельзя выпускать их из виду.",

	"Не гонись за деньгами - иди им навстречу.",

	"Есть вещи важнее денег, но без денег эти вещи не купишь!",

	"Лучший способ помочь беднякам - это не стать одним из них.",

	"Не хвались серебром, хвались добром.",

	"Выживает не самый сильный, а самый восприимчивый к переменам.",

);


$randtext = count ( $sovet ) - 1;

$tpl->set ( '{randomtext}', $sovet[rand ( 0, $randtext )] );

В шаблоне в файле main.tpl в нужном месте вставить тэг {randomtext}

P.S.

Написал, но не проверял. Если хотите, то все афоризмы можно всунуть в отдельный файл и потом инклюдить :rolleyes:

Изменено пользователем WWW.ZEOS.IN
Ссылка на сообщение
Поделиться на других сайтах

Создаём файл quoter.php с содержимым:

<?

$quote = file("quotes.txt"); 

srand((double)microtime()*1000000); 

echo $quote[rand(0,count($quote))];

?>

Закидываем его в папку \engine\modules\

Создаём файл quotes.txt в котором на одной строке одна цитата и закидываем в корень сайта. (можно не в корень, но тогда надо изменить путь до файла в quoter.php)

Теперь в нужном месте в шаблоне сайта прописываем {include file="engine/modules/quoter.php"}

Ничего сложного :)

К стати, я в PHP не силён, может ZEOS или ZGR подскажут?

Вообщем у меня как то давно была идея сделать цитаты которые бы брались с блокнота (в админке), а то он висит по беспонтовой как правило :)

То есть, создать файл который бы так же брал по одной случайной строке из блокнота, потом добавляем в шаблон {include file="engine/modules/quoter.php"} и все дела :)

Ссылка на сообщение
Поделиться на других сайтах

Написали в принципе всё верно - либо массив из файла создаем, либо сами готовый пишем, если массив получается не очень большим, то можно и так, но если сортировать нужно элементов очень много, то лучше из БД массив тянуть, так он будет в разы быстрее формироваться и меньше потреблять память. В JS лучше ничего не сортировать и не выводить, это уже давно устарело, потому как чтобы вывести одну строку, нужно мне в браузер запихать их сотню... Зачем мне лишний трафик? - через php загрузится и выведится только одна строка.

Ссылка на сообщение
Поделиться на других сайтах

n0lik, ну тогда можно и вот так сделать:

1) Создаём файл с названием aphorisms.php по адресу /engine/modules/

2) Вставляем в этот файл такой код:


<?php

if ( ! defined ( 'DATALIFEENGINE' ) ) {

	die ( "Hacking attempt!" );

}


$aphorisms = array (

        "Если не хочешь жить, так как живёт большинство, посмотри что делает большинство и сделай наоборот.",

        "Никогда не торгуйся с успехом... В жизни нельзя вернуть четыре вещи: прожитую жизнь, выпущенную стрелу (пулю) сказанное слово и УПУЩЕНУЮ возможность!",

        "Жизнь продолжается, конец чего-то, означает начало чего-то нового.",

        "Не стыдно родится в бедности - стыдно умирать в нищете!",

        "За скромность не платят.",

        "Вы хотите деньги сегодня, или деньги на всю оставшуюся жизнь?",

        "Если вы не уделяете внимания своим клиентам, им уделят внимание другие люди.",

        "Деньги нужны даже для того, чтобы без них обходиться.",

        "Можно смотреть на деньги с высока, но ни в коем случае нельзя выпускать их из виду.",

        "Не гонись за деньгами - иди им навстречу.",

        "Есть вещи важнее денег, но без денег эти вещи не купишь!",

        "Лучший способ помочь беднякам - это не стать одним из них.",

        "Не хвались серебром, хвались добром.",

        "Выживает не самый сильный, а самый восприимчивый к переменам.",

);


$randtext = count ( $aphorisms ) - 1;

echo $aphorisms[rand ( 0, $randtext )];

?>

3) В нужном шаблоне в файле main.tpl прописать в нужном месте: {include file="engine/modules/aphorisms.php"}

:rolleyes: всё.

Этот способ лучше, так как при обновлении DLE не надо будет снова править файлы движка

Ссылка на сообщение
Поделиться на других сайтах

Этот способ лучше, так как при обновлении DLE не надо будет снова править файлы движка

А в моём варианте разве надо править файлы скрипта? :) У меня просто отдельный файл с цитатами в корне, что бы было проще до него добираться и редактировать, добавлять цитаты, анекдоты и т.п..

Я вас обоих хотел спросить, можно ли вот этот вариант реализовать?

Вообщем у меня как то давно была идея сделать цитаты которые бы брались с блокнота (в админке), а то он висит по беспонтовой как правило

То есть, создать файл который бы так же брал по одной случайной строке из блокнота, потом добавляем в шаблон {include file="engine/modules/quoter.php"} и все дела

Ссылка на сообщение
Поделиться на других сайтах

n0lik, не обижайся, но в твоём примере две ошибки :rolleyes:

srand((double)microtime()*1000000);

Вот это вообще непонятно зачем!

И надо отнимать единицу от цифры, которая получится от count ( $quote )

Зачем? А ты пропиши в свой файл quotes.txt две строчки:

1111

2222

и потом позапускай несколько раз скрипт и иногда будет отдаваться пустота.

Я вас обоих хотел спросить, можно ли вот этот вариант реализовать?
Можно сделать абсолютно всё. Но подумай, ты хочешь еще один запрос к базе данных делать при каждом запросе к странице?

Ну и еще минус в том, что любой может пользоваться твоим файлом quotes.txt запуская его у себя в скриптах вытягивая с твоего сервера.

В моём же примере будет отдаваться в ответ "Hacking attempt!"

Ссылка на сообщение
Поделиться на других сайтах

n0lik, не обижайся, но в твоём примере две ошибки

А от чего мне обижаться. это не мой файл :) я в сети первый попавшийся взял :)

Но подумай, ты хочешь еще один запрос к базе данных делать при каждом запросе к странице?

Да, верно, что то у меня вылетело из головы.

Ну и еще минус в том, что любой может пользоваться твоим файлом quotes.txt запуская его у себя в скриптах вытягивая с твоего сервера.

А ты не ложи его в корень (например положи его в папку с шаблоном и к стати, тогда редактировать его можно будет с админки) или переименуй на свой лад и никто не будет им пользоваться :)

Пы.Сы. Если нашёл ошибки, лучше подскажи как его написать правильно.

Ссылка на сообщение
Поделиться на других сайтах

Если нашёл ошибки, лучше подскажи как его написать правильно.

Так а я ведь уже написал вот тут правильный вариант: http://forum.dle-news.ru/index.php?showtopic=54600&view=findpost&p=267206

тогда редактировать его можно будет с админки

Да, вроде можно и так сделать, но тогда файл надо будет назвать не txt и не php, а tpl

или переименуй на свой лад и никто не будет им пользоваться

А можно и так сделать ;)

Ссылка на сообщение
Поделиться на других сайтах

Да, вроде можно и так сделать, но тогда файл надо будет назвать не txt и не php, а tpl

Можно и tpl расширение дать, это уже не суть важно :)

Так а я ведь уже написал вот тут правильный вариант:

Там у тебя всё одним файлом, а как сделать вариант как у меня? То есть с подгрузкой тпльки из шаблона.

Изменено пользователем n0lik
Ссылка на сообщение
Поделиться на других сайтах

1) Создаём файл с названием aphorisms.php по адресу /engine/modules/

2) Вставляем в этот файл такой код:


<?php

if ( ! defined ( 'DATALIFEENGINE' ) ) {

	die ( "Hacking attempt!" );

}


$aphorisms = file ( "templates/" . $config['skin'] . "/aphorisms.tpl" );

$randtext = count ( $aphorisms ) - 1;

echo $aphorisms[rand ( 0, $randtext )];

?>

3) В нужном шаблоне в файле main.tpl прописать в нужном месте: {include file="engine/modules/aphorisms.php"}

:rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

WWW.ZEOS.IN,

Вот видишь к какому замечательному решению мы пришли, получился мега мод "Случайные фразы" :)

Ссылка на сообщение
Поделиться на других сайтах

1) Создаём файл с названием aphorisms.php по адресу /engine/modules/

2) Вставляем в этот файл такой код:

<?php

if ( ! defined ( 'DATALIFEENGINE' ) ) {

        die ( "Hacking attempt!" );

}

$aphorisms = file ( "templates/" . $config['skin'] . "/aphorisms.tpl" );

$randtext = count ( $aphorisms ) - 1;

echo $aphorisms[rand ( 0, $randtext )];

?>

3) В нужном шаблоне в файле main.tpl прописать в нужном месте: {include file="engine/modules/aphorisms.php"}

А сами фразы куда пихать?

Ссылка на сообщение
Поделиться на других сайтах

Вот видишь к какому замечательному решению мы пришли

:P ага

А сами фразы куда пихать?

Вам надо создать файл aphorisms.tpl по адресу: templates/Название_Вашего_шаблона/

Ссылка на сообщение
Поделиться на других сайтах

Вам надо создать файл aphorisms.tpl по адресу: templates/Название_Вашего_шаблона/

И просто в пихать в него фразы? Без никаких доп тегов, не считая html оформления?

Ссылка на сообщение
Поделиться на других сайтах

Каждая строчка это отдельный афоризм. Никаких доп тегов не надо.

HTML можно использовать. Например, выделять некоторые слова <b>жирным</b>

Ссылка на сообщение
Поделиться на других сайтах

И ещё один вопрос: Как оживить текст? То есть сделать его бегущим?

Можно через marquee

echo '<marquee>'.$randtext.'</marquee>';

, но тег не входит в спецификацию HTML и его наличие приведет к невалидному коду, да и не текст не останавливается при наведении курсора.

Изменено пользователем Nektov
Ссылка на сообщение
Поделиться на других сайтах

Смотрите в интернете. Вот например:

http://rumkin.com/tools/marquee/

http://www.html.by/threads/8202-analog-na-JS

http://www.howtocreate.co.uk/jslibs/htmlhigh/simplemarquee.html

http://rumkin.com/tools/marquee/

Ссылка на сообщение
Поделиться на других сайтах

Что без marquee ?

Я Вам дал примеры, где пишут как это сделать на JS

Ссылка на сообщение
Поделиться на других сайтах

Что без marquee ?

Я Вам дал примеры, где пишут как это сделать на JS

То есть, если слепить всё в кучу получится php файл вывода и tpl файл фраз с содержанием JS?

Как то проще можно?

Ссылка на сообщение
Поделиться на других сайтах

Nektov,

http://www.dynamicdrive.com/dynamicindex2/crawler/index.htm

Только не спрашивайте как реализовать при помощи этого то что вы хотите. Подумайте немного, там до ужаса всё просто.

Ссылка на сообщение
Поделиться на других сайтах

текст не останавливается при наведении курсора

Всё там останавливается, если правильно делать :) http://isle-blog.ru/programming/marquee-animation/

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...