Joomla 3.й - Выдаліць падказку скрыпт з загалоўка?

Я спрабую выдаліць непатрэбныя скрыпты з майго карыстацкага шаблону Joomla загаловак, які мне ўдалося выдаліць усе для гэтага, за выключэннем:

<script type="text/javascript">
jQuery(document).ready(function()
                {
                    jQuery('.hasTooltip').tooltip({});
                });
  </script>

Я шукаў на працягу некалькіх гадзін, і я паспрабаваў шматлікія рэчы, каб атрымаць яго выдаліць, але я не магу здацца, каб пазбавіцца ад яго. Вось што я зрабіў, каб выдаліць іншыя сцэнары я не хачу (для каго-небудзь, хто мае гэтае пытанне):

# unset frameworks
JHtml::_('bootstrap.framework',false);
JHtml::_('jquery.framework',false);

# unset scripts
unset($doc->_scripts[$this->baseurl.'/media/jui/js/jquery.min.js']);
unset($doc->_scripts[$this->baseurl.'/media/jui/js/jquery-noconflict.js']);
unset($doc->_scripts[$this->baseurl.'/media/jui/js/bootstrap.min.js']);

Калі хто-то можа дапамагчы мне выдаліць гэтую падказку JavaScript, што б фантастыкай. Так, і я не хачу дакранацца асноўных файлаў, так што я спрабую выдаліць яго з самага index.php файл шаблону.

8
Там не здаецца, дакладнае рашэннем гэтай праблемы ў 3.4.0.
дададзена аўтар Aaron Hudon, крыніца

8 адказы

Некаторыя кампаненты/модуль/Убудова выкліку функцыі JHTML :: _ ( 'behavior.tooltip'). і гэтая функцыя дадаць свой код.

Вы можаце зрабіць:

Брудны спосаб: перайсці да бібліятэк \ CMS \ HTML \ bootstrap.php і змяніць файл у метадзе падказцы (). але памятайце, што файл ядра так абнаўлення могуць overide змены.

Чысты шлях, знайсці кампанент, які дадае гэты код і выдаліць або змяніць яго.

Поспехаў

4
дададзена
Кампаненты, якія патрабуюць JHTML :: _ ( 'bootstrap.tooltip'); (З якіх ёсць шмат) таксама прывядзе гэты код будзе дададзены.
дададзена аўтар John Rix, крыніца

At the end of your web root index.php (not template, http://domain.com/index.php) replace the $app->execute(); line with the following:

// Start the output buffer.
ob_start();

// Execute the application.
$app->execute();

// Get buffer
$buffer = ob_get_clean();

// Change HTML
$buffer = str_replace('<script type="text/javascript">'.chr(10).'jQuery(document).ready(function(){'.chr(10).'  jQuery(\'.hasTooltip\').tooltip({"html": true,"container": "body"});'.chr(10).'});'.chr(10).'  </script>','',$buffer);

// Output buffer
echo($buffer);

Звярніце ўвагу, што вам неабходна будзе выкарыстоўваць <�моцны> EXACT HTML, які ствараецца модулем. Гэта тое, што мой модуль стварэнне, ваш можа быць некалькі іншымі.

У дадатку да выканання HTML перапісвае, як гэта, вы маглі б таксама акуратны выхад, выдаліць спасылкі на модулі і г.д.

Я таксама выкарыстоўваю гэта рабіць рэчы, як змяненне аўтарскага права года на сайце. У модулі пазіцыі, я спасылацца на бягучы год, як «{год}», а затым дадаць яшчэ адзін str_replace, які робіць наступнае:

$buffer = str_replace('{year}',date('Y'),$buffer);

Бінга, заўсёды паказвае бягучы год.

Атрымлівайце асалоду ад ...

3
дададзена

You'll have to manually parse $doc->_script. The $doc->_scripts array contains scripts that are linked to another source while $doc->_script is for script declarations like the tooltip one.

3
дададзена
Я паспрабаваў з дапамогай $ DOC -> _ сцэнар, але гэта не пікап кода падказкі - масіў вяртае пустым.
дададзена аўтар SoulieBaby, крыніца
Я знайшоў, дзе ён дадае код, але я не хачу, каб зламаць ядро, каб выдаліць яго. Я таксама паспрабаваў паўтараючы з $ ў дакуменце -> _ масіў сцэнара ў загалоўку і ніжні калантытула індэкснага файла шаблон, але да гэтага часу нічога не атрымліваю.
дададзена аўтар SoulieBaby, крыніца
Гэта працуе ў 3.2.1, але не працуе ў 3.2.2
дададзена аўтар ContextSwitch, крыніца
Пакрокавы код, пачынаючы з JHtmlBootstrap :: падказкі (), дзе генеруюцца, што JS фрагмент кода, вы ўбачыце, што фрагмент код усталяваны ў $ дакумента -> _ сцэнар. Чаму вы атрымліваеце пусты масіў за мной у дадзены момант, але вы глядзіце на патрэбным месцы.
дададзена аўтар Michael, крыніца

На аснове Joomla дакументы , 2 рэчы, каб разгледзець:

а) У прыведзеным ніжэй кодзе, вы на самой справе ўключэнне/уключаючы бутстрапе і JQuery:

# unset frameworks
JHtml::_('bootstrap.framework',false);// including bootstrap!
JHtml::_('jquery.framework',false);// including jquery!

Пры пачатковай загрузкі ўключана, аўтаматычна дазваляе Joomla JQuery, і калі ўключаны Joomla JQuery, Joomla аўтаматычна дае падказку.

Толькі не называйце гэтыя функцыі. <�Код> скід вы выкарыстоўвалі выдаліце ​​загрузнік і jQuery правільна:

unset($doc->_scripts[$this->baseurl.'/media/jui/js/jquery.min.js']);
unset($doc->_scripts[$this->baseurl.'/media/jui/js/jquery-noconflict.js']);
unset($doc->_scripts[$this->baseurl.'/media/jui/js/bootstrap.min.js']);
unset($doc->_scripts[$this->baseurl.'/media/jui/js/jquery-migrate.min.js']);

б) калі сцэнар падказкі ўсё яшчэ уключаны, гэта, верагодна, ўстаўляецца JHTML :: _ ( «behavior.tooltip»); дзесьці ў выкарыстоўваным кампаненце.

І, нарэшце, ніколі ніколі ніколі не змяняць файлы ядра Joomla. гэта найгоршы практык.

PS. For those who mentioned that the tooltip script is inserted but they don't find it in the $doc, that's because the $doc doesn't contain inline scripts.

2
дададзена

Мне ўдалося пазбавіцца ад убудаванага JavaScript, выкарыстоўваючы гэты код у файле index.php майго шаблону:

unset($this->_script['text/javascript']);

адмова ад адказнасці: Я не з'яўляюся распрацоўшчыкам PHP, так што выкарыстоўвайце вышэй код на свой страх і рызыка :)

2
дададзена

I have already meet this issue, I am using Joomla 3. If it is your case then you can solve it by doing this : Joomla 3 comes with jQuery on board, so by adding Joomla yourself, this may generate the issue. Also make sure you include your jQuery over . If you necessary wants to include it. But I do not recommend this. Hope this helps

1
дададзена

У мяне была тая ж праблема, калі я будавала Joomla шаблон/сайт толькі з HTML5, CSS3 і некаторых невялікіх убудоў jQuery для эфектаў. Гэта было няварта уключаючы цяжкі Bootstrap, каб паказаць некаторыя падказкі, якія я таксама не выкарыстоўваць наогул.

Althought я ўжо знятыя з аховай СМІ/Жуй/JS/bootstrap.min.js ад JDocument, але гэтыя радкі коды

jQuery(document).ready(function(){
    jQuery('.hasTooltip').tooltip({"html": true,"container": "body"});
});

яшчэ дапоўнены бібліятэкі/СЕ/html/bootstrap.php. Такім чынам, я атрымаў памылку «функцыя падказкі не знойдзены».

Я вырашыў, што пры даданні пусты функцыі ў файл JS майго шаблону.

jQuery.fn.tooltip = function (option) { };
1
дададзена

Там гэта убудова Joomla даступныя, які адмяняе Bootstrap, а таксама выдаляе функцыю падказцы фрагмент якім ўстаўляецца JHTML :: _ ( «behavior.tooltip»); дзе-то ў любым кампаненце.

Глядзіце тут: Адключыць Bootstrap убудова

0
дададзена