Страница 1 из 2

Как добавить ссылку в объявление?

СообщениеДобавлено: 15 мар 2013, 07:07
makeev
Вот есть вопрос, как же сделать так, чтобы в объявлении можно было поставить ссылки или как бы редактор для написания html письма в объявлении. И как можно сделать так, чтобы в объявлении можно было делать абзацы, и чтобы они не сливались в окончательной версии, а то они сливаются в описании и в что рядом. Надеюсь, ответ поможет не только мне. Спасибо.

Re: Как добавить ссылку в объявление?

СообщениеДобавлено: 15 мар 2013, 09:07
andipas
Важно! Работает только на версии > 1.4

Насколько понял, речь идет о поле "описание" в объявлении. Данное поле отображается при просмотре объявления.

Чтобы вставить wiswig редактор для этого поля, в фале /protected/modules/apartments/views/backend/__form.php

Код: Выделить всё

    $this
->widget('application.modules.lang.components.langFieldWidget', array(
        'model' => $model,
        'field' => 'description',
        'type' => 'text'
    ));
 


поменяйте на

Код: Выделить всё

    $this
->widget('application.modules.lang.components.langFieldWidget', array(
        'model' => $model,
        'field' => 'description',
        'type' => 'text-editor'
    ));
 


Файл шаблона отображения /protected/modules/apartments/views/_view.php

Код: Выделить всё

            if
($data->getStrByLang('description')){
                echo '<p><strong>'.tt('Description').':</strong> '.CHtml::encode($data->getStrByLang('description')).'</p>';
            }
 


поменяйте на

Код: Выделить всё

            if
($data->getStrByLang('description')){
                echo '<p><strong>'.tt('Description').':</strong> '.$data->getStrByLang('description').'</p>';
            }
 

Re: Как добавить ссылку в объявление?

СообщениеДобавлено: 15 мар 2013, 11:36
makeev
Спасибо, все появилось, вот только сейчас описание есть и в основном и в дополнительном поле. Так и планируется? или можно избавиться от поля описания в дополнительном? И от поля что находится рядом тоже? Это в файле: /protected/modules/apartments/views/backend/__form.php ?
Только вот как называются показатели там в коде:
Количество комнат
Этаж / Этажей всего
Окна выходят
Количество спальных мест
Описание
Что находится рядом

Чтобы ненароком не перепутать, а то категории товара то нужны, ну например, кухня, безопасность
Подскажите% :-)

Re: Как добавить ссылку в объявление?

СообщениеДобавлено: 15 мар 2013, 12:35
makeev
Блин, после проверки, тестово стал заполнять объявление, не дает мне этого сделать... вот блин, пишет, что в поле название нужно заполнить, и до меня дошло, что этот редактор появился на месте названия, вот что изменилось, нужно получается поменять обратно, оставить поле названия, а вставить за место поля описания во вкладке дополнительно. Так нужно сделать? Так значит что мне нужно поменять в файла, чтобы правильно все было? У меня самая последняя версия, если что.

Re: Как добавить ссылку в объявление?

СообщениеДобавлено: 15 мар 2013, 12:55
makeev
Все дошло по поводу текста, я просто этот код не туда вставил. Нужно по сути в нужное место, вместо text вставлять text-editor и все будет гуд.

Re: Как добавить ссылку в объявление?

СообщениеДобавлено: 29 июн 2013, 10:41
vanred79
Добрый день! В 1.3 как сделать вышеперечисленное

Re: Как добавить ссылку в объявление?

СообщениеДобавлено: 30 июн 2013, 06:59
Koduc
vanred79 писал(а):Добрый день! В 1.3 как сделать вышеперечисленное

Глянул код - похоже на то, что точно также. Все нужные элементы для указанного кода были в версии 1.3.2

Re: Как добавить ссылку в объявление?

СообщениеДобавлено: 30 июн 2013, 07:50
andipas
Koduc писал(а):
vanred79 писал(а):Добрый день! В 1.3 как сделать вышеперечисленное

Глянул код - похоже на то, что точно также. Все нужные элементы для указанного кода были в версии 1.3.2


Скорее всего только в платной версии, в бесплатной 1.3 отличается LangFieldWidget

Re: Как добавить ссылку в объявление?

СообщениеДобавлено: 22 авг 2013, 08:00
Mikado
andipas писал(а):Важно! Работает только на версии > 1.4

Насколько понял, речь идет о поле "описание" в объявлении. Данное поле отображается при просмотре объявления.

Чтобы вставить wiswig редактор для этого поля, в фале /protected/modules/apartments/views/backend/__form.php

Код: Выделить всё

    $this
->widget('application.modules.lang.components.langFieldWidget', array(
        'model' => $model,
        'field' => 'description',
        'type' => 'text'
    ));
 


поменяйте на

Код: Выделить всё

    $this
->widget('application.modules.lang.components.langFieldWidget', array(
        'model' => $model,
        'field' => 'description',
        'type' => 'text-editor'
    ));
 


Файл шаблона отображения /protected/modules/apartments/views/_view.php

Код: Выделить всё

            if
($data->getStrByLang('description')){
                echo '<p><strong>'.tt('Description').':</strong> '.CHtml::encode($data->getStrByLang('description')).'</p>';
            }
 


поменяйте на

Код: Выделить всё

            if
($data->getStrByLang('description')){
                echo '<p><strong>'.tt('Description').':</strong> '.$data->getStrByLang('description').'</p>';
            }
 


Добрый день!

Вставил вышеуказанным способом как описано здесь и здесь viewtopic.php?f=17&t=266 редактор в поле "описание" в объявлении. все работало в поле появилась панелька редактора с кнопками и режимом кода и режимом просмотра - публиковались теги в тексте кода все работало месяца 3 наверно. Сегодня смотрю пропала панелька редактора текст в админке отображается в режиме кода с тегами и ссылками -на сайте все осталось нормально. (прилагаю скриншот и код файлов)


Изображение

Re: Как добавить ссылку в объявление?

СообщениеДобавлено: 22 авг 2013, 08:21
Mikado
/protected/modules/apartments/views/backend/__form.php (фрагмент с куском кода)

Код: Выделить всё
        ?>
        <div class="clear"></div>
    </div>

    <div class="clear">&nbsp;</div>

    <?php
[b]    $this->widget('application.modules.lang.components.langFieldWidget', array(
        'model' => $model,
        'field' => 'description',
        'type' => 'text-editor'
    ));[/b]
    ?>

    <div class="clear">&nbsp;</div>

    <?php
[b]    $this->widget('application.modules.lang.components.langFieldWidget', array(
        'model' => $model,
        'field' => 'description_near',
        'type' => 'text-editor'
    ));[/b]
    ?>

    <div class="clear">&nbsp;</div>

    <?php
    $this
->widget('application.modules.lang.components.langFieldWidget', array(
        'model' => $model,
        'field' => 'address',
        'type' => 'string'
    ));
    ?>


Файл шаблона отображения /protected/modules/apartments/views/_view.php (фрагмент с куском кода)

Код: Выделить всё
<div class="viewapartment-description">
            <?php if(param('useShowUserInfo')): ?>
            <?php if (isset($data->user->phone) && $data->user->phone) : ?>
                <p>
                    <strong><?php echo Yii::t('module_apartments', 'Owner phone')?></strong>:&nbsp;<span id="owner-phone"><?php echo CHtml::link(Yii::t('module_apartments', 'Show'), 'javascript: void(0);', array('onclick' => 'generatePhone()')); ?></span>
                </p>
                <?php
                Yii
::app()->clientScript->registerScript('generate-phone', '
                    function generatePhone(){
                        $("span#owner-phone").html(\'<img src="'
.Yii::app()->controller->createUrl('/apartments/main/generatephone', array('id' => $data->id)).'" style="vertical-align: text-top;"/>\');
                    }

                '
, CClientScript::POS_END);
                ?>
                <?php endif; ?>
            <?php
            $additionalInfo 
= 'additional_info_'.Yii::app()->language;
            if (isset($data->user->$additionalInfo) && !empty($data->user->$additionalInfo)) : ?>
                <p>
                    <strong><?php echo tt('Owner additional info', 'common')?></strong>:&nbsp;<?php echo CHtml::encode($data->user->$additionalInfo);?>
                </p>
                <?php endif; ?>
            <?php endif;


[
b]            if($data->getStrByLang('description')){
                echo '<p><strong>'.tt('Description').':</strong> '.$data->getStrByLang('description').'</p>';
            }[/b]

            if($data->getStrByLang('description_near')){
                echo '<p><strong>'.tt('Near').':</strong> '.CHtml::decode($data->getStrByLang('description_near')).'</p>';
            }

            if($data->stationsTitle() || $data->getStrByLang('address')){
                if($data->stationsTitle()){
                    echo '<p><strong>'.tt('Metro').':</strong> '.CHtml::encode($data->stationsTitle()).'</p>';
                }
                $adressFull = '';
                if(isset($data->city) && isset($data->city->name)){
                    $cityName = $data->city->name;
                    if($cityName) {
                        $adressFull = ' '.$cityName;
                    }
                }
                $adress = CHtml::encode($data->getStrByLang('address'));
                if($adress){
                    $adressFull .= ', '.$adress;
                }
                if($adressFull){
                    echo '<p><strong>'.tt('Address').':</strong> '.$adressFull.'</p>';
                }
            }

            if($data->type == Apartment::TYPE_CHANGE && $data->getStrByLang('exchange_to')){
                echo '<p><strong>'.tt('Exchange to', 'apartments').':</strong> '.CHtml::encode($data->getStrByLang('exchange_to')).'</p>';
            }
        ?>

        <?php if(issetModule('bookingcalendar')) :?>
            <?php $this->renderPartial('//../modules/bookingcalendar/views/calendar', array('apartment' => $data)); ?>
        <?php endif; ?>

        <?php
            $prev 
= '';
            $column1 = 0;
            $column2 = 0;
            $column3 = 0;

            foreach($data->getFullInformation($data->id, $data->type) as $item){
                if($item['title']){
                    if($prev != $item['style']){
                        $column2 = 0;
                        $column3 = 0;
                        echo '<div class="clear"></div>';
                    }
                    $$item['style']++;
                    $prev = $item['style'];
                    echo '<div class="'.$item['style'].'">';
                    echo '<span class="viewapartment-subheader">'.CHtml::encode($item['title']).'</span>';
                    echo '<ul class="apartment-description-ul">';
                    foreach($item['values'] as $key => $value){
                        if($value){
                            if (param('useReferenceLinkInView')) {
                                echo '<li><span>'.CHtml::link(CHtml::encode($value), $this->createAbsoluteUrl('/service-'.$key)).'</span></li>';
                            }
                            else {
                                echo '<li><span>'.CHtml::encode($value).'</span></li>';
                            }
                        }
                    }
                    echo '</ul>';
                    echo '</div>';
                    if(($item['style'] == 'column2' && $column2 == 2)||$item['style'] == 'column3' && $column3 == 3){
                        echo '<div class="clear"></div>';
                    }

                }
            }
        ?>
        <div class="clear"></div>
    </div>


Подскажите пожалуйста из за чего могла пропасть панелька редактора с кнопками и что делать? Прошу помочь :) Спасибо! С уважением!