21.09.2017 01:39:39 pm
HTML код движка phpFOX не валиден, я решил докопаться до этого.
Валидность проверяем тут: https://validator.w3.org/.
На странице с лентой новостей несколько тегов с одинаковым идентификатором, что не правильно, на странице должны быть только уникальные id. Я решил заменить id на data-userinfo, делаем так:
Открываем файл: include/library/phpfox/template/cache.class.php, строку:
Меняем на:
Затем открываем: static/jscript/user_info.js, находим:
Меняем на:
Находим:
Меняем на:
Далее открываем: module/feed/include/service/feed.class.php, находим:
Меняем на:
Находим:
Меняем на:
Открываем: module/feed/template/default/block/content.html.php, находим:
Меняем на:
После внесенных изменений, чистим кэш сайта, возможно потребуется очистка кэша браузера.
Валидность проверяем тут: https://validator.w3.org/.
На странице с лентой новостей несколько тегов с одинаковым идентификатором, что не правильно, на странице должны быть только уникальные id. Я решил заменить id на data-userinfo, делаем так:
<span class="user_profile_link_span" id="js_user_name_link_Slash">
Открываем файл: include/library/phpfox/template/cache.class.php, строку:
$sVariable = '\'<span class="user_profile_link_span" id="js_user_name_link_\' . ' . $sVariable . '[\'' . $sSuffix . 'user_name\'] . \'"' . ($bAuthor ? ' itemprop="author"' : '') . '><a href="\' . Phpfox::getLib(\'phpfox.url\')->makeUrl(\'profile\', array(' . $sVariable . '[\'' . $sSuffix . 'user_name\'], ((empty(' . $sVariable . '[\'' . $sSuffix . 'user_name\']) && isset(' . $sVariable . '[\'' . $sSuffix . 'profile_page_id\'])) ? ' . $sVariable . '[\'' . $sSuffix . 'profile_page_id\'] : null))) . \'"' . $sExtra . '>' . $sValue . '</a></span>\'';
Меняем на:
$sVariable = '\'<span class="user_profile_link_span" data-userinfo="\' . ' . $sVariable . '[\'' . $sSuffix . 'user_name\'] . \'"' . ($bAuthor ? ' itemprop="author"' : '') . '><a href="\' . Phpfox::getLib(\'phpfox.url\')->makeUrl(\'profile\', array(' . $sVariable . '[\'' . $sSuffix . 'user_name\'], ((empty(' . $sVariable . '[\'' . $sSuffix . 'user_name\']) && isset(' . $sVariable . '[\'' . $sSuffix . 'profile_page_id\'])) ? ' . $sVariable . '[\'' . $sSuffix . 'profile_page_id\'] : null))) . \'"' . $sExtra . '>' . $sValue . '</a></span>\'';
Затем открываем: static/jscript/user_info.js, находим:
var $sUserName = $(this).parent().attr('id').replace('js_user_name_link_', '');
Меняем на:
var $sUserName = $(this).parent().data('userinfo');
Находим:
oCloseObject = $(this).parent().attr('id').replace('js_user_name_link_', '');
Меняем на:
oCloseObject = $(this).parent().data('userinfo');
Далее открываем: module/feed/include/service/feed.class.php, находим:
$sUserLink = '<span class="user_profile_link_span" id="js_user_name_link_' . $aLike['user_name'] . '"><a href="' . $oUrl->makeUrl($aLike['user_name']) . '">'.$oParse->shorten($aLike['full_name'], 30) .'</a></span>';
Меняем на:
$sUserLink = '<span class="user_profile_link_span" data-userinfo="' . $aLike['user_name'] . '"><a href="' . $oUrl->makeUrl($aLike['user_name']) . '">'.$oParse->shorten($aLike['full_name'], 30) .'</a></span>';
Находим:
return ($bAddSpan ? '<span class="user_profile_link_span" id="js_user_name_link_' . $sUserName . '">' : '') . '<a href="' . $sLink . '">' . $sStr . '</a>' . ($bAddSpan ? '</span>' : '');
Меняем на:
return ($bAddSpan ? '<span class="user_profile_link_span" data-userinfo="' . $sUserName . '">' : '') . '<a href="' . $sLink . '">' . $sStr . '</a>' . ($bAddSpan ? '</span>' : '');
Открываем: module/feed/template/default/block/content.html.php, находим:
<span class="user_profile_link_span" id="js_user_name_link_{$aFeed.feed_title_sub|clean}">
Меняем на:
<span class="user_profile_link_span" data-userinfo="{$aFeed.feed_title_sub|clean}">
После внесенных изменений, чистим кэш сайта, возможно потребуется очистка кэша браузера.
- Жалоба
21.09.2017 01:43:10 pm
Атрибут
Очищаем движок от "старья", открываем: include/library/twitter/tests/coverage/EpiCurl.php.html, находим:
Меняем на:
Открываем: include/library/twitter/tests/coverage/EpiOAuth.php.html, находим:
Меняем на:
Открываем: include/library/twitter/tests/coverage/EpiTwitter.php.html, находим:
Меняем на:
Открываем: include/library/twitter/tests/coverage/tests_AllTests.php.html, находим:
Меняем на:
Открываем: static/jscript/wysiwyg/tiny_mce/plugins/advimage/js/image.js, находим:
Меняем на:
Открываем: static/jscript/wysiwyg/tiny_mce/plugins/advlink/js/advlink.js, находим:
Меняем на:
Открываем: static/jscript/wysiwyg/tiny_mce/plugins/media/js/media.js, находим:
Меняем на:
Открываем: static/jscript/wysiwyg/tiny_mce/plugins/preview/example.html, находим:
Меняем на:
Открываем: static/jscript/wysiwyg/tiny_mce/plugins/template/js/template.js, находим:
Меняем на:
Открываем: static/jscript/wysiwyg/tiny_mce/themes/advanced/image.js, находим:
Меняем на:
Открываем: static/jscript/wysiwyg/tiny_mce/themes/advanced/link.js, находим:
Меняем на:
language="javascript"
в теге script
, считается устаревшим, а в движке этот атрибут мне попадался несколько раз.Очищаем движок от "старья", открываем: include/library/twitter/tests/coverage/EpiCurl.php.html, находим:
<script language="javascript">
Меняем на:
<script type="text/javascript">
Открываем: include/library/twitter/tests/coverage/EpiOAuth.php.html, находим:
<script language="javascript">
Меняем на:
<script type="text/javascript">
Открываем: include/library/twitter/tests/coverage/EpiTwitter.php.html, находим:
<script language="javascript">
Меняем на:
<script type="text/javascript">
Открываем: include/library/twitter/tests/coverage/tests_AllTests.php.html, находим:
<script language="javascript">
Меняем на:
<script type="text/javascript">
Открываем: static/jscript/wysiwyg/tiny_mce/plugins/advimage/js/image.js, находим:
document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
Меняем на:
document.write('<script type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
Открываем: static/jscript/wysiwyg/tiny_mce/plugins/advlink/js/advlink.js, находим:
document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
Меняем на:
document.write('<script type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
Открываем: static/jscript/wysiwyg/tiny_mce/plugins/media/js/media.js, находим:
document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
Меняем на:
document.write('<script type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
Открываем: static/jscript/wysiwyg/tiny_mce/plugins/preview/example.html, находим:
<script language="javascript" src="../../tiny_mce_popup.js"></script>
Меняем на:
<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
Открываем: static/jscript/wysiwyg/tiny_mce/plugins/template/js/template.js, находим:
document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></sc'+'ript>');
Меняем на:
document.write('<script type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
Открываем: static/jscript/wysiwyg/tiny_mce/themes/advanced/image.js, находим:
document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
Меняем на:
document.write('<script type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
Открываем: static/jscript/wysiwyg/tiny_mce/themes/advanced/link.js, находим:
document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
Меняем на:
document.write('<script type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
21.09.2017 01:45:01 pm
В исходном коде при определенных условиях, выводится пустой тег <h1>, в добавок тег имеет атрибут для установки ширины (width), но без размера:
Исправляем. Открываем: module/profile/template/default/block/header.html.php, находим:
И меняем на:
В файле: module/user/template/default/block/register/step1.html.php, строку:
Заменил на:
В файле: static/nodb.html, строку:
Заменил на:
В этом же файле, удалил строки:
В файле: include/library/phpfox/phpfox/phpfox.class.php, удалил строки:
<h1 style="width:;"></h1>
Исправляем. Открываем: module/profile/template/default/block/header.html.php, находим:
<h1 style="width:{if isset($aPage)}{else}400px{/if};">
{if isset($aUser.user_name)}
<a href="{if isset($aUser.link) && !empty($aUser.link)}{url link=$aUser.link}{else}{url link=$aUser.user_name}{/if}" title:"{$aUser.full_name|clean}">
{$aUser.full_name|clean|split:30|shorten:50:'...'}
</a>
{/if}
{foreach from=$aBreadCrumbs key=sLink item=sCrumb name:link}{if $phpfox.iteration.link == 1}<span class="profile_breadcrumb">»</span><a href="{$sLink}">{$sCrumb}</a>{/if}{/foreach}
</h1>
И меняем на:
{if isset($aUser.user_name)}
<h1{if empty($aPage)} style="width: 400px;"{/if}>
<a href="{if isset($aUser.link) && !empty($aUser.link)}{url link=$aUser.link}{else}{url link=$aUser.user_name}{/if}" title:"{$aUser.full_name|clean}">
{$aUser.full_name|clean|split:30|shorten:50:'...'}
</a>
</h1>
{/if}
{foreach from=$aBreadCrumbs key=sLink item=sCrumb name:link}
{if $phpfox.iteration.link == 1}
<span class="profile_breadcrumb">»</span><a href="{$sLink}">{$sCrumb}</a>
{/if}
{/foreach}
В файле: module/user/template/default/block/register/step1.html.php, строку:
<div><input type="hidden" name:"val[full_name]" id="full_name" value="stock" size:"30" /></div>
Заменил на:
<div><input type="hidden" name:"val[full_name]" id="full_name" value="stock" /></div>
В файле: static/nodb.html, строку:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Заменил на:
<!DOCTYPE html>
В этом же файле, удалил строки:
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="-1" />
<meta http-equiv="pragma" content="no-cache" />
В файле: include/library/phpfox/phpfox/phpfox.class.php, удалил строки:
'<meta http-equiv="cache-control" content="no-cache" />',
'<meta http-equiv="expires" content="-1" />',
'<meta http-equiv="pragma" content="no-cache" />',
03.05.2018 07:54:17 am
В движке используются ссылки на "текущею страницу" с атрибутом
Через поиск по всем файлам нашел ссылки с устаревшим атрибутом и заменил
Покопавшись в коде, нашел лишние куски и повыкидывал их. Например, в файле: "module/forum/template/default/block/post.html.php", этот кусок кода:
Заменил на:
Еще Валидатор меня предупреждает:
Это говорит о том, что у всех тегов
С атрибутом
name
, что является устаревшим для атрибута ссылки и при проверки валидатором исходного кода можно получить ошибку: The "name" attribute is obsolete. Consider putting an "id" attribute on the nearest container instead
Через поиск по всем файлам нашел ссылки с устаревшим атрибутом и заменил
name
на id
. После получил такую ошибку: Duplicate ID xxxxx
Покопавшись в коде, нашел лишние куски и повыкидывал их. Например, в файле: "module/forum/template/default/block/post.html.php", этот кусок кода:
{if empty($bIsPostUpdateText)}
<div id="post{$aPost.post_id}">
{/if}
<div class="js_post_count"><a id="post{$aPost.post_id}"></a></div>
Заменил на:
<div id="post{$aPost.post_id}" class="js_post_count">
Еще Валидатор меня предупреждает:
The type attribute is unnecessary for JavaScript resources
Это говорит о том, что у всех тегов
<script>
атрибут type
больше не нужен и его следует удалить.С атрибутом
rel
, как и с многим другим, в phpFox полный бардак, надо разбираться.