КПК

Перегляд повної версії: Вирішений Суворі стандарти на PHP: повинен передаватися по посиланню, тільки змінні



ctrenks
30-05-18, 17:09
Помилка після оновлення VB, щоб 4.2.5 то останній Реліз від vbet..

Суворі стандарти на PHP: варто тільки змінні передаються по посиланню в /xxxx/includes/vbenterprisetranslator_class_translator.php по рядку 410

ctrenks
02-06-18, 21:02
Будь-які думки на цю помилку, її знову з'являтися, але не часто?

vBET
04-06-18, 12:11
Ми будемо розслідувати його і надіслати вам відповідь найближчим часом.

vBET
04-06-18, 12:25
Швидке рішення для Вашої проблеми:
1. Відкрити файл includes/vbenterprisetranslator_class_translator.php
2. Знайти

public function translateTextToDivide(&$toTranslate, $serie) {
3. Видалити з рядка символ '&амп;'
4. Ідіть на 2 (кожен перекладач має свою власну версію цієї функції, так що ви повинні видалити знак в декількох місцях)

Якесь пояснення - знак '&амп;' дозволяє передати цінність, не копіюючи його, щоб він був доданий з міркувань продуктивності.
З якої версії PHP на мову сил, щоб пройти там тільки змінні (значень граф спеціальної, коли функція викликається). Це дуже незручно, тому що треба змінювати в багатьох місцях і створювати тимчасові змінні тільки для виклику функції, але це, як вона працює зараз, тому ми повинні оновити наш код.
Ми дали вам швидко виправити. Ми будемо перевіряти, як використовується функція і вирішити, що краще видалити '&амп;' або створювати тимчасові змінні в деяких місцях.

ctrenks
04-06-18, 18:44
Дякую, але якщо продуктивність є проблемою, я дозволю помилку, як її дуже маленький явищем, але дякую за пояснення.

vBET
15-06-18, 22:25
Рішення без виконання покарань будуть включені в новий реліз. Для швидкого вирішення, будь ласка:
1. Відкрити файл includes/vbenterprisetranslator_class_translator.php
2. Пошук по сайту:

return vbet_translateEncodedText(substr($toTranslate, 0, $point), $this->from, $this->to, $serie, $this)
.$this->translateTextToDivide(substr($toTranslate, $point), $serie);
3. Замінити на:

$rest = substr($toTranslate, $point);
return vbet_translateEncodedText(substr($toTranslate, 0, $point), $this->from, $this->to, $serie, $this)
.$this->translateTextToDivide($rest, $serie);
4. Перейти до 2 (кілька перекладачів є цей код)

Automatic Translations (Powered by Google, Microsoft®, Yandex, SDL Language Cloud, IBM Watson and Apertium):
AfrikaansAlbanianArabicBelarusianBulgarianCatalanChineseCroatianCzechDanishDutchEnglishEstonianFilipinoFinnishFrenchGalicianGermanGreekHaitian CreoleHebrewHindiHungarianIcelandicIndonesianIrishItalianJapaneseKoreanLatvianLithuanianMacedonianMalayMalteseNorwegianPersianPolishPortugueseRomanianRussianSerbianSlovakSlovenianSpanishSwahiliSwedishTaiwaneseThaiTurkishUkrainianVietnameseWelshYiddish
Translations by vBET translator 4.10.1