/** * VISTA CATEGORIA * @param $categoria * @param null $pp * @param null $p * @return mixed */ public function run($categoria, $pp = null, $p = null) { $parametros = Yii::$app->request->post(); $modelCategoria = new Categorias(); $modelArticulo = new Articulos(); $modelProvincia = new Provincias(); if (!empty(Yii::$app->request->get('ca'))) { Yii::$app->request->get('ca'); $categoria = $modelCategoria->obtenerSlug(Yii::$app->request->get('ca')); $provincia = strtolower($modelProvincia->obtenerProvincia(Yii::$app->request->get('ps'))); $estado = strtolower($modelArticulo->obtenerEstado(Yii::$app->request->get('estado'))); $estado = MetodosHelper::terminacionEsPlural($categoria) == true ? $estado . 's' : $estado; $this->controller->redirect(Yii::$app->urlManager->createUrl(['articulo/categoria-provincia', 'provincia' => $provincia, 'categoria' => $categoria, 'estado' => $estado])); } $model = Articulos::obtenerArticulosPorCategoria($categoria); $datos = new ArticulosBuscador(); $datos->cs = $categoria; $dataProvider = $datos->buscador($parametros, $pp, $p, 'categoria'); if (!empty($model)) { $this->controller->view->params['breadcrumbs'][] = $model[0]->categorias->nombre; return $this->controller->render('categoria', ['model' => $model, 'dataProvider' => $dataProvider]); echo '<pre>'; print_r(array('categoria', $categoria, $model[0]->categorias->slug, $model)); } echo '<pre>'; print_r(array('categoria', $categoria, 'articulo no existe')); }
* Time: 13:55 */ use yii\helpers\Url; use yii\helpers\Html; use common\extensions\cmsAB\mapaUbicacion\MapaUbicacion; use common\extensions\cmsAB\redesCompartir\Compartir; use common\components\MetodosHelper; /* @var $model common\models\Articulos */ /* @var $mensaje common\models\forms\EnviarMensajeForm */ //galeria $galeria = $model->archivos; //propietario $totalArticulosPropietario = $model->usuarios->totalArticulosUsuario(); //Ver sus <?= $model->usuarios->totalArticulosUsuario(); <!-- productos--> $textoAnunciosPropietario = $totalArticulosPropietario == 1 ? 'Ver sus anuncios' : 'Ver sus ' . $totalArticulosPropietario . ' anuncios'; $idUsuario = MetodosHelper::codificar_base36($model->usuario); $tipoUsuario = strtolower($model->usuarios->tipoUsuario()); $tipoUsuario = $tipoUsuario == 'autor' ? 'particular' : $tipoUsuario; $lnkPropietario = Html::a($textoAnunciosPropietario, Url::to(['articulo/' . $tipoUsuario, $tipoUsuario => $idUsuario])); $lnkDenuncia = Html::a('Denuncia este anuncio', Url::to(['articulo/denuncia', 'articulo' => $model->idarticulo]), ['class' => 'btn btn-primary waves-effect waves-teal btn-flat btn-block pull-right']); ?> <div class="pb-right-column col-xs-12 col-sm-6"> <?php echo Html::tag('h1', $model->nombre, ['class' => 'product-name']); ?> <div class="product-comments"> <div class="product-star"> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i>
<ul class="dropdown-menu animation-dock"> <li class="dropdown-header">Config</li> <li><a href="../../html/pages/profile.html">My profile</a></li> <li><a href="../../html/pages/blog/post.html">My blog <span class="badge style-danger pull-right">16</span></a></li> <li><a href="../../html/pages/calendar.html">My appointments</a></li> <li class="divider"></li> <li><a href="../../html/pages/locked.html"><i class="fa fa-fw fa-lock"></i> Lock</a></li> <li><a id="cerrarSesion" data-url="<?php echo Yii::$app->urlManager->createUrl(['oficina/salir']); ?> "><i class="fa fa-fw fa-power-off text-danger"></i> Logout</a></li> </ul><!--end .dropdown-menu --> </li><!--end .dropdown --> </ul><!--end .header-nav-profile --> <?php if (MetodosHelper::ocultarEnVista($ocultarAcciones)) { ?> <ul class="header-nav header-nav-toggle"> <li> <a class="btn btn-icon-toggle btn-default" href="#offcanvas-search" data-toggle="offcanvas" data-backdrop="false"> <i class="fa fa-ellipsis-v"></i> </a> </li> </ul><!--end .header-nav-toggle --> <?php } ?> </div><!--end #header-navbar-collapse --> </div> </header> <!-- END HEADER-->
/** * Obtiene el detalle de un articulo por slug y municipio * @param $municipio * @param $articulo * @return array|null|ActiveRecord */ public static function obtenerArticulosEnProvincia($articulo, $provincia) { $array = MetodosHelper::dividir_texto($articulo, '-', true); $like = ''; foreach ($array as $palabra) { $like .= "lower(articulos.nombre) like '%" . $palabra . "%'\n or articulos.slug like '%" . $palabra . "%' or "; } //busqueda general if ($articulo == self::ANUNCIOS && $provincia == Provincias::TODA_REP_DOM) { return Articulos::find()->all(); } else { if ($articulo == self::ANUNCIOS && $provincia != Provincias::TODA_REP_DOM) { return Articulos::find()->joinWith(['categorias', 'usuarios.municipios.provincias'])->leftJoin('referencias', 'articulos.referencia = referencias.idreferencia')->where('provincias.slug = :provincia', [':provincia' => $provincia])->all(); } } //busqueda especifica if ($provincia == Provincias::TODA_REP_DOM) { return Articulos::find()->leftJoin('referencias', 'articulos.referencia = referencias.idreferencia')->where($like . ' articulos.slug like :articulo or referencias.slug like :articulo', [':articulo' => '%' . $articulo . '%'])->all(); } return Articulos::find()->joinWith(['categorias', 'usuarios.municipios.provincias'])->leftJoin('referencias', 'articulos.referencia = referencias.idreferencia')->where($like . ' articulos.slug like :articulo or referencias.slug like :articulo', [':articulo' => '%' . $articulo . '%'])->andWhere('provincias.slug = :provincia', [':provincia' => $provincia])->all(); // $debug = $articulos->prepare(Yii::$app->db->queryBuilder)->createCommand()->rawSql; // echo '<pre>';print_r([$articulo, $provincia, $debug]);die(); // echo '<pre>';print_r([$articulo, $provincia, count($articulos), $articulos]);die(); }
/* @var $buscador common\models\forms\BuscadorForm */ use yii\helpers\Url; use yii\helpers\Html; use yii\widgets\ActiveForm; use common\models\Provincias; use common\models\Referencias; use common\models\forms\BuscadorForm; use common\components\MetodosHelper; $buscador = empty($buscador) ? new BuscadorForm() : $buscador; $provincias = new Provincias(); $referencias = new Referencias(); $accion = Yii::$app->controller->action->id; $comodin = $accion == 'index' ? '' : 'anuncios'; $parametros = !empty(Yii::$app->request->queryParams) ? Yii::$app->request->queryParams : ['articulo' => '', 'provincia' => Provincias::TODA_REP_DOM]; $provincia = !empty($parametros['provincia']) ? $parametros['provincia'] : Provincias::TODA_REP_DOM; $articulo = !empty($parametros['articulo']) ? MetodosHelper::dividir_texto(ucfirst($parametros['articulo']), '-', false, ' ') : ''; ?> <div class="block-search"> <?php $form = ActiveForm::begin(['id' => 'buscador-articulos-form', 'action' => 'buscador', 'options' => ['class' => 'form-inline']]); ?> <?php echo Html::activeHiddenInput($buscador, 'referencia', ['class' => 'buscador-referencia']); ?> <?php echo Html::activeHiddenInput($buscador, 'provincia', ['class' => 'buscador-lugar']); ?> <div class="form-group input-serach">
?> <?php //btn guardar anuncio if (MetodosHelper::mostrarEnVista($publicarAcciones)) { ?> <li class="hidden-xs"> <?php echo Html::submitButton(Yii::t('app', 'Publicar') . ' <i class="zmdi zmdi-check-all"></i>', ['id' => 'enviarFormulario', 'name' => 'publicar', 'class' => 'btn btn-success btn-rounded btn-guardar waves-effect w-md waves-light m-b-5']); ?> </li> <?php } ?> <?php //btn volver a listado mensajes if (MetodosHelper::mostrarEnVista($volverAcciones)) { ?> <li class="hidden-xs"> <?php echo Html::a(Yii::t('app', 'Volver atrás') . ' <i class="zmdi zmdi-long-arrow-return"></i>', Yii::$app->request->referrer, ['class' => 'btn btn-primary btn-rounded btn-volver w-md waves-effect waves-light m-b-5']); ?> </li> <?php } ?> </ul> </div><!-- end container --> </div><!-- end navbar --> </div> <!-- Top Bar End -->
<ul class="dropdown-menu animation-dock"> <li class="dropdown-header">Config</li> <li><a href="../../html/pages/profile.html">My profile</a></li> <li><a href="../../html/pages/blog/post.html">My blog <span class="badge style-danger pull-right">16</span></a></li> <li><a href="../../html/pages/calendar.html">My appointments</a></li> <li class="divider"></li> <li><a href="../../html/pages/locked.html"><i class="fa fa-fw fa-lock"></i> Lock</a></li> <li><a id="cerrarSesion" data-url="<?php echo Yii::$app->urlManager->createUrl(['oficina/salir']); ?> "><i class="fa fa-fw fa-power-off text-danger"></i> Logout</a></li> </ul><!--end .dropdown-menu --> </li><!--end .dropdown --> </ul><!--end .header-nav-profile --> <?php if (MetodosHelper::ocultarEnVista('portada')) { ?> <ul class="header-nav header-nav-toggle"> <li> <a class="btn btn-icon-toggle btn-default" href="#offcanvas-search" data-toggle="offcanvas" data-backdrop="false"> <i class="fa fa-ellipsis-v"></i> </a> </li> </ul><!--end .header-nav-toggle --> <?php } ?> </div><!--end #header-navbar-collapse --> </div> </header> <!-- END HEADER-->
/** * Updates an existing Usuarios model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionActualizar($id) { $model = $this->findModel($id); $articulo = $this->findModel($id); $session = Yii::$app->session; $idUsuario = Yii::$app->user->getId(); $claveSession = ImagenHelper::SESSION_IMAGEN_ARTICULO . $idUsuario; $files = []; $imagenes = []; $imagenesEliminar = []; if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($model); } if ($session->has($claveSession)) { $files = $session->get($claveSession); $imagenesAgregar = $files['file']; $imagenesEliminar = $files['delete']; } if ($model->load(Yii::$app->request->post())) { $imagenPrincipal = Yii::$app->request->post('dropzone_imagen_principal'); //actualizar imagen principal //guardamos la imagen principal if (isset($imagenPrincipal) || $imagenPrincipal == 0) { $imagenesArticulo = Archivos::findAll(['articulo' => $id]); $principal = ''; foreach ($imagenesArticulo as $key => $imagen) { if ($key == $imagenPrincipal) { $principal = $imagen->idarchivo; } } //si existe if (!empty($principal)) { //seteamos todas las imagenes a 0 Archivos::updateAll(['principal' => Archivos::NO_ES_PRINCIPAL], ['articulo' => $id]); //seteamos todas la principal a 1 $imagen = Archivos::findOne(['idarchivo' => $principal]); $imagen->principal = Archivos::ES_PRINCIPAL; $imagen->save(); } $session->remove($claveSession); Yii::$app->session->setFlash('toasts', 'Se ha actualizado el articulo con exito'); } if ($model->save() || !empty($files)) { //guardamos imagenes nuevas if (!empty($imagenesAgregar)) { foreach ($imagenesAgregar as $key => $file) { $file = (object) $file; // the path to save file, you can set an uploadPath $nombre = ImagenHelper::obtenerNombreArchivo(['usuario' => $idUsuario, 'articulo' => $model->idarticulo, 'imagen' => $file->name]); $archivo = new Archivos(); $archivo->usuario = $idUsuario; $archivo->articulo = $articulo->idarticulo; $archivo->nombre = $nombre; $archivo->tipo = $file->type; $archivo->peso = $file->size; $archivo->fechacreado = MetodosHelper::fechaHoy(); if ($archivo->save()) { file_put_contents(ImagenHelper::rutaImagenesArticulos() . $nombre, base64_decode($file->base64)); } } } //eliminamos imagenes if (!empty($imagenesEliminar)) { $listaImagenes = []; foreach ($model->archivos as $key => $imagen) { $listaImagenes[$key] = $imagen->nombre; } $resultado = array_diff($listaImagenes, $imagenesEliminar); if (empty($resultado)) { Archivos::deleteAll(['articulo' => $model->idarticulo, 'usuario' => $idUsuario]); } else { foreach ($listaImagenes as $nombre) { if (in_array($nombre, $imagenesEliminar)) { Archivos::deleteAll(['nombre' => $nombre, 'articulo' => $model->idarticulo, 'usuario' => $idUsuario]); ImagenHelper::eliminarImagen($nombre); } } } } $session->remove($claveSession); Yii::$app->session->setFlash('toasts', 'Se ha actualizado el articulo con exito'); //Yii::$app->session->setFlash('success', ['toast'=>'Se ha actualizado la categoria con exito'], true); return $this->redirect(['detalle', 'id' => $model->idarticulo]); } } $session->remove($claveSession); return $this->render('actualizar', ['model' => $model]); }
$lnk_paginas_portada = MetodosHelper::enlaceActivo('paginas', 'portada'); $lnk_paginas_articulo = MetodosHelper::enlaceActivo('paginas', 'articulo'); $lnk_paginas_blog = MetodosHelper::enlaceActivo('paginas', 'blog'); $lnk_paginas_estatica = MetodosHelper::enlaceActivo('paginas', 'estatica'); $lnk_paginas_contacto = MetodosHelper::enlaceActivo('paginas', 'contacto'); $lnk_paginas_todas = MetodosHelper::enlaceActivo('paginas', 'todas'); $lnk_usuarios = MetodosHelper::enlaceActivo('usuarios', 'actualizar'); $lnk_usuarios_todos = MetodosHelper::enlaceActivo('usuarios', 'index'); $lnk_usuarios_crear = MetodosHelper::enlaceActivo('usuarios', 'crear'); $lnk_categorias = MetodosHelper::enlaceActivo('categorias', 'todas'); $lnk_articulos = MetodosHelper::enlaceActivo('articulos', 'todos'); $lnk_articulos_pendientes = MetodosHelper::enlaceActivo('articulos', 'pendientes'); $lnk_articulos_crear = MetodosHelper::enlaceActivo('articulos', 'crear'); $lnk_empresa = MetodosHelper::enlaceActivo('empresas', 'index'); $lnk_empresa_index = MetodosHelper::enlaceActivo('empresas', 'index'); $lnk_empresa_inactivas = MetodosHelper::enlaceActivo('empresas', 'inactivas'); //labels $label_empresa = Html::tag('span', Yii::t('backend', 'Empresas'), []); $label_empresa_index = Html::tag('span', Yii::t('backend', 'Todas'), []); $label_empresa_inactivos = Html::tag('span', Yii::t('backend', 'Inactivas'), []); //urls $url_empresa = Yii::$app->urlManager->createUrl('empresas/'); $url_empresa_index = Yii::$app->urlManager->createUrl('empresas/'); $url_empresa_inactivos = Yii::$app->urlManager->createUrl('empresas/inactivas'); //clases $opciones_link = ['class' => "waves-effect"]; ?> <div id="menubar" class="menubar-inverse "> <div class="menubar-fixed-panel"> <div> <a class="btn btn-icon-toggle btn-default menubar-toggle" data-toggle="menubar" href="javascript:void(0);">
/** * Editar articulo existente * @return bool */ public function editar() { $idUsuario = Yii::$app->user->getId(); if ($this->validate()) { $model = $this->articulo; $model->nombre = ucfirst($this->nombre); $model->estado = $this->estado; $model->descripcion = ucfirst($this->descripcion); $model->categoria = $this->categoria; $model->precio = $this->precio; $model->transacciones = is_array($this->transacciones) ? implode(',', $this->transacciones) : Articulos::NO_ESPECIFICADO; // //$archivo = new Archivos(); if ($model->update(false)) { if (!empty($this->imagenes)) { foreach ($this->imagenes as $key => $file) { $file = (object) $file; // the path to save file, you can set an uploadPath $nombre = ImagenHelper::obtenerNombreArchivo(['usuario' => $idUsuario, 'articulo' => $model->idarticulo, 'imagen' => $file->name]); $archivo = new Archivos(); $archivo->usuario = $idUsuario; $archivo->articulo = $model->idarticulo; $archivo->nombre = $nombre; $archivo->tipo = $file->type; $archivo->peso = $file->size; $archivo->fechacreado = MetodosHelper::fechaHoy(); //guardamos la imagen principal $archivo->principal = count($this->imagenes) == 1 || $key == $this->principal ? 1 : 0; if ($archivo->save()) { file_put_contents(ImagenHelper::rutaImagenesArticulos() . $nombre, base64_decode($file->base64)); ImagenHelper::guardarImagenSize($nombre, 'articulos'); } } } return true; } else { return false; } } return false; }
/** * Busca articulos en base a articulo y categoria * @param array $params * @return ActiveDataProvider */ public function buscadorArticuloProvincia($params, $page_size = 18, $pagina = 0) { $query = Articulos::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['page' => $pagina, 'pageSize' => $page_size, 'pageParam' => 'p', 'pageSizeParam' => 'pp', 'defaultPageSize' => '18', 'pageSizeLimit' => [1, 50]], 'sort' => ['defaultOrder' => ['fechacreado' => SORT_DESC]]]); $this->load($params); $query->leftJoin('categorias', 'categorias.idcategoria = articulos.categoria'); $query->leftJoin('usuarios', 'usuarios.idusuario = articulos.usuario'); $query->leftJoin('municipios', 'municipios.idmunicipio = usuarios.municipio'); $query->leftJoin('provincias', 'provincias.idprovincia = municipios.provincia'); $query->leftJoin('referencias', 'articulos.referencia = referencias.idreferencia'); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } //busqueda especifica if (strcmp($this->na, self::ANUNCIOS) !== 0) { $array = MetodosHelper::dividir_texto($this->na, '-', true); foreach ($array as $palabra) { $query->orWhere(['like', 'articulos.nombre', $palabra]); $query->orWhere(['like', 'articulos.slug', $palabra]); $query->orWhere(['like', 'referencias.slug', $palabra]); $buscador = new Buscador(); $ids = $buscador->obtenerIdsResultadosIndexados($palabra); $query->orWhere(['in', 'articulos.referencia', $ids]); } } if (!empty($this->ps) && $this->ps != Provincias::TODA_REP_DOM) { $query->andwhere('provincias.slug = :provincia', [':provincia' => $this->ps]); } return $dataProvider; }