PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (13): [1] 2 3 4 5 6 7 8 9 ... » В конец
Найдено сообщений: 192
imedia
Отправлено: 20 Сентября, 2017 - 23:33:53 • Тема: Подскажите как сделать примитивный шаблонизатор • Форум: Вопросы новичков
Ответов: 6 Просмотров: 408
Вот есть строка - шаблон и есть переменные которые нужно подставить вместо названий в шаблоне между фигурными скобками
PHP:
скопировать код в буфер обмена
public $array = [
[ 'sts' ] => 'Standford' ,
[ 'dvd' ] => 'Video' ,
[ 'title' ] => 'My_title'
] ;
public $message = "<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<title>{title}</title>
<div class='message' style='color:#6b0392;'>
{sts}
</div>
<div class='footer' style='color:#6b0392;'>
{dvd}
</div>
</head>
<body>
</body>
</html>" ;
По сути надо составить вот такой масив $matches чтобы потом можно было приминить к нему функцию указанную ниже
imedia
Отправлено: 12 Сентября, 2017 - 19:28:15 • Тема: Как обратиться к свойству модели из класа который ее использует? • Форум: Объектно-ориентированное программирование
Ответов: 1 Просмотров: 558
Здравствуйте Есть класс
PHP:
скопировать код в буфер обмена
<?PHP
namespace App\Http\Controllers\Privat;
use App\CabinetMenu;
class Privat3Controller extends \App\Http\Controllers\Controller
{
public function ShowGoodsAddItem( )
{
$data_nav [ 'menu' ] = CabinetMenu:: data_nav_menu ;
}
}
И есть модель которая в этом классе вызывается со свойством
PHP:
скопировать код в буфер обмена
<?PHP
namespace App;
use Illuminate\Database\Eloquent\Model;
class CabinetMenu extends Model
{
//
public $data_nav_menu = [
0 => [ 'href' => '#demo-lft-tab-1' , 'data_href' => '/cabinet' , 'btn_title' => 'Мой кабинет' ] ,
1 => [ 'href' => '#demo-lft-tab-2' , 'data_href' => '/goods_and_groups' , 'btn_title' => 'Товары и услуги' ] ,
2 => [ 'href' => '#demo-lft-tab-3' , 'data_href' => '/' , 'btn_title' => 'Заказы' ] ,
3 => [ 'href' => '#demo-lft-tab-4' , 'data_href' => '/' , 'btn_title' => 'Управление сайтом' ] ,
4 => [ 'href' => '#demo-lft-tab-5' , 'data_href' => '/' , 'btn_title' => 'Продвижение сайта' ] ,
5 => [ 'href' => '#demo-lft-tab-5' , 'data_href' => '/' , 'btn_title' => 'Тарифы' ] ,
6 => [ 'href' => '#demo-lft-tab-5' , 'data_href' => '/' , 'btn_title' => 'Настройки' ] ,
7 => [ 'href' => '#demo-lft-tab-5' , 'data_href' => '/' , 'btn_title' => 'Справка' ] ,
] ;
}
Как достучаться? сейчас Undefined class constant 'data_nav_menu'
imedia
Отправлено: 01 Сентября, 2017 - 12:41:30 • Тема: apache сделать алиас на другую директорию • Форум: Вопросы новичков
Ответов: 2 Просмотров: 148
Добрый день надо чтобы в одном виртуальном хосте при ссылке на imedia.in.ua была директория "/var/www/imedia.in.ua/web/max/frontend/web"
А при ссылке на алиас backend.imedia.in.ua открывался индекс из дирректории "/var/www/imedia.in.ua/web/max/backend/web"
Как это осуществить? пытаюсь так не получается
CODE (
htmlphp ):
скопировать код в буфер обмена
DocumentRoot "/var/www/clients/client1/web10/web/max/frontend/web/"
ServerAlias backend. imedia. in. ua
Alias
/ backend
/ / var
/ www
/ clients
/ client1
/ web10
/ web
/ max / backend
/ web
/
imedia
Отправлено: 26 Августа, 2017 - 19:13:27 • Тема: Курьез - почему в ретурне функции есть строка а в функции которая вызывает нет • Форум: Вопросы новичков
Ответов: 6 Просмотров: 438
Обращаемся так createMongoInfo($user);
PHP:
скопировать код в буфер обмена
protected function generateDomain( $domain , $length = 1 ) {
//Смотрим в базу нет ли там такогоже домена
$site = Site:: where ( 'domain_name' , $domain ) -> get ( ) ;
$chars = 'abdefhiknrstyz' ;
$string = '' ;
for ( $i = 0 ; $i < $length ; $i ++ ) {
$string .= substr ( $chars , rand ( 1
, $numChars ) - 1
, 1
) ; }
$domain = $domain . '_' . $string ;
$this -> generateDomain ( $domain , $length + 1) ;
}
else {
//No such site
dump( 'return' , $domain ) ; //Здесь после одного прохода imediasun_z
return $domain ;
}
}
protected function createMongoInfo( $user ) {
$domain_name = stristr ( $user -> email , '@' , true ) ; dd( $this -> generateDomain ( $domain_name , 1) ) ; //Null
}
Почему в dd createMongoInfo NULL когда в ретурне generateDomain imediasun_z smile
imedia
Отправлено: 15 Августа, 2017 - 20:41:55 • Тема: Как прокинуть данные из контроллера в темплейт • Форум: Вопросы новичков
Ответов: 0 Просмотров: 104
Я пользуюсь Ларавель
Хочу в вид динамически подгружать данные с темплейтом
Как осуществить
В основном шаблоне у меня аяксом забираются данные и темплейт для них
CODE (
javascript ):
скопировать код в буфер обмена
$.ajax ( {
type : 'POST' ,
dataType: 'json' ,
url: '/privat/showCompanyMenu' ,
success: function ( jsondata) {
$( '#result' ) .html ( jsondata)
}
} ) ;
А вот файл в котором происходит выбор подгружаемого темплейта и данных к нему
PHP:
скопировать код в буфер обмена
public function showCompanyMenu( )
{
//Возвращает данные меню по конкретному юзеру
//И возвращает HTML шаблон для отображения представления меню
$html = view( 'privat/retail/templates/menu_present' ) -> render ( ) ;
$arr = array ( 'a' => 1 , 'b' => 2 , 'c' => 3 , 'd' => 4 , 'e' => 5 , 'html' => $html ) ; echo $json_string ;
}
Как данные (a,b,c,d) прокинуть в шаблон чтобы в json получить html с данными
imedia
Отправлено: 14 Августа, 2017 - 13:53:27 • Тема: Вопрос по хостам на локалке • Форум: Вопросы новичков
Ответов: 3 Просмотров: 261
У меня тут проблема с поддоменами
Смотри если я в /etc/hosts/ указываю
127.0.0.1 magelan.loc sun.magelan.loc
я попадаю на свой индекс это отлично так и надоно если я указываю
127.0.0.1 magelan.loc *.magelan.loc
такого сайта не видит апач
Можешь помочь?
imedia
Отправлено: 13 Августа, 2017 - 19:37:59 • Тема: Как средствами PHP создать поддомен • Форум: Вопросы новичков
Ответов: 1 Просмотров: 222
Я использую Ларавель, мне необходимо скриптом создать настройки домена третьего уровня и чтобы при обращении к нему клиент заходил в Ларавелевский просто определенный контроллер проекта расположенного на основном домене и в экшене контроллера входным параметром будет имя этого поддомена, К тому же есть ньюанс роутов, они как то должны содержать имя поддомена или это можно обойти, Растолкуйте как это делается, Помогите пожалуйста
imedia
Отправлено: 18 Марта, 2017 - 15:40:19 • Тема: Как отрегулировать множественную загрузку АЯКС • Форум: Вопросы новичков
Ответов: 0 Просмотров: 96
Вот этот скрипт осуществляет множественную загрузку, обращение к серверу POST осуществляется асинхронно, скажите пожалуйста как отрегулировать скрипт так чтобы по complete каждого имиджа создавалась пауза пока я не отвечу на вопрос продолжить ли загрузку, а потом только следующий POST улетал на сервер - дело в том что на сервере по каждому имеджу происходит запись в сессию.
Скрипт немного сокращен отсутствуют инит моменты но сама суть понятна должна быть
CODE (
javascript ):
скопировать код в буфер обмена
( function ( $) {
self._damnUploaderUploadItem = function ( url, item ) {
if ( ! checkIsFile( item .file ) ) {
return false ;
}
var xhr = new XMLHttpRequest( ) ;
var progress = 0 ;
var uploaded = false ;
if ( xhr.upload ) {
xhr.upload .addEventListener ( "progress" , function ( e) {
if ( e.lengthComputable ) {
progress = ( e.loaded * 100) / e.total ;
if ( $.isFunction ( item .onProgress ) ) {
item .onProgress .call ( item , Math.round ( progress) ) ;
}
}
} , false ) ;
xhr.upload .addEventListener ( "load" , function ( e) {
progress = 100 ;
uploaded = true ;
} , false ) ;
} else {
uploaded = true ;
}
xhr.onreadystatechange = function ( ) {
var callbackDefined = $.isFunction ( item .onComplete ) ;
if ( this .readyState == 4) {
item .cancelled = item .cancelled || false ;
if ( this .status < 400) {
if ( ! uploaded) {
if ( callbackDefined) {
item .onComplete .call ( item , false , null , 0) ;
}
} else {
if ( $.isFunction ( item .onProgress ) ) {
item .onProgress .call ( item , 100) ;
}
if ( callbackDefined) {
item .onComplete .call ( item , true , this .responseText ) ;
}
}
} else {
if ( callbackDefined) {
item .onComplete .call ( item , false , null , this .status ) ;
}
}
}
} ;
var filename = item .replaceName || item .file .name ;
xhr.open ( "POST" , url) ;
if ( $.support .fileSending ) {
var cnt= count( queue) ;
var formData = new FormData( ) ;
formData.append ( ( item .fieldName || 'file' ) , item .file ) ;
xhr.send ( formData) ;
} else if ( $.support .fileReading && xhr.sendAsBinary ) {
var boundary = "xxxxxxxxx" ;
var body = "--" + boundary + "\r \n " ;
filename = unescape( encodeURIComponent( filename) ) ;
body += "Content-Disposition: form-data; name='" + ( item .fieldName || 'file' ) + "'; filename='" + filename + "'\r \n " ;
body += "Content-Type: application/octet-stream\r \n \r \n " ;
body += ( item .file .getAsBinary ? item .file .getAsBinary ( ) : item .file .readAsBinary ( ) ) + "\r \n " ;
body += "--" + boundary + "--" ;
xhr.sendAsBinary ( body) ;
} else {
xhr.setRequestHeader ( 'Upload-Filename' , item .file .name ) ;
xhr.setRequestHeader ( 'Upload-Size' , item .file .size ) ;
xhr.setRequestHeader ( 'Upload-Type' , item .file .type ) ;
xhr.send ( item .file ) ;
}
item .xhr = xhr;
}
var isFileField = ( ( self.get ( 0 ) .tagName == 'INPUT' ) && ( this .attr ( 'type' ) == 'file' ) ) ;
if ( isFileField) {
var myName = self.eq ( 0 ) .attr ( 'name' ) ;
if ( ! $.support .fileSelecting ) {
if ( myName.charAt ( myName.length - 1 ) != ']' ) {
myName += '[]' ;
}
self.attr ( 'name' , myName) ;
self.attr ( 'multiple' , false ) ;
var action = self.parents ( 'form' ) .attr ( 'action' ) ;
self._damnUploaderFakeForm = $( '<form/>' ) .attr ( {
method: 'post' ,
enctype: 'multipart/form-data' ,
action: action
} ) .hide ( ) .appendTo ( 'body' ) ;
} else {
self.attr ( 'multiple' , true ) ;
}
self._damnUploaderChangeCallback = function ( ) {
self._damnUploaderFilesAddMap( $.support .fileSelecting ? this .files : this , set.onSelect ) ;
} ;
self.on ( {
change: self._damnUploaderChangeCallback
} ) ;
}
if ( set.dropping ) {
self.on ( {
drop: function ( e) {
self._damnUploaderFilesAddMap( e.originalEvent .dataTransfer .files , set.onSelect ) ;
return false ;
}
} ) ;
if ( set.dropBox ) {
$( set.dropBox ) .on ( {
drop: function ( e) {
self._damnUploaderFilesAddMap( e.originalEvent .dataTransfer .files , set.onSelect ) ;
return false ;
}
} ) ;
}
}
return self;
}
switch ( params) {
case 'addItem' :
if ( ! data) {
return false ;
}
var queueId = uniq( 5) ;
if ( data.file .fake ) {
var input = $( data.file .inputElement ) ;
var cloned = $( input) .clone ( ) ;
$( input) .before ( cloned) ;
$( input) .attr ( 'id' , queueId) ;
$( input) .appendTo ( self._damnUploaderFakeForm) ;
cloned.on ( {
change: self._damnUploaderChangeCallback
} ) ;
self._damnUploaderItemsCount++;
return queueId;
}
if ( ! checkIsFile( data.file ) ) {
return false ;
}
queue[ queueId] = data;
self._damnUploaderItemsCount++;
return queueId;
break ;
case 'startUpload' :
if ( ! set.url ) {
return self;
}
if ( ! $.support .fileSelecting ) {
self._damnUploaderFakeForm.submit ( ) ;
return self;
}
var i = 0 ;
var complete_one = false ;
$.each ( queue, function ( queueId, item ) {
var compl = item .onComplete ;
item .fieldName = item .fieldName || set.fieldName ;
item .onComplete = function ( successful, data, error) {
if ( ! this .cancelled ) {
delete queue[ queueId] ;
self._damnUploaderItemsCount--;
}
if ( $.isFunction ( compl) ) {
compl.call ( this , successful, data, error) ;
}
if ( ( self._damnUploaderItemsCount == 0) && ( $.isFunction ( set.onAllComplete ) ) ) {
set.onAllComplete .call ( self, data) ;
}
} ;
self._damnUploaderUploadItem( set.url , item ) ;
} ) ;
break ;
}
imedia
Отправлено: 28 Февраля, 2017 - 17:02:27 • Тема: Почему при повторном вызове функции обнуляется свойство объекта • Форум: Объектно-ориентированное программирование
Ответов: 7 Просмотров: 1449
Вот у меня вызов приватной функции он многократен в зависимости от действий пользователя
PHP:
скопировать код в буфер обмена
class A{
privat $num ;
public function index( ) {
$this -> resize_ ( $upload , $uploads_dir , $file_name , 'file_name' ) ;
}
public function resize_( ) {
//здесь в цикле ресайз затем запись в сессию $this->kind
$this -> kind ( $process , $imag = $up [ 'name' ] . $file_name ) ;
}
privat function kind( ) {
for ( $i = 0 ; $i < 1 ; $i ++ ) {
dump( 'ENTER FOR' ) ;
dump( $this -> num ) ; /////////////////////////////////////////////////////////////
dump( session( ) -> all ( ) ) ;
if ( session( ) -> has ( $process . '.' . $this -> num . '.image_medium' ) ) {
session( ) -> put ( $process . '.' . $this -> num . '.image_large' , $imag ) ;
//когда уже должен быть 1 в $this->num то large переписывается потому что в $this->num null
//before = null
$this -> num ++;
//after =1
break ;
}
if ( session( ) -> has ( $process . '.' . $this -> num . '.image_small' ) ) {
session( ) -> put ( $process . '.' . $this -> num . '.image_medium' , $imag ) ;
break ;
} else {
session( [ $process . '.' . $this -> num . '.image_small' => $imag ] ) ;
break ;
}
}
dump( 'EXIT FOR' ) ;
dump( $this -> num ) ; //здесь $this->num 1///////////////////////////////////////////////
dump( session( ) -> all ( ) ) ;
}
}
почему при повторном входе в privat kind() $this->num снова null ?? когда в строке 22 он приращается, это же свойство почему оно обнуляется? Может потому что к класу обращение заново происходит, что же делать? каким образом установить этот глобальный итератор
imedia
Отправлено: 25 Февраля, 2017 - 21:49:27 • Тема: Почему не отображается картинка если путь правильный • Форум: Вопросы новичков
Ответов: 12 Просмотров: 1140
И как же вы говорите что корень не public
Вот у меня стили написаны так
<link href="/css/bootstrap-social.css" rel="stylesheet">
и папка css именно в public лежит значит слеш это именно public,
как же мне все таки на уровень выше папку указать
/../photos/kartinka.jpg - картинка не отображается
Страниц (13): [1] 2 3 4 5 6 7 8 9 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB