Перейти к содержанию
Форум поддержки пользователей VamShop

Как включить HTML в отзывах?


Рекомендуемые сообщения

Добрый день! Мне необходимо активировать возможность использовать HTML в отзывах (но только в админской части). Посмотрел файл admin/reviews.php, нашел там строку

        vam_db_query("update " . TABLE_REVIEWS_DESCRIPTION . " set reviews_text = '" . vam_db_input($reviews_text) . "' where reviews_id = '" . vam_db_input($reviews_id) . "'");

Вот думаю - наверное в ней надо поправить?

Или же в БД все хранится в оригинальном виде, а HTML-код экранируется при выводе на странице?

Ссылка на сообщение
Поделиться на другие сайты

Это из "другой оперы".

По умолчанию такой возможности в магазине нет и не будет.

Если вы хотите доработать на своё усмотрение и иметь возможность редактировать отзывы в админке в HTML-редакторе, то подключите его.

Можете посмотреть как это делается, например в файле admin\includes\modules\new_product.php

<td valign="top" class="main"><?php echo vam_draw_textarea_field('products_description_' . $languages[$i]['id'], 'soft', '103', '25', (($products_description[$languages[$i]['id']]) ? stripslashes($products_description[$languages[$i]['id']]) : vam_get_products_description($pInfo->products_id, $languages[$i]['id']))); ?><br /><a href="javascript:toggleHTMLEditor('<?php echo 'products_description_' . $languages[$i]['id'];?>');"><?php echo vam_image(DIR_WS_IMAGES . 'icon_popup.gif', TEXT_TOGGLE_EDITOR); ?></a></td>

и действуйте по аналогии.

Ссылка на сообщение
Поделиться на другие сайты

Мне нужен не HTML-редактор в поле ввода, а чтобы тэги не преобразовывались в &lt; ... &gt;

Это делает функция htmlspecialchars(), только вот в каком именно месте?

Ссылка на сообщение
Поделиться на другие сайты

Нигде никаких преобразований нет.

Именной примитив символа преображается в символ в вашем браузере (а как иначе!).

Смотри рисунки:

1-й Вводим и сохраняем

2-й Проверяем в БД

3-й Проверяем на выводе

4-й Контроль HTML на выводе

post-31-1304838327,8828_thumb.gif

post-31-1304838327,9555_thumb.gif

post-31-1304838328,0182_thumb.gif

post-31-1304838328,075_thumb.gif

Ссылка на сообщение
Поделиться на другие сайты

Я говорю о HTML-тэгах (<a href="...">...</a>, <img src="...">, ...), а не о спецсимволах.

HTML-код в отзывах запрещен, а мне нужно, чтобы он работал.

Ссылка на сообщение
Поделиться на другие сайты

Я нашел, где поправить и решил проблему. Заодно избавился от ненужных переносов строк.

1. Файл product_reviews_info.php

найти

  $reviews_text = vam_break_string(htmlspecialchars($reviews['reviews_text']), 60, '-<br />');

заменить на

  $reviews_text = $reviews['reviews_text'];

2. Файл includes/classes/product.php

найти

  $data_reviews[] = array ('AUTHOR' => $reviews['customers_name'], 'DATE' => vam_date_short($reviews['date_added']), 'RATING' => vam_image('templates/'.CURRENT_TEMPLATE.'/img/stars_'.$reviews['reviews_rating'].'.gif', sprintf(TEXT_OF_5_STARS, $reviews['reviews_rating'])), 'TEXT' => vam_break_string(nl2br(htmlspecialchars($reviews['reviews_text'])), 60, '-<br />'));

заменить на

  $data_reviews[] = array ('AUTHOR' => $reviews['customers_name'], 'DATE' => vam_date_short($reviews['date_added']), 'RATING' => vam_image('templates/'.CURRENT_TEMPLATE.'/img/stars_'.$reviews['reviews_rating'].'.gif', sprintf(TEXT_OF_5_STARS, $reviews['reviews_rating'])), 'TEXT' => nl2br($reviews['reviews_text']));

Ссылка на сообщение
Поделиться на другие сайты

и ещё на выводе сделать в файле includes\modules\product_reviews.php

Заменить

$data_reviews[] = array ('AUTHOR' => $reviews['customers_name'], 'DATE' => vam_date_short($reviews['date_added']), 'RATING' => vam_image('templates/'.CURRENT_TEMPLATE.'/img/stars_'.$reviews['reviews_rating'].'.gif', sprintf(TEXT_OF_5_STARS, $reviews['reviews_rating'])), 'TEXT' => vam_break_string(htmlspecialchars($reviews['reviews_text']), 60, '-<br />'));

На

$data_reviews[] = array ('AUTHOR' => $reviews['customers_name'], 'DATE' => vam_date_short($reviews['date_added']), 'RATING' => vam_image('templates/'.CURRENT_TEMPLATE.'/img/stars_'.$reviews['reviews_rating'].'.gif', sprintf(TEXT_OF_5_STARS, $reviews['reviews_rating'])), 'TEXT' => vam_break_string($reviews['reviews_text'], 60, '-<br />'));

Ссылка на сообщение
Поделиться на другие сайты

Там ещё надо в боксе "отзывы", возможно поправить.

Поставь программу http://www.phpexperteditor.com/

Там хороший и правильный поиск по файлам.

Для жителей России - она бесплатна.

Ссылка на сообщение
Поделиться на другие сайты

Спасибо! Если так правильнее, заменю там.

Да нет, у тебя всё верно. Просто ещё в некотроых местах надо править = во всех местах. Вроде бы мы совместно  ;) все нашли.

Ссылка на сообщение
Поделиться на другие сайты

А это не опасно случайно?!

Могут ведь всякую какую через отзывы добавлять Вам на сайт, iframe вирусы всякие и т.д. и т.п.

Решать конечно Вам, но, на мой взгляд, лучше экранивароть все тэги.

По умолчанию так во всяком случае.

Ссылка на сообщение
Поделиться на другие сайты

А это не опасно случайно?!

Могут ведь всякую какую через отзывы добавлять Вам на сайт, iframe вирусы всякие и т.д. и т.п.

Нет, не опасно. Я сделал фишку, что мне при добавлении отзыва на емейл сразу же приходит уведомление с текстом отзыва (и ссылками на товар/правку отзыва). Очень удобно, и я всегда в курсе, когда и что там пишут. А почту я проверяю постоянно.

Ссылка на сообщение
Поделиться на другие сайты

Не знаю, может в Вашем случае конечно и нормально, но я б не рискнул, всё-таки полно ведь всяких спамеров, вирусов и т.д. и т.п.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...