Дмитро Єлісєєв »Блог» Програмування »Перенаправлення зовнішніх посилань на проміжну сторінку
У найпростішому випадку обробку посилань можна виробляти прямо при виведенні тексту в поданні:
Для настройки компонента можна використовувати методи addProtocols (). setProtocols () і setPrefix () в будь-якому поєднанні:
Також можна працювати класично
Щоб не записувати одні й ті ж настройки кожного разу можна перевизначити їх в своєму класі OuterLinker
і використовувати його замість оригінального:
Для зменшення навантаження краще обробляти текст всього один раз перед збереженням запису в базу даних.
Розглянемо організацію перетворення тексту перед збереженням запису на прикладі моделі фреймворка Yii.
Приклад використання в моделі Yii
Хай в нашій моделі є поля text для вихідного HTML коду і purified_text для обробленого. Додамо в модель методи beforeSave () і afterFind (). в яких будемо робити заміну посилань:
Тепер в поданні потрібно вивести результат:
Якщо необхідно використовувати цю функцію спільно з DPurifyTextBehavior. то методи потрібно трохи змінити. Обробка посилань повинна проводитися після роботи DPurifyTextBehavior. Щоб не зберігати два рази результат в момент afterFind відключимо автосохранение у поведінки 'updateOnAfterFind' => false і будемо зберігати його вручну викликом $ this-> updateModel () (це виклик методу DPurifyTextBehavior :: updateModel ()):
Тепер в тексті всі зовнішні посилання
Як багатьом відомо, для зберігання налаштувань програми в Yii виділений спеціальний розділ `params` в файлі конфігурації. Це рішення досить просте, але воно не дозволяє легко змінювати налаштування самому користувачеві в панелі управління сайту. Черговий питання російською форумі Yii наштовхнув мене поділитися своїм варіантом вирішення згаданого там питання.
C найперших проектів, що підтримують завантаження файлів на сервер, будь-який програміст стикається з необхідністю створення унікальних випадкових імен для завантажених файлів. Розглянемо кілька варіантів вирішення даної проблеми.
Досить часто виникає необхідність простежити час виконання деяких фрагментів програмного коду і відстежити особливо повільні ділянки для їх подальшої оптимізації. Наявні налагоджувальні розширення не проникають всередину ваших файлів, а частіше виводять тільки загальний час виконання скрипта. Для локального рефакторінга і оптимізації вони не підходять.