vendor/contao/faq-bundle/src/Resources/contao/models/FaqModel.php line 204

Open in your IDE?
  1. <?php
  2. /*
  3. * This file is part of Contao.
  4. *
  5. * (c) Leo Feyer
  6. *
  7. * @license LGPL-3.0-or-later
  8. */
  9. namespace Contao;
  10. use Contao\CoreBundle\File\ModelMetadataTrait;
  11. use Contao\Model\Collection;
  12. /**
  13. * Reads and writes FAQs
  14. *
  15. * @property string|integer $id
  16. * @property string|integer $pid
  17. * @property string|integer $sorting
  18. * @property string|integer $tstamp
  19. * @property string $question
  20. * @property string $alias
  21. * @property string|integer $author
  22. * @property string|null $answer
  23. * @property string $pageTitle
  24. * @property string $robots
  25. * @property string|null $description
  26. * @property string|boolean $addImage
  27. * @property string|boolean $overwriteMeta
  28. * @property string|null $singleSRC
  29. * @property string $alt
  30. * @property string $imageTitle
  31. * @property string|integer $size
  32. * @property string|array $imagemargin
  33. * @property string $imageUrl
  34. * @property string|boolean $fullsize
  35. * @property string $caption
  36. * @property string $floating
  37. * @property string|boolean $addEnclosure
  38. * @property string|null $enclosure
  39. * @property string|boolean $noComments
  40. * @property string|boolean $published
  41. *
  42. * @method static FaqModel|null findById($id, $opt=array())
  43. * @method static FaqModel|null findByPk($id, array $opt=array())
  44. * @method static FaqModel|null findByIdOrAlias($val, array $opt=array())
  45. * @method static FaqModel|null findOneBy($col, $val, array $opt=array())
  46. * @method static FaqModel|null findOneByPid($val, $opt=array())
  47. * @method static FaqModel|null findOneBySorting($val, $opt=array())
  48. * @method static FaqModel|null findOneByTstamp($val, $opt=array())
  49. * @method static FaqModel|null findOneByQuestion($val, $opt=array())
  50. * @method static FaqModel|null findOneByAlias($val, $opt=array())
  51. * @method static FaqModel|null findOneByAuthor($val, $opt=array())
  52. * @method static FaqModel|null findOneByAnswer($val, $opt=array())
  53. * @method static FaqModel|null findOneByPageTitle($val, $opt=array())
  54. * @method static FaqModel|null findOneByRobots($val, $opt=array())
  55. * @method static FaqModel|null findOneByDescription($val, $opt=array())
  56. * @method static FaqModel|null findOneByAddImage($val, $opt=array())
  57. * @method static FaqModel|null findOneByOverwriteMeta($val, $opt=array())
  58. * @method static FaqModel|null findOneBySingleSRC($val, $opt=array())
  59. * @method static FaqModel|null findOneByAlt($val, $opt=array())
  60. * @method static FaqModel|null findOneByImageTitle($val, $opt=array())
  61. * @method static FaqModel|null findOneBySize($val, $opt=array())
  62. * @method static FaqModel|null findOneByImagemargin($val, $opt=array())
  63. * @method static FaqModel|null findOneByImageUrl($val, $opt=array())
  64. * @method static FaqModel|null findOneByFullsize($val, $opt=array())
  65. * @method static FaqModel|null findOneByCaption($val, $opt=array())
  66. * @method static FaqModel|null findOneByFloating($val, $opt=array())
  67. * @method static FaqModel|null findOneByAddEnclosure($val, $opt=array())
  68. * @method static FaqModel|null findOneByEnclosure($val, $opt=array())
  69. * @method static FaqModel|null findOneByNoComments($val, $opt=array())
  70. * @method static FaqModel|null findOneByPublished($val, $opt=array())
  71. *
  72. * @method static Collection|FaqModel[]|FaqModel|null findByPid($val, $opt=array())
  73. * @method static Collection|FaqModel[]|FaqModel|null findBySorting($val, $opt=array())
  74. * @method static Collection|FaqModel[]|FaqModel|null findByTstamp($val, $opt=array())
  75. * @method static Collection|FaqModel[]|FaqModel|null findByQuestion($val, $opt=array())
  76. * @method static Collection|FaqModel[]|FaqModel|null findByAlias($val, $opt=array())
  77. * @method static Collection|FaqModel[]|FaqModel|null findByAuthor($val, $opt=array())
  78. * @method static Collection|FaqModel[]|FaqModel|null findByAnswer($val, $opt=array())
  79. * @method static Collection|FaqModel[]|FaqModel|null findByPageTitle($val, $opt=array())
  80. * @method static Collection|FaqModel[]|FaqModel|null findByRobots($val, $opt=array())
  81. * @method static Collection|FaqModel[]|FaqModel|null findByDescription($val, $opt=array())
  82. * @method static Collection|FaqModel[]|FaqModel|null findByAddImage($val, $opt=array())
  83. * @method static Collection|FaqModel[]|FaqModel|null findByOverwriteMeta($val, $opt=array())
  84. * @method static Collection|FaqModel[]|FaqModel|null findBySingleSRC($val, $opt=array())
  85. * @method static Collection|FaqModel[]|FaqModel|null findByAlt($val, $opt=array())
  86. * @method static Collection|FaqModel[]|FaqModel|null findByImageTitle($val, $opt=array())
  87. * @method static Collection|FaqModel[]|FaqModel|null findBySize($val, $opt=array())
  88. * @method static Collection|FaqModel[]|FaqModel|null findByImagemargin($val, $opt=array())
  89. * @method static Collection|FaqModel[]|FaqModel|null findByImageUrl($val, $opt=array())
  90. * @method static Collection|FaqModel[]|FaqModel|null findByFullsize($val, $opt=array())
  91. * @method static Collection|FaqModel[]|FaqModel|null findByCaption($val, $opt=array())
  92. * @method static Collection|FaqModel[]|FaqModel|null findByFloating($val, $opt=array())
  93. * @method static Collection|FaqModel[]|FaqModel|null findByAddEnclosure($val, $opt=array())
  94. * @method static Collection|FaqModel[]|FaqModel|null findByEnclosure($val, $opt=array())
  95. * @method static Collection|FaqModel[]|FaqModel|null findByNoComments($val, $opt=array())
  96. * @method static Collection|FaqModel[]|FaqModel|null findByPublished($val, $opt=array())
  97. * @method static Collection|FaqModel[]|FaqModel|null findMultipleByIds($val, array $opt=array())
  98. * @method static Collection|FaqModel[]|FaqModel|null findBy($col, $val, array $opt=array())
  99. * @method static Collection|FaqModel[]|FaqModel|null findAll(array $opt=array())
  100. *
  101. * @method static integer countById($id, $opt=array())
  102. * @method static integer countByPid($val, $opt=array())
  103. * @method static integer countBySorting($val, $opt=array())
  104. * @method static integer countByTstamp($val, $opt=array())
  105. * @method static integer countByQuestion($val, $opt=array())
  106. * @method static integer countByAlias($val, $opt=array())
  107. * @method static integer countByAuthor($val, $opt=array())
  108. * @method static integer countByAnswer($val, $opt=array())
  109. * @method static integer countByPageTitle($val, $opt=array())
  110. * @method static integer countByRobots($val, $opt=array())
  111. * @method static integer countByDescription($val, $opt=array())
  112. * @method static integer countByAddImage($val, $opt=array())
  113. * @method static integer countByOverwriteMeta($val, $opt=array())
  114. * @method static integer countBySingleSRC($val, $opt=array())
  115. * @method static integer countByAlt($val, $opt=array())
  116. * @method static integer countByImageTitle($val, $opt=array())
  117. * @method static integer countBySize($val, $opt=array())
  118. * @method static integer countByImagemargin($val, $opt=array())
  119. * @method static integer countByImageUrl($val, $opt=array())
  120. * @method static integer countByFullsize($val, $opt=array())
  121. * @method static integer countByCaption($val, $opt=array())
  122. * @method static integer countByFloating($val, $opt=array())
  123. * @method static integer countByAddEnclosure($val, $opt=array())
  124. * @method static integer countByEnclosure($val, $opt=array())
  125. * @method static integer countByNoComments($val, $opt=array())
  126. * @method static integer countByPublished($val, $opt=array())
  127. */
  128. class FaqModel extends Model
  129. {
  130. use ModelMetadataTrait;
  131. /**
  132. * Table name
  133. * @var string
  134. */
  135. protected static $strTable = 'tl_faq';
  136. /**
  137. * Find a published FAQ from one or more categories by its ID or alias
  138. *
  139. * @param mixed $varId The numeric ID or alias name
  140. * @param array $arrPids An array of parent IDs
  141. * @param array $arrOptions An optional options array
  142. *
  143. * @return FaqModel|null The model or null if there is no FAQ
  144. */
  145. public static function findPublishedByParentAndIdOrAlias($varId, $arrPids, array $arrOptions=array())
  146. {
  147. if (empty($arrPids) || !\is_array($arrPids))
  148. {
  149. return null;
  150. }
  151. $t = static::$strTable;
  152. $arrColumns = !preg_match('/^[1-9]\d*$/', $varId) ? array("BINARY $t.alias=?") : array("$t.id=?");
  153. $arrColumns[] = "$t.pid IN(" . implode(',', array_map('\intval', $arrPids)) . ")";
  154. if (!static::isPreviewMode($arrOptions))
  155. {
  156. $arrColumns[] = "$t.published='1'";
  157. }
  158. return static::findOneBy($arrColumns, $varId, $arrOptions);
  159. }
  160. /**
  161. * Find all published FAQs by their parent ID
  162. *
  163. * @param int $intPid The parent ID
  164. * @param array $arrOptions An optional options array
  165. *
  166. * @return Collection|FaqModel[]|FaqModel|null A collection of models or null if there are no FAQs
  167. */
  168. public static function findPublishedByPid($intPid, array $arrOptions=array())
  169. {
  170. $t = static::$strTable;
  171. $arrColumns = array("$t.pid=?");
  172. if (!static::isPreviewMode($arrOptions))
  173. {
  174. $arrColumns[] = "$t.published='1'";
  175. }
  176. if (!isset($arrOptions['order']))
  177. {
  178. $arrOptions['order'] = "$t.sorting";
  179. }
  180. return static::findBy($arrColumns, $intPid, $arrOptions);
  181. }
  182. /**
  183. * Find all published FAQs by their parent IDs
  184. *
  185. * @param array $arrPids An array of FAQ category IDs
  186. * @param array $arrOptions An optional options array
  187. *
  188. * @return Collection|FaqModel[]|FaqModel|null A collection of models or null if there are no FAQs
  189. */
  190. public static function findPublishedByPids($arrPids, array $arrOptions=array())
  191. {
  192. if (empty($arrPids) || !\is_array($arrPids))
  193. {
  194. return null;
  195. }
  196. $t = static::$strTable;
  197. $arrColumns = array("$t.pid IN(" . implode(',', array_map('\intval', $arrPids)) . ")");
  198. if (!static::isPreviewMode($arrOptions))
  199. {
  200. $arrColumns[] = "$t.published='1'";
  201. }
  202. if (!isset($arrOptions['order']))
  203. {
  204. $arrOptions['order'] = "$t.pid, $t.sorting";
  205. }
  206. return static::findBy($arrColumns, null, $arrOptions);
  207. }
  208. }
  209. class_alias(FaqModel::class, 'FaqModel');