Підтвердження переходу по зовнішніх посиланнях в yii

Дмитро Єлісєєв »Блог» Програмування »Перенаправлення зовнішніх посилань на проміжну сторінку

Підтвердження переходу по зовнішніх посиланнях в yii

У найпростішому випадку обробку посилань можна виробляти прямо при виведенні тексту в поданні:

Для настройки компонента можна використовувати методи 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 найперших проектів, що підтримують завантаження файлів на сервер, будь-який програміст стикається з необхідністю створення унікальних випадкових імен для завантажених файлів. Розглянемо кілька варіантів вирішення даної проблеми.

Досить часто виникає необхідність простежити час виконання деяких фрагментів програмного коду і відстежити особливо повільні ділянки для їх подальшої оптимізації. Наявні налагоджувальні розширення не проникають всередину ваших файлів, а частіше виводять тільки загальний час виконання скрипта. Для локального рефакторінга і оптимізації вони не підходять.