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

Не могу перенести крипт в отдельный файл js


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

Здравствуйте, возникла такая идея, поместить скрипт <script type="text/javascript"> в отдельный файлик... Любые скрипты переносить получается, а с этым что-то не так... вот собственно и скрипт.


<script type="text/javascript">

<!--

var dle_root	   = '{$config['http_home_url']}';

var dle_admin	  = '{$config['admin_path']}';

var dle_login_hash = '{$dle_login_hash}';

var dle_group	  = {$member_id['user_group']};

var dle_skin	   = '{$config['skin']}';

var dle_wysiwyg	= '{$config['allow_comments_wysiwyg']}';

var quick_wysiwyg  = '{$config['allow_quick_wysiwyg']}';

var dle_act_lang   = ["{$lang['p_yes']}", "{$lang['p_no']}", "{$lang['p_enter']}", "{$lang['p_cancel']}", "{$lang['p_save']}"];

var menu_short	 = '{$lang['menu_short']}';

var menu_full	  = '{$lang['menu_full']}';

var menu_profile   = '{$lang['menu_profile']}';

var menu_send	  = '{$lang['menu_send']}';

var menu_uedit	 = '{$lang['menu_uedit']}';

var dle_info	   = '{$lang['p_info']}';

var dle_confirm	= '{$lang['p_confirm']}';

var dle_prompt	 = '{$lang['p_prompt']}';

var dle_req_field  = '{$lang['comm_req_f']}';

var dle_del_agree  = '{$lang['news_delcom']}';

var dle_complaint  = '{$lang['add_to_complaint']}';

var dle_big_text   = '{$lang['big_text']}';

var dle_orfo_title = '{$lang['orfo_title']}';

var dle_p_send	 = '{$lang['p_send']}';

var dle_p_send_ok  = '{$lang['p_send_ok']}';

var dle_save_ok	= '{$lang['n_save_ok']}';

var dle_del_news   = '{$lang['news_delnews']}';\n

HTML;


if ($user_group[$member_id['user_group']]['allow_all_edit']) {


	$ajax .= <<<HTML

var dle_notice	 = '{$lang['btn_notice']}';

var dle_p_text	 = '{$lang['p_text']}';

var dle_del_msg	= '{$lang['p_message']}';

var allow_dle_delete_news   = true;\n

HTML;


} else {


	$ajax .= <<<HTML

var allow_dle_delete_news   = false;\n

HTML;


}


if ($config['fast_search'] AND $user_group[$member_id['user_group']]['allow_search']) {


	$ajax .= <<<HTML

var dle_search_delay   = false;

var dle_search_value   = '';

$(function(){

	FastSearch();

});

HTML;


}


if (strpos ( $tpl->result['content'], "<pre><code>" ) !== false) {


	$js_array[] = "engine/classes/highlight/highlight.code.js";


	$ajax .= <<<HTML


$(function(){

	$('pre code').each(function(i, e) {hljs.highlightBlock(e, null)});

});

HTML;


}


$ajax .= <<<HTML

//-->

</script>

Сайт - lanifilm.ru. Заранее спасибо за советы!

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

а в чем конкретно трабл, опишите? includ вообще то никто не отменял

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

а в чем конкретно трабл, опишите? includ вообще то никто не отменял

Ну я просто немного порядок хочу навести. В этом деле я не спец особо, так что прошу помочь в этом деле.)

На счет includ не знаю, так как не очень знаком с ним... если есть варианты, то подскажи пожалуйста. И если можно поподробней. :rolleyes:

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

На счет includ не знаю, так как не очень знаком с ним... если есть варианты, то подскажи пожалуйста. И если можно поподробней.
ну я так понимаю, что просто стоит сначала внимательно почитать документацию к движку? там вообще то все написанно.в разделе "Общая информация" например? или мы читаем когда все не работает? или вообще не читаем? Ну если соовсем тяжко читать мануал я вам расшифрую:

Также вы можете подключать один шаблон в другой, используя тег {include file="my_block.tpl"} данный тег подключает указанный файл my_block.tpl в шаблон. Тег призван облегчить структуру шаблона, если используется сложная верстка со множеством тегов. Данный тег действует во всех шаблонных файлах .tpl Подключаемый файл должен находится в той же папке что и другие файлы шаблона. Теги в подключаемом шаблоне должны быть такие же, какие допустимы в шаблоне где подключается файл, например если файл my_block.tpl подключается в шаблоне main.tpl, то и теги в этом файлы будут работать только те которые возможны в main.tpl
а теперь включаем тыковку и думаем ей, как же нам это сделать? Изменено пользователем alex32
Ссылка на сообщение
Поделиться на других сайтах

Если чесно, не догоняю... вот как я делаю <script type="text/javascript" src="ПУТЬ/*****.js"></script> все фурычит, все довольны... но когда применяю для этого скрипта, не работает(. Почему везде работает, а в этом случае нет? Вот я этого не могу понять... А зачем инклуд шаблона делать...!? Мне вообще то надо убрать скрипт из середины шаба, всмысле когда загружаешь страничку и тебе в исходнике мусор... сам файлик который хранит этот мусор (скрипт), лежит не в шаблоне движка, а в корне движка (index.php). если я убераю скрипт в index.php, то не все будет нормально функционировать...

Извиняюсь если что не так, но я если честно не понял как вынести скрипт в отдельный файлик, ибо с первым способом не работает о котором прописал высше.

Ну все равно спасибо за советы! С меня будет вод.._НЕ не, не то... точ, вспомнил, плюсик :)

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

но когда применяю для этого скрипта, не работает(. Почему везде работает, а в этом случае нет?

Потому, что тут не чистый JavaScript, а вперемешку в PHP. И инициализация переменных происходит в зависимости от условия.

Всё, что вы можете сделать, если очень хочется это аккуратно вырезать этот кусок кода.


<?php

$ajax .= <<<HTML

<div id="loading-layer" style="display:none"><div id="loading-layer-text">{$lang['ajax_info']}</div></div>{$pm_alert}

<script type="text/javascript">

<!--

var dle_root	   = '{$config['http_home_url']}';

var dle_admin	  = '{$config['admin_path']}';

var dle_login_hash = '{$dle_login_hash}';

var dle_group	  = {$member_id['user_group']};

var dle_skin	   = '{$config['skin']}';

var dle_wysiwyg	= '{$config['allow_comments_wysiwyg']}';

var quick_wysiwyg  = '{$config['allow_quick_wysiwyg']}';

var dle_act_lang   = ["{$lang['p_yes']}", "{$lang['p_no']}", "{$lang['p_enter']}", "{$lang['p_cancel']}", "{$lang['p_save']}"];

var menu_short	 = '{$lang['menu_short']}';

var menu_full	  = '{$lang['menu_full']}';

var menu_profile   = '{$lang['menu_profile']}';

var menu_send	  = '{$lang['menu_send']}';

var menu_uedit	 = '{$lang['menu_uedit']}';

var dle_info	   = '{$lang['p_info']}';

var dle_confirm	= '{$lang['p_confirm']}';

var dle_prompt	 = '{$lang['p_prompt']}';

var dle_req_field  = '{$lang['comm_req_f']}';

var dle_del_agree  = '{$lang['news_delcom']}';

var dle_complaint  = '{$lang['add_to_complaint']}';

var dle_big_text   = '{$lang['big_text']}';

var dle_orfo_title = '{$lang['orfo_title']}';

var dle_p_send	 = '{$lang['p_send']}';

var dle_p_send_ok  = '{$lang['p_send_ok']}';

var dle_save_ok	= '{$lang['n_save_ok']}';

var dle_del_news   = '{$lang['news_delnews']}';\n

HTML;


if ($user_group[$member_id['user_group']]['allow_all_edit']) {


$ajax .= <<<HTML

var dle_notice	 = '{$lang['btn_notice']}';

var dle_p_text	 = '{$lang['p_text']}';

var dle_del_msg	= '{$lang['p_message']}';

var allow_dle_delete_news   = true;\n

HTML;


} else {


$ajax .= <<<HTML

var allow_dle_delete_news   = false;\n

HTML;


}


if ($config['fast_search'] AND $user_group[$member_id['user_group']]['allow_search']) {


$ajax .= <<<HTML

var dle_search_delay   = false;

var dle_search_value   = '';

$(function(){

FastSearch();

});

HTML;


}


if (strpos ( $tpl->result['content'], "<pre><code>" ) !== false) {


$js_array[] = "engine/classes/highlight/highlight.code.js";


$ajax .= <<<HTML


$(function(){

$('pre code').each(function(i, e) {hljs.highlightBlock(e, null)});

});

HTML;


}


$ajax .= <<<HTML

//-->

</script>

HTML;

?>

Сохранить его в файл, обязательно с расширением PHP.

И за место вырезанного кода, подключить получившейся файл include 'путь_до_файла/имя_файла.php';

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

Здравствуйте, возникла такая идея, поместить скрипт в отдельный файлик...

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

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

Админы - большое Вам спасибо за ответ! Кажется я понял почему не стоит этого делать. Если этот скрипт переместить в файлик, то он не будет меняться, а значит не будет нормально работать, функционировать, так как он динамический, и должен находится вне файла.

Sarvan - тебе тоже спасибо! В будущем пригодится. буду знать как javascript в перемешку с php можно вынести в отдельный файлик.

Всем спасибо за ответы!

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

далать такое лучше не стоит. JS файл отдельный закэшируется. А это не есть гуд, для этого скрипта

Что за кэшируется? :) Он что от этого перестанет быть динамическим? Или начнёт работать как-то по другому?

Конечно сама идея что-то вырезать в отдельный файл, бредова. Но работа от этого в данном случае не изменится.

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

Что за кэшируется? Он что от этого перестанет быть динамическим? Или начнёт работать как-то по другому?

Конечно сама идея что-то вырезать в отдельный файл, бредова. Но работа от этого в данном случае не изменится.

Суть вопроса автора была темы в том что, он хотел перенести JS код, который встроен в код страницы, в отдельный файл, а не PHP код, а данный JS код является динамическим, и генерируется PHP кодом. И JS код не может быть в отдельном файле, потому как станет статическим, а должен быть динамическим. Автору темы не нужно было переносить PHP в отдельный файл, ему нужно было перенести только JS, что невозможно.

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

Я так понял по идеи должно работать в случае если переносить js вместе с пхп в пхп файл... интересно, завтра вечерком попробую :rolleyes:

Идея может быть конечно и бредовая, но все таки дополню - когда-то давно читал один пост, в нем автор данной статьи рассказывал что, текст страницы должен быть по выше к началу html документа, и все скрипты которые находятся выше текста, надо выносить в отделительные файлики. :D Собственно идея оттуда и появилась =).

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

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

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

далать такое лучше не стоит. JS файл отдельный закэшируется. А это не есть гуд, для этого скрипта

Что за кэшируется? :) Он что от этого перестанет быть динамическим? Или начнёт работать как-то по другому?

Конечно сама идея что-то вырезать в отдельный файл, бредова. Но работа от этого в данном случае не изменится.

1. Этот скрипт можно сделать динамическим, вывод сделав на PHP в отдельный файл (+ ещё нагрузка)

2. Браузером такие файлы кэшатся, что это такое и зачем смотри гугл.

3. Подумай головой прежде чем писать, толковать что такое и зачем мне нет смысла.

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

1. Этот скрипт можно сделать динамическим, вывод сделав на PHP в отдельный файл (+ ещё нагрузка)

2. Браузером такие файлы кэшатся, что это такое и зачем смотри гугл.

3. Подумай головой прежде чем писать, толковать что такое и зачем мне нет смысла.

1. Этот скрипт можно сделать динамическим, вывод сделав на PHP в отдельный файл (+ ещё нагрузка)

Какой скрипт сделать динамическим? Он и строится динамически, и переменные инициализируются в зависимости от тех или иных условий.

Какая нагрузка? Он просто подключается. Или ты предлагаешь динамически на JavaScript переписать весь движок?

2. Браузером такие файлы кэшатся, что это такое и зачем смотри гугл.

Посмотри лучше ты туда, или в курсах от Морковина Kohana от А до Я там не сказано об этом?

3. Подумай головой прежде чем писать, толковать что такое и зачем мне нет смысла.

Да, что ты можешь написать из толковать то? Если в начале даже этой темы ты писал как и везде бредятину.

Не различив даже, что это PHP, а не JavaScript. Хамив TC как и почти во всех темах.

Не воспитанный ты дружок. А не воспитанный ты потому, что глупый.

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

main.tpl

<script src="/indexjs.php"></script>
indexjs.php

...

echo <<<HTML

var dle_root	   = '{$config['http_home_url']}';

var dle_admin	  = '{$config['admin_path']}';

var dle_login_hash = '{$dle_login_hash}';

var dle_group	  = {$member_id['user_group']};

var dle_skin	   = '{$config['skin']}';

var dle_wysiwyg    = '{$config['allow_comments_wysiwyg']}';

var quick_wysiwyg  = '{$config['allow_quick_wysiwyg']}';

var dle_act_lang   = ["{$lang['p_yes']}", "{$lang['p_no']}", "{$lang['p_enter']}", "{$lang['p_cancel']}", "{$lang['p_save']}"];

var menu_short	 = '{$lang['menu_short']}';

var menu_full	  = '{$lang['menu_full']}';

var menu_profile   = '{$lang['menu_profile']}';

var menu_send	  = '{$lang['menu_send']}';

var menu_uedit	 = '{$lang['menu_uedit']}';

var dle_info	   = '{$lang['p_info']}';

var dle_confirm    = '{$lang['p_confirm']}';

var dle_prompt	 = '{$lang['p_prompt']}';

var dle_req_field  = '{$lang['comm_req_f']}';

var dle_del_agree  = '{$lang['news_delcom']}';

var dle_complaint  = '{$lang['add_to_complaint']}';

var dle_big_text   = '{$lang['big_text']}';

var dle_orfo_title = '{$lang['orfo_title']}';

var dle_p_send	 = '{$lang['p_send']}';

var dle_p_send_ok  = '{$lang['p_send_ok']}';

var dle_save_ok    = '{$lang['n_save_ok']}';

var dle_del_news   = '{$lang['news_delnews']}';\n

HTML;

...

[/code]

[b] Sarvan Разжевать что и зачем?[/b]

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

Уфффф. Это я этот вариант предлагал? :) К чему этот пример? Что браузер JS кэширует, плюс один запрос или что?

А доступен ли у тебя массив $config, $member_id, $lang

Из темы удаляюсь. ))

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

Sarvdn, спасибо конечно за помочь. Сделал по твоему, но скрипт все равно в исходнике html впаривается... ) удаляю это - include 'путь_до_файла/имя_файла.php'; нет скрипта, снова подключаю, скрипт блестит :o

А мне надо именно чтоб он не вылазил на ружу :ph34r: оотуда, и не блестел :D

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

Админ, спасибо! Скрипт действительно даже если переместить в файлик php, все равно на ружу будет вылазить.

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

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

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

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

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

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

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

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

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

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