Задать вопрос
  • Как сверстать такую границу блока?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Ответ написан
    Комментировать
  • Как правильно записать цикл в Stylus?

    monochromer
    @monochromer
    DIVeloper
    Нужно использовать интерполяцию переменных

    for $n in (1..3)
    	.class:nth-child({$n})
    		background-position-y ($n - 1) * 25%
    Ответ написан
    Комментировать
  • Вращающийся барабан на javascript?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    CSS3 animation:
    .element-animation{
      animation: animationFrames ease 3s;
      animation-iteration-count: infinite;
      transform-origin: 50% 50%;
      animation-fill-mode:forwards; /*when the spec is finished*/
      -webkit-animation: animationFrames ease 3s;
      -webkit-animation-iteration-count: infinite;
      -webkit-transform-origin: 50% 50%;
      -webkit-animation-fill-mode:forwards; /*Chrome 16+, Safari 4+*/ 
      -moz-animation: animationFrames ease 3s;
      -moz-animation-iteration-count: infinite;
      -moz-transform-origin: 50% 50%;
      -moz-animation-fill-mode:forwards; /*FF 5+*/
      -o-animation: animationFrames ease 3s;
      -o-animation-iteration-count: infinite;
      -o-transform-origin: 50% 50%;
      -o-animation-fill-mode:forwards; /*Not implemented yet*/
      -ms-animation: animationFrames ease 3s;
      -ms-animation-iteration-count: infinite;
      -ms-transform-origin: 50% 50%;
      -ms-animation-fill-mode:forwards; /*IE 10+*/
    }
    
    @keyframes animationFrames{
      0% {
        transform:  rotate(0deg) ;
      }
      100% {
        transform:  rotate(3600deg) ;
      }
    }
    
    @-moz-keyframes animationFrames{
      0% {
        -moz-transform:  rotate(0deg) ;
      }
      100% {
        -moz-transform:  rotate(3600deg) ;
      }
    }
    
    @-webkit-keyframes animationFrames {
      0% {
        -webkit-transform:  rotate(0deg) ;
      }
      100% {
        -webkit-transform:  rotate(3600deg) ;
      }
    }
    
    @-o-keyframes animationFrames {
      0% {
        -o-transform:  rotate(0deg) ;
      }
      100% {
        -o-transform:  rotate(3600deg) ;
      }
    }
    
    @-ms-keyframes animationFrames {
      0% {
        -ms-transform:  rotate(0deg) ;
      }
      100% {
        -ms-transform:  rotate(3600deg) ;
      }
    }
    Ответ написан
    Комментировать
  • Как настроить приложение под структуру бд?

    nowm
    @nowm
    Через /config/main.php это не очень удобно — потому что тогда вам нужно будет предусмотреть ситуацию, чтобы всё это дело записывалось в конфиг, когда администратор сервера захочет что-то модифицировать «через интерфейс».

    Проще создать пару таблиц в БД, которые будут хранить эти поля.

    CREATE TABLE IF NOT EXISTS `table_table` (
      `table_id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(32) NOT NULL,
      PRIMARY KEY (`table_id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    
    INSERT INTO `table` (`table_id`, `name`) VALUES
    (1, 'accounts');
    
    CREATE TABLE IF NOT EXISTS `table_field` (
      `table_field_id` int(11) NOT NULL AUTO_INCREMENT,
      `table_id` int(11) NOT NULL,
      `name` varchar(32) NOT NULL,
      `alias` varchar(32) NOT NULL,
      `label` varchar(64) NOT NULL,
      PRIMARY KEY (`table_field_id`),
      KEY `table_id` (`table_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    
    ALTER TABLE `table_field`
      ADD CONSTRAINT `table_field_ibfk_1` FOREIGN KEY (`table_id`) 
      REFERENCES `table_table` (`table_id`) ON DELETE CASCADE ON UPDATE CASCADE;
    
    INSERT INTO `table_field` (`table_field_id`, `table_id`, `name`, `alias`, `label`) VALUES
    (1, 1, 'id', 'id', 'ID'),
    (2, 1, 'username', 'username', 'Ваше имя'),
    (3, 1, 'password', 'pass', 'Пароль');


    Потом создаёте модели для этих двух таблиц, контроллеры, реализуете CRUD, и у вас есть интерфейс для настройки полей. «C» и «D» я зачеркнул, чтобы показать, что нужно только оставить возможность читать и редактировать существующие записи, а добавлять/удалять их возможности быть не должно. На странице редактирования, например, нужно сделать так, чтобы доступны для изменения были только «alias» и «label».

    Данные о полях потом получаете как обычно данные из модели получаете. Я бы не стал использовать их как $model->{тут_генерируется_название_поля}, но прямо так навскидку я ничего другого предложить не могу, потому что не вижу всей картины.

    Получать данные из конфига тоже можно, но вы в этот момент потеряете возможность настраивать состав полей через интерфейс (без дополнительных сложностей с чтением/перезаписью PHP-файла из PHP-файла).
    Ответ написан
    Комментировать
  • Необходимо ли писать дополнительные методы в модели, чтобы вытаскивать некоторые данные?

    Ну я лично пишу подобные функции, только оформляю их в качестве статических и запихиваю их в соответствующую модель, т.е. тот же код можно было оформить так

    <?php
    
    class User extends CActiveRecord
    {
        // ...
        public static function getDate($id)
        {
            $user = self::model()->findByPk($id, array('select' => 'date'));
            return $user === null ? null : $user->date;
        }
        // ...
    }

    и в будущем использовать данную функцию так User::getDate($id)
    Ответ написан
    4 комментария
  • Как сложить 2 массива без замены аргументов в одинаковых ключах?

    $ar1 = array('img'=>'name.png','label'=>'myImage','desc'=>'ImageDesc');
    $ar2 = array('img'=>'name2.png','label'=>'myImage2','desc'=>'ImageDesc2');
    ...
    $arN = array('img'=>'nameN.png','label'=>'myImageN','desc'=>'ImageDescN');
    $newArray = array();
    for ($i=1; $i<=$N; $i++) {
        $_ar = 'ar'.$i;
        $newArray[] = $$_ar;
    }

    Вместо $arN - самый последний массив. $N - число таких массивов. Подразумевается, что имена массивов выглядят именно так, пронумерованы.
    Ответ написан
    Комментировать
  • Как создать модель в Yii, ориентируясь на заданные параметры?

    AMar4enko
    @AMar4enko
    Вам не нужно описывать структуру таблицы в ActiveRecord, доступ к полям таблицы в нем осуществляется через магические методы, основанные на использовании метаданных таблицы.
    Вы просто говорите, что эта модель связана с таблицей, и $model->column = $value; сразу будет работать, если в таблице есть поле column.
    Ответ написан
    2 комментария
  • Возможно ли создать переменные с заданными в массиве именами?

    kirillplatonov
    @kirillplatonov
    Ruby on Rails developer
    extract($names);

    www.php.net/extract

    Создание пустых переменных не имеет смысл. В PHP переменные не требуют объявления, их можно создавать сразу, как только они появятся.
    Чтобы ваш код имел смысл задайте ассоциативный массив со значениями.
    Ответ написан
    Комментировать
  • Как защитить продаваемое веб-приложение?

    @serber
    Первое, что приходит на ум - ключ активации/серийный номер привязанный к домену, на котором будет установлено ваше приложение.
    Ответ написан
    3 комментария